kotoyuuko

CORE

昨日より、明日より、笑える今が一番大好き。
github
telegram
email

VMware ESXi 折腾日誌

2021/02/08 更新:この記事は画像が失われてしまったため、更新しました。

最近、留学の体験のためにソフトウェアルーターに切り替えました。使用しているのは Proxmox VE + OpenWrt の組み合わせです。全体的にはかなり使いやすいですが、唯一の欠点はネットワークカードがパススルーされていない場合、速度が約 40MB/s しか出ないことです。ESXi の方が性能が良いと言われているので、試してみることにしました。

インストール#

インストール自体は特に問題ありません。インストール USB を作成し、手順に従ってインストールするだけです。ただし、私のソフトウェアルーターの SATA は少し特殊で、独立した SATA チャネルではなく、RAID のようなコントローラーを経由しています。そのため、以下の問題に遭遇しました。

最初はインターネット上の情報に従って、mSATA を USB に変換してシステムをハードディスクにインストールし、システムを起動してから新しいバージョンの AHCI ドライバーを無効にしてハードディスクをマシンに挿入して起動するという方法を試しましたが、うまくいきませんでした。

その後、RAID ドライバーを含んだ ESXi のインストールパッケージを見つけましたが、問題は解決しませんでした。

一日中試行錯誤しましたが、BIOS で SATA の動作モードを AHCI から Intel RST Premium に変更し、最初の方法でインストールすると正常に使用できることがわかりました。以下は AHCI ドライバーを無効にするためのコマンドです:

esxcli system module set --enabled=false --module=vmw_ahci

ストレージ#

デフォルトでは、ESXi はイメージと仮想マシンを別々のディスクストレージに保存する必要がありますが、ここではシステムディスクの空き領域に直接ストレージスペースを作成することができます。

まず、ESXi のバックエンドでディスクの識別子を確認します。

括弧内の文字列がディスクの識別子です。

次に、以下のコマンドを使用してディスクのパーティションを表示します:

partedUtil getptbl /vmfs/devices/disks/ディスクの識別子

以下の出力が得られます:

gpt
14593 255 63 234441648
1 64 8191 C12A7328F81F11D2BA4B00A0C93EC93B systemPartition 128
5 8224 520191 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
6 520224 1032191 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
7 1032224 1257471 9D27538040AD11DBBF97000C2911D1B8 vmkDiagnostic 0
8 1257504 1843199 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
9 1843200 7086079 9D27538040AD11DBBF97000C2911D1B8 vmkDiagnostic 0

ここで、2 行目の 4 番目の数字「234441648」を覚えておく必要があります。この数字は個人ごとに異なります。

次に、以下のコマンドを実行してパーティションを再作成します:

partedUtil setptbl /vmfs/devices/disks/ディスクの識別子 gpt \
"1 64 8191 C12A7328F81F11D2BA4B00A0C93EC93B 128" \
"5 8224 520191 EBD0A0A2B9E5443387C068B6B72699C7 0" \
"6 520224 1032191 EBD0A0A2B9E5443387C068B6B72699C7 0" \
"7 1032224 1257471 9D27538040AD11DBBF97000C2911D1B8 0" \
"8 1257504 1843199 EBD0A0A2B9E5443387C068B6B72699C7 0" \
"9 1843200 7086079 9D27538040AD11DBBF97000C2911D1B8 0" \
"2 7086080 15472639 EBD0A0A2B9E5443387C068B6B72699C7 0" \
"3 15472640 X AA31E02A400F11DB9590000C2911D1B8 0"

最後の行の「X」は、前の手順で得られた数字から「48」を引いた結果に置き換える必要があります。

その後、以下のコマンドを使用してストレージを作成します:

vmkfstools -C vmfs6 -b 1m -S ストレージ名 /vmfs/devices/disks/ディスクの識別子

イメージの変換#

自分でビルドしたファームウェアの設定では「vmdk」ファイルが生成されないため、ここでは「img」を「vmdk」ファイルに変換します:

qemu-img convert -f raw -O vmdk openwrt.img openwrt.vmdk

ホスト名の変更#

ESXi のデフォルトのホスト名は「localhost.localdomain」で、見た目も覚えにくいです。直接変更しましょう:

esxcfg-advcfg -s 新しいホスト名 /Misc/hostname

ライセンス#

デフォルトの試用ライセンスは 60 日ごとに更新する必要があり、少し面倒です。インターネットで見つけたコードを使用しましょう:

0U0QJ-FR1EP-KZQN9-J1C74-23P5R

問題#

異常な電源断の後、仮想マシンを再度起動すると「オブジェクトの型は I/O をホストする必要があります」というエラーが発生しました。

原因は、異常な電源断によりイメージファイルが破損したためです。修復するだけで問題ありません。

まず、次のコマンドを実行します:

vmkfstools -x check /path/to/your/machine.vmdk

「Disk needs repair.」と表示された場合は、次のコマンドで修復します:

vmkfstools -x repair /path/to/your/machine.vmdk

テストの結果、ディスクを thin 形式に変換すると問題が解決することがわかりました:

vmkfstools -i source.vmdk destination.vmdk -d thin

パススルーについて#

最初は管理ポート以外のすべてのネットワークカードを OpenWrt にパススルーしました。

しかし、後で仮想ネットワークカードでもギガビットネットワークをフルに利用できることに気づいたため、すべてのネットワークカードのパススルーを解除し、仮想ネットワークカードを使用することにしました。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。