Nested で構成している Lab 環境の ESXi に U3d を適用していた際にバチが当たって Fail しました(泣).長期間放置していたので拗ねられてもしょうがない今日この頃.
一応,Dry run でエラーが無かったので esxcli software profile update 打つと以下のエラーで失敗.
[InstallationError] Failed to create ramdisk vibdownload: Errors: No space left on device cause = (146, 'Cannot reserve 146 MB of memory for ramdisk vibdownload') Please refer to the log file for more details.
log を読みなさいとのことなので,/scratch/log/esxupdate.log を参照すると,コマンド実行時のメッセージ通り RAM disk 作成する容量が不足と言われてます.
2022-05-03T02:05:32Z esxupdate: 24699137: root: ERROR: Traceback (most recent call last): 2022-05-03T02:05:32Z esxupdate: 24699137: root: ERROR: File "/usr/lib/vmware/esxcli-software", line 794, in <module> 2022-05-03T02:05:32Z esxupdate: 24699137: root: ERROR: main() 2022-05-03T02:05:32Z esxupdate: 24699137: root: ERROR: File "/usr/lib/vmware/esxcli-software", line 785, in main 2022-05-03T02:05:32Z esxupdate: 24699137: root: ERROR: ret = CMDTABLE[command](options) 2022-05-03T02:05:32Z esxupdate: 24699137: root: ERROR: File "/usr/lib/vmware/esxcli-software", line 252, in ProfileUpdateCmd 2022-05-03T02:05:32Z esxupdate: 24699137: root: ERROR: res = t.UpdateProfileFromDepot([], opts.profile, depotUrls=depoturls, 2022-05-03T02:05:32Z esxupdate: 24699137: root: ERROR: File "/lib64/python3.8/site-packages/vmware/esximage/Transaction.py", line 365, in UpdateProfileFromDepot 2022-05-03T02:05:32Z esxupdate: 24699137: root: ERROR: return t.InstallVibsFromProfile(metadataUrls, profileName, depotUrls, 2022-05-03T02:05:32Z esxupdate: 24699137: root: ERROR: File "/tmp/esx-update-4699137/lib64/python3.8/site-packages/vmware/esximage/Transaction.py", line 1771, in InstallVibsF 2022-05-03T02:05:32Z esxupdate: 24699137: root: ERROR: File "/tmp/esx-update-4699137/lib64/python3.8/site-packages/vmware/esximage/Transaction.py", line 1215, in _installVibs 2022-05-03T02:05:32Z esxupdate: 24699137: root: ERROR: File "/tmp/esx-update-4699137/lib64/python3.8/site-packages/vmware/esximage/Transaction.py", line 1393, in _validateAnd 2022-05-03T02:05:32Z esxupdate: 24699137: root: ERROR: File "/tmp/esx-update-4699137/lib64/python3.8/site-packages/vmware/esximage/HostImage.py", line 1109, in Stage 2022-05-03T02:05:32Z esxupdate: 24699137: root: ERROR: File "/tmp/esx-update-4699137/lib64/python3.8/site-packages/vmware/esximage/HostImage.py", line 922, in _stage_with_url 2022-05-03T02:05:32Z esxupdate: 24699137: root: ERROR: File "/tmp/esx-update-4699137/lib64/python3.8/site-packages/vmware/esximage/Utils/Ramdisk.py", line 85, in CreateRamdis 2022-05-03T02:05:32Z esxupdate: 24699137: root: ERROR: esximage.Errors.InstallationError: Failed to create ramdisk vibdownload: Errors: 2022-05-03T02:05:32Z esxupdate: 24699137: root: ERROR: No space left on device
RAM disk full の場合の対処法は KB2001550 に記載がありますが,故意的にファイル操作した自覚もありません.
kb.vmware.com
すっかり惚けてきたのかもしれませんが,とりあえず自分を信じてw,まず RAM disk の状況確認してみます.
[root@ariel1:/] vdf -h ... ----- Ramdisk Size Used Available Use% Mounted on root 32M 3M 28M 12% -- etc 28M 1016K 27M 3% -- opt 32M 0B 32M 0% -- var 48M 784K 47M 1% -- tmp 256M 8K 255M 0% -- iofilters 32M 0B 32M 0% -- shm 1024M 0B 1024M 0% -- crx 1024M 0B 1024M 0% -- configstore 32M 212K 31M 0% -- configstorebkp 32M 212K 31M 0% -- vsantraces 300M 260M 39M 86% -- hostdstats 159M 2M 156M 1% --
問題無く Update 出来た Host ではこんな感じ.
[root@esx01:/] vdf -h ----- Ramdisk Size Used Available Use% Mounted on root 32M 3M 28M 12% -- etc 28M 1016K 27M 3% -- opt 32M 0B 32M 0% -- var 48M 512K 47M 1% -- tmp 256M 12K 255M 0% -- iofilters 32M 0B 32M 0% -- shm 1024M 0B 1024M 0% -- crx 1024M 0B 1024M 0% -- configstore 32M 216K 31M 0% -- configstorebkp 32M 216K 31M 0% -- vsantraces 300M 912K 299M 0% -- hostdstats 159M 2M 156M 1% --
もうお気づきですね.vsantrases の Used が 86% になっています.どうもこれが原因らしい.
私の作業の目的は U3d の適用なので,RAM disk なら Reboot すればクリアされるだろうという超安易な発想で Reboot しますw.
まぁ,ユーザーですからこんなもんですよw.Reboot してダメなら電源抜いて,それでもダメなら環境やら他の人のせいにして... え?私だけですか(泣)?
冗談はさておき,Reboot 後は綺麗に RAM disk クリアされています.
----- Ramdisk Size Used Available Use% Mounted on root 32M 3M 28M 12% -- etc 28M 1016K 27M 3% -- opt 32M 0B 32M 0% -- var 48M 512K 47M 1% -- tmp 256M 12K 255M 0% -- iofilters 32M 0B 32M 0% -- shm 1024M 0B 1024M 0% -- crx 1024M 0B 1024M 0% -- configstore 32M 208K 31M 0% -- configstorebkp 32M 208K 31M 0% -- vsantraces 300M 54M 245M 18% -- hostdstats 159M 2M 156M 1% --
もちろん,これで Update 成功です!
めでたしめでたし... で終わってしまうと,超薄っぺらい Blog になって Go さんに怒られそうなので,クラスタ内の別 Host でもうちょっと触ってみます.
vsantraces が full になった際の対応は KB2150320 に対処方法が書かれています.
kb.vmware.com
目の前の問題は RAM disk 用の容量確保ですから,esxcli vsan trace set -s でサイズ変更してみます.
[root@ariel2:~] esxcli vsan trace set -s 5 [root@ariel2:/] vdf -h ... ----- Ramdisk Size Used Available Use% Mounted on root 32M 3M 28M 12% -- ... vsantraces 300M 231M 68M 77% -- hostdstats 159M 2M 156M 1% --
一回の実行では 77% までしか減りませんでしたが,これがしつこく esxcli vsan trace set -s 5 コマンド打っていくと,毎回少しずつ減ってくれました.
[root@ariel2:~] esxcli vsan trace set -s 5 [root@ariel2:/] vdf -h ... ----- Ramdisk Size Used Available Use% Mounted on root 32M 3M 28M 12% -- ... vsantraces 300M 199M 100M 66% -- hostdstats 159M 2M 156M 1% -- ... (数回実施) ... [root@ariel2:~] esxcli vsan trace set -s 5 [root@ariel2:/] vdf -h Ramdisk Size Used Available Use% Mounted on ... vsantraces 300M 70M 229M 23% -- hostdstats 159M 2M 156M 1% --
ただ,最終的には size 1 とかにしても 23% 以下にはなりませんでした.それでも Available が 229M で,最初 146 MB 足りないと怒られてコケた時点と比べたら余裕です!
もう Update 成功は確定ですね.にやけながらコマンド打ちます.
[root@ariel2:~] esxcli software profile update -p ESXi-7.0U3d-19482537-standard -d /vmfs/volumes/vsanDatastore/patch/VMware-ESXi-7.0U3d-19482537-depot.zip [InstallationError] Failed to create ramdisk vibdownload: [Errno 17] File exists: '/tmp/vibdownload' cause = [Errno 17] File exists: '/tmp/vibdownload' Please refer to the log file for more details.
えっ?
...
やっぱり Reboot ですよねー(棒読).
ではなくて,メッセージちゃんと読めばいいだけで,最初の失敗時に作られた /tmp/vibdownload ディレクトリが存在しているのが原因だと.(上書きしてくれればいいのに.)
/tmp の下にキチンと残っていらっしゃるので,rm します.
[root@ariel2:/tmp] ls -al total 24 drwxrwxrwt 1 root root 512 May 3 03:36 . drwxr-xr-x 1 root root 512 May 3 03:36 .. -rw-r--r-- 1 root root 40 May 3 03:36 .vsanObserver drwxr-xr-x 1 root root 512 May 3 03:22 vibdownload drwx------ 1 root root 512 May 3 03:21 vmware-root -rw------- 1 root root 2451 May 3 03:36 vsanObserver--.result.S91cOS prw-r--r-- 1 root root 0 May 3 03:29 vsantracebuffer [root@ariel2:/tmp] rm -rf ./vibdownload
という訳で,Reboot せずに RAM disk 容量不足エラーを回避して U3d 適用するお話でした.
(単に /vsantraces 下の邪魔な .gz 消せば良いのは知ってて書いています.ネタ不足w.)