Ceph是一款开源的分布式存储系统,能够提供对象存储、块存储和文件系统存储三种接口,非常适合作为虚拟化环境的后端存储方案。在Linux系统上配置Ceph虚拟化存储,需要先完成基础环境准备,再按照标准流程部署集群。

环境准备
首先需要规划集群节点,建议至少准备3个节点,分别作为监控节点(Monitor)和存储节点(OSD)。所有节点需要满足以下条件:
- 运行CentOS 7及以上或Ubuntu 18.04及以上版本的Linux系统
- 每个节点至少配置2块硬盘,一块用于系统安装,另一块用于Ceph数据存储
- 所有节点之间网络互通,且配置好主机名解析
以3节点为例,节点规划如下:
| 节点主机名 | IP地址 | 角色 |
|---|---|---|
| ceph-node1 | 192.168.0.10 | Monitor + OSD |
| ceph-node2 | 192.168.0.11 | OSD |
| ceph-node3 | 192.168.0.12 | OSD |
在所有节点上执行以下操作,关闭防火墙和SELinux,避免影响集群通信:
# 关闭防火墙 systemctl stop firewalld systemctl disable firewalld # 关闭SELinux setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
安装Ceph部署工具
我们使用ceph-deploy工具来简化集群部署流程,在ceph-node1节点上执行安装操作:
# CentOS系统安装ceph-deploy yum install -y centos-release-ceph-quincy yum install -y ceph-deploy # Ubuntu系统安装ceph-deploy apt update apt install -y ceph-deploy
安装完成后,创建一个专门的部署目录,后续的部署操作都在这个目录下执行:
mkdir ceph-cluster cd ceph-cluster
部署Ceph集群
初始化监控节点
在部署目录下执行以下命令,初始化监控节点:
# 初始化监控节点,指定节点主机名 ceph-deploy new ceph-node1
命令执行完成后,目录下会生成ceph.conf配置文件,可根据需要修改配置,比如设置公共网络和集群网络:
# 编辑ceph.conf,添加以下配置 public network = 192.168.0.0/24 cluster network = 192.168.0.0/24
安装Ceph软件包
执行以下命令,在所有节点上安装Ceph软件包:
ceph-deploy install ceph-node1 ceph-node2 ceph-node3
部署监控节点并收集密钥
安装完成后,部署监控节点并收集集群密钥:
# 部署监控节点 ceph-deploy mon create-initial # 收集密钥到当前目录,方便后续节点部署使用 ceph-deploy admin ceph-node1 ceph-node2 ceph-node3
部署OSD存储节点
为ceph-node1、ceph-node2、ceph-node3分别添加OSD,假设数据盘为/dev/sdb:
# 擦除数据盘,注意替换为实际的数据盘路径 ceph-deploy disk zap ceph-node1 /dev/sdb ceph-deploy disk zap ceph-node2 /dev/sdb ceph-deploy disk zap ceph-node3 /dev/sdb # 创建OSD ceph-deploy osd create ceph-node1 --data /dev/sdb ceph-deploy osd create ceph-node2 --data /dev/sdb ceph-deploy osd create ceph-node3 --data /dev/sdb
部署完成后,在任意节点执行ceph -s命令,查看集群状态,如果输出中health字段为HEALTH_OK,说明集群部署成功。
创建存储池并配置客户端
创建块存储池
虚拟化存储通常使用块存储接口,先创建一个块存储池:
# 创建存储池,名称为vm-pool,pg数量为128 ceph osd pool create vm-pool 128 # 初始化存储池为块存储模式 rbd pool init vm-pool
客户端挂载使用
在需要使用存储的客户端节点上安装Ceph客户端工具:
# CentOS安装客户端 yum install -y ceph-common # Ubuntu安装客户端 apt install -y ceph-common
将集群的ceph.conf和密钥文件拷贝到客户端节点,然后创建块设备并映射使用:
# 创建10G大小的块设备,名称为vm-disk rbd create vm-pool/vm-disk --size 10240 # 映射块设备到本地 rbd map vm-pool/vm-disk # 查看映射后的设备路径 rbd showmapped # 输出类似 /dev/rbd0 表示映射成功 # 格式化设备并挂载使用 mkfs.ext4 /dev/rbd0 mkdir /mnt/ceph-disk mount /dev/rbd0 /mnt/ceph-disk
注意事项
- 生产环境中建议至少部署3个监控节点,避免单点故障
- OSD数据盘建议使用独立的物理硬盘,不要和系统盘共用
- 定期执行
ceph health命令检查集群健康状态,及时处理异常 - 存储池的PG数量需要根据集群规模合理设置,避免设置过大或过小影响性能