云计算:云虚拟机
2019-02-28 22:20:38云虚拟机到底是什么?
云虚拟机,顾名思义,是在云端虚拟出的服务器。这个服务器你可以完全地控制它,从底层操作系统到安装上层应用。
站在技术实现的角度来讲,虚拟化技术是云虚拟机服务的核心,它本身是一个非常宏大的技术领域。比如你可能听说过 Xen、KVM、VMWare、HyperV 等等虚拟化产品和技术。云计算中所使用的虚拟化技术,也大都是从这些虚拟化实现方式演化而来的。
云虚拟机的体系结构,用一句话来概括一下,就是全面解耦的计算存储分离的设计思想。
传统的虚拟化,往往是对单一物理机器资源的纵向切割,计算、存储、网络等各方面的能力都是一台物理机的子集。因此,从可伸缩性的角度来说,传统虚拟机存在较大的局限,当物理机的局部出现故障时,也很容易影响到里面的虚拟机。
得益于云端大规模的专属硬件以及高速的内部网络,云虚拟机的组成则有所不同。除了核心的 CPU 与内存部分仍属于一台宿主机外,它的网络、硬盘等其他部分,则可以超脱于宿主机之外,享受云端其他基础设施的能力。大致架构如下图所示:
这里我所给出的仅仅是一个简化加工之后的示意图。实际的云计算内部实现,会远比这个要复杂和精妙。不同的云的内部,也会有许多不同的专用硬件各显神通。
所以,云虚拟机,与其说是由一台宿主机虚拟而成的,不如说是云数据中心中的不同部分一起协,“拼凑”而成的一台机器。这样虚拟出来的机器,我们在使用感受上其实与传统服务器并无不同,但在可扩展性和故障隔离方面,它就具有很大的优势了。
云端“攒机”实战
- 第一步,当然是选择和确认虚拟机的所在区域。
- 随后,就是虚拟机的配置确认环节, 也就是我们通常所说的什么型号、几个核、几 G 内存的选择,配置的选择无疑非常重要。
- 接着,就有你需要注意的一个要点:选择操作系统镜像。
- 然后就是选择存储。
- 最后就是网络和安全组的配置
如何选择虚拟机型号
建立对虚拟机配置的多维认知
完整形容一个虚拟机的核心配置和能力,需要从多个角度来入手和描述。弄懂了这些重要维度的含义,你才能够准确理解一个虚拟机的性能预期和使用场景,从而作出正确的型号选择。这里并非只有决定 CPU 核数和内存大小这么简单。那么,主要是哪几个维度呢?
第一个维度,就是虚拟机的“类型”,或者说“系列”。
一般来讲,云厂商会提供通用均衡型、计算密集型、内存优化型、图形计算型等常见的虚拟机类型。
- 通用均衡型的比例通常是 1:4,如 2 核 8G,这是一个经典的搭配,可用于建站、应用服务等各种常见负载,比如作为官网和企业应用程序的后端服务器等。
- 如果 vCPU 和内存比是 1:2 甚至 1:1,那就是计算密集型的范畴,它可以用于进行科学计算、视频编码、代码编译等计算密集型负载。
- 比例为 1:8 及以上,一般就会被归入内存优化型了,比如 8 核 64G 的搭配,它在数据库、缓存服务、大数据分析等应用场景较为常见。
- 图形计算型很好理解,就是带有 GPU 能力的虚拟机,一般用于机器学习和深度学习模型的训练和推理。随着 AI 的火热,这类机器也越来越多地出现在各种研发和生产环境中。
第二个重要的维度,是虚拟机的“代”(Generation),用来标识这是该系列下第几代的机型。
同类型虚拟机的更新换代,往往首先会带来相应硬件 CPU 的换代提升。随着一代新机型的推出,云厂商一般都会详细说明背后支撑的硬件详细信息。
比如说,AWS 在 2017 年末,在全球发布的新一代 EC2 实例 M5/C5/R5,它们的背后是升级到了 Skylake 架构的 Intel 至强铂金系列处理器,相比前一代采用的 Broadwell 或 Haswell 架构处理器,进步了不小,还支持了可大幅提升矢量和浮点运算能力的 AVX-512 指令集。
再比如,阿里云在 2019 年的云栖大会上,也盛大发布了第六代 ECS,它全线采用了更新一代的 Intel 至强 Cascade Lake 处理器,相较前一代的 Skylake 实例,又在性能、价格优势等各方面有了进一步提升。你可以参考下面给出的截图:
特别注意,正是由于虚拟机所采用的物理 CPU 在不断更新,所以云上虚拟机的单核性能未必相同。有时,虽然两个虚拟机的核数一致,但由于底层芯片的架构和频率原因,性能上可能有较大的差别,我们需要注意在不同机型间做好比较和区分。
l另外,云虚拟机的换代更新并不仅仅只在 CPU 等硬件配置层面,很多时候也伴随着底层软硬件架构的更新和提升,尤其是虚拟化技术的改进。
总的来说,我们消费电子产品时的“买新不买旧”,在云端同样适用。
第三个重要的维度,就到了我们所熟知的实例大小(Size),也就是硬件计算资源的规模。
在描述实例大小时,业界常常使用 medium、large、xlarge 等字眼来进行命名区分,这样的描述基本已经成为事实标准,包括 AWS、阿里云、腾讯云在内的多家主流厂商都在使用。
标准 large 对应的是 2vCPU 的配备,xlarge 则代表 4 个 vCPU,而更高的配置一般用 nxlarge 来表达,其中 n 与 xlarge 代表的 4vCPU 是乘法关系。比如,8xlarge 就说明这是一台 8*4=32vCPU 的机器。
在某些场景下,可能还会看到“metal”或者“bare metal”这样的描述规格的字眼,中文称为“裸金属”。它们就是云服务商尽最大可能将物理裸机以云产品方式暴露出来的实例,主要用于一些追求极致性能,或是需要在非虚拟化环境下运行软件的场景。
理解虚拟机命名规则
虚拟机配置的最重要的三个要素,即类型、代别和实例大小。这样,一个完整的虚拟机型号命名就已经呼之欲出了。我们来看最具代表性的 AWS 命名规则(阿里云采用的也是非常类似的格式):
省钱有哪些妙招
- 省钱妙招之一:使用包年包月机型。
- 省钱妙招之二:使用竞价实例。它主要的限制在于可能会被随时回收。竞价实例能够有较低折扣的本质,是在于牺牲了稳定性。所以,你在使用竞价实例时,还需要注意选择场合。生为竞价实例,就要时刻有“退位让贤”的觉悟和准备。适合的应用场景包括一些后台批量计算、爬虫、性能测试等等。这些无持久化状态、可打断的工作,今后可以第一时间想到用竞价实例来支撑。竞价实例也是按照运行时间来付费的,你可以随时主动关闭和终止。所以,这种方式的动态性还是不错的,你可以随时按需启停。
- 省钱妙招之三:使用突发性能类型。突发性能类型同样拥有指定的 vCPU 数量、内存大小等配置,但其成本显著小于类似配置的其他类型机器。它的主要区别在于,这种类型的虚拟机的 CPU 性能表现,采用的是积分制,其积分会随着时间的推移匀速累加,也会随着算力的输出而被不断消耗。当积分充裕时,CPU 可按需跑满,达到 CPU 性能的 100%,同时会较快地消耗积分;当积分不足或耗尽时,则 CPU 只能发挥出标称值的一小部分性能。这个小部分的比例值,我们称它为性能基准,它与积分匀速累加的速度相一致。
- 省钱妙招之四:使用 ARM 实例。随着移动互联网的高速发展和智能手机的普及,ARM 早已走进千家万户。而且在庞大的手机市场的催化下,ARM 芯片的性能也在不断地取得突破,开始接近甚至达到 x86 处理器的水平。在移动端取得了统治性的地位后,踌躇满志的 ARM 开始进军服务器端。低功耗、高性价比成为它开拓市场的法宝。而极具规模效应的云计算,又可以说是 ARM 服务器芯片的最佳试验田。根据厂商的测算,输出相同性能的 ARM 机型,能够帮助用户节省30%~40% 的成本,这当然也是得益于 ARM 处理器的高性价比特点。所以说,它是我们节约成本的又一个有力手段。
总结
- 云虚拟机是最重要的 IaaS 服务之一,它基于计算存储分离的架构进行构建;
- 云虚拟机的创建过程,由地域、机型、操作系统、存储、网络等多方面选项共同构成;
- 云虚拟机可使用云厂商自有操作系统,与云有较好的适配;
- 网络安全组是保护云虚拟机的网络防火墙,可以同时应用于多个虚拟机。
- 云虚拟机的配置规格主要取决于类型、代别、实例大小三个最重要的维度。
- 实例所属的类型,决定了虚拟机相应的硬件资源配比与专项能力,分别为不同的场景优化设计。你可以根据实际场景来酌情选用,这样既能满足需求又好控制成本。
- 云虚拟机的型号名称一般由类型、代别、实例大小这几项的缩写组合而成,有时还会带有补充后缀。
- 云虚拟机有4个省钱妙招。
思考
- 为了便于连接我们给机器自动分配了公网 IP。在生产环境中为了安全性考虑,应该尽可能避免给虚拟机分配公网 IP,那么这时如何连接到这些机器呢?
- 暂时不再使用的云虚拟机,和传统服务器一样可以“关机”。关机状态的云虚拟机仍然会存在于虚拟机列表中,随时可以再启动。那么,关机之后它还会继续收费吗?