Skip to content

CloudOS 最佳实践

规划阶段

容量规划原则

计算资源规划:
  目标 vCPU 数 = 物理 CPU 核数 × 超分比 × (1 - 预留比例)
  
  示例:
    物理 CPU:20 台 × 2 × 32 核 = 1280 核
    超分比:3:1
    预留 20%(用于迁移和突发)
    可用 vCPU = 1280 × 3 × 0.8 = 3072 vCPU

内存规划:
  内存超分比建议 1.2:1 ~ 1.5:1(不建议过高)
  预留 10% 用于 OS 和 CloudOS 自身

存储规划:
  Ceph 存储 = 业务数据量 × 副本数 / 磁盘利用率
  示例:100TB 业务数据 × 3 副本 / 0.7 = 约 430TB 原始容量

网络规划

推荐网络分区:
├── 管理网络(Management):10.0.0.0/24
│   用途:CloudOS 管理面通信
│   带宽:1GbE 即可
├── 业务网络(Business):172.16.0.0/16
│   用途:VM 业务流量
│   带宽:25GbE 或 100GbE
├── 存储网络(Storage):192.168.100.0/24
│   用途:Ceph 数据复制
│   带宽:25GbE 或 100GbE(独立网络)
└── 外部网络(External):公网或企业内网
    用途:浮动 IP、外部访问

部署阶段

管理节点 HA 部署

bash
# 检查 VIP 是否正常
ip addr show | grep <vip-address>

# 检查 HAProxy 状态
systemctl status haproxy

# 检查 Keepalived 状态
systemctl status keepalived

# 检查 MySQL Galera 集群状态
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_%';"
# wsrep_cluster_size 应为 3
# wsrep_local_state_comment 应为 Synced

Ceph 存储部署检查

bash
# 检查 Ceph 集群健康状态
ceph health detail

# 检查 OSD 状态(所有 OSD 应为 up/in)
ceph osd tree

# 检查 PG 状态(所有 PG 应为 active+clean)
ceph pg stat

# 检查存储池
ceph df

# 性能测试
rados bench -p <pool-name> 60 write --no-cleanup
rados bench -p <pool-name> 60 seq

运维阶段

日常巡检清单

每日检查

  • [ ] CloudOS 管理控制台可正常登录
  • [ ] 所有计算节点状态为 enabled/up
  • [ ] Ceph 集群状态为 HEALTH_OK
  • [ ] 告警系统无未处理的严重告警
  • [ ] 备份任务执行成功

每周检查

  • [ ] 资源使用率趋势(CPU/内存/存储)
  • [ ] 网络流量分析
  • [ ] 安全日志审计
  • [ ] 证书有效期检查

每月检查

  • [ ] 容量规划评估
  • [ ] 软件版本更新评估
  • [ ] 灾备演练

性能调优

计算节点调优

bash
# 开启 CPU 性能模式
cpupower frequency-set -g performance

# 关闭 NUMA 自动均衡(数据库场景)
echo 0 > /proc/sys/kernel/numa_balancing

# 调整 KVM 大页内存
echo 'vm.nr_hugepages = 51200' >> /etc/sysctl.conf
sysctl -p

# 网络队列优化
ethtool -L eth0 combined 32

Ceph 调优

bash
# 调整 OSD 内存
ceph config set osd osd_memory_target 4294967296  # 4GB

# 开启 BlueStore 缓存
ceph config set osd bluestore_cache_size_ssd 4294967296

# 调整 PG 数量(根据 OSD 数量)
# 推荐:每个 OSD 约 100 个 PG
ceph osd pool set <pool-name> pg_num 256
ceph osd pool set <pool-name> pgp_num 256

故障处理

VM 无法启动

bash
# 1. 查看 VM 状态
openstack server show <vm-id>

# 2. 查看 Nova 日志
tail -f /var/log/nova/nova-compute.log | grep <vm-id>

# 3. 查看 libvirt 日志
virsh list --all
virsh dumpxml <domain-name>

# 4. 常见原因
# - 计算节点资源不足 → 迁移到其他节点
# - 镜像损坏 → 重新上传镜像
# - 存储卷不可用 → 检查 Ceph 状态

网络不通

bash
# 1. 检查安全组规则
openstack security group rule list <sg-id>

# 2. 检查 OVS 流表
ovs-vsctl show
ovs-ofctl dump-flows br-int

# 3. 检查 Neutron 代理状态
openstack network agent list

# 4. 抓包分析
tcpdump -i any -n host <vm-ip> -w /tmp/capture.pcap

安全加固

最小权限原则

bash
# 为不同角色创建专用账号
# 运维人员:只有 member 权限
openstack role add --user ops-user --project production member

# 审计人员:只有 reader 权限
openstack role add --user audit-user --project production reader

# 禁止使用 admin 账号做日常操作

网络安全

bash
# 默认拒绝所有入站流量的安全组
openstack security group create deny-all \
  --description "默认拒绝所有入站"

# 只开放必要端口
# 原则:最小化暴露面,按需开放

数据加密

  • 传输加密:API 通信强制 HTTPS(TLS 1.2+)
  • 存储加密:Ceph 支持静态数据加密(at-rest encryption)
  • 密钥管理:使用 Barbican 密钥管理服务

容量扩展

水平扩展(Scale Out)

添加计算节点:
1. 准备新服务器,安装 OS
2. 配置网络(管理网/业务网/存储网)
3. 在 CloudOS 管理界面添加计算节点
4. 等待节点注册完成(约 10-15 分钟)
5. 验证节点状态为 enabled/up

添加 Ceph OSD:
1. 在存储节点添加新磁盘
2. 执行 ceph-volume lvm create --data /dev/sdX
3. 等待数据自动均衡(rebalancing)
4. 验证 ceph health 恢复 HEALTH_OK

垂直扩展(Scale Up)

扩展管理节点内存/CPU:
1. 将管理节点设为 Standby
2. 关机扩容
3. 重启后验证服务恢复
4. 切换回 Active

褚成志的云与计算笔记