Dans cet article, nous allons voir comment créer manuellement une partition de coredump, utilisée notamment pour récupérer les informations de débuggage lors d’un plantage d’un ESXi.
Pré-requis : Il faut avoir accès à la ligne de commande via ssh à l’hyperviseur ESXi. Le datastore vmfs local doit également être vide car il sera supprimé lors de la manipulation.
Tout d’abord, nous allons utiliser la commande esxcfg-mpath -b afin de déterminer le nom de device associé au disque dur local :
[root@esxi:~] esxcfg-mpath -b naa.61866da0b8241a0020ee3286154ea8af : Local DELL Disk (naa.61866da0b8241a0020ee3286154ea8af) vmhba0:C2:T0:L0 LUN:0 state:active sas Adapter: 51866da0b8241a00 Target: 60ee3286154ea8af
Dans notre cas, le device se nomme naa.61866da0b8241a0020ee3286154ea8af
Nous allons ensuite utiliser la commande partedUtil getptbl « /vmfs/devices/disks/naa.61866da0b8241a0020ee3286154ea8af » pour visualiser le partitionnement actuel du disque :
[root@esxi:~] partedUtil getptbl "/vmfs/devices/disks/naa.61866da0b8241a0020ee3286154ea8af" gpt 36404 255 63 584843264 1 64 204863 C12A7328F81F11D2BA4B00A0C93EC93B systemPartition 128 5 208896 1232895 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0 6 1234944 2258943 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0 7 2260992 15470591 4EB2EA3978554790A79EFAE495E21F8D vmfsl 0 8 15472640 584843230 AA31E02A400F11DB9590000C2911D1B8 vmfs 0
Nous remarquons que le datastore vmfs est la partition 8, qu’il commence au secteur 15472640, se termine au secteur 584843230 et qu’il possède le GUID AA31E02A400F11DB9590000C2911D1B8 (correspondant à un datastore vmfs).
Ces GUID sont fixés par vmware. La liste des GUID peut être obtenue par la commande partedUtil showGuids :
[root@esxi:~] partedUtil showGuids Partition Type GUID vmfs AA31E02A400F11DB9590000C2911D1B8 vmkDiagnostic 9D27538040AD11DBBF97000C2911D1B8 vsan 381CFCCC728811E092EE000C2911D0B2 virsto 77719A0CA4A011E3A47E000C29745A24 VMware Reserved 9198EFFC31C011DB8F78000C2911D1B8 Basic Data EBD0A0A2B9E5443387C068B6B72699C7 Linux Swap 0657FD6DA4AB43C484E50933C84B4F4F Linux Lvm E6D6D379F50744C2A23C238F2A3DF928 Linux Raid A19D880F05FC4D3BA006743F0F84911E Efi System C12A7328F81F11D2BA4B00A0C93EC93B Microsoft Reserved E3C9E3160B5C4DB8817DF92DF00215AE Unused Entry 00000000000000000000000000000000
Il nous faut donc supprimer cette partition 8 afin d’y récupérer de l’espace pour pouvoir y recréer 2 partitions : une partition de type vmkDiagnostic et un nouveau datastore vmfs.
Pour supprimer la partition, la méthode la plus simple est de supprimer le datastore local depuis l’interface d’administration de l’ESXi. Il est également de le faire à l’aidre de la commande partedUtil.
Une fois la partition supprimée, la commande partedUtil getptbl « /vmfs/devices/disks/naa.61866da0b8241a0020ee3286154ea8af » affiche alors :
[root@esxi:~] partedUtil getptbl "/vmfs/devices/disks/naa.61866da0b8241a0020ee3286154ea8af" gpt 36404 255 63 584843264 1 64 204863 C12A7328F81F11D2BA4B00A0C93EC93B systemPartition 128 5 208896 1232895 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0 6 1234944 2258943 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0 7 2260992 15470591 4EB2EA3978554790A79EFAE495E21F8D vmfsl 0
Le chiffre 36404 correspond au nombre de cylindres adressable (0-36404), 255 au nombre de têtes (0-255) et 63 au nombre de secteurs par piste (0-63).
La commande esxcli storage core device capacity list permet de connaitre les caractéristiques du disque :
[root@esxi:~] esxcli storage core device capacity list Device Physical Blocksize Logical Blocksize Logical Block Count Size Format Type ------------------------------------ ------------------ ----------------- ------------------- ----------- ----------- mpx.vmhba2:C0:T5:L0 512 512 0 0 MiB 512n naa.61866da0b8241a0020ee3286154ea8af 512 512 584843264 285568 MiB 512n
Nous voyons donc que la taille d’un bloc est de 512 octets.
Une partition de coredump doit faire au moins 100Mo. Pour l’exemple, nous allons faire une partition de 200Mo.
Il faudra 200000000/512 = 390625 secteurs pour y loger cette partition. L’ancienne partition 8 commençait au secteur 15472640. Nous allons faire commencer cette nouvelle partition sur ce secteur
et nous allons la faire terminer sur le secteur 15472640+390625=15863265.
Nous allons donc créer cette nouvelle partition 8 avec un GUID de type vmkDiagnostic :
partedUtil add "/vmfs/devices/disks/naa.61866da0b8241a0020ee3286154ea8af" "gpt" "8 15472640 15863265 9D27538040AD11DBBF97000C2911D1B8 0"
Nous allons ensuite recréer un datastore vmfs dont le premier secteur sera le multiple de 64 directement supérieur à 15863265 (afin d’aligner la partition sur le
premier secteur du cylindre suivant). En l’occurrence, ici, la partition commencera donc au secteur 15863296. Pour le dernier secteur, nous utiliserons la valeur correspondante de l’ancienne partition 8.
Cette nouvelle partition portera le numéro 9 et utilisera un GUID de type vmfs.
partedUtil add "/vmfs/devices/disks/naa.61866da0b8241a0020ee3286154ea8af" "gpt" "9 15863296 584843230 AA31E02A400F11DB9590000C2911D1B8 0"
Nous allons afficher maintenant les partitions de type coredump reconnues par le systeme :
[root@esxi:~] esxcli system coredump partition list Name Path Active Configured -------------------------------------- ---------------------------------------------------------- ------ ---------- naa.61866da0b8241a0020ee3286154ea8af:8 /vmfs/devices/disks/naa.61866da0b8241a0020ee3286154ea8af:8 false false
La partition 8 est donc bien détectée mais elle n’est ni configurée ni active. Nous allons donc le faire :
esxcli system coredump partition set --partition="naa.61866da0b8241a0020ee3286154ea8af::8" esxcli system coredump partition set --enable true
La commande affiche alors :
[root@esxi:~] esxcli system coredump partition list Name Path Active Configured -------------------------------------- ---------------------------------------------------------- ------ ---------- naa.61866da0b8241a0020ee3286154ea8af:8 /vmfs/devices/disks/naa.61866da0b8241a0020ee3286154ea8af:8 true true
La partition coredump est donc maintenant configurée et active.
Il ne nous reste plus qu’à formater la partition 9 en vmfs :
vmkfstools -C vmfs6 -S esxi-local /vmfs/devices/disks/naa.61866da0b8241a0020ee3286154ea8af:9