细心的同学可能会注意到,近来Azure创建VM过程中,选择磁盘时会多出一个“使用临时OS磁盘”的选项:
今天,我们就来盘盘这个临时OS磁盘(Ephemeral OS Disk)。
Ephemeral OS Disk简介
众所周知,在谈到云原生架构时,我们通常希望计算与存储分离,计算尽可能无状态化,便于scale-out。典型的如容器,本身并不存储数据,持久化数据都放在持久化卷里。同样,对Azure的VMSS(虚拟机规模集)也一样,性能出现压力时,快速从镜像生成新的VM横向分担,而性能需求下降时,则关闭部分VM来降低成本。
所以对此类计算层,通常并不看重计算资源的数据持久化,配置好固定镜像,快速生成多副本的方式来解决应用持续性及性能需求;而当部分计算资源释放时,最好是对应的计算存储资源(如OS磁盘)也销毁以进一步节省成本。
传统Azure磁盘放置在Storage Cluster,与计算资源分离,并且通过强一致性三副本保证安全;删除VM时,磁盘并不随之删除,显然不能满足。而Ephemeral OS Disk的出现正式为了面对此类需求。
与传统磁盘不同,Ephemeral OS Disk并未放置在Storage Cluster,二是放在VM所在物理Node上,并且只有单副本。所以当VM出现任何原因的Deallocate,Ephemeral OS Disk就会丢失。这个特点正好符合云原生的多副本、快速创建、用完即丢的特点。
下边就来看看Ephemeral OS Disk的具体使用。
Ephemeral OS Disk使用
创建Ephemeral OS Disk
Ephemeral OS Disk必须依赖VM,因此不能独立创建,要在创建VM的过程中创建。下边以创建一台Ubuntu VM为例:
第一步和创建普通VM一样,这里选择D2s v3的机型:
需要注意的是第二步磁盘选择,拉倒最下边,点开高级选项,选择使用“临时OS磁盘”:
然后剩余步骤和普通VM一样,即可创建一台使用Ephemeral OS Disk的VM。
创建完成,登录到VM,检查磁盘:
可以看到,如同普通VM,配置了OS磁盘sda和一块临时盘sdb。
同样我们也可以给VM添加新的数据盘,或将已有未分配给其他VM的磁盘附加给此VM:
注意,Ephemeral OS Disk只能作为OS磁盘,不能作为附加的数据盘。
Ephemeral OS Disk VM关机
如同介绍,Ephemeral OS Disk在VM关机解除分配时会自动释放,检查Ephemeral OS Disk VM的概述:
关机按钮是灰色,只有删除可以操作。
删除VM后检查资源,发现和普通VM删除不一样,OS磁盘也没有了:
Ephemeral OS Disk限制
我们再创建一台使用Ephemeral OS Disk的VM,这次OS选择Windows,其它包括VM的规模保持不变:
再次选择“临时OS磁盘”时,却由于容量不足无法选择:
这是什么原因?
在Azure上创建虚机有两种方式:一是直接使用现成的VHD磁盘(客户化上传的、快照生成的、复制出来的磁盘等);而另一种更广泛的方式是使用镜像生成VM(MarketPlace里的镜像或客户自己制作的镜像),镜像一般也同时确定了OS磁盘的容量,创建VM时会自动根据镜像要求去选择合适容量的磁盘用作OS盘。以Azure的官方镜像为例,Linux一般是31GB,Windows一般是127GB。
但对于使用Ephemeral OS Disk磁盘作为OS盘的VM,OS磁盘有最大容量的限制,这个最大容量不能超过该机型VM的缓存容量(最大不能超过2TB)。不同机型缓存大小可以在VM大小查询:
VM Size
以刚才使用的D2s v3为例,缓存容量为50GiB如下图:
显然不能满足Azure官方windows镜像127GiB的需求。
遇到这种情况如何解决?两种方案:一是选择大Size的机型,二是自己制作客户化镜像,减小对OS盘容量的要求。
除了容量限制,Ephemeral OS Disk和普通OS盘的差异可参加如下:
另一点需要注意的地方,由于Ephemeral OS Disk的VM不能关机,所以无法关机后分离磁盘来调整OS磁盘的容量。因此,如果需要指定OS盘容量,需要用命令行方式在创建VM过程中指定容量:az vm create --name vm01 -g MSDN_Tools --size Standard_D2s_v3 --image UbuntuLTS --ephemeral-os-disk true --os-disk-size-gb 50 --admin-username demo --admin-password Password=123 -l westcentralus
顺便做个小广告,AZ CLI输入az interactive可以启动交互模式,每一步都有提示,妈妈再也不用担心我记不住命令和参数了。。。
登录VM,检查磁盘,可以看到OS盘sda为50GB:
总结
以上简单介绍Ephemeral OS Disk的使用,当然一般不会直接使用官方镜像来创建Ephemeral OS Disk的VM,二是需要自定义镜像。
Ephemeral OS Disk比较符合云原生的架构,重要的是,这种磁盘是免费的!是免费的!是免费的!(重要事情说三遍)
希望对大家有所帮助。