虚拟化的【方便】不在省钱,在快:一台服务器从【订货等六周】变成【点一下三分钟】;而真正改变行业的是它可以批量做——同一套模板克隆 20 台只要十分钟,于是【一次要很多台机器】这件事第一次变得可行。
上一节(4-3)讲了虚拟化【是什么】和【它把机器变成了资源】。这一节接着往下问一句:变成资源之后,为什么就【方便】了?
教材这个标题的副题是【大量服务的实现】——这五个字是关键。虚拟化的价值不在于能把一台变成两台,而在于它把【得到一台服务器】变成了一次可以重复一万遍的操作。一次操作和一万次同样的操作,是两种完全不同的事——后者才需要自动化、才需要编排、才可能出现云。
一、方便在哪三处
把【物理机 → 虚拟机】的变化拆开,方便落在三处:
| 维度 | 物理机时代 | 虚拟化之后 | 为什么这是质变 |
|---|---|---|---|
| 获得 | 采购、到货、上架、装系统 | 从模板起一台,几分钟 | 从【项目】变成【操作】 |
| 复制 | 一台一台装,装完还不完全一样 | 克隆,完全一致 | 从【手艺】变成【工序】 |
| 回收 | 报废或闲置,占着机位 | 关机即归还资源 | 从【资产】变回【资源】 |
三处里最容易被低估的是第二处【复制】。
物理时代,两台服务器【配置几乎一样】是一个需要努力达成的目标——不同的人装、不同的时间装、装完还各自改过。虚拟化之后,克隆出来的机器是逐字节一样的。这件事直接带来了两个后果:
- 测试环境可以和生产环境完全一致——于是【在我这儿是好的】这句借口失效了
- 横向扩容变成了一件确定的事——第 8 台和第 1 台完全没有差别,不会出现【就那一台特别慢】
二、【大量服务的实现】:批量化改变的是什么
这是本节的核心。虚拟化让【拿到服务器】这个动作变得便宜之后,很多原来不成立的做法就成立了:
| 做法 | 每台要 6 周时 | 每台要 3 分钟时 |
|---|---|---|
| 给每个客户单独开一套环境 | 不可能 | 可以 |
| 每次上线都新起一套完整环境,测完就删 | 不可能 | 可以 |
| 临时起 50 台跑一次批处理,跑完释放 | 不可能 | 可以 |
| 每个开发人员一套独立环境 | 排队等 | 各来一套 |
看最后一行:这一栏里的四种做法,都是【用量起伏很大、生命周期很短】的场景。物理机时代它们全都做不了,因为设备的生命周期(几年)和使用需求的生命周期(几天)差得太远。
虚拟化把这两个生命周期解耦了——机器的生命周期是几年,虚拟机的生命周期可以是几小时。这是云能做到【弹性】的机制层面的原因,也是 3-2 那篇【想到就可以立即做到的系统】的技术底座。
三、动手 Demo:切成 8 台,新服务器 3 分钟到位
看到什么算成功:
==================================================================================================
【Demo 4】为什么方便:一台机器切成 8 台,新服务器 3 分钟到位
==================================================================================================
场景:一台 32 核、512 GB 内存的物理服务器,切成 8 台虚拟机,
每台分 4 核、64 GB。
划分核对:8 × 4 核 = 32 核,正好用完
8 × 64 GB = 512 GB,正好用完
这件事在物理时代做不了——你没法把一台服务器掰成八台卖。
虚拟化之后,它变成一次【分配操作】。
再看时间账(这就是 4-4 标题里【大量服务的实现】的意思):
动作 物理服务器 虚拟服务器
--------------------------------------------------------------------------------------------
采购与到货 4~6 周 不需要
上架、布线、通电 半天 不需要
安装操作系统 1 小时 3 分钟(模板)
克隆 20 台同样配置 20 小时 10 分钟
回收再用 报废或闲置 关机即归还
合计(含采购) 约 6 周 约 13 分钟
--------------------------------------------------------------------------------------------
注意最后一行:物理的 6 周里,绝大部分是【等】。
虚拟化消掉的正是这段等待——这才是它被叫作【方便】的原因。
但要记住代价:8 台虚拟机共用一套物理资源。
物理机一停机,8 台一起停;这叫【故障域没有变小】。
所以真正生产用的虚拟化平台,必须配共享存储与 HA 迁移(4-14 会讲)。
读结果:
- 看【合计】那一行的构成:物理的 6 周里,真正干活的时间不到一天,其余全是【等】——等审批、等到货、等上架。虚拟化消掉的正是这段等待,而不是干活的时间。所以它带来的提速是几十倍,而不是百分之几十。
- 看【克隆 20 台】那一行:物理要 20 小时(还是一台台装),虚拟只要 10 分钟。这一行是【大量】两个字的具体含义:一次操作和 20 次操作,在物理时代是两个量级,在虚拟化之后几乎是同一个量级。
30 秒实验
打开任意一家云服务商的【镜像】或【模板】页面(没有账号也可以看文档),做两件事:
- 看它提供多少种预装好的操作系统镜像(通常几百到上千个)。
- 看有没有【自定义镜像】或【快照创建镜像】这类功能。
做完这个你会明白:云服务商卖的不是【一台机器】,而是【一台机器的一个模板】。你选镜像的那一下,做的正是本节说的【克隆】——只不过克隆源不是你的机器,而是它预先准备好的。这就是虚拟化在商业上的直接体现。
常见误区
-
错误:虚拟化最大的好处是省钱。——纠正:最大的好处是【把等待消掉了】。省下的机器确实是钱,但真正改变业务的是【从想法到能用只要几分钟】——这件事让很多以前不敢做的尝试变得可行(3-2 里算过那笔 20 天对 23 分钟的账)。省钱是结果之一,不是主要矛盾。 如果只看省钱,很容易得出【规模足够大时自建更便宜】的结论而错过重点。
-
错误:虚拟机克隆出来的 20 台完全一样,所以它们的行为也完全一样。——纠正:机器一样,连上去的东西不一样。IP 地址、主机名、存储挂载、连接的后端服务,这些都要在起机器时分别配置;如果不配,20 台会抢同一个 IP、连同一个数据库、写同一个目录。所以【克隆】之后必须接一步【个性化】——这也正是后面 4-8(基础设施代码化)要解决的问题。
-
错误:既然开机器这么快,那就不用管已经开了多少台了。——纠正:快恰恰是风险来源。开机器只要三分钟,而记得关掉它、记得它是什么时候开的、记得它是谁开的——这三件事没有任何技术帮你做。于是会出现大量【没人记得的机器】在持续计费(4-8 的 Demo 里就有 5 台这种机器)。开得快必须配上一个能查清家底的东西,否则省下来的钱会从另一个口子漏走。
-
错误:虚拟机可以随便迁移,所以物理机坏了也不怕。——纠正:能迁移的前提是【存储不在本机】和【目标机有资源】。如果虚拟机的磁盘文件就在那台物理机的本地盘上,物理机一坏,虚拟机也带不走——这正是 4-14 要讲共享存储的原因。而且目标物理机必须有足够的剩余资源接住它;集群里每台都跑满了,谁也没地方接。
自测三问(点开对答案)
1. 教材这个标题的副题是【大量服务的实现】,为什么用【大量】而不是【快速】? —— 因为**量的变化会改变做法,快只改变时间**。快一倍、快十倍,你还是只能一次做一台;但**当【做一台】的成本降到接近于零,做一万台就变成了一个新选项**,于是才出现了【每个客户一套环境】【每次上线新起一套】这类以前想都不敢想的模式。**这跟 1-12 里云计算的历史是同一件事:集中化的关键不是机房大,是自动化让边际成本趋近于零。** 2. 【克隆出来的机器完全一致】这件事,为什么对运维特别重要? —— 因为它把【排障】从【找不同】变成了【找相同的之外的东西】。物理时代机器各不相同,出一台机器有问题,第一件事是**逐项对比它和别人有什么不一样**——这个过程极慢且经常没有结论。克隆之后,**所有机器在起始状态上是一样的**,所以问题一定来自【之后的配置或环境】。**这是运维效率的一次质变,而不只是省时间。** 3. 为什么说【开机器变快】需要配一个【查清家底】的机制? —— 因为**快意味着动作多,动作多意味着混乱积累得快**。成本会在三个地方悄悄漏掉:没人记得的闲置机器、开重了的机器、用完没释放的临时环境。**管理成本的上升速度不会低于使用成本的下降速度**——这是 3-12 那节课讲【长期支出】时最重要的一条:云的成本治理不是把价格谈下来,是**先把不该开着的关掉**。- ☐ 下一节(4-5 虚拟化技术① Hypervisor 型:Hypervisor 型、客户机操作系统、主机操作系统)
相关笔记
- 支撑云服务的技术③ 虚拟化技术 —— 上一篇:虚拟化把机器变成了资源
- 想到就可以立即做到的系统 —— 从想法到能用:20 天对 23 分钟
- 云计算的历史与普及的原因 —— 边际成本趋近于零是什么意思
- 云计算中需要长期支出的费用 —— 没有关掉的机器是怎么变成长期支出的
- ☁️ 云计算 · 索引 —— 全课路线图