Creating a stretchable storage container is different then creating a stretched container. A stretchable container is just that: a local container (local unstretched pod) that has the ability to be stretched at a future point in time. This is very useful to leverage when migrating existing VMs to the new stretchable container before stretching the container.
XCOPY is supported for copy operations between local pods but it is not supported from local pods to a stretched pod. If a storage vMotion occurs between an existing container and a stretched container, then it will be a standard copy. There are no volume copies, overwrites or XCOPY that will be supported for that operation. Doing this between local pods can leverage XCOPY between them. Once the VMs have been cloned or migrated to the stretchable container the container can be stretched.
This section will cover the process of creating a stretchable container. At this time, this can only be done via the CLI. In the future, this will be able to be done via Everpure’s vSphere Remote Plugin. The steps are as follows:
-
Create a new pod on the FlashArray where the source VMs are located
-
Create a new protocol endpoint in the new pod with the container version set to 4
-
Connect the protocol endpoint to the host group
-
Set the ACL for the vCenter Server
-
Rescan and Synchronize storage providers from vCenter
-
Create a new vVol Datastore
Create a new pod
A new pod can be created via the CLI or from the GUI.
pureuser@sn1-xl130-c12-17> purepod create activecluster-vvols-ds-02
Name Source Array Status Frozen At Promotion Status Link Count Quota Limit
activecluster-vvols-ds-02 - sn1-xl130-c12-17 online - promoted 0 -
Create a new protocol endpoint in the new pod
From the FA CLI, create the new protocol endpoint in the new pod with the container version set to 4.
pureuser@sn1-xl130-c12-17> purevol create --protocol-endpoint --container-version 4 activecluster-vvols-ds-02::pure-protocol-endpoint
Name Source Created Serial Container Version Protection
activecluster-vvols-ds-02::pure-protocol-endpoint - 2024-07-10 20:24:51 PDT 36C08E572D344E360018B535 4 -
It is very important to set the container version here. If the container version is not set to 4 and then the PE is connected to a host group, then the container will be unstretchable from that point moving forward.
Connect the protocol endpoint to the host group
Next, the pod needs to be stretched to create a stretched pod.
pureuser@sn1-xl130-c12-17> purevol connect --hgroup AC-vVols-Cluster-scsi-fc activecluster-vvols-ds-02::pure-protocol-endpoint
Name Host Group Host LUN NSID
activecluster-vvols-ds-02::pure-protocol-endpoint AC-vVols-Cluster-scsi-fc cert-esxi-02-scsi-fc 250 -
activecluster-vvols-ds-02::pure-protocol-endpoint AC-vVols-Cluster-scsi-fc cert-esxi-01-scsi-fc 250 -
activecluster-vvols-ds-02::pure-protocol-endpoint AC-vVols-Cluster-scsi-fc cert-esxi-04-scsi-fc 250 -
activecluster-vvols-ds-02::pure-protocol-endpoint AC-vVols-Cluster-scsi-fc cert-esxi-03-scsi-fc 250 -
Setting the ACL for the vCenter Server
There are a few ways to get the vCenter Server GUID: PowerShell, Python, the MOB or from the vCenter Server URL. The easiest way is to look at the vCenter URL as it will be the group-d1:GUID.
For Example, from the vCenter Server GUI:
|
|
|
vCenter GUI URL => Look for "Folder:group-" |
We can see that the VC GUID is “b1e260e5-a986-455a-a782-4c943f2bfd13”; this will show up in purevchost list and purecert list on the FlashArray. From this point, we will need to add the ACL for the container by setting access on the pod’s protocol endpoint with the vchost that matches this GUID. This can only be done from the CLI.
pureuser@sn1-xl130-c12-17> purevchost list
Name Vcuuid
vhost-75281e77-3e98-4cad-a0d2-faa1bbd8f864 75281e77-3e98-4cad-a0d2-faa1bbd8f864
vhost-b1e260e5-a986-455a-a782-4c943f2bfd13 b1e260e5-a986-455a-a782-4c943f2bfd13
pureuser@sn1-xl130-c12-17> purevchost connection create --protocol-endpoint activecluster-vvols-ds-02::pure-protocol-endpoint vhost-b1e260e5-a986-455a-a782-4c943f2bfd13
VC Host Protocol Endpoint
vhost-b1e260e5-a986-455a-a782-4c943f2bfd13 activecluster-vvols-ds-02::pure-protocol-endpoint
Now an ACL has been established for this vCenter Server and all of the hosts on this vCenter to have access to this storage container. Until this is set, then the container will not be returned to any vCenter Server. By design, stretched and stretchable storage containers should not be shared between vCenter Servers; they must be private containers for a single vCenter Server.Create a new vVol Datastore
Create the new stretchable vVol Datastore from the vCenter Server GUI.
From the vCenter Server GUI:
|
|
|
Host View => Right Click on Cluster => Storage => New Datastore |
|
|
|
New Datastore => Type => vVol => Next |
|
|
|
Backing Storage Container => select the stretchable container => Name => Next |
Notice here that there are just the on array and two storage providers listed. This is because the storage container is not stretched yet.
|
|
|
Select all hosts in the Cluster => Next |
|
|
|
Confirm information => Finish |
From here the vVol Datastore will be created and mounted.
From the datastore view, vSphere will say it’s in a stretched state, but it’s actually in a stretchable state.
|
|
|
Datastore View => Summary => Stretched Container |