跳转到内容

存储实战:ZFS 与 Ceph

PVE 把所有存储抽象成统一的「存储池」:虚拟机磁盘、ISO、模板、备份都挂在这一模型下。本文先建立整体认识,再分别落地两种最重要的方案:ZFS(单机 / 双机)与 Ceph(三节点及以上集群)。

安装完成后默认有两个存储:

  • local —— 本地目录(/var/lib/vz),放 ISO、模板、备份;
  • local-lvm —— 本地 LVM 卷组,放虚拟机磁盘。

在 数据中心 → 存储 中可以看到并管理全部存储。常见类型:

类型 典型用途 特点
Directory / LVM 单机起步 简单,无冗余
ZFS(单盘/镜像) 单机、双机 软 RAID + 校验 + 快照 + 压缩
Ceph RBD 集群 分布式、虚拟机磁盘可跨节点迁移/HA
CephFS / NFS / SMB 共享 ISO、模板 多节点共享目录
PBS 备份 见 PBS 安装实战

查看物理磁盘:节点 → 磁盘,或命令行 lsblk。

  • 无需 RAID 卡即可做镜像(mirror)冗余,还有端到端校验,能发现静默数据损坏;
  • 写时复制快照、透明压缩(lz4),对虚拟机磁盘非常合适;
  • 天然集成 PVE:存储类型直接选 ZFS。

最省事的两种方式:

方式 A:安装时选择。安装 PVE 的「目标磁盘」步骤选择 ZFS,并设置 RAID 级别(两块盘选 RAID1)。

方式 B:装好后通过界面创建。节点 → ZFS → 创建:

  • 名称:tank;
  • RAID 级别:Mirror(两块盘)或 RAID10(四块盘);
  • 勾选 压缩(默认 lz4)与 检查空块。

命令行等价操作:

终端窗口
zpool create -o ashift=12 -o compression=lz4 tank mirror /dev/disk/by-id/scsi-SATA_xxxx /dev/disk/by-id/scsi-SATA_yyyy

创建后在 数据中心 → 存储 → 添加 → ZFS 中选择 tank,勾选用途(磁盘镜像、容器),即可给虚拟机使用。

终端窗口
# 查看池状态与健康
zpool status tank
# 手动触发数据校验(建议每月一次,可加入 cron)
zpool scrub tank
# 查看实际可用与占用
zpool list tank

ARC 缓存:ZFS 会用空闲内存做读缓存,PVE 默认限制了其上限(约为内存的 10%)。虚拟机负载重、内存充裕时可以调高:

终端窗口
# 例如限制为 16GB(立即生效并写入模块参数)
echo 17179869184 > /sys/module/zfs/parameters/zfs_arc_max
echo "options zfs zfs_arc_max=17179869184" > /etc/modprobe.d/zfs.conf
update-initramfs -u -k all

Ceph 把三台及以上节点的本地盘组成一个分布式存储集群,虚拟机磁盘不再属于某一台节点——这是 PVE 集群在线迁移和高可用(HA)的基础。

场景 建议
单节点 ZFS 或 LVM,不要 Ceph
两节点 ZFS + 复制/备份,或 ZFS + QDevice 小集群,不建 Ceph
三节点及以上 Ceph 最好的用武之地

资源要求:每个节点至少一块专用数据盘(系统盘之外)、内存较充裕(每 OSD 进程约占数 GB),并强烈建议为 Ceph 使用独立/更快的网络(至少千兆,推荐万兆)。

  1. 安装 Ceph 组件:在每个节点上:节点 → Ceph → 安装 Ceph,源选 no-subscription;
  2. 创建 OSD:节点 → Ceph → OSD → 创建,选一块空白数据盘(勾选 DB/WAL 可选,给 SSD 小分区加速);
  3. 三个节点都完成 1~2 步后,Ceph → 状态 应显示 HEALTH_OK;
  4. 创建 Pool:Ceph → Pool → 创建:
    • 名称如 rbd-pool;
    • Size(副本数)= 3,Min Size = 2(默认值适合三节点);
  5. 接入 PVE 存储:数据中心 → 存储 → 添加 → RBD,填入 pool 名,用途勾选「磁盘镜像」;
  6. (可选)同样方式创建 CephFS 存放 ISO / 模板,供所有节点共享。
  • 可用容量 ≈ 所有 OSD 盘容量之和 ÷ 副本数(3);
  • 使用率不要超过 85%,接近满时 Ceph 会拒绝写入;
  • 日常看 Ceph → 状态:HEALTH_OK 才是健康;出现 HEALTH_WARN 时先看具体的告警项(常见是某个 OSD down)。
规模 存储方案 迁移 / HA 能力
1 节点 ZFS / LVM 无(靠备份)
2 节点 ZFS + 定期复制 / 备份 手动切换
3+ 节点 Ceph 在线迁移、HA 故障切换