Ceph是一个开源的、统一的分布式存储系统,提供对象存储、块存储和文件系统存储功能。以下是配置Ceph存储集群的详细步骤:
# 添加Ceph仓库
sudo rpm -Uvh https://download.ceph.com/rpm-luminous/el7/noarch/ceph-release-1-1.el7.noarch.rpm
# 安装Ceph部署工具
sudo yum install -y ceph-deploy
# 在管理节点安装Ceph软件包
sudo yum install -y ceph ceph-radosgw
# 添加Ceph仓库密钥
wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -
# 添加Ceph仓库
echo deb https://download.ceph.com/debian-luminous/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
# 更新并安装
sudo apt update
sudo apt install -y ceph-deploy ceph ceph-common
# 创建集群目录
mkdir my-cluster
cd my-cluster
# 初始化集群(将node1,node2,node3替换为你的节点主机名)
ceph-deploy new node1 node2 node3
# 编辑ceph.conf配置文件
vi ceph.conf
在[global]
部分添加/修改以下内容:
osd pool default size = 3
osd pool default min size = 2
public network = {你的公共网络CIDR,如192.168.1.0/24}
cluster network = {你的集群网络CIDR,如192.168.2.0/24}
ceph-deploy install node1 node2 node3
ceph-deploy mon create-initial
ceph-deploy admin node1 node2 node3
# 列出每个节点上的磁盘
ceph-deploy disk list node1
# 在每个节点上准备OSD(假设sdb是数据盘)
ceph-deploy osd create --data /dev/sdb node1
ceph-deploy osd create --data /dev/sdb node2
ceph-deploy osd create --data /dev/sdb node3
# 如果有日志盘(如sdc)
ceph-deploy osd create --data /dev/sdb --journal /dev/sdc node1
# 在任一节点上执行
sudo ceph -s
健康状态应显示HEALTH_OK
。如果显示HEALTH_WARN
,可能需要等待PG(placement groups)达到active+clean状态。
# 创建存储池
sudo ceph osd pool create rbd 128
# 初始化池用于RBD
sudo rbd pool init rbd
# 创建数据池
sudo ceph osd pool create cephfs_data 128
# 创建元数据池
sudo ceph osd pool create cephfs_metadata 64
# 创建文件系统
sudo ceph fs new cephfs cephfs_metadata cephfs_data
# 在客户端安装Ceph客户端
sudo apt install -y ceph-common # Ubuntu/Debian
sudo yum install -y ceph-common # CentOS/RHEL
# 复制配置文件和管理密钥
sudo scp node1:/etc/ceph/ceph.conf /etc/ceph/
sudo scp node1:/etc/ceph/ceph.client.admin.keyring /etc/ceph/
# 创建RBD镜像
sudo rbd create myimage --size 1024 --pool rbd
# 映射RBD设备
sudo rbd map myimage --pool rbd
# 创建挂载点
sudo mkdir /mnt/cephfs
# 获取密钥
sudo ceph auth get-key client.admin > /etc/ceph/admin.secret
# 挂载CephFS
sudo mount -t ceph node1:6789:/ /mnt/cephfs -o name=admin,secretfile=/etc/ceph/admin.secret
# 集群状态
ceph -s
# OSD状态
ceph osd stat
# 监控状态
ceph mon stat
# 添加新的OSD
ceph-deploy osd create --data /dev/sdX nodeX
# 删除OSD
ceph osd out osd.X
ceph osd crush remove osd.X
ceph auth del osd.X
ceph osd rm osd.X
ceph pg calc
计算如果遇到问题:
- 检查/var/log/ceph/
下的日志文件
- 使用ceph health detail
获取详细健康信息
- 确保所有节点的NTP服务同步时间
- 确保防火墙允许Ceph端口通信(默认6789, 6800-7300)
以上是Ceph集群的基本配置过程。根据实际环境和需求,可能需要进行更多定制化配置。