王阿姨准备开一家餐厅,后厨怎么搭让她犯了难。第一种方案:请来一位自带整套镀铜锅具的大厨团队,领头的是 Ceph,由一位叫 Rook 的总管负责把设备装进厨房——模块化、专业、威力大,但光调试灶火就得好几天。第二种方案:搬来一台专为小厨房设计的一体化智能料理机 Longhorn,扫码开机、插电即用,蒸烤炒炸全能,还带一块可视化面板。大厨方案上限高,千人宴也能扛;料理机方案省心,日常翻台足够。存储选型也是这个理:Rook 把老牌分布式存储 Ceph 编排进 Kubernetes,强大但复杂;Longhorn 是土生土长的云原生块存储,简单但上限有限。本文就用这套“大厨 vs 料理机”的视角,带你走一遍架构、部署、性能、备份与扩容的对比,最终学会根据自家“菜单”选对存储方案。

岗位关联

掌握 Rook 与 Longhorn 的选型能力,能帮你在 Kubernetes 有状态应用落地时快速做出存储决策,避免盲目选型导致的性能与运维事故,是云原生运维与架构师的核心技能。

目录
  1. 可视化演示
  2. 1. 初识两大方案
  3. 2. 架构设计对比
  4. 3. 部署与运维
  5. 4. 性能与高可用
  6. 5. 备份与快照
  7. 6. 扩缩容机制
  8. 7. 选型决策指南
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示Rook/Ceph的Operator-CRD-MON-OSD架构与CRUSH数据分布、Longhorn的Engine-Replica微服务结构及快照备份链路,对比两者在规模、性能、易用性等维度的差异。

本节配有交互动效(进入视口后自动加载,约 3KB)。

Rook/Ceph云原生存储架构 Operator监听CRD创建CephCluster MON维护集群拓扑与法定人数 CRUSH(PG)→OSD PG经CRUSH映射到多个OSD

1. 初识两大方案

王阿姨先见了两拨供应商。第一位自称“Rook“的中介拿来一张大厨团队阵容表:领头的是 Ceph,底下有前厅经理、灶台师傅、后勤调度,分工明确,还承诺”只要给我几个机柜,什么菜系都能做“。第二位抱来一台机器,机身刻着”Longhorn“,销售说:”这是专为小厨房设计的一体机,接上电、连上厨房的中控系统(Kubernetes)就能干活,蒸烤炒炸全都内置。”

两拨人都没忽悠王阿姨。Rook 并不是存储软件本身,而是一位“编排管家”,它的本职工作是把 Ceph 这套老牌分布式存储“部署并管理”到 Kubernetes 里:创建监视器、调度存储进程、生成 StorageClass。Longhorn 则从诞生那天起就是 Kubernetes 的原生居民,由 Rancher(现属 SUSE)开源,自带卷引擎、副本管理、Web 界面和备份功能。

接入方式上,两者都用 CSI 标准接口为 Pod 提供存储卷。区别在于能力半径:Rook/Ceph 能同时提供块存储(RBD)、文件存储(CephFS)和对象存储(RGW),适合“一厨多做”;Longhorn 主打块存储,聚焦“把一道菜做到极致简单”。云原生存储圈里通常用四个维度给方案打分:性能、易用性、成本、生态。

王阿姨恍然大悟:大厨能办宴席也能做小炒,料理机也是。关键不是谁“更厉害”,而是她家的“菜单”(业务类型)需要哪种后厨。先别急着掏钱,把四个维度想清楚再决定。

Score=w1×Perf+w2×Simple+w3×Cost+w4×Eco,∑i=14wi=1\displaystyle \text{Score} = w_1 \times \text{Perf} + w_2 \times \text{Simple} + w_3 \times \text{Cost} + w_4 \times \text{Eco}, \quad \sum_{i=1}^{4} w_i = 1
综合评分等于四个维度分别打分后,按各自的权重加权求和;权重代表这家餐厅更看重什么——是翻台率(性能)还是省人工(易用性)。
  1. Score 综合评分一个存储方案的总适配分,由四类因素加权求和得到,得分高者优先。
    Score\text{Score}
  2. 权重 w_i每类因素的重要性占比,所有权重相加必须等于 1,比如性能给 0.4、易用给 0.3。
    w1+w2+w3+w4=1w_1 + w_2 + w_3 + w_4 = 1
  3. 因素打分Perf、Simple、Cost、Eco 分别对性能、易用性、成本、生态按 1-10 打分,再与权重相乘后累加。
    Perf,Simple,Cost,Eco\text{Perf}, \text{Simple}, \text{Cost}, \text{Eco}

2. 架构设计对比

大厨团队分工很细:前厅经理记菜谱和空位(MON 监视器),灶台师傅掌勺落盘(OSD 对象存储守护进程),后勤调度管报表和资源(MGR 管理器);Rook 总管用一个统一遥控器(Operator)安排他们上班打卡。智能料理机则是一体化设计:主控芯片(Engine)负责每一道菜,保鲜盒(Replica)存食材副本,设备管家(Instance Manager)管插座和用电。

Ceph 是一套完整的分布式系统:MON 通过选举机制保证集群元数据一致,OSD 负责真实数据落盘,MGR 提供监控指标与数据均衡。Rook 的核心贡献是用 CRD(自定义资源)把这些组件声明式地管理起来——你想要 3 个 MON、30 个 OSD,写进 YAML 就行,Rook 总管照单执行。

Longhorn 的架构更“轻”:每个卷由一个独立 Engine 负责 I/O,数据通过 Engine 写入多个 Replica;Instance Manager 把存储进程隔离在独立 Pod 里,Longhorn Manager 则负责全局调度。控制面上,Rook 的 Ceph 需要 MON 仲裁(重),Longhorn 的控制面就是一个轻量管理器(轻)。

大厨的分工协作适合复杂大场面,但人一多管理就难;料理机把活全部包圆,简单可靠,只是每道菜都要占一个“灶位”(每个卷一个 Engine,会带来额外开销)。架构基因决定了它们未来的运维脾气。

F=R−1\displaystyle F = R - 1
无论 Ceph 还是 Longhorn,默认都存 3 份副本。只要能剩下 1 份好数据,服务就能继续读,因此最多可容忍 R-1 个副本同时损坏。
  1. R 副本数同一份数据保存的份数,Rook 的 Ceph 与 Longhorn 默认都是 3 份,对应 3 个保鲜盒。
    R=3R = 3
  2. 可容忍故障数 FR 份副本中只要有 1 份幸存就能继续服务,所以最多能坏 R-1 份。
    F=R−1=2F = R - 1 = 2

3. 部署与运维

请大厨团队要提前排班、清点厨具、开火调试,还要给大厨安排宿舍;买料理机则拆箱插电、连上 wifi 就行。部署体验上,两者差距就像一个天一个地。

两者都支持用 Helm 或 Operator 方式安装,但前置条件不同。Rook 需要先规划 Ceph 集群拓扑:至少 3 个 MON 形成仲裁,OSD 所在节点要预留裸盘或块设备,还要考虑网络分区(public/cluster network)。Longhorn 简单得多:装好 Helm Chart,给节点加个存储标签,再创建 StorageClass 就能开始创建卷。

资源占用上,Ceph 常驻进程多,MON、MGR、OSD 都要吃内存,生产环境通常建议每个存储节点 16GB 以上内存;Longhorn 的 Manager 和 UI 很轻,普通 4 核 8G 小节点也能跑。升级策略上,Rook 要按 CRD → MON → OSD 的顺序分阶段升级,每步都要观察集群状态;Longhorn 走滚动升级,风险小得多。

王阿姨认真算了笔账:大厨团队工资高、事儿多,但确实镇得住大场面;料理机便宜省心,不过遇到千人宴可能火力不足。部署只是开始,漫长的运维才是真正的“工资单”。

M≥3\displaystyle M \ge 3
Ceph 的 MON 监视器必须至少 3 个,才能形成“少数服从多数”的仲裁;少于 3 个,集群就不知道谁说了算。
  1. M 监视器数量Ceph 集群用 MON 组成决策小组,所有元数据操作都要大家投票。
    MM
  2. 多数仲裁条件节点数必须是奇数且至少 3,才能容忍 1 台 MON 故障后仍有半数以上存活。
    M≥3,⌊M/2⌋+1M \ge 3, \quad \lfloor M/2 \rfloor + 1

4. 性能与高可用

大厨火力猛、颠勺快,一道菜几十秒出锅;料理机火力温和,但火候稳定不容易失手。存储世界的性能对比也类似:Ceph 调优后吞吐上限极高,Longhorn 默认配置下表现稳定可预测。

性能受副本数、网络带宽、磁盘类型共同影响。Ceph 支持大规模 OSD 并行写入,通过调整池的 PG 数量、副本数、网络 QoS 可以逼近硬件极限;Longhorn 默认走“引擎-副本”模型,多副本同步写会带来额外时延,但对常规数据库和 Web 负载完全够用。高可用方面,两者都默认三副本,且支持故障域(failure domain)约束——把副本分散到不同节点、机架甚至可用区。

故障恢复上,Ceph 的 PG 会自动重新均衡,坏盘后数据自动迁移到新 OSD;Longhorn 检测到副本损坏后会在健康节点自动重建。理解性能要先分清两个指标:IOPS(每秒读写次数)和吞吐量(每秒传输字节数),随机读写看 IOPS,顺序读写看吞吐。

王阿姨想明白了:办婚宴需要大厨的猛火快炒,平日快餐料理机绰绰有余。先搞清楚自己是“婚宴”还是“快餐”,再谈性能指标,否则再高的 IOPS 也只是纸上数字。

T=I×S\displaystyle T = I \times S
吞吐量等于 IOPS 乘以单次 I/O 大小。比如每秒 10 万次、每次 4KB,理论上限就是 400MB/s。
  1. I 每秒 I/O 次数IOPS 衡量随机读写能力,数据库小查询最关心它。
    II
  2. S 单次 I/O 大小每次读写的数据量,常见块大小是 4KB 或 1MB。
    S=4KBS = 4\text{KB}
  3. 吞吐量 T两者相乘得到每秒传输总量,顺序读写场景最接近理论值。
    T=I×ST = I \times S

5. 备份与快照

食材要留“试菜记录”,备份就像给每道菜拍照片存档。但聪明的大厨不会每拍一张照片就重新做一桌菜,而是只记录“改动了什么”——这就是写时复制(COW,Copy-on-Write)的智慧。

快照不是把整块盘复制一份,而是建立一个“时间指针”:数据块第一次被修改前,先把旧数据复制到快照区,之后快照与源卷共享所有未变化的数据块。Ceph RBD 原生支持快照、克隆与分层镜像,还能搭配 RBD Mirror 做跨集群异步复制;Longhorn 每个卷都支持快照,Web UI 里一键创建、定时快照,甚至可以直接把快照备份到 S3/NFS 对象存储。

恢复能力要看两个指标:RPO(允许丢多少数据)和 RTO(多久恢复业务)。快照恢复只在秒级到分钟级,但要真正防“机房着火”,必须把快照传到远端——Longhorn 的“快照 → 备份到对象存储”是一条龙能力,Ceph 则通常要额外搭建备份链路。

王阿姨发现,用“只记改动”的办法,留 7 天的“试菜记录”也不会撑爆冰箱。但她也记住了销售的一句话:快照和菜在同一间厨房里,厨房塌了照片也没了——真正重要的菜单,还得复印一份存在别处。

Ssnap=V×C×N\displaystyle S_{\text{snap}} = V \times C \times N
快照占用空间估算:卷容量 × 数据日变化率 × 保留快照份数。变化率越高、留的快照越多,占的额外空间越大。
  1. V 卷大小被快照的存储卷总容量,是估算的基数。
    VV
  2. C 日变化率每天被修改的数据占比,通常只有 1%-10%,而不是整盘重拷。
    C=5%C = 5\%
  3. N 保留快照数快照份数越多,累计的差异块越多,占空间线性增长。
    Ssnap=V×C×NS_{\text{snap}} = V \times C \times N

6. 扩缩容机制

餐厅生意好了要加桌、加人,后厨也得跟着升级。存储扩容有两种姿势:给厨房加灶台(存储节点扩容),或者把一口锅换成大锅(卷在线扩容)。

Rook 扩容主要是往集群里添加 OSD:新节点准备好裸盘,Ceph 自动把部分 PG 迁移过去完成再均衡,期间业务不中断。Longhorn 扩容更“无感”:给新节点打上存储标签,副本会自动调度过去;卷扩容则通过 CSI 的在线扩容能力完成,PVC 修改容量声明后等几秒就生效。

容量规划上有个常见坑:不要只看裸容量,要按“副本数 × 数据量”估算。三副本意味着 1TB 业务数据至少占用 3TB 物理空间,还要预留再均衡和快照的余量。理想情况下,存储吞吐随节点数线性增长,但实际会受网络瓶颈和副本写放大影响。

加桌容易,但桌与桌之间要留过道——存储扩容也要预留“均衡通道”(网络带宽和 PG 余量),否则加再多灶台,上菜速度还是卡在传菜走廊上。

Ttotal≈N×Tnode\displaystyle T_{\text{total}} \approx N \times T_{\text{node}}
理想情况下,总吞吐量约等于节点数乘以单节点吞吐。现实世界网络会成为瓶颈,所以是“约等于”而不是“等于”。
  1. T_node 单节点吞吐每台存储节点单独的服务能力,取决于磁盘和网卡。
    TnodeT_{\text{node}}
  2. N 节点数节点越多,理论上总吞吐越高,扩容是分布式存储的核心优势。
    Ttotal=N×TnodeT_{\text{total}} = N \times T_{\text{node}}

7. 选型决策指南

王阿姨最终拍板时,看的是四件事:客流量(集群规模)、菜系档次(性能要求)、厨师工资预算(成本)、有没有信得过的厨师长(团队经验)。

选型没有银弹。业界通常这样分:如果集群规模大(几十到上百节点)、需要多种存储类型(块 + 文件 + 对象)、对性能有极致要求,Rook/Ceph 是更稳妥的选择;如果集群规模中等、主要跑 MySQL/Web 等常规有状态应用、团队不想养专职存储运维,Longhorn 的省心和 Web UI 优势非常明显。

具体决策建议用 TCO(总拥有成本)视角,而不是只对比性能数字:硬件成本只是一部分,运维人力、升级停机损失、故障处理时间会随时间累积放大。最后,无论倾向哪边,都建议先在测试环境做一轮 POC 压测,用自己的业务模型验证,再上生产。

王阿姨签合同那天说了句大实话:没有最好的厨房,只有最合适的菜单。存储选型也一样——Rook 是给“大饭店”准备的中央厨房,Longhorn 是让“小馆子”省心的智能料理机,弄清自家菜单,答案自然浮现。

TCO=Chard+Cops×T\displaystyle \text{TCO} = C_{\text{hard}} + C_{\text{ops}} \times T
总拥有成本 = 一次性硬件投入 + 单位时间运维成本 × 运行周期。时间越长,运维成本占比越高,这正是 Longhorn 的“省心”价值所在。
  1. C_hard 硬件成本磁盘、服务器、网络设备的一次性购置费用。
    ChardC_{\text{hard}}
  2. C_ops 单位运维成本每月人力、监控、故障处理的平均开销,Ceph 明显高于 Longhorn。
    CopsC_{\text{ops}}
  3. T 运行周期按年的运行时长,运维成本随时间复利式累积。
    TCO=Chard+Cops×T\text{TCO} = C_{\text{hard}} + C_{\text{ops}} \times T

AI 应用场景

场景 1:大模型训练平台的共享数据池

阶段:模型训练(数据集共享与 Checkpoint 存储)

解决的问题:传统方式给每台 GPU 训练机挂 NFS,性能差、配置繁琐。AI 平台希望多节点同时读取同一份数据集,并频繁落盘大尺寸 Checkpoint。Rook/Ceph 的 CephFS 天然支持多节点共享与高吞吐,配合 RBD 为数据库提供高性能块卷。

具体案例:某自动驾驶公司 50 节点 GPU 训练集群,用 Rook 部署 3 个 MON + 30 个 OSD 的 Ceph 集群,挂载 CephFS 作为数据集目录,训练 Checkpoint 写入 RBD 块卷,训练中断可秒级恢复。

场景 2:边缘 AI 推理的小集群存储

阶段:AI 应用部署(边缘推理服务的数据底座)

解决的问题:边缘机房节点少、没有专职存储团队,传统分布式存储太重。需要一个轻量、可视化、能自动备份的块存储。Longhorn 一键部署 + Web UI 正好匹配这种“小厨房”。

具体案例:某零售企业 3 节点边缘 K8s 集群(每节点 4 核 16G),运行视频推理服务和 MySQL。用 Longhorn 提供 3 副本块卷,硬盘故障时自动重建,运营人员通过 UI 每周检查快照和备份状态。

场景 3:AI 风控系统的容灾备份

阶段:数据备份与容灾(合规留存与恢复)

解决的问题:风控系统数据不能丢,但快照存在集群内部,集群整体故障时无能为力;需要把备份传到异地对象存储,并保证 RTO 可控。

具体案例:某金融 AI 风控平台为 MySQL 卷开启 Longhorn 定时快照,每 6 小时备份到 S3 兼容的对象存储,恢复演练实测 30 分钟拉起全量数据。

Python 演示

python36 行
# -*- coding: utf-8 -*-# 云原生存储选型评分脚本: 用正文的加权评分模型对比 Rook 与 Longhorn  def recommend(scale_score, perf_score, ops_score, budget_score, has_ceph_exp):    # 四个维度按 1-10 打分, 权重来自选型决策评分表    rook = scale_score * 0.35 + perf_score * 0.30 + ops_score * 0.05 + budget_score * 0.30    longhorn = scale_score * 0.10 + perf_score * 0.15 + ops_score * 0.45 + budget_score * 0.15    # 团队经验加成: 有 Ceph 经验则 Rook 加分, 否则 Longhorn 加分    if has_ceph_exp:        rook += 1.5    else:        longhorn += 1.5    return rook, longhorn  def main():    print("===== Cloud Native Storage Selector =====")    scale = float(input("Scale score (1-10): "))    perf = float(input("Performance score (1-10): "))    ops = float(input("Low-ops expectation (1-10): "))    budget = float(input("Budget score (1-10): "))    has_ceph_exp = input("Has Ceph experience? (y/n): ").strip().lower() == "y"     rook, longhorn = recommend(scale, perf, ops, budget, has_ceph_exp)    print("--- Scores ---")    print("Rook/Ceph : %.2f" % rook)    print("Longhorn  : %.2f" % longhorn)    if rook > longhorn:        print("Recommend : Rook/Ceph")    else:        print("Recommend : Longhorn")  if __name__ == "__main__":    main()
目的:实现正文的存储选型评分模型,输入业务维度分数与团队经验,输出 Rook/Ceph 与 Longhorn 的适配分及推荐。
  1. rook = scale_score * 0.35 + perf_score * 0.30 + ops_score * 0.05 + budget_score * 0.30Rook 对规模和性能权重最高,对应“大厨善办宴席”。
  2. longhorn = scale_score * 0.10 + perf_score * 0.15 + ops_score * 0.45 + budget_score * 0.15Longhorn 的权重重心在低运维,对应“料理机省心”。
  3. if has_ceph_exp: rook += 1.5团队经验像“会养大厨的人”,直接给对应方案加分。
  4. has_ceph_exp = input(...).strip().lower() == "y"把用户输入转成布尔值,模拟问卷采集。
  5. if rook > longhorn: print("Recommend : Rook/Ceph")简单比较总分,输出推荐结论。

常见误区

误区“我用 Helm 一条命令把 Rook 装好了,Ceph 集群也 healthy,性能应该自动拉满了吧?”很多新手把部署成功等同于调优完成。

正解Rook 只是“把大厨请进了厨房”,厨具怎么摆、火力怎么调(OSD 数量、PG 分布、网络带宽、副本策略)都要按业务配置。默认配置能跑,但离“最优”差得远。Ceph 的输出上限很高,但那是调出来的,不是装出来的。

为何常见:安装日志显示 healthy 给了人“成功即最优”的错觉,忽略了分布式存储的长期调优属性。

误区“我在测试环境一压测,Longhorn 的 IOPS 比 Ceph 低不少,是不是只能当玩具?”

正解压测结果只代表“未调优的默认配置”。Longhorn 用于生产的中小集群很多,官方提供 SSD、独立管理网络、副本反亲和等生产最佳实践;对 Web 应用、数据库等常规负载,性能已经够用,且故障恢复和备份体验更好。

为何常见:单独对比 IOPS 数字,忽略了场景维度和运维成本,把“性能上限不高”等同于“不可用”。

误区“同一份数据存了 3 份,怎么会丢?”不少初学 Kubernetes 存储的人以为副本数等于安全等级。

正解3 份副本如果都在同一节点、同一机架或同一可用区,一次断电、网络分区就可能“团灭”。副本必须按故障域(node/rack/zone)分散,再配合反亲和策略,才是真正的冗余。这就像 3 个保鲜盒全放在同一张桌上,桌子塌了就全没了。

为何常见:只数“份数”,不看“位置”,忽略了故障域是分布式存储冗余的第一原则。

误区“我有定时快照,误删了随时能恢复,不需要再备份到对象存储了吧?”

正解快照和源卷在同一套集群里,集群整体损坏、机房断电或勒索病毒把集群一起删掉时,快照同样消失。真正的灾备要把数据备份到 S3/NFS 对象存储或另一套集群。Longhorn 支持快照一键备份到远端,Ceph 也支持 RBD Mirror 跨集群复制。

为何常见:快照恢复快、成本低,容易让人把“恢复手段”误当成“容灾手段”。

面试题

Q1. Rook 在 Kubernetes 中真正扮演的角色是什么?

单选题 · easy

  • A.开源的分布式文件系统
  • B.Ceph 的云原生编排器← 正确答案
  • C.独立的数据库服务
  • D.容器镜像仓库工具

答案:B。Rook 不是存储软件本身,而是把 Ceph 部署和管理到 Kubernetes 的编排器(operator)。就像 Rook 总管负责把大厨团队(Ceph)安排进厨房,而非亲自掌勺。A 说的是存储本身,C、D 与存储无关。

Q2. Longhorn 最初由哪家公司开源?

单选题 · easy

  • A.Red Hat 公司
  • B.Rancher 公司← 正确答案
  • C.VMware 公司
  • D.IBM 公司

答案:B。Longhorn 由 Rancher 实验室(现属 SUSE)开源,是一个 Kubernetes 原生的分布式块存储项目。就像“智能料理机”是专门为小厨房设计的,Longhorn 从诞生起就只为 K8s 服务。

Q3. 在 Ceph 组件中,真正负责把数据落盘保存的是哪个?

单选题 · mid

  • A.MON 监视器节点
  • B.MGR 管理器节点
  • C.OSD 对象存储守护← 正确答案
  • D.CSI 存储接口插件

答案:C。OSD(Object Storage Daemon)是 Ceph 里真正存数据的“灶台师傅”,负责数据读写、副本复制和恢复。MON 是“前厅经理”只管元数据,MGR 是“后勤调度”管监控均衡,CSI 只是接入 K8s 的翻译器。

Q4. 默认三副本配置下,同一份数据最多可同时容忍几台节点故障?

单选题 · mid

  • A.0 台故障
  • B.1 台故障
  • C.2 台故障← 正确答案
  • D.3 台故障

答案:C。根据 F = R - 1,3 副本最多容忍 2 个副本同时损坏,只要还剩 1 份数据就能继续服务。这就像 3 个保鲜盒坏 2 个,还剩 1 盒食材能用;全坏就真的“断粮”了。

Q5. 下列哪些属于 Longhorn 的核心组件?

多选题 · mid

  • A.Engine 卷引擎← 正确答案
  • B.Replica 副本← 正确答案
  • C.Instance Manager← 正确答案
  • D.Ceph MON 监视器

答案:ABC。Longhorn 的三大核心组件是 Engine(每个卷的主控)、Replica(数据副本)和 Instance Manager(隔离存储进程的管家)。Ceph MON 是 Rook/Ceph 方案的组件,不属于 Longhorn,选它就把两套架构混为一谈了。

Q6. 存储快照技术最常用的实现原理是什么?

单选题 · easy

  • A.全量复制整块盘
  • B.写时复制 COW← 正确答案
  • C.定期同步日志
  • D.压缩增量备份

答案:B。写时复制(COW)只记录数据块被修改前的旧内容,未变化的数据与源卷共享,所以快照又快又省空间。就像“试菜记录”只记改动,不重新做一桌菜。全量复制太慢,日志同步和压缩备份都不是快照的标准实现。

Q7. Kubernetes 中存储卷在线扩容依赖的关键机制是什么?

单选题 · mid

  • A.CSI 插件的扩容能力← 正确答案
  • B.删除 PVC 后重新创建
  • C.重启对应的工作负载
  • D.修改存储类的名称

答案:A。在线扩容依赖 CSI 插件实现 ControllerExpandVolume 能力,PVC 修改容量后存储端自动扩卷。删除重建、重启负载都会造成业务中断,改名更不会触发扩容。

Q8. 关于 Rook 与 Longhorn,下列说法正确的有哪些?

多选题 · hard

  • A.Rook 可提供块存储← 正确答案
  • B.Rook 可提供文件存储← 正确答案
  • C.Longhorn 提供 Web UI← 正确答案
  • D.Longhorn 比 Rook 更复杂

答案:ABC。Rook/Ceph 同时提供块(RBD)、文件(CephFS)、对象(RGW)三种存储;Longhorn 自带 Web UI 便于运维。Longhorn 以“简单省心”为设计目标,复杂度远低于 Ceph,故 D 错误。

Q9. 某 1TB 存储卷日变化率为 5%,保留 7 份快照,估算额外占用多少空间?

单选题 · hard

  • A.约 350 GB 空间← 正确答案
  • B.约 700 GB 空间
  • C.约 50 GB 空间
  • D.约 100 GB 空间

答案:A。根据公式 S = V × C × N,1TB × 5% × 7 = 0.35TB ≈ 350GB。快照只存差异块,而不是每份快照都复制整个卷,所以不会是 7TB,也远大于单日变化的 50GB。

Q10. 计算存储方案 TCO(总拥有成本)时,下列哪些应当计入?

多选题 · extreme

  • A.开源社区活跃度
  • B.硬件购置的成本← 正确答案
  • C.运维人力的开销← 正确答案
  • D.升级停机的损失← 正确答案

答案:BCD。TCO = 硬件成本 + 运维成本 × 运行周期。硬件购置、运维人力、升级停机损失都会随时间累积成真实账单。社区活跃度影响生态和排障便利性,但不属于 TCO 的货币化成本项。