CAS 存储虚拟化
存储架构概览
CAS 支持多种存储后端,通过统一的存储抽象层向 VM 提供虚拟磁盘:
VM(看到的是虚拟磁盘 /dev/vda)
↓
CAS 存储抽象层
├── Ceph RBD(推荐,分布式)
├── FC SAN(高性能,传统企业)
├── iSCSI(IP SAN)
├── NFS(文件共享)
└── 本地存储(测试/边缘)Ceph 集成
Ceph 是 CAS 推荐的存储后端,提供块存储(RBD)、对象存储(RGW)和文件系统(CephFS)。
Ceph 架构
Ceph 集群
├── MON(Monitor)× 3:维护集群状态,奇数个
├── MGR(Manager)× 2:监控、均衡、插件
├── OSD(Object Storage Daemon)× N:实际存储数据
│ 每块磁盘对应一个 OSD 进程
└── MDS(Metadata Server):仅 CephFS 需要Ceph 与 CAS 集成配置
bash
# 1. 在 Ceph 中创建存储池
ceph osd pool create vms 128 128
ceph osd pool create volumes 128 128
ceph osd pool create images 128 128
# 2. 初始化 RBD
rbd pool init vms
rbd pool init volumes
rbd pool init images
# 3. 创建 CAS 访问账号
ceph auth get-or-create client.cas \
mon 'profile rbd' \
osd 'profile rbd pool=vms, profile rbd pool=volumes, profile rbd pool=images' \
mgr 'profile rbd' \
> /etc/ceph/ceph.client.cas.keyring
# 4. 在 CAS 中配置 Ceph 存储
# CVM 控制台 → 存储管理 → 添加存储 → Ceph
# 填写:MON 地址、用户名(cas)、keyringCeph 性能调优
bash
# 查看存储池 IOPS
ceph osd pool stats
# 调整副本数(生产环境建议 3 副本)
ceph osd pool set vms size 3
ceph osd pool set vms min_size 2
# 开启 SSD 缓存层(提升 HDD 池性能)
# 创建 SSD 缓存池
ceph osd pool create ssd-cache 64 64
ceph osd tier add vms ssd-cache
ceph osd tier cache-mode ssd-cache writeback
ceph osd tier set-overlay vms ssd-cacheFC SAN 集成
FC SAN 适合对存储性能要求极高的场景(如核心数据库)。
FC 连接架构
服务器(宿主机)
↓ HBA 卡(Host Bus Adapter)
FC 交换机(Brocade/H3C)
↓ FC 光纤
H3C 全闪存储(G5500/G3500)多路径配置
bash
# 安装多路径软件
yum install -y device-mapper-multipath
# 配置多路径(/etc/multipath.conf)
defaults {
user_friendly_names yes
find_multipaths yes
}
blacklist {
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode "^hd[a-z]"
}
# 启动多路径服务
systemctl enable multipathd
systemctl start multipathd
# 查看多路径设备
multipath -ll存储 QoS
CAS 支持对虚拟磁盘设置 QoS 限制:
xml
<!-- libvirt XML 配置:限制磁盘 IOPS -->
<disk type='network' device='disk'>
<driver name='qemu' type='raw' cache='none'/>
<source protocol='rbd' name='vms/vm-disk-001'>
<host name='ceph-mon1' port='6789'/>
</source>
<target dev='vda' bus='virtio'/>
<iotune>
<total_iops_sec>5000</total_iops_sec>
<total_bytes_sec>524288000</total_bytes_sec> <!-- 500MB/s -->
<read_iops_sec>3000</read_iops_sec>
<write_iops_sec>2000</write_iops_sec>
</iotune>
</disk>存储迁移
在线存储迁移(Storage Live Migration)
将 VM 磁盘从一个存储后端迁移到另一个,VM 不停机:
bash
# 将 VM 磁盘从 NFS 迁移到 Ceph
virsh blockcopy <vm-name> vda \
--dest rbd:vms/new-disk:auth_supported=cephx:keyring=/etc/ceph/ceph.client.cas.keyring \
--format raw \
--wait \
--verbose
# 完成后切换到新磁盘
virsh blockjob <vm-name> vda --pivot存储监控
bash
# 监控 Ceph 集群状态
watch -n 5 ceph status
# 查看 OSD 延迟
ceph osd perf
# 查看存储池使用率
ceph df detail
# 查看 RBD 镜像信息
rbd info vms/vm-disk-001
rbd du vms/vm-disk-001 # 实际占用空间(含快照)