歷經艱辛修復華為伺服器上崩潰的Proxmox虛擬機

2023-08-25     IT狂人日誌

原標題:歷經艱辛修復華為伺服器上崩潰的Proxmox虛擬機

接到福州的網友求助,華為伺服器,跳電後Proxmox VE裡面所有的虛擬機都起不來了。

先遠程登錄看一下吧,至少PVE的web管理介面還能登錄,看到錯誤提示,有點慌啊,vm-xxx-disk-0都沒了,難怪每台虛擬機都無法啟動。

一般來說,PVE的虛擬磁碟,都在/dev/pve路徑下,看到上面的錯誤提示,進入shell再確認一下,果然一個虛擬磁碟的文件都沒得。

輸入lvscan,看來虛擬機磁碟都在,只是未激活狀態,所以PVE識別不到了。

輸入vgchange -ay pve嘗試激活,全部失敗;嘗試逐個激活,同樣的結果,鬱悶。

好在有iBMC遠程管理,可以很方便地遠程操控伺服器,那就來吧。在客戶的電腦上,下載Centos,在iBMC內配置為用Centos的ISO文件引導伺服器,進入救援模式,輸入vgchange -ay pve嘗試激活,這次全部都成功了,小小地興奮了一下。

重啟伺服器,登錄PVE,結果還是老樣子,進入shell,輸入lvscan,虛擬磁碟又變成inactive狀態了。

輸入lvconvert --repair /dev/pve/data,修復失敗,提示磁碟空間不足,可用空間居然為0!怎麼可能?

不管它了,創建一個4G的空間,vgextend給它,再次lvconvert --repair /dev/pve/data,還是提示空間不夠,再創建一個8G的空間,繼續vgextend,又一次執行lvconvert --repair /dev/pve/data,很好,這次不報空間不足的錯誤了,但是,修復還是失敗。

懷疑磁碟有邏輯錯誤,再次以centos救援模式啟動伺服器,fsck掃描磁碟,顯示磁碟被占用,無法完成掃描。

下載ubuntu,啟動伺服器,try ubuntu,fsck掃描磁碟,很快就完成了, 肯定不對啊,再次運行,暈,也提示占用中了……

重啟伺服器, 啟動Proxmox,錯誤更多了,汗……

再一看,不用慌,這是我用來擴容的那兩個4G和8G的盤沒有設置自動掛載導致的,這兩個磁碟已經被我刪除了, 也沒必要再去設置自動掛載了。

可是 ,這時候,無論執行什麼修復操作,都是提示找不到這兩個盤,無法完成,很招人煩。

vgreduce --removemissing /dev/pve

我想把這兩個錯誤的盤,從PVE中移除,結果提示我要加上 --force參數,也就是強制移除。

但是我加上了--force參數,還是失敗。

於是,又一次啟動centos救援模式,vgreduce --removemissing --force /dev/pve

好傢夥,把所有的虛擬磁碟都給我remove了,lvscan查看一下,vm-disk一個都沒了,汗……

雖然說,LVM的特性決定了vm-disk是可恢復,但是難免緊張。退一步來講,就算vm-disk沒能恢復,那通過數據恢復手段,至少還能找回vm-disk裡面的文件。

所以說,諸如以上的操作,為防萬一,都應該事先對硬碟做鏡像後再作處理,只是距離遙遠,沒有條件,所以才小心謹慎地進行修復操作。

事到如今,就算我馬上遠程恢復了LVM的狀態,還是無法修復PVE的虛擬磁碟,也就無法修復任何一台虛擬機,那還不如讓客戶把伺服器發過來,做了硬碟鏡像再放心地折騰。

第二天早上,與客戶溝通後,暫時沒了聯繫。兩天後,客戶才發來消息,其實我有些擔心,這兩天,他們已經動了伺服器,也許會造成不可恢復的尷尬處境。

8月18日中午,伺服器到達我們辦公室,立即開機,拿了硬碟做鏡像,20:33分,進度條已經跑滿,顯示為24秒後結束,可是,等到21多,仍然沒有完成,先放著吧,下班。

8月19日早上7點,遠程登錄iBMC,鏡像還沒完成,肯定不可能完成了,只能到了辦公室後,再換個鏡像軟體重頭再來。

8月20日8:30,終於顯示為鏡像完成,長長地舒了一口氣,把我們的硬碟掛載到我們自己的伺服器上。

Ventoy優盤Ubuntu ISO 引導伺服器,try Ubuntu。

vgcfgrestore --file /etc/lvm/archive/pve_001xx-xxxxxxxxx.vg --test pve

根據備份文件,測試後恢復LVM狀態。

命令執行完成後,緊接著輸入 lvscan,所有的vm-disk都回來了。

把這些vm-disk全部複製到另外一塊硬碟……

8月21日早上9點,剛到辦公室5分鐘,複製過程正好完成。

把這塊硬碟,掛載到我們的Proxmox伺服器上,根據虛擬機的配置文件(例如:100.conf)以及之前在原華為伺服器上的Proxmox截圖,創建出對應的虛擬機。

在shell下,刪除自動產生的vm-disk文件,proxmox上添加目錄,路徑為掛載過來的硬碟,逐一修改虛擬機配置文件,把虛擬磁碟的路徑改為剛才添加的目錄。

啟動所有虛擬機,全部成功,通知客戶遠程確認。

8月22日,計劃給客戶的華為伺服器重裝Proxmox,虛擬磁碟複製回去。結果各種報錯,無法安裝。

午飯後,突發不適,劇烈嘔吐三次,另外一個客戶的freeswitch伺服器出現問題,忍痛分析問題,解決問題。

實在無力加班了,下班前,華為伺服器安裝debian 12,準備第二天早上在此基礎上安裝Proxmox。

8月23日早上,在debian 12上安裝Proxmox8.0成功,按照配置文件和截圖準確地創建一遍虛擬機,開始把虛擬磁碟複製回去。

8月23日晚上19:53,複製完成,並且每台虛擬機啟動測試完成,關機。

8月24日中午,客戶遠程確認後,伺服器發回,至此,華為伺服器上崩潰的Proxmox算是恢復完成。

華為伺服器無法直接安裝Proxmox,換了多個版本都不行,只能先安裝debian ,然後在此基礎上安裝Proxmox,具體過程,下一篇文章講述;另外freeswitch無法撥打電話、撥通後沒有聲音的問題,後面也會發文章,有興趣的朋友,可以先關注一下。

文章來源: https://twgreatdaily.com/zh-cn/cc8b617c250fd8194d36c06322aceb80.html