Ajouter des logging volumes à VPlex

Lors d’une opération d’ajout récente de nouveaux distributed devices sur notre VPlex metro, nous sommes tombés sur un message d’erreur concernant un pb de place sur nos logging volumes. En voulant créer le DD en question, l’erreur suivante s’est produite :

VPlexcli:/distributed-storage/distributed-devices> create -f dd_prdvmfsvnx18 device_vnx5_prdvmfsvnx18,device_vnx4_prdvmfsvnx18
ds dd create:  Evaluation of <> failed.
cause:         Failed to create distributed device 'dd_prdvmfsvnx18'.
cause:         Unable to create distributed Device 'dd_prdvmfsvnx18'.
cause:         Unable to find a logging volume at cluster 'cluster-1' with enough free space to create logging segments for distributed device 'dd_prdvmfsvnx18'.

L’erreur en question ... with enough free space to create logging segments ... est due au fait que les espaces disques dédiés aux logging volumes initialement provisionnés n’ont plus suffisamment de place pour héberger le tracking du nouveau device distribué.

Pour rappel, les logging volumes de VPlex metro assurent le change block tracking des segments de 4K des distributed device en cas de perte de connexion entre les deux clusters ; ainsi, lors de la reconnexion, seuls les les modifications effectuées pendant cette perte de connectivité sont répliqués, garantissant une reconstruction des volumes beaucoup plus rapide qu’une full-synchro.

Dans le suite, je vous propose de vous détailler, si cela vous arrive un jour, la procédure pour ajouter des logging volumes suplémentaires à vos clusters. Pour information, un logging volume de 10 Go vous permet de protéger environ 160 To de distributed devices.

Il s’agit donc d’ajouter un logging-volume sur chaque membre de notre ensemble VPlex Metro. La première étape consiste à préparer et présenter des luns à partir de vos baies back-end. Les best pratices d’EMC recommandent chaudement que les logging volumes soient au moins en mirroir sur deux baies différentes. Dans la pratique, cela n’est pas forcément possible si vous ne disposez que d’une baie sur chaque site (vous pouvez allors croiser ces volumes entre les deux sites, à voir avec votre support local). De notre coté, nous avons deux baies de productions de chaque coté, une brique XtremIO et une VNX7500. Nous allons donc créer des logging volumes en mode mirroir, sur chaque cluster.

Pour le cluster 1, une fois les deux LUNs (une via XtremIO et une via VNX7500) présentées, il faut « claimer » (quel beau mot …) les LUNs :

VPlexcli:/clusters/cluster-1/storage-elements/storage-volumes> claim -n vnx5_loggingvol2 VPD83T3:6006016028c03500a779cxxxxxxxxx
Claimed 1 of 1 storage-volumes.
VPlexcli:/clusters/cluster-1/storage-elements/storage-volumes> claim -n falcontu_loggingvol2 VPD83T3:514f0c5xxxxxxxxxxx
Claimed 1 of 1 storage-volumes.

Une fois attachés logiquement, on créé les extents 1-1 correspondants :

VPlexcli:/clusters/cluster-1/storage-elements/storage-volumes> cd ../extents/
VPlexcli:/clusters/cluster-1/storage-elements/extents> create vnx5_loggingvol2
VPlexcli:/clusters/cluster-1/storage-elements/extents> create falcontu_loggingvol2
VPlexcli:/clusters/cluster-1/storage-elements/extents> set extent_vnx5_loggingvol2_1::name extent_vnx5_loggingvol2
VPlexcli:/clusters/cluster-1/storage-elements/extents> set extent_falcontu_loggingvol2_1::name extent_falcontu_loggingvol2

Enfin, on va se place dans la section « system-volumes » et créer le nouveau logging-volume :

VPlexcli:/clusters/cluster-1/storage-elements/extents> cd ../../system-volumes/
VPlexcli:/clusters/cluster-1/system-volumes> logging-volume create -n krakentu_loggingvol2 -g raid-1 -e extent_vnx5_loggingvol2,extent_falcontu_loggingvol2
Logging-volume 'krakentu_loggingvol2_vol' is created at /clusters/cluster-1/system-volumes.
VPlexcli:/clusters/cluster-1/system-volumes> ll
Name                                        Volume Type     Operational  Health  Active  Ready  Geometry  Component  Block     Block  Capacity  Slots
------------------------------------------  --------------  Status       State   ------  -----  --------  Count      Count     Size   --------  -----
------------------------------------------  --------------  -----------  ------  ------  -----  --------  ---------  --------  -----  --------  -----
krakentu_loggingvol2_vol                    logging-volume  ok           ok      -       -      raid-1    2          5242880   4K     20G       -
krakentu_loggingvol_vol                     logging-volume  ok           ok      -       -      raid-1    2          2621440   4K     10G       -
meta_vnx5_falcontu                          meta-volume     ok           ok      true    true   raid-1    2          20971264  4K     80G       32000
meta_vnx5_falcontu_backup_2015May03_040007  meta-volume     ok           ok      false   true   raid-1    1          20971264  4K     80G       64000
meta_vnx5_falcontu_backup_2015May04_040009  meta-volume     ok           ok      false   true   raid-1    1          20971264  4K     80G       64000

Après le cluster-1, en route pour le cluster 2 : même procédure, aux noms près évidemment :

VPlexcli:/clusters/cluster-2/storage-elements/storage-volumes> claim -n falconhn_loggingvol2 VPD83T3:514f0c5eb5a00033
Claimed 1 of 1 storage-volumes.
VPlexcli:/clusters/cluster-2/storage-elements/storage-volumes> claim -n vnx4_loggingvol2 VPD83T3:6006016068403400318299893df2e411
Claimed 1 of 1 storage-volumes.
VPlexcli:/clusters/cluster-2/storage-elements/storage-volumes> cd ../extents/
VPlexcli:/clusters/cluster-2/storage-elements/extents> create falconhn_loggingvol2
VPlexcli:/clusters/cluster-2/storage-elements/extents> create vnx4_loggingvol2
VPlexcli:/clusters/cluster-2/storage-elements/extents> set extent_falconhn_loggingvol2_1::name extent_falconhn_loggingvol2
VPlexcli:/clusters/cluster-2/storage-elements/extents> set extent_vnx4_loggingvol2_1::name extent_vnx4_loggingvol2
VPlexcli:/clusters/cluster-2/storage-elements/extents> cd ../../system-volumes/
VPlexcli:/clusters/cluster-2/system-volumes> logging-volume create -n krakenhn_loggingvol2 -g raid-1 -e extent_vnx4_loggingvol2,extent_falconhn_loggingvol2
Logging-volume 'krakenhn_loggingvol2_vol' is created at /clusters/cluster-2/system-volumes.
VPlexcli:/clusters/cluster-2/system-volumes> ll
Name                                        Volume Type     Operational  Health  Active  Ready  Geometry  Component  Block     Block  Capacity  Slots
------------------------------------------  --------------  Status       State   ------  -----  --------  Count      Count     Size   --------  -----
------------------------------------------  --------------  -----------  ------  ------  -----  --------  ---------  --------  -----  --------  -----
krakenhn_loggingvol2_vol                    logging-volume  ok           ok      -       -      raid-1    2          5242880   4K     20G       -
krakenhn_loggingvol_vol                     logging-volume  ok           ok      -       -      raid-1    2          2621440   4K     10G       -
meta_vnx4_falconhn                          meta-volume     ok           ok      true    true   raid-1    2          20971264  4K     80G       32000
meta_vnx4_falconhn_backup_2015May03_040007  meta-volume     ok           ok      false   true   raid-1    1          20971264  4K     80G       64000
meta_vnx4_falconhn_backup_2015May04_040009  meta-volume     ok           ok      false   true   raid-1    1          20971264  4K     80G       64000

C’est terminé, on peut désormais rajouter notre distributed device, les deux clusters vont utiliser automatiquement les nouveaux logging volumes pour les futurs créations.