Opérations sur les machines virtuelles
Opérations sur les disques virtuels
Opérations sur l’hôte ESXi
Manipuler les DNS ESXCLI :
Opérations sur les Services
Opérations sur la configuration réseau
Opérations sur le Stockage
Les fichiers de logs en ESXi
Il peut aussi être utile de connaître l’emplacement des différents fichiers de logs et leur rôle. Voici donc un tableau, récapitulant les fichiers de logs en ESXi 5.0:
Fichier logs | Contenu |
---|---|
/var/log/auth.log |
logs les succès et les échecs d’authentification au shell ESXi |
/var/log/dhclient.log |
logs du service client DHCP client service, y compris la découverte, les demandes de bail d’adresse et les renouvellements |
/var/log/esxupdate.log |
logs d’installation des patchs et des mise à jour ESXi |
/var/log/hostd.log |
logs du service « Host management », incluant les taches et les événements sur l’hôte et ses VMs, les communications avec le client vSphere en direct et avec l’agent vCenter (vpxa ), et les connections SDK |
/var/log/shell.log |
logs de l’utilisation en shell ESXi, incluant les activations/désactivations et toutes les commandes entrées |
/var/log/sysboot.log |
logs du démarrage VMkernel et du chargement des modules |
/var/log/syslog.log |
logs de l’initialisation du service de Management, la surveillance par les watchdogs, les taches planifiées et l’utilisation de la DCUI |
/var/log/usb.log |
les événement d’arbitrage des périphériques USB, comme la découverte et la transmission vers les VMs |
/var/log/vob.log |
observateur d’événements VMkernel, semblable à vob.component.event |
/var/log/vmkernel.log |
logs du « Core VMkernel », incluant la découverte de périphérique, les événements liés aux périphériques et aux drivers de stockage et réseaux, et le démarrage des VMs |
/var/log/vmkwarning.log |
le résumé des alertes et des messages d’erreurs extrait des logs VMkernel |
/var/log/vmksummary.log |
le résumé de la séquence d’arrêt/démarrage de l’hôte, l’heartbeat horraire avec l’uptime, le nombre VMs démarrées, et la consommation des ressources par les services |
/var/log/vpxa.log |
logs de l’agent vCenter (vpxa ), incluant les communications entre le serveur vCenter Server et l’agent « Host Management » (hostd ) |
/var/log/fdm.log |
logs du module High Availability, produit par le service « fdm « |
Si la « Scratch Partition » est configurée, elle contiendra les fichiers de log. Ils seront tout de même disponibles dans « /var/log
» en tant que lien symbolique.
Parce qu’il arrive que vous n’arriviez pas à vous connecter à votre serveur ESX/ESXi via le client vSphere et deviez utiliser la ligne de commande pour dépanner votre hôte, voici une liste des commandes à utiliser et leur description. Certaines de ces commandes seront familières des inconditionnels de linux, d’autre sont propres à la sphère vmware.
NOTE : Pour accéder à la console sous un hôte ESXI, utilisez la manipulation suivante –>Accéder au CLI d’un hôte ESXi <–
Les commandes issues de linux
Commande | Description |
find|cat|grep | Commandes utilisées pour afficher ou rechercher des fichiers. La commande findlocalise les fichiers spécifiques, la commande cat permet d’afficher le contenu de ces fichiers, et la commande grep permet de rechercher une chaîne de caractères au sein d’un fichier. |
tail | La commande tail permet d’afficher les dernières lignes d’un fichier texte et peut-être utilisée pour monitorer les logs en temps réel (dispose d’une option de rafraichissement). |
service | Service permet de démarrer, arrêter et redémarrer les services exécutés sur l’hôte vmware esx/esxi. Elle sera utilisée après un changement effectué sur un fichier de configuration par exemple. |
nano|vi | Les commandes nano et vi permettent d’éditer un fichier texte, tel qu’un fichier de configuration par exemple. |
su|sudo | La commande su permet de donner les privilèges du super-administrateur à l’utilisateur. La commande sudo permet d’exécuter une commande en utilisant les privilèges du super-administrateur. |
ls|cd | La commande ls permet de lister les fichiers au sein d’un répertoire. La commande cd permet de se déplacer au sein de l’arborescence du système de fichiers de l’hôte. |
df|vdf | La commande df affiche les informations de partitionnement. Elle ne peut pas lire les informations de partitionnement des volumes vmfs (système de fichier vmware), la commande vdf est la version vmware de cette commande. Celle-ci peut lire les informations des partitions vmfs. |
ps|kill | La commande ps affiche la liste des processus actifs, la commande kill permet de stopper un processus. |
ping|vmkping | Ces commandes permettent de tester la connectivité réseau de l’hôte. La commande ping permet d’envoyer des paquets vers une autre interface réseau pour tester la connectivité. La commande vmkping est issue du monde vmware et permet de faire un ping d’un autre hôte esx/esxi en utilisant son port vmkernel, elle peut-être utilisée pour troubleshooter les processus de vmotion ou de stockage partagé. |
Les commandes propres à vmware
Commande | Description |
vmkfstools | Cette commande permet de copier, convertir, renommer, importer, et modifier la taille des fichiers de disques virtuels vmdk. |
esxtop | Permet d’afficher les performances en temps réel de l’hôte tel que l’utilisation cpu, mémoire, les I/O disques ou les I/O réseau. |
esxcfg-nics | Cette commande permet de configurer les adaptateurs réseaux, notamment leur vitesse de transmission, de manière manuelle. |
esxcfg-vswitch | Permet de configurer les vSwitch, créer des groupes de ports, associer une interface physique NIC, etc … |
esxcfg-vswif | esxcfg-vmknic | Esxcfg-vswif permet de configurer les interfaces réseaux liées à la console, et esxcfg-vmknic permet de configurer les interfaces réseaux liées au VMkernel (interfaces de management). |
vmware-cmd | Cette commande permet d’afficher différentes informations relatives aux machines virtuelles hébergées sur l’hôte. |
vimsh | vmware-vim-cmd | Vimsh est un shell interactif permettant d’exécuter de nombreuses commandes. Vmware-vim-cmd est une version simplifiée de vimsh. |
vihostupdate | esxupdate | Ces commandes permettent d’appliquer des patches correctifs à votre hôte esx/esxi. |
svmotion | Cette commande permet d’initier manuellement un VMotion. |
esxcfg-mpath | Affiche les chemins réseaux d’accès au stockage de l’hôte. |
esxcfg-rescan | Permet de rafraichir le stockage de l’hôte, si par exemple un nouveau stockage à été ajouté et n’est pas visible via esxcfg-mpath. |
esxcfg-scsidevs | esxcfg-vmhbadevs | Affichent les informations sur les disques scsi locaux. |
esxcfg-firewall | Permet de configurer le firewall de l’hôte et de bloquer des ports TCP/IP entre la console et les autres adaptateurs réseaux. |
esxcfg-info | Affiche les informations de configuration de l’hôte (Summary) et permet de stocker ces informations dans un fichier texte. |
esxcfg-auth | Configuration de l’authentification et du lien avec une source externe (ldap, AD …). |
vm-support | Très utile pour troubleshooter, cette commande collecte de nombreuses informations sur l’hôte, le matériel, les machines virtuelles (y compris celles qui ont plantéJ) et stock le tout dans une archive. |
Autres sources : Les 25 commandes que tout administrateur VMware doit connaître
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.