利用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

相关文章
相关标签/搜索