利用Azure嵌套虚拟化,解决公有云上机器不能启动的问题
很多时候我们都会碰到因为意外重启,机器硬盘被损坏导致无法启动,或者是因为各种原因Windows上的RDP服务启动不了,Linux上的SSH无法链接等等问题。碰到这种问题基本上很难解决以前都是将VHD下载回来本地,在本地用Hyper-V启动虚拟机再来看问题的。但是一个操作系统盘最少都要32G,下载回来的话费时费力。Azure新一代的机器(DV3,EV3)现在支持嵌套虚拟化了,我们有了更好的办法解决问题。
准备一台Windows Server 2016,并且安装Hyper-V
将出问题的VM挂载到云上VM内的Hyper V里
为了尽量不影响原来的环境,我们可以基于源VM的操作系统盘,利用Azure CLI创建一个新的磁盘
az disk create -g dev -n centos_diag --source "<你的磁盘resourceid>" --location southeastasia
创建完之后可以看到下面的界面

如果你的环境是Linux因为属性标记了osType=Linux所以没法直接挂接到Azure 的Windows VM上,先要改一下osType这个属性
用命令:
az disk update --set osType="Windows" -g dev -n centos_diag

然后回到安装了Hyper V的Windows 2016 VM上找到磁盘,将刚才新建出来的磁盘挂接上去


在2016 Server上启动虚拟机
这时候我们可以通过RDP登录到Hyper V的宿主机内了,因为我们刚挂接了一块新的磁盘,所以我们可以在服务管理界面的磁盘管理里看到一块新的磁盘。但是这块磁盘不是直接给这个服务器用的,为了让Hyper V Manager能够找到这块“物理盘”,我们需要将磁盘脱机

在Hyper-v上创建虚拟机,跟着向导一直做就好,注意在选择虚拟硬盘是可以不用创建虚拟硬盘,因为我们等一下会挂接:

创建好VM后,我们再次进入到VM的配置界面,添加这块“物理硬盘”

由于我们挂接的是“物理盘”,所以没有创建检查点的,这时候直接启动虚拟机的话,会报错的,所以我们还需要进行一个配置

启动VM,简单直接,这时候你想怎么调整这个服务器就怎么调整这个服务器,调整完之后,删掉虚拟机.回到Azure Portal,移除绑定。我们就可以基于这个磁盘再把VM启动起来了。
当然如果你的服务器是linux的话,你还需要再次调用 az disk update命令将属性修改回去。

利用Azure嵌套虚拟化,解决公有云上机器不能启动的问题的更多相关文章
- 公有云上构建云原生 AI 平台的探索与实践 - GOTC 技术论坛分享回顾
7 月 9 日,GOTC 2021 全球开源技术峰会上海站与 WAIC 世界人工智能大会共同举办,峰会聚焦 AI 与云原生两大以开源驱动的前沿技术领域,邀请国家级研究机构与顶级互联网公司的一线技术专家 ...
- 公司机器(线上机器)启动ftp任务的命令
这个命令: /usr/local/proftp/sbin/proftpd 注意要在root账户,并且kill掉原来的同名进程.
- 在Windows Azure公有云环境部署企业应用
作者 王枫 发布于 2014年4月5日 企业内部应用转换为在线服务 Windows Azure已经成为众多IT服务提供商们热议的话题,其中,有的认为只有提供互连网用户服务的应用才适合放在公有云环境内运 ...
- ASP.NET 5系列教程 (四):向视图中添加服务和发布应用到公有云
向视图中添加服务 现在,ASP.NET MVC 6 支持注入类到视图中,和VC类不同的是,对类是公开的.非嵌套或非抽象并没有限制.在这个例子中,我们创建了一个简单的类,用于统计代办事件.已完成事件和平 ...
- 基于puppet分布式集群管理公有云多租户的架构浅谈
基于puppet分布式集群管理公有云多租户的架构浅谈 一.架构介绍 在此架构中,每个租户的业务集群部署一台puppet-master作为自己所在业务集群的puppet的主服务器,在每个业务集群所拥 ...
- 西瓜哥:公有云也“All-Flash”?
本文转载自 高端存储知识 Gartner在2018年Market Insight: Preparing for the SSD Rise and HDD Demise一文中指出:当闪存介质降到HDD每 ...
- [转帖]Gartner预测:2019年全球公有云规模达2143亿美元
Gartner预测:2019年全球公有云规模达2143亿美元 https://news.cnblogs.com/n/623341/ 近日,全球领先的信息技术研究和顾问公司 Gartner 发布的最新数 ...
- 在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(一)
(一)前言 本文主要介绍了实践部署AzurePack的Website Cloud的过程.在部署之前, 首先要对AzurePack有个基本的了解. Azure Pack是微软的私有云方案,具有弹性. ...
- “云中论道”之——使用开源技术和Azure公有云服务快速搭建云端IoT解决方案(上)
“云中论道”技术课堂第一课开讲啦!微软各路技术咖们齐聚一堂,为大家带来干货不断!作为“云中论道“课堂的开课之作,我们首先邀请到了微软Azure专家级的架构师:槐长清,他为我们带来了关于“使用开源技术和 ...
随机推荐
- 史上最全的判断android,ios还是ipad访问,附上多种语言的实现方式
js判断: (function(a,b){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elain ...
- linux 巨页使用测试
这里记录测试巨页的mmap使用,测试代码和<linux 巨页使用测试以及勘误1>类似. 跟踪脚本如下: probe kernel.function("hugetlb_reserv ...
- 谈Ajax的Get和Post的区别
Get方式: 用get方式可传送简单数据,但大小一般限制在1KB下,数据追加到url中发送(http的header传送),也就是说,浏览器将各个表单字段元素及其数据按照URL参数的格式附加在请求行 ...
- CSS学习(一)
/*</br> * color</br> * background-color background-image background-repeat background-po ...
- mybatis自动生成java代码
SSM框架没有DB+Record模式,写起来特别费劲,只能用下面的方法勉强凑合. 上图中,*.jar为下载的,src为新建的空白目录,.xml配置如下. <?xml version=" ...
- elasticsearch java和_head插件对索引文档的增删改查
利用head插件: 1,创建索引并添加一条数据(yananindex:索引名称,yanantype:索引类型,1:索引id) 2.修改索引数据(索引id1不变,_version是对该索引数据执行了几次 ...
- nc简单应用
传输本地文件test到172.19.135.12: 172.19.135.12接收端 nc -l 1234 > test 本地为 发送端 nc 172.19.135.12 1234 & ...
- Hibernate (三)
1 一对多的单向 示例:一个已经存在的学生,新建一个班级,然后将该学生加入到该班级之下 设置inverse="false" <?xml version="1.0&q ...
- IO (一)
1 IO(Input Output)流概述 IO流用来处理设备之间的数据传输. java对数据的操作是通过流的方式. java用于操作流的对象都在IO包中. 流按操作数据分为两种:字节流和字符流. 流 ...
- 【SqlServer系列】浅谈SQL Server事务与锁(上篇)
一 概述 在数据库方面,对于非DBA的程序员来说,事务与锁是一大难点,针对该难点,本篇文章视图采用图文的方式来与大家一起探讨. “浅谈SQL Server 事务与锁”这个专题共分两篇,上篇主讲事务及 ...