虚拟机自定义镜像(Image)是一个很有用的功能,可以在一台虚拟机上配置好基本的系统环境,然后做个镜像,以后创建虚拟机直接从这个镜像创建,会省掉很多重复的配置工作。

阿里云与UCloud都有这个功能,Azure当然也少不了,这也是云服务商标配的免费服务。

下面我们分享一下我们在Azure中试用“制作虚拟机自定义镜像”功能的经历。

(一)准备工作

创建一台原装虚拟机,假设名叫blogserver1。创建好之后,登录进去进行基本部署环境的配置,比如安装IIS并进行相关配置(支持高并发的IIS Web服务器常用设置)。

(二)在不看任何帮助文档的情况下凭使用直觉进行操作

1、进入VIRTUAL MACHINES -> IMAGES,点击CREATE;输入IMAGE NAME,选择之前创建的blogserver1虚拟机的VHD URL,选中“I have run Sysprep on the virtual machine associated with this VHD.”(见下图)

2、点击Ok按钮。。。创建失败,错误信息如下:

VHD http://..../vhds/blogserver-blogserver1-2013-09-11.vhd 已作为 ID 为 blogserver1-blogserver1-0-201309110319510234 的资源注册到映像存储库。

错误提示信息让人不知所措。

关闭blogserver1虚拟机进行操作,也是同样的错误。

几经折腾无果,放弃。

(三) 在帮助文档下进行操作

帮助文档来自How to Capture an Image of a Virtual Machine Running Windows Server

1、远程桌面登录至虚拟机,进入 C:\Windows\System32\Sysprep\ 目录,运行sysprep.exe,选中Generalize,选择Shutdown(见下图)。

2、点击Ok之后,进行Sysprep操作(见下图)。。。过了一会,远程桌面失去了连接。

3、等了大约20分钟左右(由于没有进度指示,这个等待过程有点难受),在Azure管理控制台看到blogserver1的状态由于Running变为Stopped。

4、这时虚拟机管理控制台的CAPTURE按钮变亮,点击一下,出现如下的画面:

5、指定IMAGE NAME为webserver,选中“I have run Sysprep on the virtual machine”,然后看到IMPORTANT NOTE:

The virtual machine will be deleted when the image is captured.

由于上午发了一篇不专业的临时工水准的随笔——云计算之路-试用Azure:每一次删除都让人如此心惊,才知道了删除虚拟机的真相,现在就可以坦然面对了。

6、片刻工夫,虚拟机创建完毕。

7、从这个名为webserver自定义镜像创建虚拟机blogserver2。

8、创建成功

(三)恢复原装虚拟机blogserver1

用于制作镜像的blogserver1虚拟机在创建镜像时被删除了,现在通过“CREATE A VIRTUAL MACHINE from MY DISKS”把它恢复起来。

当blogserver1虚拟机正常运行之后,用远程桌面进行登录,结果怎么登录也登录不上,每次都提示用户名/密码错误。为了避免再次发临时工水准的文章,经过了多次确认,确认用户名/密码没有错。难道在制作镜像进行Sysprep的过程中,Windows管理员帐户的密码被重置了?而我们无法验证这一点,因为在Azure中无法重置虚拟机的管理员密码。只能让这台虚拟机报废。

(四)试用感言

我们设想的制作虚拟机自定义镜像的功能应该是这样的:选择一台虚拟机,点击“制作镜像”,然后去一下洗手间,回来之后“镜像”就创建好了。

创建镜像竟然把运行中的原装虚拟机给删除了,恢复之后还连不上,也就是说虚拟机要为制作镜像“献身”。在阿里云没遇到过,在UCloud也没碰到过,只有Azure,而且在阿里云/UCloud中制作镜像时对当前这台正常运行的虚拟机没有任何影响。Azure在这个功能的设计上需要改进。

另外,我们的Azure试用系列博文只是表达我们试用时的真正感受,并没有说我们的试用是专业的。微软也没有说Azure只适合专业人员用,不适合临时工用。作为一名用户,发现问题就吐槽,也不为过。好的产品不是赞美出来的,而是在解决用户各种刁钻的问题中成长出来的。

云计算之路-试用Azure:制作虚拟机自定义镜像的更多相关文章

  1. 云计算之路-试用Azure:上不了高速的跑车,无法跨Cloud Service的DNS服务器

    从阿里云的踩坑大师,到Azure的抹黑大师,我们似乎成了云计算负面用户的典型,可是我们还是忍不住想表达自己真实的使用感受.如果有错误的地方,欢迎大家批评! 在Azure上建好虚拟网(Vitual Ne ...

  2. 云计算之路-试用Azure:数据库备份压缩文件在虚拟机上的恢复速度测试

    测试环境:Windows Azure上海机房,虚拟机配置为大型(四核,7 GB 内存),磁盘情况见下图. 数据库备份压缩文件大于为12.0 GB (12,914,327,552 bytes),放置于T ...

  3. 云计算之路-试用Azure:如何建立虚拟机之间的内网连接

    在阿里云上,同一个帐户创建的所有虚拟机(云服务器)之间的内网是直接连通的.而Azure则完全不一样,一开始使用时有点不知所措,后来摸索出来了——在Azure中只有处于同一个虚拟网络(Virtual N ...

  4. 云计算之路-试用Azure:竟然无法重置虚拟机的管理员密码

    在忘记管理员密码的情况下,可以远程重置服务器的管理员密码是云计算服务的一个优势,这是使用自己的物理服务器无法实现的. 但是,在使用Azure的时候,我们找遍Azure管理控制台也没找到可以重置虚拟机( ...

  5. 云计算之路-试用Azure:拐弯抹角的负载均衡

    负载均衡是云服务商标配的免费服务.阿里云的对应产品叫SLB,UCloud的对应产品叫ULB,操作都很简单直观,进入负载均衡管理控制台,添加负载均衡,选择相应的虚拟机即可. 而Azure则完全不一样,在 ...

  6. 云计算之路-试用Azure:一次失败的SQL Server向SQL Azure的迁移尝试

    如果数据库用的是SQL Server,那SQL Azure无疑是最吸引人的地方之一.在测试了虚拟机磁盘IO之后,我们迫不急待地进行了SQL Azure的测试. (一) 首先进入manage.windo ...

  7. 云计算之路-试用Azure:搭建自己的内网DNS服务器

    之前我们写过一篇博文谈到Azure内置的内网DNS服务器不能跨Cloud Service,而我们的虚拟机部署场景恰恰需要跨多个Cloud Service,所以目前只能选择用Azure虚拟机搭建自己的内 ...

  8. 云计算之路-试用Azure:每一次删除都让人如此“心惊”

    这篇博文吐槽的是Azure(Virtual Machine)的虚拟机删除功能. 在阿里云中,没有提供直接的虚拟机删除操作,如果不用某台虚拟机,“停止”即可,过期一段时间后会自动释放(这里的释放相当于删 ...

  9. 云计算之路-试用Azure:Azure内置的负载均衡是四层的

    当初迁移至阿里云遇到的第一个问题是在程序中通过Request.UserHostAddress得到的是负载均衡(SLB)的内网IP,而不是用户的真实IP.真实IP存储在服务器变量HTTP_X_Forwa ...

随机推荐

  1. VS Code开发技巧集锦

    2016 年 9 月 23-24 日,由 CSDN 和创新工场联合主办的“MDCC 2016 移动开发者大会? 中国”(Mobile Developer Conference China)将在北京? ...

  2. 【转】Django中的cookie与session

    转自:https://www.cnblogs.com/chenchao1990/p/5283725.html cookie与session的实现原理 HTTP被设计为”无状态”,每次请求都处于相同的空 ...

  3. 将cmake文件转化为vs方便代码阅读与分析

    下面通过“chengxuyuancc”同学的图来说明.通过cmake将winafl cmake编译方式转化为vs2015,方便源码阅读与分析. 1.到官网下载cmake软件.启动图形版 2.选择源码目 ...

  4. 88. Merge Sorted Array【Easy】【双指针-不用额外空间归并两个有序数组】

    Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note: T ...

  5. 洛谷P4145 上帝造题的七分钟2/花神游历各国 [树状数组,并查集]

    题目传送门 题目背景 XLk觉得<上帝造题的七分钟>不太过瘾,于是有了第二部. 题目描述 "第一分钟,X说,要有数列,于是便给定了一个正整数数列. 第二分钟,L说,要能修改,于是 ...

  6. 【前端必备】一、HTML篇

    1.文档类型是什么概念,起什么作用?    <!DOCTYPE> 声明此标签可告知浏览器文档使用哪种 HTML 或 XHTML 规范.   该标签可声明三种 DTD 类型,分别表示严格版本 ...

  7. Bzoj 4524 [Cqoi2016]伪光滑数(堆)

    题面 题解 先筛出$<128$的质数,很少,打个表即可 然后钦定一个质数最大,不断替换即可(丢进大根堆里面,然后取出一个,替换在丢进去即可) 具体来说,设一个四元组$[t,x,y,z]$表示当前 ...

  8. [Codeforces #210] Tutorial

    Link: Codeforces #210 传送门 A: 贪心,对每个值都取最大值,不会有其他解使答案变优 #include <bits/stdc++.h> using namespace ...

  9. 【区间dp】【记忆化搜索】UVALive - 3516 - Exploring Pyramids

    f(i,j)=sum(f(i+1,k-1)*f(k,j) | i+2<=k<=j,Si=Sk=Sj). f(i+1,k-1)是划分出第一颗子树,f(k,j)是划分出剩下的子树. #incl ...

  10. ArrayList之扩容与迭代器

    1. 扩容 ArrayList扩容包括ensureCapacity(对外开放)和ensureCapacityInternal(内部隐式调用)两个接口: 1' 两者都调用ensureExplicitCa ...