27 May 2015
Pour faire suite à l’article expliquant comment initialiser une baie EMC VNX en CLI à l’aide de l’utilitaire EMC Naviseccli, voici quelques commandes supplémentaires permettant d’aller jusqu’à la présentation des LUN aux hôtes.
Utilisation d’un fichier de sécurité
Dans un premier temps je vous conseille d’enregistrer dans un fichier de sécurité les identifiants du compte Unisphere que vous utiliserez pour configurer la baie. Cela vous évitera de retaper à chaque commande les informations d’identification. Attention, par défaut, le fichier de sécurité est stocké dans votre profil utilisateur.
Créer un fichier de sécurité pour l’utilisateur sysadmin:
naviseccli -AddUserSecurity -Scope 0 -user sysadmin -password sysadmin
Une fois fait, vous pourrez executer vos commandes naviseccli sans fournir d’identifiants.
Quelques remarques sur la syntaxe à utiliser pour Naviseccli
- Pour passer une liste en argument (par exemple une liste d’IP), il suffit d’ajouter un espace entre chaque élément (192.168.1.1 192.168.1.2 etc…)
- Les disques sont nommés en fonction de leur emplacement dans la baie et sous la forme
numérodubus_numérodelenclosure_numéroemplacement. Par exemple si dans Unisphere vous voyez un disque référencé Bus 0 Enclosure 1 Disk 10 l’équivalent pour Navisseccli sera 0_1_10
Etapes de configuration
Passons maintenant à la configuration de la baie. Les différentes étapes seront les suivantes:
- Modification des noms des SP (facultatif…)
- Synchronisation du temps avec des serveurs NTP
- Configuration des serveurs DNS et du domaine
- Activation des statistiques (facultatif sauf si l’on souhaite par exemple utiliser EMC Monitoring & Reporting)
- Configuration du FastCache (si vous avez la licence…)
- Création d’un Storage Pool
- Création de LUN
- Création d’un Storage Group
- Ajout d’un host dans un Storage Group
- Ajout d’un LUN dans un Storage Group
Les différentes options des commandes seront bien sur à modifier en fonction de la configuration de votre baie (emplacement des disques) et des IP des différents serveurs de votre infrastructure (NTP, DNS).
Configuration de la baie
Modifier le nom des SP:
naviseccli -h 192.168.1.100 networkadmin -set -name vnx01spa
naviseccli -h 192.168.1.101 networkadmin -set -name vnx01spb
Attention cette commande implique un redémarrage des SP, il est préférable de modifier le nom d’un controleur à la fois.
Configuration NTP:
naviseccli -h 192.168.1.100 ntp -set -start yes -interval 45 -servers 192.168.1.3 192.168.1.4
Configuration DNS:
naviseccli -h 192.168.1.100 networkadmin -dns -set -domain domain.local -nameserver 192.168.1.1 192.168.1.2
Activation des Statistics Logging:
naviseccli -h 192.168.1.100 setstats -on
Configuration du FastCache:
La commande va activer le FastCache sur les disques indiqués via le paramètre -disks (ici 1_0_0 et 1_0_1) le mode du cache est défini par le paramètre -mode (ici en lecture/écriture) et le type de RAID est défini par le paramètre -rtype (ici RAID 1).
naviseccli -h 192.168.1.100 cache -fast -create -disks 1_0_0 1_0_1 -mode rw -rtype r_1
Création d’un storage pool:
La commande va créer un storage pool sur l’ensemble des disques indiqués via le paramètre -disks, le type de RAID est défini par le paramètre -rtype (ici RAID 5) et le nombre de disques contenus dans chaques grappe RAID est défini par le paramètre -rdrivecount (ici 5 ce qui équivaut à 4+1).
naviseccli -h 192.168.1.100 storagepool -create -disks 0_0_4 0_0_5 0_0_6 0_0_7 0_0_8 0_0_9 0_0_10 0_0_11 0_0_12 0_0_13 0_0_14 0_0_15 0_0_16 0_0_17 0_0_18 0_0_19 0_0_20 0_0_21 0_0_22 0_0_23 -rtype r_5 -rdrivecount 5 -name Pool01 -autoTiering scheduled -fastcache on
Création d’un LUN:
L’argument -type permet de spécifier si l’onsouhaite créer un LUN thin ou nonThin (Thick…). L’argument -l permet de définir l’ID du LUN. Attention, il faut bien penser à préciser la taille du LUN avec l’arguement -capacity ainsi que l’unité de mesure souhaité avec l’argument -sq
(ici 1024 Go).
naviseccli -h 192.168.1.100 lun -create -type nonThin -poolName Pool01 -capacity 1024 -sq gb -name LUN01 -l 0
Création d’un Storage Group:
naviseccli -h 192.168.1.100 storagegroup -create -gname SG01
Ajout d’un host à un Storage Group:
naviseccli -h 192.168.1.100 storagegroup -connecthost -host esxi01.domain.local -gname SG01
Les hosts doivent êtres vues (zoning configuré, Unisphere Host Agent installé et configuré) par la baie avant d’êtres associés à un storage group
Ajout d’un LUN à un Storage Group:
La particularité de cette commande est que le LUN est identifié par son ID avec l’arguement -alu. l’argument -hlu permet de spécifier quel sera l’ID du LUN présenté aux hôtes.
naviseccli -h 192.168.1.100 storagegroup -addhlu -gname SG01 -hlu 0 -alu 0
Si vous avez des questions ou un commentaire à faire, n’hesitez pas à laisser un message ci-dessous. Si vous avez aimé cet article, vous pouvez
le partager avec vos followers
ou bien
me suivre sur Twitter!
26 Mar 2015
Attention cet article n’est plus d’actualité, merci de jeter un oeil à celui-ci
Nous avons vu dans un article précédent comment réclamer l’espace libre en ligne de commande. Cette méthode, bien que fonctionnelle, nécessite de lancer manuellement la commande pour chaque datastore concerné.
Afin d’automatiser le process, je vous propose d’utiliser PowerCLI:
L’idée est de réclamer l’espace libre sur tous les datastores disponibles depuis le serveur ESXi passé en argument -VMHost. La taille du fichier asyncUnmapFileSize est définie en fonction de l’espace libre restant sur le datastore et un pourcentage qui par défaut est de 50% mais qui peut aussi être passé en argument -asyncUnmapFilePourcentage. Il est possible de préciser sur quel datastore on veut exécuter le script grâce à l’argument -Datastore.
Vous trouverez le script complet sur GitHub.
Si vous avez des questions ou un commentaire à faire, n’hesitez pas à laisser un message ci-dessous. Si vous avez aimé cet article, vous pouvez
le partager avec vos followers
ou bien
me suivre sur Twitter!
27 Feb 2015
Attention cette procédure ne s’applique qu’aux baies VNX block !
Tous ceux qui ont déjà installé une baie EMC VNX savent que l’outil d’initialisation fournie par EMC (EMC Storage System Initialization) est plutôt capricieux. Réussir à lui faire découvrir la baie sans avoir recours à un switch dédié peut parfois s’avérer compliqué.
Pour contourner ce problème je préfère maintenant initialiser la baie en ligne de commande avec l’outil NaviSecCLI (téléchargeable sur le site support d’EMC). Les 2 contrôleurs ont une IP par défaut qui peut être utilisée pour configurer la baie:
- SPA: 1.1.1.1/24
- SPB: 1.1.1.2/24
- Utilisateur: sysadmin
- Mot de passe: sysadmin
La marche à suivre est plutôt simple, il est d’abord nécessaire de mettre son poste de travail dans le même sous réseau que la baie (prendre par exemple l’IP 1.1.1.3) puis de suivre la procédure suivante:
Vérifier que la baie est bien joignable sur les 2 IP
naviseccli -h 1.1.1.1 -user sysadmin -password sysadmin -scope 0 networkadmin -get
naviseccli -h 1.1.1.2 -user sysadmin -password sysadmin -scope 0 networkadmin -get
Vérifier que la baie ne remonte aucune erreur sur les 2 contrôleurs
naviseccli -h 1.1.1.1 -user sysadmin -password sysadmin -scope 0 faults -list
naviseccli -h 1.1.1.2 -user sysadmin -password sysadmin -scope 0 faults -list
Vérifier qu’aucun domaine n’a déjà été configuré
naviseccli -h 1.1.1.1 -user sysadmin -password sysadmin -scope 0 domain -list
naviseccli -h 1.1.1.2 -user sysadmin -password sysadmin -scope 0 domain -list
Initialiser le domaine en créant un utilisateur (ici sysadmin)
naviseccli -h 1.1.1.1 -user sysadmin -password sysadmin -scope 0 security -adduser -user sysadmin -password sysadmin -scope 0 -role administrator -type system
Configurer l’adresse IP cible du SPA
naviseccli -h 1.1.1.1 -user sysadmin -password sysadmin -scope 0 networkadmin -set -ipv4 -address 192.168.1.1 -subnetmask 255.255.255.0 -gateway 192.168.1.254
Configurer l’adresse IP cible du SPB
naviseccli -h 1.1.1.2 -user sysadmin -password sysadmin -scope 0 networkadmin -set -ipv4 -address 192.168.1.2 -subnetmask 255.255.255.0 -gateway 192.168.1.254
Une fois toutes ces opérations réalisées avec succès, vous devriez être en mesure de vous connecter à la baie avec Unisphere. Il ne vous restera plus qu’à finaliser la configuration en spécifant par exemple les serveurs DNS et NTP.
Si vous avez des questions ou un commentaire à faire, n’hesitez pas à laisser un message ci-dessous. Si vous avez aimé cet article, vous pouvez
le partager avec vos followers
ou bien
me suivre sur Twitter!
26 Feb 2015
VMware a introduit avec la version 5.0 une nouvelle primitive VAAI (UNMAP) qui permet, dans le cas de LUN en thin provisionning, de réaffecter les blocs qui ne sont plus utilisé à l’espace libre. Le but étant de conserver les bénéfices du thin provisionning dans le temps.
En version 5.0, l’invocation de cette primitive était gérée automatiquement par les ESXi mais des problèmes de performance ont poussé VMware à la désactiver. Elle a été de nouveau disponible dans la version 5.0 U1 cependant l’exécution est maintenant manuelle. L’efficacité de la primitive a été améliorée dans la version 5.5.
Le fonctionnement de la primitive est plutôt simple, elle va écrire des 0 sur les blocs qui ne sont plus utilisé par le datastore. Ensuite ce sera à la charge de la baie de stockage de réaffecter ces blocs à l’espace libre.
###Ma baie est-elle compatible avec la primitive ?
Outre le fait que la baie doit être compatible VAAI (ce qui est le cas de toutes les baies SAN récentes) il faut en plus qu’elle supporte la primitive UNMAP. Il est possible de le vérifier pour chaque datastore avec les commandes esxcli suivantes:
esxcli storage core device list | more (noter le uid naa.)
esxcli storage core device vaai status get -d <naa ID> (Vérifier la présence de ligne Zero Status: Supported)
###Quand et pourquoi utiliser cette fonctionnalité ?
Et bien ça dépend… Sur des datastores avec des VM de production il est rare que la volumétrie soit amenée à beaucoup varier. Réclamer l’espace libre sur ce type d’environnement sera certainement une perte de temps. Là ou on pourra y voir un plus grand intérêt c’est dans le cas des environnements de test/dev ou plus généralement quand le contenu des datastores évolue régulièrement.
###VMware ESXi 5.0 U1 et 5.1:
Avec un ESXi en version 5.0 U1 ou 5.1 il faut utiliser la commande vmkfstools:
Se connecter en SSH sur l’ESXi et se positionner sur le datastore concerné
cd /vmfs/volumes/nomdudatastore
Exécuter la primitive
####Remarques:
- La commande vmkfstools crée un fichier temporaire (.vmfsBalloon+suffix) dans lequel tous les blocks récupérés seront stockés avant d’êtres remis à zéro, le paramètre -y 60 indique que 60% des blocks libres seront remis à zéro, cela implique que le datastore devra disposer de suffisamment d’espace disque libre pour effectuer cette opération. En cas de doute, relancer la commande plusieurs fois avec un % inférieur.
- L’exécution de la primitive peut générer beaucoup d’I/O et de l’utilisation CPU, VMware recommande de réaliser ces opérations hors production.
###VMware ESXi 5.5
La commande vmkfstools n’est plus supportée depuis la version 5.5, elle a été remplacée par une commande esxcli:
Se connecter en SSH sur l’ESXi et exécuter la primitive
esxcli storage vmfs unmap -l nomdudatastore -n nombredeblocks
####Remarques:
- La commande crée un fichier temporaire (.asyncUnmapFile) mais, à la différence des versions précédentes, la taille du fichier est définie par la valeur du paramètre -n (en Mo)
- Une seule exécution de la commande est nécessaire pour libérer l’ensemble des blocks non utilisés
- HP recommande de spécifier une valeur importante pour le paramètre -n afin de réduire la durée d’exécution de la primitive
- VMware indique que la primitive peut être utilisée pendant les heures de production, il est quand même nécessaire de réaliser des tests au préalable.
###Sources:
####VMware ESXi 5.0 U1 et 5.1:
KB VMware
Jason Boche - Starting thin and staying thin with VAAI Unmap
####VMware ESXi 5.5:
Jason Boche - vSphere 5.5 UNMAP Deep dive
Si vous avez des questions ou un commentaire à faire, n’hesitez pas à laisser un message ci-dessous. Si vous avez aimé cet article, vous pouvez
le partager avec vos followers
ou bien
me suivre sur Twitter!