VMware ESXi 上のとあるWindows Server 2012仮想マシンの動作が死ぬほど遅い、助けてくれと担当からあり、設定覗いてみるとそこにはスタックした スナップショット の 数珠つなぎ がありました。
社内の仮想マシンは、VMware ESXiの黎明期から、自作のクローニングバッチで定期バックアップしており、火の入っている仮想マシンをクローニングする際は、スナップショットを生成、バッチ終わりに消す仕様にしています。
それとは別に、以前、担当者はシステム更新作業前に手動でスナップショットを作ったそうで、その時以来、バッチはスナップショットを消せずにバックアップしてきたことになります。
vCSAのGUI上でスナップショット全部削除しようとすると、
1 |
A general system error occurred: vim.fault.GenericVmConfigFault |
と言うエラーで失敗。調べてみると、潔くスナップショット関連ファイルを隠してしまって良さそう。
早速サブフォルダ作って*.vmsdと*.vmsnを移して、GUI上ではスナップショットいなくなったことになり、仮想ディスクの統合を促されます。そして統合に失敗。GUI上での解決を諦め、ESXiにsshで潜ります。
まず、現在の仮想マシンファイル構成を確認します。
1 2 3 4 5 6 7 8 9 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 |
-rw------- 1 root root 544210944 May 12 01:11 SRV003-000001-sesparse.vmdk -rw------- 1 root root 331 May 12 01:11 SRV003-000001.vmdk -rw------- 1 root root 9605193728 May 15 07:31 SRV003-000002-sesparse.vmdk -rw------- 1 root root 415 May 15 07:31 SRV003-000002.vmdk -rw------- 1 root root 9046560768 May 15 07:52 SRV003-000003-sesparse.vmdk -rw------- 1 root root 422 May 15 07:52 SRV003-000003.vmdk -rw------- 1 root root 11876179968 May 15 08:09 SRV003-000004-sesparse.vmdk -rw------- 1 root root 422 May 15 08:09 SRV003-000004.vmdk -rw------- 1 root root 10176790528 May 15 08:25 SRV003-000005-sesparse.vmdk -rw------- 1 root root 422 May 15 08:25 SRV003-000005.vmdk -rw------- 1 root root 7645544448 May 15 08:46 SRV003-000006-sesparse.vmdk -rw------- 1 root root 422 May 15 08:46 SRV003-000006.vmdk -rw------- 1 root root 10212098048 May 15 08:49 SRV003-000007-sesparse.vmdk -rw------- 1 root root 422 May 15 08:49 SRV003-000007.vmdk -rw------- 1 root root 9358348288 May 15 09:11 SRV003-000008-sesparse.vmdk -rw------- 1 root root 422 May 15 09:11 SRV003-000008.vmdk -rw------- 1 root root 16492982272 May 15 09:20 SRV003-000009-sesparse.vmdk -rw------- 1 root root 422 May 15 09:20 SRV003-000009.vmdk -rw------- 1 root root 12388511744 May 15 09:51 SRV003-000010-sesparse.vmdk -rw------- 1 root root 422 May 15 09:51 SRV003-000010.vmdk -rw------- 1 root root 11976572928 May 15 09:51 SRV003-000011-sesparse.vmdk -rw------- 1 root root 422 May 15 09:51 SRV003-000011.vmdk -rw------- 1 root root 12721602560 May 15 12:45 SRV003-000012-sesparse.vmdk -rw------- 1 root root 422 May 15 12:45 SRV003-000012.vmdk -rw------- 1 root root 19011796992 May 15 12:56 SRV003-000013-sesparse.vmdk -rw------- 1 root root 422 May 15 12:56 SRV003-000013.vmdk -rw------- 1 root root 14039646208 May 15 12:49 SRV003-000014-sesparse.vmdk -rw------- 1 root root 422 May 15 12:49 SRV003-000014.vmdk -rw------- 1 root root 14191427584 May 15 13:46 SRV003-000015-sesparse.vmdk -rw------- 1 root root 422 May 15 13:46 SRV003-000015.vmdk -rw------- 1 root root 11206258688 May 15 13:37 SRV003-000016-sesparse.vmdk -rw------- 1 root root 422 May 15 13:37 SRV003-000016.vmdk -rw------- 1 root root 16348729344 May 15 13:48 SRV003-000017-sesparse.vmdk -rw------- 1 root root 422 May 15 13:48 SRV003-000017.vmdk -rw------- 1 root root 19593719808 May 15 14:36 SRV003-000018-sesparse.vmdk -rw------- 1 root root 422 May 15 14:36 SRV003-000018.vmdk -rw------- 1 root root 9827377152 May 15 14:22 SRV003-000019-sesparse.vmdk -rw------- 1 root root 422 May 15 14:22 SRV003-000019.vmdk -rw------- 1 root root 10626646016 May 15 14:24 SRV003-000020-sesparse.vmdk -rw------- 1 root root 422 May 15 14:24 SRV003-000020.vmdk -rw------- 1 root root 10653794304 May 15 15:46 SRV003-000021-sesparse.vmdk -rw------- 1 root root 422 May 15 15:46 SRV003-000021.vmdk -rw------- 1 root root 11198791680 May 15 15:47 SRV003-000022-sesparse.vmdk -rw------- 1 root root 422 May 15 15:47 SRV003-000022.vmdk -rw------- 1 root root 9530548224 May 16 04:25 SRV003-000023-sesparse.vmdk -rw------- 1 root root 422 May 16 04:25 SRV003-000023.vmdk -rw------- 1 root root 8064827392 May 15 15:39 SRV003-000024-sesparse.vmdk -rw------- 1 root root 422 May 15 15:39 SRV003-000024.vmdk -rw------- 1 root root 8376078336 May 15 15:40 SRV003-000025-sesparse.vmdk -rw------- 1 root root 422 May 15 15:40 SRV003-000025.vmdk -rw------- 1 root root 137438953472 May 15 06:39 SRV003-flat.vmdk -rw------- 1 root root 8684 May 15 06:33 SRV003.nvram -rw------- 1 root root 546 May 15 07:16 SRV003.vmdk -rw------- 1 root root 11085 May 15 04:59 SRV003.vmsd -rw------- 1 root root 3504 May 15 06:33 SRV003.vmx -rw------- 1 root root 3150 May 15 04:59 SRV003.vmxf -rw------- 1 root root 409896 May 15 06:33 vmware.log |
このように仮想ディスクは、計25+1ファイルに分断されています。仮想マシンの起動時はこれを最新の25番から順に辿ってブートするのでそりゃ遅いのは当たり前。試しにディスク000001について、vmkfstoolsを使って検証してみます。
1 2 3 4 5 6 7 8 9 |
[root@vm21:/vmfs/volumes/5bfe2d68-6a1f54bc-1c46-e41f13675b84/SRV003] vmkfstools -qv10 SRV003-000001.vmdk DISKLIB-VMFS : "/vmfs/volumes/5bfe2d68-6a1f54bc-1c46-e41f13675b84/SRV003/SRV003-000001-sesparse.vmdk" : open successful (23) size = 544210944, hd = 0. Type 19 DISKLIB-VMFS : "/vmfs/volumes/5bfe2d68-6a1f54bc-1c46-e41f13675b84/SRV003/SRV003-flat.vmdk" : open successful (23) size = 137438953472, hd = 0. Type 3 DISKLIB-LINK : DiskLinkIsAttachPossible: Content ID mismatch (parentCID 6e64ad46 != 24a64630) /vmfs/volumes/5bfe2d68-6a1f54bc-1c46-e41f13675b84/SRV003/SRV003-000001.vmdk /vmfs/volumes/5bfe2d68-6a1f54bc-1c46-e41f13675b84/SRV003/SRV003.vmdk. DISKLIB-CHAIN : "/vmfs/volumes/5bfe2d68-6a1f54bc-1c46-e41f13675b84/SRV003/SRV003.vmdk" : failed to open (The parent virtual disk has been modified since the child was created. The content ID of the parent virtual disk does not match the corresponding parent content ID in the child). DISKLIB-VMFS : "/vmfs/volumes/5bfe2d68-6a1f54bc-1c46-e41f13675b84/SRV003/SRV003-000001-sesparse.vmdk" : closed. DISKLIB-VMFS : "/vmfs/volumes/5bfe2d68-6a1f54bc-1c46-e41f13675b84/SRV003/SRV003-flat.vmdk" : closed. DISKLIB-LIB : Failed to open 'SRV003-000001.vmdk' with flags 0x17 The parent virtual disk has been modified since the child was created. The content ID of the parent virtual disk does not match the corresponding parent content ID in the child (18). Failed to open 'SRV003-000001.vmdk' : The parent virtual disk has been modified since the child was created. The content ID of the parent virtual disk does not match the corresponding parent content ID in the child (18). |
この分断セット、実はコピーとか出来なくて怪しんでいたのですが、ほぼ確定。次に最新セットを検証してみます。
1 2 3 4 5 6 7 8 9 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 |
[root@vm21:/vmfs/volumes/5bfe2d68-6a1f54bc-1c46-e41f13675b84/SRV003] vmkfstools -qv10 SRV003-000025.vmdk DISKLIB-VMFS : "/vmfs/volumes/5bfe2d68-6a1f54bc-1c46-e41f13675b84/SRV003/SRV003-000025-sesparse.vmdk" : open successful (23) size = 8376078336, hd = 0. Type 19 DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000024-sesparse.vmdk" : open successful (23) size = 8064827392, hd = 0. Type 19 DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000023-sesparse.vmdk" : open successful (23) size = 9530548224, hd = 0. Type 19 DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000022-sesparse.vmdk" : open successful (23) size = 11198791680, hd = 0. Type 19 DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000021-sesparse.vmdk" : open successful (23) size = 10653794304, hd = 0. Type 19 DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000020-sesparse.vmdk" : open successful (23) size = 10626646016, hd = 0. Type 19 DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000019-sesparse.vmdk" : open successful (23) size = 9827377152, hd = 0. Type 19 DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000018-sesparse.vmdk" : open successful (23) size = 19593719808, hd = 0. Type 19 DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000017-sesparse.vmdk" : open successful (23) size = 16348729344, hd = 0. Type 19 DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000016-sesparse.vmdk" : open successful (23) size = 11206258688, hd = 0. Type 19 DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000015-sesparse.vmdk" : open successful (23) size = 14191427584, hd = 0. Type 19 DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000014-sesparse.vmdk" : open successful (23) size = 14039646208, hd = 0. Type 19 DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000013-sesparse.vmdk" : open successful (23) size = 19011796992, hd = 0. Type 19 DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000012-sesparse.vmdk" : open successful (23) size = 12721602560, hd = 0. Type 19 DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000011-sesparse.vmdk" : open successful (23) size = 11976572928, hd = 0. Type 19 DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000010-sesparse.vmdk" : open successful (23) size = 12388511744, hd = 0. Type 19 DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000009-sesparse.vmdk" : open successful (23) size = 16492982272, hd = 0. Type 19 DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000008-sesparse.vmdk" : open successful (23) size = 9358348288, hd = 0. Type 19 DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000007-sesparse.vmdk" : open successful (23) size = 10212098048, hd = 0. Type 19 DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000006-sesparse.vmdk" : open successful (23) size = 7645544448, hd = 0. Type 19 DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000005-sesparse.vmdk" : open successful (23) size = 10176790528, hd = 0. Type 19 DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000004-sesparse.vmdk" : open successful (23) size = 11876179968, hd = 0. Type 19 DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000003-sesparse.vmdk" : open successful (23) size = 9046560768, hd = 0. Type 19 DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000002-sesparse.vmdk" : open successful (23) size = 9605193728, hd = 0. Type 19 DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-flat.vmdk" : open successful (23) size = 137438953472, hd = 0. Type 3 SRV003-000025.vmdk is not an rdm DISKLIB-VMFS : "/vmfs/volumes/5bfe2d68-6a1f54bc-1c46-e41f13675b84/SRV003/SRV003-000025-sesparse.vmdk" : closed. DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000024-sesparse.vmdk" : closed. DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000023-sesparse.vmdk" : closed. DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000022-sesparse.vmdk" : closed. DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000021-sesparse.vmdk" : closed. DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000020-sesparse.vmdk" : closed. DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000019-sesparse.vmdk" : closed. DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000018-sesparse.vmdk" : closed. DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000017-sesparse.vmdk" : closed. DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000016-sesparse.vmdk" : closed. DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000015-sesparse.vmdk" : closed. DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000014-sesparse.vmdk" : closed. DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000013-sesparse.vmdk" : closed. DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000012-sesparse.vmdk" : closed. DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000011-sesparse.vmdk" : closed. DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000010-sesparse.vmdk" : closed. DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000009-sesparse.vmdk" : closed. DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000008-sesparse.vmdk" : closed. DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000007-sesparse.vmdk" : closed. DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000006-sesparse.vmdk" : closed. DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000005-sesparse.vmdk" : closed. DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000004-sesparse.vmdk" : closed. DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000003-sesparse.vmdk" : closed. DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-000002-sesparse.vmdk" : closed. DISKLIB-VMFS : "/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003/SRV003-flat.vmdk" : closed. AIOMGR-S : stat o=25 r=75 w=0 i=0 br=1228800 bw=0 OBJLIB-LIB: ObjLib cleanup done. WORKER: asyncOps=0 maxActiveOps=0 maxPending=0 maxCompleted=0 |
エラー無く完走しました。おかしかった000001ディスクについては、シーケンシャルに数珠を遡る際にこのセットは飛ばされているので、仲間外れなのでしょう。そして、おそらくこれがGUIでディスク統合出来なかった原因の1つ。
と判断して、CLIでディスク統合してみます、つまりディスククローン。
1 2 3 4 |
[root@vm21:/vmfs/volumes/5c04bc2f-3b616928-059e-0894ef0c0f88/SRV003] vmkfstools -i SRV003-000025.vmdk /vmfs/volumes/VD0_vm21/SRV003/SRV003_NEW.vmdk Destination disk format: VMFS zeroedthick Cloning disk 'SRV003-000025.vmdk'... Clone: 44% done... |
入出力を同じストレージにするとむちゃくちゃ時間掛かります(一晩掛かりました)。別のストレージなら2時間強。分断化ディスクを消した後、気持ち悪いので統合ディスク名を変更しておきます。
1 2 3 4 5 6 7 8 |
[root@vm21:/vmfs/volumes/5bfe2d68-6a1f54bc-1c46-e41f13675b84/SRV003] vmkfstools -E SRV003_C.vmdk SRV003.vmdk [root@vm21:/vmfs/volumes/5bfe2d68-6a1f54bc-1c46-e41f13675b84/SRV003] ls -la -rw------- 1 root root 137438953472 May 16 17:35 SRV003-flat.vmdk -rw------- 1 root root 8684 May 15 06:33 SRV003.nvram -rw------- 1 root root 546 May 17 02:07 SRV003.vmdk -rw------- 1 root root 0 May 16 14:34 SRV003.vmsd -rw------- 1 root root 3484 May 16 14:32 SRV003.vmx -rw------- 1 root root 3150 May 16 14:32 SRV003.vmxf |
このディスクを仮想マシンの起動ディスクとして登録してパワーオン。元通りサクサクと起動したので、「スナップショット使ったら消してね」とお願いして担当者へ引き渡しました。
この担当者さん、実はベンダーさん、経験豊富で腕は確かなのですが、CLI特にLinuxというよりはWindows派なので、sshで潜って作業するよりは、GUIかVeeamアプリを駆使する傾向にあります。
参考)