1. 程式人生 > >openstack 卷虛機丟失恢復 (雲硬碟存在,但虛機丟失或無法啟動

openstack 卷虛機丟失恢復 (雲硬碟存在,但虛機丟失或無法啟動

openstack中有很多虛機在物理機重啟或服務重啟,資源不足,被人誤刪等原因導致在計算節點執行好好的虛機變成了

ERROR狀態或者shutoff 更可悲的是無法重啟,那樣如果機器中跑著業務,損失就大了。

現基於卷虛機跟大家分享一個解決方案 

1. 為了測試對比,現在已有的卷虛機上寫東西,證明資料完整性

 

可以看到,寫了個111.txt的檔案,內容為12345 

從kvm上將虛機檔案刪掉,

 

 

可以看到這臺虛機000379 被我手動刪除,也就是多數環境中 虛機丟失的現象

 

而此時,虛機也變為shutoff的狀態

嘗試手動重啟,請求被接受但是沒有反應,虛機依舊是shutoff狀態。

檢視compute日誌,報錯為

OSError: [Errno 2] No such file or directory: '/var/lib/nova/instances/2c0e4c9c-257e-48c1-9b61-13d9ca4bb441/disk.config' 

 

到此,虛機丟失,業務中斷 

 

恢復方法 

由於是卷虛機,先從open stack 中檢視此虛機所用的卷

# cinder list --all |grep $vm_id 

# cinder show $volume_id 

找到如圖用的image id 

最後一步進行虛機重建,此種重建相當於將雲硬碟重新掛給一個虛機 因為儲存都用的是cinder 所以重建nova虛機不會影響資料 

# nova rebuild --image $image_id $vm_id

 

 

 

 至此,虛機又變回了active 驗證業務和資料完整性

 

 

虛機完美恢復,並且資料未丟失。注意:此種方案只能用於卷虛機,也就是虛機儲存不在本地才可以如此恢復。&n