pressmaster - Fotolia
Les 25 commandes que tout administrateur VMware doit connaître
Le mémo des commandes indispensables à tous les informaticiens qui doivent maintenir ou dépanner une infrastructure virtualisée ESXi.
Dans la carrière de chaque administrateur système, il arrive un moment où vCenter, l’outil de contrôle des environnements virtuels ESXi de VMware, n’est tout simplement plus disponible. Le recours des équipes techniques pour dépanner les serveurs est alors de passer par le client vSphere. Cette technique nécessite cependant de connaître plusieurs commandes Linux et ESXi.
Les commandes utiles du Shell Linux
Les commandes Linux à connaître ne sont pas spécifiques à ESXi ; elles sont d’ailleurs disponibles dans toutes les distributions du système d’exploitation.
1/ find, cat et grep. Ces trois commandes servent à retrouver des fichiers en particulier, ou du texte en particulier, au sein d’un fichier. La commande find localise un fichier spécifique, selon soit un nom de fichier, soit un motif (« pattern » en anglais). Cat sert simplement à afficher le contenu d’un fichier. Grep, enfin, peut s’utiliser pour chercher un texte spécifique dans un ou plusieurs fichiers. La ligne de commandes suivante :
find /path/to/vm/folder –iname "*delta*"
... liste tous les disques delta d’une machine virtuelle. Tandis que la ligne de commande suivante :
cat hostd.log | grep error
... cherche les occurrences du mot « error » à l’intérieur du fichier hostd.log.
2/ head et tail. Ces deux commandes servent à n’afficher que le début ou que la fin d’un fichier. En période de dépannage, l’intérêt de tail est par exemple de monitorer les messages qui s’ajoutent au fur et à mesure à la fin d’un fichier de logs. Il est d’ailleurs possible de les surveiller en continu avec l’option -f. Ainsi :
tail -f /var/log/vmkernel.log
.... surveille en temps réel le fichier de log du noyau vmkernel.
3/ less. La commande less prend tout son intérêt lorsque l’on souhaite afficher le contenu de volumineux fichiers. En enchaînant la commande cat avec la commande less au moyen du signe | (« pipe »), il devient possible de consulter le contenu d’un fichier page après page et même de parcourir les lignes en remontant ou en descendant. La commande :
cat /var/log/vpxa.log | less
... affiche vpxa.log sous forme de pages successives.
4/ df et vdf. Ces deux commandes indiquent l’espace disponible sur un système de fichiers. La commande df affiche la taille, l’espace occupé et l’espace disponible à la fois du système de fichiers et des systèmes VMFS. Pour consulter l’usage des différents Ramdisks au sein d’un hôte ESXi, il faut utiliser la commande vdf. Ces deux commandes servent typiquement à identifier qu’un problème est dû à un manque d’espace disponible.
5/ ps et kill. Ces commandes servent à lister les services en cours de fonctionnement sur l’hôte ESXi et à forcer leur arrêt. La commande ps dispose de plusieurs options, mais elle est le plus souvent utilisée pour récupérer l’ID d’un processeur, de manière à lui envoyer un ordre d’arrêt au moyen de la commande kill.
6/ vi. Il s’agit d’un éditeur de texte pour modifier le contenu d’un fichier. Sa maîtrise, qui sort du cadre de cet article, est essentielle à tout administrateur censé savoir réparer un système depuis la ligne de commande.
Les commandes spécifiques à ESXi
Les commandes suivantes, propres à ESXi, ne servent pas qu’à dépanner des systèmes. Elles seront utiles au quotidien pour les tâches de maintenance et de monitoring.
7/ services.sh. Les services ESXi sont gérés par cette commande de la même manière que les services Linux qui sont pris en charge par la commande services. On demande à services.sh d’exécuter une instruction stop, start ou restart pour arrêter, lancer ou relancer tous les services d’ESXi. Par exemple :
services.sh restart
8/ etc/init.d. Les scripts situés dans le répertoire /etc/init.d sont utilisables pour lancer ou arrêter les services éponymes un par un. Par exemple, pour ne relancer que l’agent vCenter Server Agent (alias le service vpxa), il suffirait d’écrire :
/etc/init.d/vpxa restart
A noter qu’il est possible de voir dans quel état se trouve chacun des services avec la commande :
cat /etc/chkconfig.db
9/ vmkping. Dérivée de la commande ping, la commande vmkping utilise la pile IP du noyau VMkernel pour envoyer des paquets ICMP sur les interfaces indiquées. Cette commande sert à envoyer des paquets Ping sur le réseau vMotion, plutôt que sur le réseau utilisé pour l’administration. Ainsi :
vmkping –I vmk1 10.10.10.1
... envoie des requêtes ICMP à 10.10.10.1 au travers de l’interface vmk1.
10/ nc. En association avec vmkping, la commande nc (qui signifie netcat) sert à confirmer la connectivité en un hôte ESXi et une IP en particulier. Si vmkping confirme l’existence d’une communication via des paquets ICMP, nc va plus précisément servir à confirmer que la communication se fait sur un port TCP en particulier, par exemple le port 3260 utilisé dans les connexions iSCSI. On réalisera cette tâche ainsi :
nc –z 10.10.10.10 3260
11/ vmkfstools. Cette commande sert à gérer des volumes VMFS. Elle permet de créer, cloner, étendre, renommer ou effacer les fichiers VMDK correspondants aux disques virtuels. Par exemple :
vmkfstools –i test.vmdk testclone.vmdk
... réplique test.vmdk en testclone.vmdk.
12/ esxtop. Cet outil est celui qui donne le plus d’informations lorsqu’il s’agit de mesurer la performance d’un hôte ESXi ou de le dépanner. Similaire à la commande top de Linux, esxtop rassemble de relevés spécifiques à VMware et relatifs au processeur, aux interruptions, à la mémoire, au réseau, au contrôleur disque, aux disques eux-mêmes, aux images-disques des machines virtuelles et à la consommation d’énergie.
13/ vscsiStats. Cette commande sert à approfondir la mesure des performances sur les entrées-sorties du stockage (I/O). Elle produit un échantillon qui indique la taille des I/O et leur temps de latence. On se sert typiquement de vscsiStats lorsque l’on souhaite planifier sa capacité ou en amont d’une migration du stockage.
14/ vim-cmd. Cette commande, qui repose sur le processus hostd, permet de contrôler sous forme de script quasiment toutes les APIs de vSphere. A cette fin, vim-cmd dispose d’un certain nombre de sous-commandes ESXi adaptées à chacun des aspects de l’infrastructure virtuelle. A l’épreuve, elle est bien plus simple à utiliser que vimsh, l’interpréteur de ligne de commandes fourni par VMware.
15/ dcui. La Direct Console User Interface (DCUI) de VMware est l’interface texte avec des des menus que l’on peut voir lorsque l’on se connecte la première fois à un hôte ESXi. Plusieurs fonctions y sont disponibles, comme l’administration de mot de passe Root, la définition du réseau ou encore diverses opérations de maintenance. Cette commande est utile lorsque l’administrateur n’a plus qu’un accès en SSH à l’hôte ESXi : il lui suffit de taper dcui depuis la ligne de commande pour accéder à la console DCUI.
16/ vm-support. Cette commande sert à récupérer toutes les informations de support et de log d’un hôte ESXi. Elle est celle que l’on lance lorsque l’on est en ligne avec le support de VMware.
Approfondir l’administration avec la commande esxcli
La commande esxcli est si riche que nous ne devons lui consacrer plus d’un paragraphe. Elle permet de contrôler à peu près toutes les fonctions d’ESXi. Elle s’accompagne de mots clés, dont voici les principaux.
17/ esxcli hardware. Le mot clé hardware permet à la commande esxi de lister les caractéristiques matérielles de l’hôte ESXi. Par exemple :
esxcli hardware cpu list
... liste les informations liées aux processeurs (famille, modèle, quantité de cache).
esxcli hardware memory get
... récupère les informations liées à la mémoire, qu’il s’agisse de la mémoire disponible ou de la mémoire partagée NUMA.
18/ esxcli iscsi. Ce mot clé sert à surveiller et à administrer les configurations iSCSI aussi bien matérielles que logicielles. Ainsi :
esxcli iscsi software
... active ou désactive l’initiateur iSCSI logiciel,
esxcli iscsi adapter
... configure les paramètres (Chap, Discovery, etc.) des adaptateurs iSCSI, matériels comme logiciels,
esxcli iscsi sessions
... liste les sessions iSCSI qui ont été établies au niveau de l’hôte ESXi.
19/ esxcli network. Le mot clé network sert à monitorer et à paramétrer tout ce qui a trait au réseau de vSphere, y compris les switches virtuels, les interfaces réseau du noyau VMkernel, les parefeux et les cartes réseau physiques (dites « NIC », pour Network Interface Card). Par exemple :
esxcli network nic
... sert à lister mais aussi à modifier les paramètres d’une carte réseau, comme son nom, sa vitesse, son fonction Wake on LAN,
esxcli network vm list
... liste les informations réseau des machines virtuelles qui ont un port actif,
esxcli network vswitch
... récupère, voire manipule, les options sur les switches virtuels distribués de VMware,
esxcli network ip
... sert à gérer les ports du noyau VMkernel, dont ceux d’administration, de vMotion et des réseaux de tolérance de panne. Cette commande permet aussi de modifier dans la pile IP les DNS, l’IPsec et le routage.
20/ esxcli software. Ce mot clé est utilisé pour récupérer ou installer différents composants logiciels, dont des pilotes, sur l’hôte ESXi. Par exemple :
esxcli software vib list
... liste les logiciels et les pilotes actuellement installés sur l’hôte ESXi.
21/ esxcli storage. Il s’agit sans de l’une des commandes esxcli les plus utilisées. Elle permet de contrôler le stockage relié à vSphere. Par exemple :
esxcli storage core device list
... affiche la liste des équipements de stockage connectés,
esxcli storage core device vaai status get
... indique le niveau de support VAAI sur les équipements de stockage. VAAI, ou « vStorage APIs for Array Integration » est une fonction de VMware qui permet de décharger l’hyperviseur de certaines fonctions avancées de stockage, comme le Thin Provisionning, si l’équipement de stockage les supporte nativement.
22/ esxcli system. Cette commande sert à contrôler les fonctions avancées d’ESXi, comme définir un syslog ou un mettre l’hôte dans un mode de fonctionnement particulier. Par exemple :
esxcli system maintenanceMode set –enabled yes/no
... met l’hôte en mode maintenance,
esxcli system settings advanced list -d
... affiche tous les paramètres avancés qui n’ont plus leur valeur par défaut,
esxcli system syslog
... accède aux informations et à la configuration du Syslog.
23/esxcli vm. Cette commande est utilisée à la fois pour lister les paramètres des machines virtuelles exécutées sur l’hôte, mais aussi les forcer à s’arrêter si nécessaire. Par exemple :
esxcli vm process list
... liste les informations des processus liés aux machines virtuelles en activité, avec leur numéro WorldNumber
esxcli vm process kill -t force -w N
... force l’extinction de la machine virtuelle qui porte le numéro de WorldNumber N.
24/ esxcli vsan. Le mot clé vsan s’accompagne de fonctions pour paramétrer et assurer la maintenance d’une baie de stockage virtuelle vSAN, en termes d’espace de stockage, de réseau, de domaine ou encore de droits d’accès. Par exemple :
esxcli vsan storage
... configure un stockage local pour qu’il soit utilisé par vSAN, avec la prise en compte du retrait et de l’ajout de disques physiques,
esxcli vsan cluster get
... donne des informations sur le cluster vSAN.
25/ esxcli esxcli. Hé oui, la commande esxcli a aussi un mot clé esxcli. Cette commande donne des informations détaillées sur chacune des fonctions liées à esxcli. Par exemple :
esxcli esxcli command list
...liste toutes les commandes esxcli possibles sur le système, avec les fonctions disponibles.
Ces commandes ne sont que les plus courantes parmi toutes celles qu’ESXi a à offrir. Elles disposent toutes d’options pour lancer des fonctions en particulier. Pour connaître ces options, il suffit d’indiquer « -h » à la suite du nom des commandes.