目前中国区 Azure 也已经可以使用命令制作托管镜像了。但对于托管镜像和非托管镜像,就像托管磁盘和非托管磁盘一样,很多人可能一开始无法理解。这里就此进行了一个简单对比:
通过对比测试,这里总结了这两者的不同:
非托管镜像 | 托管镜像 | |
---|---|---|
创建镜像 | Save-AzureRmVMImage | New-AzureRmImageConfig |
New-AzureRmImage | ||
查找镜像 | 无,用户需要自己记录(注 1) | Get-AzureRMImage |
删除镜像 | 无,直接删除存储账号中的 VHD 文件即可(注 1) | Remove-AzureRMImage |
更新镜像 | 无 | Update-AzureRMImage |
镜像位置 | 虚拟机相同的存储账号,包括 OS 和数据磁盘(注 2) | 托管磁盘,包括 OS 和数据磁盘(注 7) |
创建镜像的来源 | 从虚拟机创建(注 3) | 虚拟机(注 6) |
通用化后的 OS 磁盘 | ||
通用化后的 OS 磁盘的快照 | ||
使用镜像创建新虚拟机 | 只能在同存储账号中创建为普通虚拟机(注 4) | 创建为托管磁盘虚拟机 |
数据磁盘 | 需手动添加数据磁盘(注 5) | 部署时自动创建并挂载数据磁盘 |
Note
注 1:创建非托管镜像后,镜像会保存在虚拟机所在存在账号中名为 system 的容器下,但无法通过命令行或者门户查看了用户做了哪些镜像。由于对于非托管镜像的磁盘文件平台不会加锁,因此,可能造成误删的情况。
Note
注 2:对于包含数据盘的虚拟机,创建镜像时也会捕获数据磁盘。并且会同时在镜像保存位置生成一个 JSON 文件,用于演示如何使用模板使用镜像创建新的虚拟机。
Note
注 3:只能为非托管磁盘创建的虚拟机创建非托管镜像。
Note
注 4:如果要将新的虚拟机创建在不同存储账号,可以将镜像文件复制到目标存储账号,引用目标存储账号中的镜像文件 URI 进行创建。
Note
注 5:非托管镜像在创建新虚拟机时,如果原镜像包括数据磁盘,需要通过 JSON 模板或者 PowerShell 手动指定引用的数据磁盘镜像。否则默认不会附加数据磁盘。如果您 Linux 系统中指定了要挂载这些数据磁盘,在创建时会出现超时,无法启动的现象。
Note
注 6:虚拟机可以为托管磁盘虚拟机,也可以是非托管磁盘虚拟机。
Note
注 7:托管镜像在 Azure 门户中可以直接查看。其类型显示为 Image。
参考链接
立即访问http://market.azure.cn