[ESXI7.0] 由esxi5.5->esxi7.0移轉虛擬機無法掛載硬碟的問題

URL Link //n.sfs.tw/15870

2022-06-20 16:45:59 By 張○○

因為換機器的關係,用了五年的 vm esxi5.5也一併搬到新的伺服器中。

虛擬機都不見

因為出了一點意外,原本的伺服器esxi5.5掛了,導致裡面的虛擬機都不見。

不過還好儲存體裡面的檔案都還在,意外一直發生…

  本來想說用vsphere的方式一個個下載檔案,結果實在太慢了,全部做完要一個星期。

  ==> 想說用ssh登入直接拷背,但都弄了很久爬了很多文,就是登不進去。

  ==> 重設 esxi5.5,導致所有虛擬機設定檔遺失,這個重設不是我想像中的重設,慘…

  ==> 結果ssh突然可以登入,我的想法是用winscp 把檔案拷到桌機,沒想到他下載的速度是 10MB/s

  ==> 我想說應該是網路速度的問題,換了1G 網卡速度最高就是 30 MB/s,一個虛擬機要下載約半個小時。

  ==> 好不容易下載完一個虛擬機,要上傳到新的機器 ESXI7.0中,發現上傳速率只有 10 MB/s,好慢。

  ==> 後來突發奇想,想說 ESXI5.5直接scp到ESXI7.0就好了,不用透過桌機可以快很多,結果忙活了半天,一直出現ssh加解密問題。

no matching mac found: client hmac-sha1,hmac-sha1-96,hmac-md5,hmac-md5-96,hmac-ripemd160,hmac-ripemd160@openssh.com server hmac-sha2-512,hmac-sha2-256

原來兩台的加解密方式不對,導致不能連。

 ==> 想說升級 ESXI5.5 的ssh,發現完全不能升級,於是直接拷背的路不通,只能透過桌機。

░░░░░░░░░░░░░░░ 經 ░░░ 過 ░░░ 漫 ░░░ 長 ░░░ 的 ░░░ 等 ░░░ 待 ░░░░░░░░░░░░░░░░░░

經過漫長的拷背過程,終於複製完畢。

在ESXI7.0上還原ESXI5.5的虛擬機

步驟一,建立虛擬機

步驟二,選取已存在的檔案

儲存體中的目錄匣是花很多時間搬進去的,都是淚。

步驟三,確認。選取要還原的vmx檔按下一頁完成。

步驟四,建立完後你會看到你的虛擬機,按滑鼠右鍵選「編輯設定」

步驟五,設定好硬體配置後,看起來似乎一切正常

如果你的磁碟沒有自動出現,你也可以點擊「新增硬碟」-->點擊「現有硬碟」

然後到目錄中找到可以使用的vmdk檔新增。

一切就序後,開機。

如果順利的開機,恭禧老爺…

但是我要啟動時發現,無法啟動。

無法啟動我的虛擬機

他說他無法列舉我所有的磁碟。

我SSH進到系統,切到儲存體的目錄,一般是在:

/vmfs/volumes/<儲存體名稱>/<虛擬機目錄>

$ ll -h
total 137602304
drwxr-xr-x    1 root     root       76.0K Jun 20 14:59 .
drwxr-xr-t    1 root     root       76.0K Jun 20 14:50 ..

-rw-r--r--    1 root     root      592.1M Dec 19  2020 Centos8_244-000001-delta.vmdk
-rw-r--r--    1 root     root       26.5G Jun 19 02:39 Centos8_244-000002-delta.vmdk
-rw-r--r--    1 root     root         561 Dec 19  2020 Centos8_244-000001.vmdk
-rw-r--r--    1 root     root         561 Dec 19  2020 Centos8_244-000002.vmdk
-rw-r--r--    1 root     root        4.0G Dec 19  2020 Centos8_244-Snapshot2.vmsn
-rw-r--r--    1 root     root          13 Dec 19  2020 Centos8_244-aux.xml
-rw-r--r--    1 root     root       50.0G Jun 20 07:53 Centos8_244-flat.vmdk <== 磁碟資料檔
-rw-r--r--    1 root     root        8.5K Jun 20 01:36 Centos8_244.nvram
-rw-r--r--    1 root     root         505 Jun 20 01:32 Centos8_244.vmdk <== 磁碟組態檔
-rw-r--r--    1 root     root         480 Dec 19  2020 Centos8_244.vmsd
-rw-r--r--    1 root     root        3.8K Jun 20 07:53 Centos8_244.vmx  <== 虛擬機組態檔
-rw-r--r--    1 root     root         266 Dec 19  2020 Centos8_244.vmxf
-rw-r--r--    1 root     root      142.8K Mar 21 19:49 vmware-11.log
-rw-r--r--    1 root     root      142.7K Mar 30 02:23 vmware-12.log
-rw-r--r--    1 root     root      142.7K Mar 31 10:39 vmware-13.log
-rw-r--r--    1 root     root      183.8K Jun 19 22:45 vmware-14.log
-rw-r--r--    1 root     root      136.9K Jun 19 23:08 vmware-15.log
-rw-r--r--    1 root     root      129.9K Jun 20 01:13 vmware-16.log
-rw-r--r--    1 root     root      167.9K Jun 20 07:53 vmware.log
-rw-------    1 root     root       81.0M Jun 20 01:08 vmx-Centos8_244-5ed7af94b3c0cd96f9-2.vswp

Centos8_244.vmdk 就是我加入的磁碟,但是 Centos8_244-000001.vmdk  Centos8_244-000002.vmdk … Centos8_244-00000n.vmdk

這又是什麼,又很占空間。

我耍小聰明失敗

試了很久,刪除又加入,加入又刪除,還是不行啟動,錯誤一樣。

我就想把所有的 Centos8_244-00000*.vmdk 改名,然後重新啟動,ok了。

但是進到系統發現,資料都是舊的。

真正的做法,先要把所有磁碟先合併

原來是只要有建立過快照,那麼原磁碟就不會再去更動,會產生一個新的檔叫作 xxx-delta.vmdk [2]

原來如此,我如果把後面的 -00000*.vmdk 移除或更名的話,那之後的變更都不會存在了,於是我想通了,就是要去原esxi5.5機器先把檔案merge。

為什麼是原本的esxi5.5中做合併了?不能在esxi7.0上做嗎?不能,我這樣做的時後出錯。

esxi有一個合併所有快照和差異檔案的方法,英文叫作 consolidate disk

先ssh進到 ESXI5.5 的系統中,進到虛擬機的目錄中。

下指令

# vmkfstools -i 最後一包.vmdk 複製.vmdk

# cd /vmfs/volumes/<儲存體名稱>/<虛擬機目錄>
# vmkfstools -i Centos8_244-000002.vmdk Centos8_244.clone.vmdk
Destination disk format: VMFS zeroedthick
Cloning disk 'Centos8_244-000002.vmdk'...
Clone: 100% done.

這樣會多建立出兩個檔案:

Centos8_244.clone-flat.vmdk.filepart
Centos8_244.clone.vmdk

然後把這兩個檔案拷到ESXI7.0的目標目錄中

然後把其它的vmdk都刪了,不用怕,像這樣,畫線的檔都可以刪掉:

$ ll -h
total 137602304
drwxr-xr-x    1 root     root       76.0K Jun 20 14:59 .
drwxr-xr-t    1 root     root       76.0K Jun 20 14:50 ..

-rw-r--r--    1 root     root      592.1M Dec 19  2020 Centos8_244-000001-delta.vmdk
-rw-r--r--    1 root     root       26.5G Jun 19 02:39 Centos8_244-000002-delta.vmdk
-rw-r--r--    1 root     root         561 Dec 19  2020 Centos8_244-000001.vmdk
-rw-r--r--    1 root     root         561 Dec 19  2020 Centos8_244-000002.vmdk
-rw-r--r--    1 root     root        4.0G Dec 19  2020 Centos8_244-Snapshot2.vmsn

-rw-r--r--    1 root     root          13 Dec 19  2020 Centos8_244-aux.xml
-rw-r--r--    1 root     root       50.0G Jun 20 07:53 Centos8_244-flat.vmdk <== 磁碟資料檔
-rw-r--r--    1 root     root        8.5K Jun 20 01:36 Centos8_244.nvram
-rw-r--r--    1 root     root         505 Jun 20 01:32 Centos8_244.vmdk <== 磁碟組態檔

-rw-r--r--    1 root     root 53687091200 Jun 19 21:23 CentOS244.clone-flat.vmdk <== 只保留這兩個
-rw-r--r--    1 root     root         532 Jun 19 21:23 CentOS244.clone.vmdk <== 只保留這兩個

-rw-r--r--    1 root     root         480 Dec 19  2020 Centos8_244.vmsd
-rw-r--r--    1 root     root        3.8K Jun 20 07:53 Centos8_244.vmx 
-rw-r--r--    1 root     root         266 Dec 19  2020 Centos8_244.vmxf
-rw-r--r--    1 root     root      142.8K Mar 21 19:49 vmware-11.log
-rw-r--r--    1 root     root      142.7K Mar 30 02:23 vmware-12.log
-rw-r--r--    1 root     root      142.7K Mar 31 10:39 vmware-13.log
-rw-r--r--    1 root     root      183.8K Jun 19 22:45 vmware-14.log
-rw-r--r--    1 root     root      136.9K Jun 19 23:08 vmware-15.log
-rw-r--r--    1 root     root      129.9K Jun 20 01:13 vmware-16.log
-rw-r--r--    1 root     root      167.9K Jun 20 07:53 vmware.log
-rw-------    1 root     root       81.0M Jun 20 01:08 vmx-Centos8_244-5ed7af94b3c0cd96f9-2.vswp

如同上面的步驟重建虛擬機,加入這顆磁碟即可。

祝你開機成功…

結論

1. 官網的說明文件簡直是廢物,通篇文字沒寫重點。參考資料的 [1][2]很有幫助 

2. 無關的 vmdk檔要刪掉,否則會啟動不了。

3. 有快照過的vmdk會出現 -0000001, -0000002, .... 的自動檔案編號,要用 vmkfstools 來合併。

4. 拷背非常的耗時,不花錢的方法就是等。

 

參考資料

[1] https://communities.vmware.com/t5/Virtual-Machine-Guest-OS-and-VM/000001-vmdk-file-but-NO-snapshot/m-p/286901#1609201

[2] https://hirotanoblog.com/vmware-snapshot/6718/#toc5

[3] https://www3.sips.ntpc.edu.tw/wordpress/?p=1298

[4] https://communities.vmware.com/t5/VMware-Workstation-Pro/000001-vmdk-and-000002-vmdk/td-p/2174254