分布式存储ceph第17.2.6-quincy版本-全手动搭建完整方案(centos 9 stream)

跳过坑的经验值得大家仔细参考!

不多说, 开始我们的步骤

硬件:
硬件准备(至少三个以上节点,节点不够可使用虚拟机)
节点IP数据盘(osd)角色
ceph1

192.168.100.2(public)

110.110.100.2(cluster)

osd.1(ssd)

osd.2(ssd)

mon,mgr,osd
ceph2

192.168.100.3(public)

110.110.100.3(cluster)

osd.3(ssd)

osd.4(ssd)

mon,mgr,osd
ceph3

192.168.100.4(public)

110.110.100.4(cluster)

osd.5(ssd)

osd.6(ssd)

mon,mgr,osd
ceph4

192.168.100.5(public)

110.110.100.5(cluster)

osd.7(ssd)

osd.8(ssd)

osd

建议双网口,public为连接集群外部的业务端口,cluster为集群内部的心跳和数据交换端口,public和cluster可使用相同网段,但建议都为独立网卡,每个节点硬盘和硬盘容量大小以及性能最好保持一致,否则容易出现莫名奇妙的错误,老旧硬盘建议先使用硬件raid或zfs组成性能和容量相当的逻辑盘

1、关闭防火墙和selinux(个人生产环境已在对外端口放置了防火墙,所以主机之间有内部专用交换机连接,对于无防火墙的不建议关闭防火墙,而采取开放端口的策略):
###不解释了,运行后建议重启服务器
#禁用selinux
setenforce 0
#建议直接使用下面语句后重启服务器
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

#禁用防火墙,firewalld
systemctl stop firewalld && systemctl disable firewalld
2、配置服务器之间的免密登陆:
###先每个主机单独ssh-keygen:
ssh-keygen
#然后一路回车直到生成完毕
cp ~/.ssh/{id_rsa.pub,authorized_keys}

###在第一个节点执行:
for i in{2..4};do scp ceph$i:~/.ssh/id_rsa.pub ~/.ssh/idrsa_$i;done
cat ~/.ssh/idrsa_* >> ~/.ssh/authorized_keys
for i in {2..4};do scp ~/.ssh/authorized_keys $i:~/.ssh/;done

####终极大法(建议):
#第一个管理节点使用nfs共享home目录,其它节点共享挂载home目录,然后在第一个节点运行下面语句即可;
ssh-keygen
cp ~/.ssh/{id_rsa.pub,authorized_keys}
3、配置时间同步(非常重要):
###所有节点:
yum install -y chrony
systemctl start  chronyd && systemctl enable  chronyd

#批量执行语句:
for i in {1..4};do ssh $i yum install -y chrony;done
for i in {1..4};do ssh $i systemctl start  chronyd && systemctl enable  chronyd;done

###第一个节点:
vim /etc/chrony.conf
pool ntp1.aliyun.com iburst
#或
server ntp1.aliyun.com iburst
allow 192.168.100.0/24
allow 110.110.100.0/24

###其他节点:
vim /etc/chrony.conf
server 192.168.100.2 iburst


###如果出现无法连接同步主机的情况,请检查防火墙设置和chrony.keys, 建议注释掉下面这行:
#keyfile /etc/chrony/chrony.keys
4、安装ceph,建议使用yum或dnf 安装:
###选择安装可先查看可安装的模块:
yum list | grep ceph

#mon节点需要安装:
yum install ceph ceph-base ceph-mon

#mgr节点需要安装,建议全部安装:
yum install ceph-mgr ceph-mgr-dashboard
#所有需要挂载硬盘的节点都要安装:
yum install ceph-osd

###建议直接全部安装:
yum install ceph-*


##这里是 yum list | grep ceph 中主要的可选择模块:
ceph.x86_64                                                                              2:17.2.6-4.el9s                                @centos-ceph-quincy       
ceph-base.x86_64                                                                         2:17.2.6-4.el9s                                @centos-ceph-quincy       
ceph-common.x86_64                                                                       2:17.2.6-4.el9s                                @centos-ceph-quincy       
ceph-grafana-dashboards.noarch                                                           2:17.2.6-4.el9s                                @centos-ceph-quincy       
ceph-mds.x86_64                                                                          2:17.2.6-4.el9s                                @centos-ceph-quincy       
ceph-mgr.x86_64                                                                          2:17.2.6-4.el9s                                @centos-ceph-quincy       
ceph-mgr-dashboard.noarch                                                                2:17.2.6-4.el9s                                @centos-ceph-quincy       
ceph-mgr-diskprediction-local.noarch                                                     2:17.2.6-4.el9s                                @centos-ceph-quincy       
ceph-mgr-k8sevents.noarch                                                                2:17.2.6-4.el9s                                @centos-ceph-quincy       
ceph-mgr-modules-core.noarch                                                             2:17.2.6-4.el9s                                @centos-ceph-quincy       
ceph-mgr-rook.noarch                                                                     2:17.2.6-4.el9s                                @centos-ceph-quincy       
ceph-mon.x86_64                                                                          2:17.2.6-4.el9s                                @centos-ceph-quincy       
ceph-osd.x86_64                                                                          2:17.2.6-4.el9s                                @centos-ceph-quincy       
ceph-prometheus-alerts.noarch                                                            2:17.2.6-4.el9s                                @centos-ceph-quincy    
##之所以不建议生产环境关闭selinux,因为现在大部分的系统安装都配置了相应selinux的准许模块   
ceph-selinux.x86_64                                                                      2:17.2.6-4.el9s                                @centos-ceph-quincy       
ceph-volume.noarch                                                                       2:17.2.6-4.el9s                                @centos-ceph-quincy       
5、从第一个节点进入/etc/ceph目录,配置ceph集群,设置认证keyring及ca证书等
###进入/etc/ceph目录
cd /etc/ceph

手动配置集群mon并启动mon节点:

###第一个mon节点
#配置keyring,临时存储在/tmp目录下:
ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'
ceph-authtool --create-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring --gen-key -n client.bootstrap-osd --cap mon 'profile bootstrap-osd' --cap mgr 'allow r'

ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring
ceph-authtool /tmp/ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring

### 授权ceph
chown ceph:ceph /tmp/ceph.mon.keyring
### 生成mon.map, fsid 使用uuidgen生成,并与下方ceph.conf文件中的一致
monmaptool --create --add ceph1 110.110.100.2 --add ceph2 110.110.100.3 --add ceph3 110.110.100.4 --fsid 0bd47374-8167-4bbc-bf12-3a59d4ddd50d /tmp/mon.map
chown ceph:ceph /tmp/mon.map
### 建立mon文件夹一般为{ceph-hostname}
sudo -u ceph mkdir /var/lib/ceph/mon/ceph-ceph1
### 初始化启动mon节点
sudo -u ceph ceph-mon --cluster ceph --mkfs -i ceph1 --monmap /tmp/mon.map --keyring /tmp/ceph.mon.keyring

###验证mon是否启动
systemctl status ceph-mon@ceph1
ceph -s

##########################################################################
### 配置并启动其它mon节点
for i in {2,3};do scp /etc/ceph/ceph.client.admin.keyring $i:/etc/ceph/;done
for i in {2,3};do scp /tmp/ceph.mon.keyring $i:/tmp/;done
for i in {2,3};do scp /tmp/mon.map $i:/tmp/;done
for i in {2,3};do scp /var/lib/ceph/bootstrap-osd/ceph.keyring $i:/var/lib/ceph/bootstrap-osd/;done

###分别进入另外的mon节点,或直接使用批量执行语句
sudo chown ceph:ceph /tmp/ceph.mon.keyring
sudo -u ceph ceph-mon --cluster ceph --mkfs -i ceph2 --monmap /tmp/mon.map --keyring /tmp/ceph.mon.keyring

ceph全局配置参考,可只要前面14行,其他可根据自己实际需求设置:

[global]
###fsid可使用uuidgen直接生成
fsid = 0bd47374-8167-4bbc-bf12-3a59d4ddd50d
mon_initial_members = ceph1, ceph2, ceph3
mon_host = 192.168.100.2, 192.168.100.3, 192.168.100.4
cluster_network = 110.110.100.0/24
public_network = 192.168.100.0/24
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
osd_journal_size = 8172
osd_pool_default_size = 3
osd_pool_default_min_size = 2
osd_pool_default_pg_num = 333
osd_pool_default_pgp_num = 333
osd_crush_chooseleaf_type = 1
osd_deep_scrub_interval = 1209600
mon osd full ratio = .90
mon osd nearfull ratio = .80
osd op threads = 8
journal aio = true
journal dio = true
journal queue max ops = 10000
journal queue max bytes = 335544320
filestore queue max ops = 5000
filestore queue committing max ops = 5000
filestore queue max bytes = 1048576000
ms nocrc = true

rbd op threads = 4
rbd cache size = 268435456
rbd cache max dirty = 134217728
rbd cache max dirty age = 5
rbd cache max dirty object = 64

[client]
rbd cache = true
#rbd cache size = 67108864
rbd cache writethrough until flush = true


[mon]
mon_allow_pool_delete = true
mon_clock_drift_allowed = 2

[mgr]
mgr_modules = dashboard

6、配置mgr节点,一般在mon节点下启用,可只启用一个,建议2个以上:
###进入第一个mon节点,ceph1为hostname:
ceph mon enable-msgr2
mkdir /var/lib/ceph/mgr/ceph-ceph1
chown ceph:ceph /var/lib/ceph/mgr/ceph-ceph1
ceph-authtool --create-keyring /etc/ceph/ceph.mgr.ceph1.keyring --gen-key -n mgr.ceph1 --cap mon 'allow profile mgr' --cap osd 'allow *' --cap mds 'allow *'
ceph auth import -i /etc/ceph/ceph.mgr.ceph1.keyring
ceph auth get-or-create mgr.ceph1 -o /var/lib/ceph/mgr/ceph-ceph1/keyring

###设置dashboard服务地址和指定服务端口
ceph config set mgr mgr/dashboard/ceph1/server_addr 110.110.100.2
ceph config set mgr mgr/dashboard/ceph1/server_port 28081
###启用dashboard
ceph mgr module enable dashboard
systemctl enable ceph-mon@ceph1 --now
###确认服务已启用
netstat -lntp|grep ceph-mon

###如启用其它mgr节点,其步骤与此相同,但整个集群mgr服务只会在一个节点启用,可使用haproxy将正在启用的几点作为主节点,其它为backup,做高可用
###查看当前mgr服务节点信息:
ceph mgr services

### dashboard 启用ssl:
openssl req -new -nodes -x509 \
-subj "/O=IT/CN=ceph-mgr-dashboard" -days 3650 \
-keyout dashboard.key -out dashboard.crt -extensions v3_ca

ceph dashboard set-ssl-certificate -i dashboard.crt
ceph dashboard set-ssl-certificate-key -i dashboard.key
###或者
ceph dashboard create-self-signed-cert

###开启ssl认证:
ceph config set mgr mgr/dashboard/ssl true
###重启mgr并确认已经使用https:

####配置dashboard访问用户和密码:
#查看已有账户:
ceph dashboard ac-user-show 
#配置密码文件并创建新用户admin,可改为自己想要的名字:
vim /etc/ceph/admin.secret
23029402349ASFEwer

#创建admin用户并使用admin.secret文件中的字符串作为密码
ceph dashboard ac-user-create admin -i ./sf admin.secret

###访问ceph mgr services中dashboard后提示的地址,在浏览器中访问并使用创建的用户登陆即可
7、集群添加osd;
###从mon节点复制keyring到所有需要挂载osd的节点
for i in {2..4};do scp /var/lib/ceph/bootstrap-osd/ceph.keyring $i:/var/lib/ceph/bootstrap-osd/ceph.keyring;done
chown ceph:ceph /var/lib/ceph/bootstrap-osd/ceph.keyring

######################################
###全新硬盘可直接加入集群:
lsblk
#确认需要添加的磁盘路径后,使用ceph-volume添加;
ceph-volume lvm create --data /dev/sda
ceph-volume lvm create --data /dev/sdb

#其它节点操作相同

###已经使用过的硬盘需要先擦除和zap:
#清除磁盘内容
wipefs -af /dev/sda
#重新zap 该磁盘
ceph-volume lvm zap /dev/sda
#将磁盘加入集群
ceph-volume lvm create --data /dev/sda

########确认硬盘上线
ceph osd tree

osd常用操作请查看:分布式存储ceph osd 常用操作_小果运维的博客-CSDN博客

 rbd常用操作请查看:分布式存储ceph rbd 常用操作_小果运维的博客-CSDN博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小果运维

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

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

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

打赏作者

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

抵扣说明:

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

余额充值