openstack宿主機故障,虛擬例項恢復

2022-06-17 13:54:07 字數 2117 閱讀 6893

前言:因為機房伺服器執行不穩定的原因導致計算節點掛掉,然後上面的centos7虛擬機器在遷移之後開機報錯。這個解決方法同樣適用於其它作業系統的虛擬機器。基於映象建立的虛擬機器例項。

i/o error, can't read device /dev/vda 的報錯資訊

首先做疏散先把虛擬例項從宿主機上面疏散到其它主機,關閉雲主機。

1.找到虛擬機器的id可以通過dashboard介面或者使用openstack server list命令,找到虛擬機器的id;然後檢視虛擬機器的詳細資訊。

比如:

nova show 8fa3d2eb-2401-48a9-850a-f800314c6950

# 與這個命令相同功能的命令還有

連線到所在的計算節點,例項名稱確定是哪台主機。

通過id可以確定該虛擬機器例項的資料目錄,如果openstack沒有對接儲存的話那麼在這個目錄下就會存在資料檔案,因為對接了ceph所以資訊在libvirt.xml的檔案裡面。

cat /var/lib/nova/instances/8fa3d2eb-2401-48a9-850a-f800314c6950/libvirt.xml裡面就是它的vda的id。

2.當找到這個磁碟的id之後,在ceph集群裡面去檢視這個裝置

3.取消它原來有的一些屬性

# 檢視卷

rbd info volumes/0859147d-27aa-49a5-8373-7c515c4f3a02_disk

#取消它原來有的一些屬性;根據ceph的提示操作,因為有的屬性linux不支援。

rbd feature disable exclusive-lock object-map fast-diff deep-flatten --image 8fa3d2eb-2401-48a9-850a-f800314c6950_disk -p volumes

4.把它對映到本地

rbd map 8fa3d2eb-2401-48a9-850a-f800314c6950_disk -p volumes

# 如果對映不了執行下這個命令。

rbd flatten volumes/8fa3d2eb-2401-48a9-850a-f800314c6950_disk

## 扁平化快照,意思就是江這個快照卷給獨立出來。

5.使用命令修復

# 有的可能修復不了就只能做好丟失資料的準備了

xfs_repair -l /dev/rbd0p1

可以ls /dev/rbd* 檢視一下,rbd0p1表示的事乙個啟動分割槽。

6.取消對映

rbd unmap 8fa3d2eb-2401-48a9-850a-f800314c6950_disk -p volumes
這個時候再重新啟動就正常了。

感謝網上上傳資料分享的部落格,我蒐集並處理了故障,終結了出來,希望更多的人看到早日跳出坑!

openstack 單個宿主機實現雙網域連通

openstack 單個宿主機實現雙網域連通 單個宿主機可以聯通多個網域 本身ovs做了雙網絡卡繫結,需要先解除繫結,新建網橋,兩個網口分別指向不同交換機。master節點建立 載入環境變數。儲存後載入環境變數,source adminrc 重啟neutron openvswtich agent s...

openstack 故障處理

系統磁碟損壞 前提 disk檔案為檔案儲存型別的雲主機。步驟 1 檢視損壞os雲主機所在宿主機 nova show 2 找到或建立一台與損壞雲主機os版本一致的雲主機 3 將損壞雲主機a的磁碟檔案disk拷貝乙份至用於修復雲主機b disk bak ls var lib nova instances...

為Hyper v宿主機和故障轉移群集做防病毒排除

適應平台 hyper v 2.0 hyper v 3.0 一 參考kb961804 在防病毒軟體中對以下hyper v相關目錄做排除 預設的虛擬機器配置目錄 c programdata microsoft windows hyper v 自定義虛擬機器配置目錄 預設虛擬硬碟的目錄 c users p...