ESXi (ハイパーバイザ) のインストール先を特定する方法について

仮想環境を設計する段階ではハイパーバイザの冗長性を確保するために、

  • ESXi をどこにインストールするか
  • 内臓のマイクロ SD カード (マザーボード挿入型) にするか
  • ローカルのハードディスクならディスク何本で RAID 構成はどうするか
  • ホットスペアを付けるか付けないか

等について色々検討することになると思います。

インストール先を決めて ESXi のインストールが終わったら ESXi ホストを vCenter に追加し、設計通りに仮想スイッチ・ポートグループを作成し、ストレージを使えるようにしたり、vMotion ができるようにしたり、仮想マシン用のネットワークを作ったり。

一通り設定・構築が終わってからようやく運用に入り、仮想マシンを作成し OS を入れてサービスを提供したり、基盤のメンテナンス、増設・需要対応、故障対応のような業務をこなして行くのがこの業界の流れではないかと思います。

一方、故障はつきもので時間が経つと物理的に NIC とか ファンとか バッテリとか 電源ユニットのようなパーツ部品が寿命を迎えたり、なんらかの原因によって必ず故障が発生します。

特に、発生頻度的にはディスク故障が比較的に多く、運用中に ESXi ホストのローカルディスクが 1本壊れたりすると そもそも ESXi がどういう記憶装置に入っていて、RAID は組まれているか確認する必要性が出てきます。

HPE 製のサーバ筐体で ESXi がローカルディスクにインストールされていることが分かっている前提だと、ESXi ホストのアレイ情報確認、及び故障ディスク特定 に書きましたので割合し、今回は ハイパーバイザ (ESXi) の格納先媒体の確認方法について、2通りあるのでご紹介します。

  • ESXi のインストール先確認 その1. vmkfstools と esxcli で特定する方法
  • ESXi のインストール先確認 その2. esxcfg-info で特定する方法

本題に入る前に

ブロック SCSI デバイス (USB・MicroSD / Local HDD) の識別子は vCenter の (構成 - ストレージ アダプタ - 該当デバイス) にて確認できますが、

vCenter ブロック SCSI デバイス - USB / MicroSD の場合

ブロック SCSI デバイス - USB / MicroSD の場合

vCenter ブロック SCSI デバイス - HDD の場合

ブロック SCSI デバイス - HDD の場合

これだけじゃそもそも ESXi がどこにインストールされているか判断できないため、直接 ESXi に入って確認する必要があります。

ということで、まずは事前準備として、以下の記事を参考にし、ESXi ホストへ SSH 接続します。

ESXi ホストへの SSH 接続が完了したら次のステップへ進んでください。

ESXi のインストール先確認 その1. vmkfstools と esxcli で特定する方法

まずは、vmkfstools と esxcli コマンドのヘルプについて、ざっくり目を通しておきます。

今回使うのは、vmkfstools の -P オプションesxcli の storage というネームスペース です。

vmkfstools のオプション
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# vmkfstools --help
OPTIONS FOR FILE SYSTEMS:

vmkfstools -C --createfs [vmfs5|vfat]
               -S --setfsname fsName
           -Z --spanfs span-partition
           -G --growfs grown-partition
   deviceName

           -P --queryfs -h --humanreadable
           -T --upgradevmfs
   vmfsPath
           -y --reclaimBlocks vmfsPath [--reclaimBlocksUnit #blocks]

OPTIONS FOR VIRTUAL DISKS:

vmkfstools -c --createvirtualdisk #[bBsSkKmMgGtT]
               -d --diskformat [zeroedthick
                               |thin
                               |eagerzeroedthick
                               ]
               -a --adaptertype [deprecated]
               -W --objecttype [file|vsan|vvol]
               --policyFile <fileName>
           -w --writezeros
           -j --inflatedisk
           -k --eagerzero
           -K --punchzero
           -U --deletevirtualdisk
           -E --renamevirtualdisk srcDisk
           -i --clonevirtualdisk srcDisk
               -d --diskformat [zeroedthick
                               |thin
                               |eagerzeroedthick
                               |rdm:<device>|rdmp:<device>
                               |2gbsparse]
               -W --object [file|vsan|vvol]
               --policyFile <fileName>
               -N --avoidnativeclone
           -X --extendvirtualdisk #[bBsSkKmMgGtT]
               [-d --diskformat eagerzeroedthick]
           -M --migratevirtualdisk
           -r --createrdm /vmfs/devices/disks/...
           -q --queryrdm
           -z --createrdmpassthru /vmfs/devices/disks/...
           -v --verbose #
           -g --geometry
           -x --fix [check|repair]
           -e --chainConsistent
           -Q --objecttype name/value pair
           --uniqueblocks childDisk
   vmfsPath

OPTIONS FOR DEVICES:

           -L --lock [reserve|release|lunreset|targetreset|busreset|readkeys|readresv
                     ] /vmfs/devices/disks/...
           -B --breaklock /vmfs/devices/disks/...

vmkfstools -H --help
esxcli のオプション
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# esxcli --help
Usage: esxcli [options] {namespace}+ {cmd} [cmd options]

Options:
  --formatter=FORMATTER
                        Override the formatter to use for a given command. Available formatter: xml, csv, keyvalue
  --debug               Enable debug or internal use options
  --version             Display version information for the script
  -?, --help            Display usage information for the script

Available Namespaces:
  device                Device manager commands
  elxnet                elxnet esxcli functionality
  esxcli                Commands that operate on the esxcli system itself allowing users to get additional information.
  fcoe                  VMware FCOE commands.
  graphics              VMware graphics commands.
  hardware              VMKernel hardware properties and commands for configuring hardware.
  hpbootcfg             HP Boot Configuration Utility
  hpssacli              HPE Smart Storage Administrator CLI
  hptestevent           HP Test Event Utility
  iscsi                 VMware iSCSI commands.
  network               Operations that pertain to the maintenance of networking on an ESX host. This includes a wide variety of
                        commands to manipulate virtual networking components (vswitch, portgroup, etc) as well as local host IP,
                        DNS and general host networking settings.
  rdma                  Operations that pertain to remote direct memory access (RDMA) protocol stack on an ESX host.
  sched                 VMKernel system properties and commands for configuring scheduling related functionality.
  software              Manage the ESXi software image and packages
  storage               VMware storage commands.
  system                VMKernel system properties and commands for configuring properties of the kernel core system and related
                        system services.
  vm                    A small number of operations that allow a user to Control Virtual Machine operations.
  vsan                  VMware Virtual SAN commands

ESXi が USB / SD カードにインストールされている場合の確認結果

  • ls で /bootbank の UUID 付きの vmfs パス取得
  • vmkfstools で vmfs パスのファイルシステム情報から識別子を取得
  • esxcli で識別子のディスプレイ名 (アクセスタイプ = インストール先) を取得
ESXi が USB / SD カードにインストールされている場合
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# ls -l /bootbank
lrwxrwxrwx    1  root  root    49 Apr 17 05:18 bootbank -> /vmfs/volumes/4cb058e6-374aef52-932c-6a92441fa1ef

# df -h
Filesystem   Size   Used Available Use% Mounted on
・・・
vfat       249.7M 189.9M     59.8M  76% /vmfs/volumes/4cb058e6-374aef52-932c-6a92441fa1ef
・・・

# vmkfstools -P /vmfs/volumes/4cb058e6-374aef52-932c-6a92441fa1ef
vfat-0.04 file system spanning 1 partitions.
File system label (if any):
Mode: private
Capacity 261853184 (63929 file blocks * 4096), 62734336 (15316 blocks) avail, max supported file size 0
UUID: 4cb058e6-374aef52-932c-6a92441fa1ef
Partitions spanned (on "disks"):
        mpx.vmhba32:C0:T0:L0:5    #### 識別子
Is Native Snapshot Capable: NO

# esxcli storage core device list | fgrep 'mpx.vmhba32:C0:T0:L0'
mpx.vmhba32:C0:T0:L0
   Display Name: Local USB Direct-Access (mpx.vmhba32:C0:T0:L0)    #### USB / MicroSD
   Devfs Path: /vmfs/devices/disks/mpx.vmhba32:C0:T0:L0

ESXi が Local HDD にインストールされている場合の確認結果

確認方法は先と同じですが、ローカルハードディスクにインストールされている時の確認結果も載せておきます。

  • ls で /bootbank の UUID 付きの vmfs パス取得
  • vmkfstools で vmfs パスのファイルシステム情報から識別子を取得
  • esxcli で識別子のディスプレイ名 (アクセスタイプ = インストール先) を取得
ESXi が HDD にインストールされている場合
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# ls -l /bootbank
lrwxrwxrwx    1 root     root            49 Jan 17  2018 bootbank -> /vmfs/volumes/21cc8176-f9356e7f-6b38-9ed6b1950860

# df -h
Filesystem   Size   Used Available Use% Mounted on
・・・
vfat       249.7M 203.0M     46.7M  81% /vmfs/volumes/21cc8176-f9356e7f-6b38-9ed6b1950860
・・・

# vmkfstools -P /vmfs/volumes/21cc8176-f9356e7f-6b38-9ed6b1950860
vfat-0.04 file system spanning 1 partitions.
File system label (if any):
Mode: private
Capacity 261853184 (63929 file blocks * 4096), 48996352 (11962 blocks) avail, max supported file size 0
UUID: 21cc8176-f9356e7f-6b38-9ed6b1950860
Partitions spanned (on "disks"):
        naa.600508b1001c640646b2df75eece63d1:6    #### 識別子
Is Native Snapshot Capable: NO

# esxcli storage core device list | fgrep 'naa.600508b1001c640646b2df75eece63d1'
naa.600508b1001c640646b2df75eece63d1
   Display Name: HP Serial Attached SCSI Disk (naa.600508b1001c640646b2df75eece63d1)    #### ハードディスク
   Devfs Path: /vmfs/devices/disks/naa.600508b1001c640646b2df75eece63d1

ESXi のインストール先確認 その2. esxcfg-info で特定する方法

esxcfg-info -e を実行し、返ってくる ハイパーバイザのタイプ で判別する方法です。

まずは、esxcfg-info のヘルプの確認から。

esxcfg-info のオプション
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
# esxcfg-info --help
Usage: esxcfg-info mode
  -a, --all           Print all information
  -w, --hardware      Print hardware information
  -r, --resource      Print resource information
  -s, --storage       Print storage information
  -n, --network       Print network information
  -y, --system        Print system information
  -o, --advopt        Print advanced options
  -u, --hwuuid        Print hardware uuid
  -b, --bootuuid      Print boot partition uuid
  -e, --boottype      Print boot type (VMVisor Only)
  -c, --cmdline       Print vmkernel command line
  -f, --iofilter      Print iofilter information
  -d, --devicetree    Print the device tree
  -F, --format        Print the information in the given format
                      Valid values are "xml" and "perl"
  -h, --help          Print this message.

ブートタイプ

ちなみに、この後実行するコマンドの出力結果として返ってくる ブートタイプ は以下の通りです。

タイプインストール先
visor-thinindicates an installable deployment
visor-usbindicates an embedded deployment
visor-pxeindicates a PXE deployment

ESXi が USB / SD カードにインストールされている場合の確認結果

ESXi が USB / SD カードにインストールされている場合
1
2
# esxcfg-info -e
boot type: visor-usb

ESXi が Local HDD にインストールされている場合の確認結果

ESXi が HDD にインストールされている場合
1
2
# esxcfg-info -e
boot type: visor-thin

個人的には、vmkfstools と esxcli がおすすめ

esxcfg-info は出力結果もシンプルでコマンド一発で実行しやすいので、このやり方も良いかもしれませんが、先ほどご紹介した vmkfstools と esxcli に比べると詳細情報までは出してくれないので、個人的には vmkfstools と esxcli の組み合わせがおすすめです。

参考. esxcfg-info その他

以下の KB では esxcfg-info -b で ブートパーティションの UUID を取得し、esxcfg-info で grep をかけて、返された 7桁の文字列で識別する方法も記載されているので、気になる方は軽く目を通してください。

気が向いたら一度試してみる程度で良いと思います。

終わりに

ESXi をインストールする際に、途中でインストール先を選択する画面が出てくるのですが、ESXi ホストに 例えば ローカルディスクマイクロ SD カード 両方認識されている状態だとその分選択肢も増えます。

HDD にインストールしたつもりが、運用が始まって実は HDD ではなく、SD カードとか意図してない場所にインストールされていたとなると大問題なので、ESXi をインストールする際には、インストール先の選択を間違えないように注意することと インストール完了後に念押しでコマンドを実行し、もう一度確認した方が良いかもしれません。

また、ESXi を USB / SD カードにインストールすると以下のような警告グが出るのでおすすめしません。

構成の問題 : ホスト ○○ のシステムログは非持続性ストレージに格納されます。

構成の問題 : ホスト ○○ のシステムログは非持続性ストレージに格納されます。

ログの出力先を特定のデータストアに変更することは可能ですが、それより一番困るのは物理的に冗長性のない USB / SD カードで故障が発生した時なので、本番環境用の ESXi は 冗長性が保たれた媒体にインストールすることをおすすめします。

ローカルディスクにインストールするときは、以下がおすすめです。 (RAID5 にするか RAID6 にするかはお任せしますが)

  • HDD (SAS) 2本 : RAID10
  • HDD (SAS) 3本 : RAID10 + ホットスペア (より安全・より安心)

ディスクのサイズは、大体 300GB のものを使っていますが、ログをもっと溜めたいならもっと大きい容量が良いと思います。

本番環境の仮想マシンデータは主にクラスタ型の共有ストレージに保存すると思うので、ソフトウェア的にローカル領域を共有ストレージとして見せる VSAN のような製品を使ってなければ、ESXi ホストに大量のディスクを積むこともないでしょうから、ESXi のインストール先としては、ローカルディスク 3本くらいがちょうど良いのではないかと思います。

近年ではマザーボードに内臓マイクロ SD が 2口付いていて SD 冗長化も可能になってるようなので、気になる方は調べてみてはいかがでしょうか。 (HPE ProLiant DL360 Gen10 とかだとマザーボードに Dual MicroSD が付いてます)

以上、ESXi インストール先のデバイス確認 でした。