利用Azure嵌套虛擬化,解決公有云上機器不能啓動的問題

不少時候咱們都會碰到由於意外重啓,機器硬盤被損壞致使沒法啓動,或者是由於各類緣由Windows上的RDP服務啓動不了,Linux上的SSH沒法連接等等問題。碰到這種問題基本上很難解決之前都是將VHD下載回來本地,在本地用Hyper-V啓動虛擬機再來看問題的。可是一個操做系統盤最少都要32G,下載回來的話費時費力。Azure新一代的機器(DV3,EV3)如今支持嵌套虛擬化了,咱們有了更好的辦法解決問題。linux

準備一臺Windows Server 2016,而且安裝Hyper-V

詳細操做可參考這個連接:https://docs.microsoft.com/en-us/azure/virtual-machines/windows/nested-virtualization#enable-the-hyper-v-feature-on-the-azure-vmwindows

將出問題的VM掛載到雲上VM內的Hyper V裏

爲了儘可能不影響原來的環境,咱們能夠基於源VM的操做系統盤,利用Azure CLI建立一個新的磁盤 centos

az disk create -g dev -n centos_diag --source "<你的磁盤resourceid>" --location southeastasia

建立完以後能夠看到下面的界面服務器

image

若是你的環境是Linux由於屬性標記了osType=Linux因此無法直接掛接到Azure 的Windows VM上,先要改一下osType這個屬性spa

用命令:操作系統

az disk update --set osType="Windows" -g dev -n centos_diag

image

而後回到安裝了Hyper V的Windows 2016 VM上找到磁盤,將剛纔新建出來的磁盤掛接上去code

imageimage

在2016 Server上啓動虛擬機

這時候咱們能夠經過RDP登陸到Hyper V的宿主機內了,由於咱們剛掛接了一塊新的磁盤,因此咱們能夠在服務管理界面的磁盤管理裏看到一塊新的磁盤。可是這塊磁盤不是直接給這個服務器用的,爲了讓Hyper V Manager可以找到這塊「物理盤」,咱們須要將磁盤脫機blog

image

在Hyper-v上建立虛擬機,跟着嚮導一直作就好,注意在選擇虛擬硬盤是能夠不用建立虛擬硬盤,由於咱們等一下會掛接:get

image

建立好VM後,咱們再次進入到VM的配置界面,添加這塊「物理硬盤」虛擬機

image
因爲咱們掛接的是「物理盤」,因此沒有建立檢查點的,這時候直接啓動虛擬機的話,會報錯的,因此咱們還須要進行一個配置

image

啓動VM,簡單直接,這時候你想怎麼調整這個服務器就怎麼調整這個服務器,調整完以後,刪掉虛擬機.回到Azure Portal,移除綁定。咱們就能夠基於這個磁盤再把VM啓動起來了。

固然若是你的服務器是linux的話,你還須要再次調用 az disk update命令將屬性修改回去。

image

相關文章
相關標籤/搜索