离线部署三节点 Ceph 分布式存储
离线部署三节点 Ceph 分布式存储
环境准备
确保三台服务器满足以下条件:
- CentOS 7/8 或 Ubuntu 18.04/20.04(内核版本 ≥ 4.x)
- 每台服务器至少 2 块磁盘(1 块系统盘 + 1 块 OSD 数据盘)
- 内网互通,主机名解析正确(如
ceph-node1
、ceph-node2
、ceph-node3
) - 防火墙关闭或放行 Ceph 端口(如 6789、6800-7300)
离线安装 Ceph
-
下载离线包
在有网络的机器下载 Ceph RPM/DEB 包及依赖(以 Luminous 版本为例):yum install --downloadonly --downloaddir=/ceph-rpm ceph ceph-radosgw ceph-mds # 或 Ubuntu apt-get download ceph ceph-common ceph-mds
将
/ceph-rpm
或下载的 DEB 包拷贝到离线节点。 -
安装 Ceph
在三台节点上手动安装:# CentOS rpm -ivh /ceph-rpm/*.rpm # Ubuntu dpkg -i /ceph-offline/*.deb
部署 Ceph 集群
-
初始化集群配置
在ceph-node1
上生成初始配置:ceph-deploy new ceph-node1 ceph-node2 ceph-node3
编辑
ceph.conf
,添加以下配置:[global] osd pool default size = 3 public network = 192.168.1.0/24 cluster network = 192.168.2.0/24
-
安装 Monitor 服务
ceph-deploy mon create-initial ceph-deploy admin ceph-node1 ceph-node2 ceph-node3
-
部署 OSD
为每台节点的磁盘创建 OSD(以/dev/sdb
为例):ceph-deploy osd create --data /dev/sdb ceph-node1 ceph-deploy osd create --data /dev/sdb ceph-node2 ceph-deploy osd create --data /dev/sdb ceph-node3
验证集群状态:
ceph -s # 确保所有 OSD 和 PG 状态为 active+clean
在服务中使用 Ceph 分布式存储
Kubernetes 集成
-
安装 RBD 插件
在所有 K8s 节点安装ceph-common
包。 -
创建 StorageClass
创建ceph-storageclass.yaml
:apiVersion: storage.k8s.io/v1 kind: StorageClass metadata:name: ceph-rbd provisioner: kubernetes.io/rbd parameters:monitors: 192.168.1.1:6789,192.168.1.2:6789,192.168.1.3:6789adminId: adminadminSecretName: ceph-secretpool: k8suserId: kubeuserSecretName: ceph-user-secret
OpenStack 集成
- 配置 Ceph 后端
在cinder.conf
中添加:[DEFAULT] enabled_backends = ceph [ceph] volume_driver = cinder.volume.drivers.rbd.RBDDriver rbd_pool = volumes rbd_user = cinder rbd_secret_uuid = <secret-uuid>
NFS 共享
- 部署 CephFS
创建 CephFS 并挂载到本地:ceph osd pool create cephfs_data 128 ceph osd pool create cephfs_metadata 128 ceph fs new cephfs cephfs_metadata cephfs_data mount -t ceph 192.168.1.1:6789:/ /mnt -o name=admin,secret=<key>
S3 对象存储
- 部署 RGW
在任一节点部署 RADOS 网关:
通过ceph-deploy rgw create ceph-node1
http://ceph-node1:7480
访问 S3 API。
验证与监控
- 集群状态:
ceph -s
- RBD 使用:
rbd ls -p <pool>
- CephFS 挂载:
df -h | grep ceph
- S3 测试:使用
s3cmd
或 AWS CLI 上传/下载对象。
通过上述步骤,可完成离线三节点 Ceph 部署并集成到主流服务平台。