ceph集群安装(块设备)3PC(3mon+3osd+3mgr)+1ceph-deploy机器

本文档详细介绍了Ceph分布式存储系统的部署步骤,包括创建sudo用户,禁用SELinux,配置YUM源,时间同步,以及在部署节点上安装软件,创建配置文件,清理旧的Ceph数据,部署Ceph集群,设置CRUSH规则,创建pool,并进行健康检查和性能优化。此外,还涵盖了客户端如何使用Ceph存储,如创建和管理RBD块设备。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ceph节点操作:

创建sudo用户,加入公钥,允许部署节点访问。
disable /etc/selinux/config
setenforce 0
yum install yum-plugin-priorities -y
时间同步:
chronyc makestep

部署节点操作:

yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
cat << EOM > /etc/yum.repos.d/ceph.repo
[ceph-noarch]
name=Ceph noarch packages
baseurl=https://download.ceph.com/rpm-mimic/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
EOM
cat << EOM >>/etc/hosts
192.168.200.237 ceph-1
192.168.200.238 ceph-2
192.168.200.239 ceph-3
EOM
创建部署配置文件等使用的目录,所有操作在该目录下执行:
mkdir my-cluster
cd my-cluster
清理旧的ceph:
ceph-deploy purge {ceph-node} [{ceph-node}]
ceph-deploy purgedata {ceph-node} [{ceph-node}]
ceph-deploy forgetkeys
rm ceph.*
开始部署:
ceph-deploy --username test new ceph-1 ceph-2 ceph-3
vi ceph.conf
public network = 192.168.200.0/24
osd pool default pg num = 128
osd pool default pgp num = 128
[mon]
mon allow pool delete = true
export CEPH_DEPLOY_REPO_URL=http://mirrors.163.com/ceph/rpm-mimic/el7
export CEPH_DEPLOY_GPG_URL=http://mirrors.163.com/ceph/keys/release.asc
安装ceph
ceph-deploy --username test install ceph-1 ceph-2 ceph-3
安装mon
ceph-deploy --username test mon create ceph-1 ceph-2 ceph-3
ceph-deploy --username test mon create-initial
同步配置
ceph-deploy --username test admin ceph-1 ceph-2 ceph-3
安装mgr
ceph-deploy --username test mgr ceph-1 ceph-2 ceph-3
检查ceph osd使用的磁盘
ceph-deploy disk list ceph-1 ceph-2 ceph-3
擦净磁盘
ceph-deploy disk zap ceph-1 /dev/sdb
安装osd
ceph-deploy --username test osd create --data /dev/sdb ceph-1
ceph-deploy --username test osd create --data /dev/sdb ceph-2
ceph-deploy --username test osd create --data /dev/sdb ceph-3
ceph-deploy --username test osd create --data /dev/sdc ceph-1
ceph-deploy --username test osd create --data /dev/sdc ceph-2
ceph-deploy --username test osd create --data /dev/sdc ceph-3

#安装完成。
pg计算
根据官网计算方法http://ceph.com/pgcalc/ 
Total PGs = ((Total_number_of_OSD * 100) / max_replication_count) / pool_count
osd:6   relications: 3    pool: 2
pg=100, 接近128 , 所以pg_num 设为128
重新推送配置:
ceph-deploy --username test --overwrite-conf config push ceph-1 ceph-2 ceph-3
推送后ceph节点重启操作:
systemctl restart ceph-mon.target

==============================================

ceph节点操作:

ceph状态检查:
ceph health detail
ceph -s
检查mon法定人数状态
ceph quorum_status --format json-pretty

1. ceph CRUSH map 增加规则

手动处理规则方式:
创建root,host
ceph osd crush add-bucket root-nvme root
ceph osd crush add-bucket root-ssd root
ceph osd crush add-bucket host1-nvme host
ceph osd crush add-bucket host2-nvme host
ceph osd crush add-bucket host3-nvme host
ceph osd crush add-bucket host1-ssd host
ceph osd crush add-bucket host2-ssd host
ceph osd crush add-bucket host3-ssd host
把host加入root
ceph osd crush move host1-ssd root=root-ssd
ceph osd crush move host2-ssd root=root-ssd
ceph osd crush move host3-ssd root=root-ssd
ceph osd crush move host3-nvme root=root-nvme
ceph osd crush move host2-nvme root=root-nvme
ceph osd crush move host1-nvme root=root-nvme
把osd加入host
ceph osd crush move osd.0 host=host1-nvme
ceph osd crush move osd.1 host=host2-nvme
ceph osd crush move osd.2 host=host3-nvme
ceph osd crush move osd.3 host=host1-ssd
ceph osd crush move osd.4 host=host2-ssd
ceph osd crush move osd.5 host=host3-ssd
导出CRUSH map:
ceph osd getcrushmap -o crushmap.txt
crushtool -d crushmap.txt -o crushmap-decompile
修改规则vi crushmap-decompile:
# rules
rule nvme {
        id 1
        type replicated
        min_size 1
        max_size 10
        step take root-nvme
        step chooseleaf firstn 0 type host
        step emit
}

rule ssd {
        id 2
        type replicated
        min_size 1
        max_size 10
        step take root-ssd
        step chooseleaf firstn 0 type host
        step emit
}
导入CRUSH map:
crushtool -c crushmap-decompile -o crushmap-compiled
ceph osd setcrushmap -i crushmap-compiled
配置ceph.conf,让OSD启动不更新crushmap
[osd]
osd crush update on start = false
自动处理规则方式(磁盘智能分组):

ceph中的每个osd设备都可以选择一个class类型与之关联,默认情况下,在创建osd的时候会自动识别设备类型,然后设置该设备为相应的类。通常有三种class类型:hdd,ssd,nvme。

###手动修改class标签
#查看当前集群布局
ceph osd tree
#查看crush class
ceph osd crush class ls
#删除osd.0,osd.1,osd.2的class
for i in 0 1 2;do ceph osd crush rm-device-class osd.$i;done
#设置osd.0,osd.1,osd.2的class为nvme
for i in 0 1 2;do ceph osd crush set-device-class nvme osd.$i;done
#创建一个优先使用nvme设备的crush规则
ceph osd crush rule create-replicated rule-auto-nvme default host nvme
#创建一个优先使用ssd设备的crush规则
ceph osd crush rule create-replicated rule-auto-ssd default host ssd
#查看集群的rule
ceph osd crush rule ls

2. 创建一个新的pool

#创建
ceph osd pool create pool-ssd 128
#创建并设置规则:
ceph osd pool create pool-ssd 128 128 rule-auto-ssd
# 设置pool的类型
ceph osd pool application enable pool-ssd rbd
osd pool 状态检查
#查看与设置pg num
ceph osd pool get hdd_pool pg_num
ceph osd pool get hdd_pool pgp_num
ceph osd pool set rbd pg_num 256
ceph osd pool set rbd pgp_num 256
#ods与pool状态
ceph osd tree
rados df
ceph df
ceph osd lspools

#查看crush_rule及pool的rule
ceph osd crush rule ls
ceph osd pool get pool-ssd crush_rule
#查看pool详情
ceph osd pool ls detail

3. 创建对象测试pool

rados -p pool-ssd ls
echo "hahah" >test.txt
rados -p pool-ssd put test test.txt 
rados -p pool-ssd ls
#查看该对象的osd组
ceph osd map pool-ssd test
#删除
rados rm -p pool-ssd test
其它
#删除pool
ceph osd pool delete pool-ssd pool-ssd --yes-i-really-really-mean-it
#设置 pool的crush_rule
ceph osd pool set pool-ssd crush_rule rule-ssd

客户端使用块设备

给需要使用ceph存储的客户端部署ceph

部署节点操作:
export CEPH_DEPLOY_REPO_URL=http://mirrors.163.com/ceph/rpm-mimic/el7
export CEPH_DEPLOY_GPG_URL=http://mirrors.163.com/ceph/keys/release.asc
ceph-deploy install ceph-client
ceph-deploy admin ceph-client
ceph客户端操作:
#创建一个块设备image
rbd create pool-ssd/foo --size 1024 --image-feature layering
#把 image 映射为块设备
rbd map pool-ssd/foo --name client.admin

mkfs.xfs /dev/rbd0
mount /dev/rbd0 /mnt/rbdtest/
块设备查询
#ceph客户端操作
镜像信息
rbd ls pool-ssd
rbd info pool-ssd/foo
查看已映射块设备
rbd showmapped
取消块设备映射
rbd unmap /dev/rbd0
删除块设备映像
rbd rm pool-ssd/foo
<think>嗯,用户想在麒麟V10操作系统上用ceph-deploy部署Ceph集群。首先,我需要确认ceph-deploy的版本是否支持Kylin V10。根据引用[4],用户提到ceph-deploy-1.5.39版本没有mgr的部署选项,可能需要注意版本兼容性。Ceph L版本12.2.12可能需要特定版本的ceph-deploy,可能需要用户检查官方文档或社区支持。 然后,用户的环境准备方面,需要确保所有节点的主机名解析正确,SSH免密登录配置好,以及防火墙和SELinux的设置。引用[3]中提到磁盘必须未使用且没有数据,所以在部署OSD时要注意这一点。另外,引用[2]指出Ceph的核心组件,包括Monitor、Manager、OSD等,部署时需要按照步骤依次安装这些组件。 可能遇到的问题包括网络无法访问Ceph官网,导致依赖包安装失败。这时候可能需要配置本地源或者使用离线安装包。另外,麒麟V10是基于CentOS的,可能需要处理依赖包冲突,比如Python版本的问题。引用[1]提到ceph-deploy的配置文件位置,用户可能需要根据情况调整配置文件。 在部署步骤中,初始化Monitor节点是关键,如果失败需要检查时钟同步和主机名解析。创建OSD时,确保磁盘正确,可能需要使用ceph-deploy osd create命令,如引用[3]中的例子。最后,部署MGR和MDS也是必须的,但引用[4]指出旧版可能不支持,所以需要确认ceph-deploy版本是否包含这些功能。 测试集群状态时,ceph -s命令可以查看健康状况,如果出现错误,可能需要检查各个服务的日志。常见问题如网络问题、权限问题或者依赖缺失都需要逐步排查。用户可能需要参考引用中的配置文件和命令示例,确保每一步都正确执行。</think>### 在Kylin V10中使用ceph-deploy部署Ceph集群的步骤 #### 一、环境准备 1. **节点规划** - 至少3个节点(1个`ceph-deploy`管理节点,1Monitor节点,多个OSD节点) - 示例配置: - 管理节点:`admin-node` - Monitor节点:`ceph-mon1` - OSD节点:`ceph-osd1`, `ceph-osd2` 2. **系统配置** - 所有节点配置主机名解析(`/etc/hosts`或DNS) - 配置SSH免密登录(管理节点到其他节点) - 关闭防火墙和SELinux: ```bash systemctl stop firewalld setenforce 0 ``` 3. **依赖安装** - 在管理节点安装`ceph-deploy`: ```bash yum install -y python3-pip pip3 install ceph-deploy==2.0.1 # 选择兼容Kylin V10的版本[^4] ``` #### 二、部署Ceph集群 1. **初始化集群配置** ```bash mkdir ceph-cluster && cd ceph-cluster ceph-deploy new ceph-mon1 # 生成初始配置文件[^1] ``` 2. **安装Ceph组件** ```bash ceph-deploy install --release luminous admin-node ceph-mon1 ceph-osd1 ceph-osd2 ``` > 注意:若网络受限,需提前配置本地Yum源[^4] 3. **部署Monitor** ```bash ceph-deploy mon create-initial ceph-deploy admin admin-node ceph-mon1 # 同步配置文件[^2] ``` 4. **部署OSD** - 清理磁盘(以`/dev/sdb`为例): ```bash ceph-deploy disk zap ceph-osd1 /dev/sdb[^3] ``` - 创建OSD: ```bash ceph-deploy osd create --data /dev/sdb ceph-osd1 ceph-deploy osd create --data /dev/sdb ceph-osd2 ``` 5. **部署MGR和MDS(可选)** ```bash ceph-deploy mgr create ceph-mon1 ceph-deploy mds create ceph-mon1 ``` #### 三、验证集群状态 ```bash ssh ceph-mon1 ceph -s # 检查HEALTH_OK状态 ``` #### 四、常见问题处理 | 问题现象 | 解决方案 | |---------|----------| | `ceph-deploy`安装失败 | 检查Python3版本,建议3.6+ | | Monitor启动超时 | 确认节点时钟同步(NTP服务) | | OSD无法创建 | 检查磁盘是否未分区(使用`lsblk`验证)[^3] | ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

StarsL.cn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值