Administration d'une baie 3 Par en ligne de commande
- La baie SAN peut être administrer par en ligne de commande soit:
- par ssh.
- en utilisant les commandes cli.
Les 2 méthodes d'administration restent presque identiques. Le presque implique:
- méthodes d'authentification différentes:
en ssh, il est possible d'utiliser une clé (ou un mot de passe en utilisant le client ssh dropbear)
en mode cli, on peut passer le mot de en ligne de commande ou utiliser un fichier contenant le login et le mot de passe crypté!. De plus, en mode cli, il est possible d'appeler directement la commande ou d'utiliser la syntaxe cli COMMANDE.
Toutes les opérations peuvent être réalisées soit par le mode CLI ou par SSH.
Contents
- Paramètrage du mode CLI
- Quelques commandes
-
Tutorial
- Création de 2 CPGs (un pour le virtual volume et un autre pour les snapshots)
- Création du Host
- Création de 2 virtuals volumes
- Création et export de 2 luns correspondant à chaque virtual volume
- Montage des luns sur la machine
- Snapshots
- Export des snapshots vers la machine
- Montage des luns contenant les shapshots sur la machine
- Réapplication des snapshots vers le volume de base
- Suppression des luns correspondant au snapshots et des snapshots
- Suppression des luns crées
- Suppression des virtual volumes
- Suppression du host
- Suppression des CPGs
1. Paramètrage du mode CLI
Les premières utilisations sont un peu problématique. En effet, le binaire utilisé pour l'administration est nommé cli. Or, mono propose aussi un executable nommé cli. Pour simplifier l'utilisation, il faut corriger ce point par :
cd REP_INSTALL/bin BIN_DIR="$(pwd)" sed -i -e "s|^cli|$BIN_DIR/cli|g" *
1.1. Création du fichier fichier d'autorisation
Pour simplifier l'utilisation du mode cli, il est préférable de créer un fichier contenant le login/password. La création du fichier se fait par setpassword -sys BAIE -saveonly FILE. Une fois le fichier créer, il est néssaire d'initialiser les variables par :
* export TPDSYSNAME=baie * export TPDPWFILE=FILE
2. Quelques commandes
2.1. Gestion des alertes
Afficher les alertes: showalert
Par défaut, seules les nouvelles alertes (status: new, identique à l'option -n) sont affichées.
-a : affiche uniquement les alertes dont le status est acknowledged.
-f : affiche uniquement les alertes dont le status est fixed.
-all : affiche uniquement toutes les alertes.
-oneline : affiche une alerte par ligne. Les lignes seront tronquées. Pour afficher les informations complètes, il est possible d'utiliser l'option --wide.
Modifier l'état des alertes: setalert
Les états disponibles sont new, ack, fixed.
Il faut indiquer l'identifiant de l'alerte (récupérables par showalert. En utilisant l'option -a pour l'état des toutes les alertes.
Passer l'alert dont l'id est 179 à l'état fixed: setalert fixed 179
2.2. Les CPGs
Lister les CPGs : showcpg
-d : affiche plus de détails.
- Il est possible de passer le nom d'un CPG en paramètre pour n'obtenir que les détails de ce CPG
Création d'un CPG : createcpg
Suppression d'un CPG : removecpg
2.3. virtual volumes
Lister les virtual volumes : showvv
-listcols : permet de lister l'ensemble des colonnes disponibles.
-p filtre permet de filtrer la sortie
Supprimer un virtual volume: removevv. Il est possible d'utiliser l'option -dr pour afficer les résultats de l'opération sans appliquer les modifications (dry run).
- La suppresion d'un VV n'est possible que s'il n'y a pas de lun associé à ce VV et qu'il n'y a pas de snapshot associé.
La suppression demande une confirmation. Il est possible de bypasser celle-ci en utilisant l'option -f
removevv permet de supprimer des virtual volumes ou des snapshots. Pour éviter les boulettes, il faut utiliser l'option -snaponly lorsqu'on supprime un snapshot.
Création un volume virtual: createvv
2.3.1. Exemples
Lister les VV exportées vers une machine donnée: showvv -showcols name -p -host HOSTNAME
Lister les VV avec leur taux d'utilisation, l'espace utilisée et l'espace totale reservée: showvv -showcols Usr_Used_Perc,Usr_Used_MB,VSize_MB,Name
Lister le VV testVV : removevv testVV.
Création un volume virtual testVV en thin provisionng, de taille 100G avec le persona Generic Host dans le CPG testCPG. Le VV crée doit lever une alerte lors que la taille utilisaleur atteint 90% et dipose de la possibilité d'effectuer des snaphots (dans CPG testVV) et de l'option Zero detetction : createvv -tpvv -usr_aw 90 -snp_cpg testCPG -pol zero_detect testCPG testVV 100G
Supprimer le virtual volume testVV et tous ses snapshots: removevv -cascade testVV
Forcer la suppression du virtual volume testVV: removevv -f testVV
2.4. Luns
Lister les luns et les templates : showvvlun
-listcols : permet de lister l'ensemble des colonnes disponibles.
-a : n'affiche les luns actifs
-host HOST : permet de lister les luns associés au HOST
Supprimer un export de LUN: removevv
Créer un export de LUN: createvlun
2.4.1. Exemples
Lister les luns actifs: showvlun -a
Lister le nom du VV, le host, numéro de lun et le port des lun actifs de la machine HOST : showvlun -a -showcols VVName,HostName,Lun,Port -host HOST
Supprimer un export du LUN 0 du virtual volumme test vers la machine HOST: removevlun test 0 HOST.
La suppression demande une confirmation. Il est possible d'utiliser l'option -f pour forcer la suppression.
Exporter le virtual volumme test vers la machine HOST en tant que LUN 0: createvlun test 0 HOST.
La commande expr "$(showvlun -a -showcols HostName,Lun -host HOST | awk '/^HOST/ {print $2}' | sort -un | sort -un |tail -n 1)" + 1
2.5. Hosts
Lister les hosts: showhosts
-d : affiche plus de détails.
- Il est possible de passer le nom d'un CPG pour n'obtenir les détails de ce CPG
Suppression d'un host: removehost HOSTNAME
- La suppresion d'un host n'est possible que s'il n'y a pas de virtual volumes exportés vers ce host!
Création d'un host: createhost. Ex: createhost -persona 6 HOST WWN WWN2 crée une machine HOST ayant les WWNs WWN et WWN2 avec le personna Generic Legacy.
2.6. Snaphosts
Création d'un snapshot : createsv.
- Il n'est pas possible de créer un snapshot en lecture/écriture à partir un volume de base. Il faut passer par un snapshot en RO.
Réappliquer les modifications d'un snapshot au virtual volume père: promotesv.
Supprimer un snapshot : removevv -snapshot (Voir les remarques removevv).
2.6.1. Examples
Créer un snapshot du virtual volume testVV : createsv -ro testVV_snap_ro testVV
- La variable @vvname@ permet de subsituer le nom du virtual volume de base. La commande createsv -ro @vvname@_snap_ro testVV produit le même résultat la commaned précedente.
Pour créer un snapshot en read/write, il faut d'abord créer un snaphot en ro avec la commande précedente, puis utiliser la commande createsv testVV_snap_rw testVV_snap_ro pour créer le snapshot en RW.
Supprimer le snapshot testVV_snap_ro: removevv -snaponly testVV_snap_ro.
Supprimer le snapshot testVV_snap_ro et tous ses fils: removevv -snaponly -cascade testVV_snap_ro.
2.7. Réplication
Etat des liens de réplication: showrcopy links
Etat des groupes de réplication; showrcopy groups
Démarrage d'un groupe de réplication: startrcopygroup GROUP
Arrêt d'un groupe de réplication: stoprcopygroup GROUP
Bascul du groupe de réplication vers la baie esclave en cas de sinistre: setrcopygroup failover GROUP.
Retour du groupe réplication vers la baie maître après le sinistre: setrcopygroup restore GROUP.
- Avant toute manipulation des groupes de réplications (failover, restore), le groupe de réplication concerné doit être arrêté
3. Tutorial
- Ce tutorial explicite l'ensemble des opérations permettant raccorder une machine Linux disposant de 2 cartes FC vers un lun de la baie 3Par. On créera également des snapshots qui seront vu de la même machine. Les opérations se feront en plusieurs étapes :
- Création de 2 CPGs (un pour le virtual volume et un autre pour les snapshots). Le premier CPG sera crée en RAID 5. Le deuxième en RAID 0 (pour le snapshot). Les 2 CPGS seront placés sur les disks FC.
- Création du Host disposnant de 2 cartes FC.
- Création de 2 virtual volumes.
- Création et export de 2 luns correspondant à chaque virtual volume.
- Montage des luns sur la machine.
- Création des plusieurs snapshots.
- Création et export des snapshots vers la machine.
- Réapplication des snapshots vers le volume de base.
- Suppression des luns correspondant au snapshots et des snapshots.
- Suppression des luns crées.
- Suppression des virtual volumes.
- Suppression du host.
- Suppression des CPGs
3.1. Création de 2 CPGs (un pour le virtual volume et un autre pour les snapshots)
La création d'un CPG se fait par la commande createcpg.
* createcpg -t r5 -ha mag -p -devtype FC testCPG * createcpg -t r0 -p -devtype FC testCPGSnapshot
Vérifier le resultat par showcpg -d
-t: indique le type de RAID. (r5 = RAID-5, r0= RAID-0)
-ha: indique de type de protection. (mag = magazine, cage = cage, port = port). Pour le RAID-0, l'option -ha n'a pas de sens).
3.2. Création du Host
La création d'un host se fait par la commande createhost. Mais, avant de créer le host, il faut disposer des WWNs.
Sous Linux, les WWNs sont indiqués dans le fichier /sys/class/fc_host/hostN/port_name. N étant le numéro de la carte HBA.
Sur la baie 3Par, il est possible d'afficher les WWNs qui ne sont ipas affectés à un host par la commande showhost -d | awk '/^-- -- + -- +[0-9]+/ {print $4}' | sort -u. Un WWn associé à la machine peut apparaître plusieurs fois si la baie dispose de plusieurs controleurs. (Pour info, les WWNs non associés à un host sont affichés Une fois les WWns, noté, la création du HOST se par la commande createhost, puis la deuxième carte FW est ajoutée à la configuration.
* createhost -persona 6 -os LinuxDebian -comment "Machine de Test" testHost WWN1 * createhost -add testHost WWN2
Vérifier le resultat par showhost testHost
-personna indique le type de Host. Pour lister les options disponibles, il faut utiliser showhots -listpersonna
-os, -comment : indique le type d'os et un commentaire. Ce sont des informations à titre indicatif.
-add ajoute un WWN à une machine déjà créee!
3.3. Création de 2 virtuals volumes
La création de virtual volumes se fait par la commande createvv.
createvv -tpvv -usr_aw 90 -snp_al 30 -snp_cpg testCPGSnapshot -pol zero_detect testCPG testVOL0 100G createvv -tpvv -usr_aw 90 -snp_al 30 -snp_cpg testCPGSnapshot -pol zero_detect testCPG testVOL1 100G
Vérifier le resultat par showvv -showcols Name,VSize_MB,UsrCPG,SnpCPG testVOL*
-tpvv: création du virtual volume en thin provisionning.
-usr_aw: génère une alerte lorsque l'espace allouée atteint 90%
snp_al: génère une la taille de l'espace utilisable par les snapshots.
-snp_cpg : indique le CPG à utiliser pour les snapshots
-pol: définit la politique (zero_detect permet de récupérer l'espace utilisateur libérée par la création de fichiers contenant des 0)
-showcols : permet d'afficher que les colonnes souhaitées.
3.4. Création et export de 2 luns correspondant à chaque virtual volume
La création de luns et l'export de ceux-ci vers les hosts se fait par la commande createvlun.
createvlun testVOL0 0 testHost createvlun testVOL1 1 testHost
Vérifier le resultat par showvlun -a -l 0,1 -host testHost -sortcol 1 -showcols Lun,VVName,HostName -v testVOL0,testVOL1
-a: affiche uniquement les luns actifs. Il est possible d'afficher les templates par l'option -t
-l: indique les numéros de luns à lister.
-host: indique les luns affichés doivent être exportés vers la machine.
-sortcol: indique le numéro de colonne utilisé pour le tri avant l'affichage.
-showcols: indique les colonnes devant être listées.
-v: indique que seuls les virtual volumes demandées doivent être affichés.
3.5. Montage des luns sur la machine
Après l'export des volumes, le montage de peut être effectués par l'OS. Avant de pouvoir formater les luns, indiquer à l'OS de scanner des devices disponibles. Dans le cas d'une HBA emulex, la commande echo "- - -" | sudo tee /sys/class/fc_host/host*/device/scsi_host/host*/scan permet de rescanner et importer les nouveaux luns. Si le multipathing est utilisé, la commande multipath -ll permet lister l'ensemble des chemins d'accès aux luns. Avant de créer les partitions, il faut également lister les chemins d'accès logiques par la commande multipath -ll | grep -- dm- | awk '{print $1}'.
Une fois les chemins d'accès logiques définis, la création d'une partition peut se faire par cfdisk. Après la création de partition, si ceux-ci ne sont pas visibles sous /dev, il suffit d'importer les devices par la commande sudo partprobe fourni par le package parted sous Debian. 2 Luns ont été exportés vers la machine. Donc, il y a 2 partitions crées:
- /dev/mapper/mpath1p1
- /dev/mapper/mpath2p1
Les 2 partitions doivent être formatées avant d'être montées par la commande mkfs
sudo mkfs -t ext4 /dev/mapper/mpath1p1 sudo mkfs -t ext4 /dev/mapper/mpath2p1
Créer les points de montages par mkdir, puis monter les partitions
sudo mkdir -p /mnt/1 && mount /dev/mapper/mpath1p1 sudo mkdir -p /mnt/2 /dev/mapper/mpath2p1
3.6. Snapshots
- Dans la suite, plusieurs snapshots vont être crées certains en lecture seules, d'autres RW. Ces snapshots vont être présentées à la machine, puis des données y seront stockées. Ensuite, les modifications approtées au snapshot en RW sera appliquée au volume d'origine.
3.6.1. Création des plusieurs snapshots
Les snapshots sont crées par la commande createsv.
1. createsv -ro @vvname@_snapshot_RO testVOL0 2. createsv -ro @vvname@_snapshot_RO testVOL1 3. createsv @vvname@_RW testVOL0_snapshot_RO 4. createsv @vvname@_RW testVOL1_snapshot_RO
Vérifier le resultat par showvlun -a -l 0,1 -host testHost -sortcol 1 -showcols Lun,VVName,HostName -v testVOL0,testVOL1
Les points 1 et 2 créent des snapshot de virtuals volumes testVOL0 et testVOL1 en RO. Le point 3 crée un snapshot du virtual volume testVOL0 en lecture/écriture.
Vérifier le resultat par showvv -showcols Name,Prov,Rd *_snapshot_*
La colonne Prov: indique snap lorsque c'est un snapshot.
La colonne Dd: indique RO si le snaphost est en read only et RW lorsque des modifications peuvent y être apportées.
3.7. Export des snapshots vers la machine
Les snaphots fonctionnent comme des virtual volumes. Leurs export les machines se fait par la commande createvlun.
createvlun testVOL0_snapshot_RO 3 testHost createvlun testVOL0_snapshot_RO_RW 4 testHost createvlun testVOL1_snapshot_RO 5 testHost createvlun testVOL1_snapshot_RO_RW 6 testHost
Vérifier le resultat par showvlun -a -l 3,4,5,6 -host testHost -sortcol 1 -showcols Lun,VVName,HostName -v testVOL0_snapshot*,testVOL1_snapshot_*
3.8. Montage des luns contenant les shapshots sur la machine
Avant de pouvoir monter les luns contenant les snapshots, il faut les importer sous /dev par la commande echo "- - -" | sudo tee /sys/class/fc_host/host*/device/scsi_host/host*/scan, puis déterminer le chemin logique par multipath -ll | grep -- dm- | awk '{print $1}' | sort, créer les points de montages par mkdir -p /mnt/testVOL0_snapshot_RO_RW /mnt/testVOL1_snapshot_RO_RW. Enfin, monter les filesystems par mount.
mount /dev/mapper/mpath4-part1 testVOL0_snapshot_RO_RW/ mount -o /dev/mapper/mpath6-part1 testVOL1_snapshot_RO_RW/
La partition mpath4-part1 correspondant au snapshot testVOL0_snapshot_RO_RW (et au vlun 4) est monté sous testVOL0_snapshot_RO_RW.
La partition mpath6-part1 correspondant au snapshot testVOL1_snapshot_RO_RW (et au vlun 6) est monté sous testVOL0_snapshot_RO_RW et accessible uniquement en lecture seule.
3.9. Réapplication des snapshots vers le volume de base
- Afin de tester la réapplication de la modifications des données et annulation des modifications dans le volumes de bases, il faudra créer queques fichiers par le script
for D in 1 2 testVOL0_snapshot_RO_RW testVOL1_snapshot_RO_RW ; do i
for F in $(seq 1 10) ; do
echo "$(date), $(date | cksum)" > $D"/"$F
done
done
Avant de pouvoir manipuler les snapshots, il faut supprimer leurs export (removelun) et donc, démonter (umount) les filesystems correspondants et s'assurer ques les luns ne sont plus par l'OS.
1. umount /mnt/testVOL0_snapshot_RO_RW /mnt/testVOL1_snapshot_RO_RW /mnt/1 2. sudo multipath -ll | awk /'3PARdata,VV$/ {print $1}' | sort 3. removevlun testVOL0_snapshot_RO_RW 4 testHost 4. removevlun testVOL1_snapshot_RO_RW 6 testHost 5. removevlun testVOL0 0 testHost 6. promotesv testVOL0_snapshot_RO_RW 6. createvlun testVOL0 0 testHost 6. sudo mount /dev/mapper/mpath1-part1 /mnt/1 7. ls /mnt/1 8. sudo umount /mnt/1 8. removevlun testVOL0 0 testHost 9. promotesv testVOL0_snapshot_RO 6. createvlun testVOL0 0 testHost 6. sudo mount /dev/mapper/mpath1-part1 /mnt/1 7. ls /mnt/1
A l'étape 9, on remarque que les données de la partition /dev/mapper/mpath1-part1 correspondant à ceux créer dans /mnt/testVOL0_snapshot_RO_RW/. C'est à dire, le nom des fichiers contiennent testVOL0_snapshot_RO_RW_
- A l'étape 15, on remarque que les données de la partition /dev/mapper/mpath1-part1 vide. En effet, l'application du snapshot testVOL0_snapshot_RO remet la partition à son état initale.
3.10. Suppression des luns correspondant au snapshots et des snapshots
- La suppression des snapshots se fait en 2 étapes:
Suppressions des luns correspondants par removevlun
Suppressions des snapshots removevv -snaponly
removevlun testVOL0_snapshot_RO 3 testHost removevlun testVOL1_snapshot_RO 5 testHost removevv -snaponly -cascade testVOL0_snapshot_RO removevv -snaponly -cascade testVOL1_snapshot_RO
L'option -snaponly implique que la supression se fait que sur des snapshots.
L'option -cascade supprime les snapshots de façon recursive.
3.11. Suppression des luns crées
La suppression des vluns se fait par la commande removevlun.
removevlun testVOL0 0 testHost removevlun testVOL1 1 testHost
3.12. Suppression des virtual volumes
La suppression des virtuals volumes se fait par la commande removevv.
removevv testVOL0 removevv testVOL1
3.13. Suppression du host
La suppression du host se fait par la commande removehost
removehost testHost
3.14. Suppression des CPGs
La suppression des CPGs se fait par la commande removecpg
removecpg testCPG removecpg testCPGSnapshot