搭建开源版Ceph分布式存储

系统:Rocky8.6

三台2H4G 三块10G的硬盘的虚拟机

node1 192.168.2.101

node2 192.168.2.102

node3 192.168.2.103
三台虚拟机环境准备
1、配置主机名和IP的映射关系
2、关闭selinux和firewalld防火墙
3、配置时间同步且所有节点chronyd服务开机自启
1、配置主机名和IP的映射关系

1、修改主机名,三台都需要修改,此处举例node1
hostnamectl set-hostname node1

2、vi /etc/hosts    修改hosts文件,配置主机名和IP映射关系,添加这三条
192.168.2.101 node1
192.168.2.102 node2
192.168.2.103 node3

3、远程拷贝已经修改的节点文件到另外两台,也可直接过去修改
scp /etc/hosts root@node2:/etc/
scp /etc/hosts root@node3:/etc/

2、关闭selinux和firewalld防火墙

三台都需关闭
systemctl disable --now firewalld 
sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config 

3、配置时间同步且所有节点chronyd服务开机自启

三台都需执行
echo 'server time.windows.com iburst'  >> /etc/chrony.conf 

重启chrony服务并设置开机自启
systemctl restart chronyd 
systemctl enable chronyd 

chronyc sources 可查看是否同步成功

获取指定版本的cephadm,一台执行就行,这里选择node1

wget https://github.com/ceph/ceph/raw/pacific/src/cephadm/cephadm  获取 cephadm
chmod +x cephadm  添加执行权限
./cephadm add-repo --release pacific  添加指定版本的ceph源
./cephadm install  安装cephadm工具

方框里的pacific为指定版本,也可替换为需求版本

在引导节点上部署单节点集群

cephadm bootstrap --mon-ip 192.168.2.101 --allow-fqdn-hostname --initial
dashboard-user admin --initial-dashboard-password admin --dashboard
password-noupdate

bootstrap 引导集群
 --mon-ip 192.168.2.101 指定mon节点地址
 --allow-fqdn-hostname 使用主机名作为dashboard地址
 --initial-dashboard-user admin 指定dashboard用户名为admin
 --initial-dashboard-password admin  指定dashboard用户密码为admin
 --dashboard-password-noupdate 首次登陆dashboard无需更改密码

部署完成即可浏览器访问web界面,端口8443

https://192.168.2.101:8443

User: admin

Password: admin

此时Hosts为1 图中因为已经添加了两台进去,所以显示3台
给集群添加其他节点及OSD磁盘

cephadm shell 进入到ceph操作环境
ceph cephadm get-pub-key > ~/ceph.pub 获取集群公钥并保存到当前路径下ceph.pub
ssh-copy-id -f -i ~/ceph.pub root@node2 拷贝公钥到node2,做免密
ssh-copy-id -f -i ~/ceph.pub root@node3 拷贝公钥到node3,做免密
ceph orch host add node2 需要写完整的主机名
ceph orch host add node3 需要写完整的主机名
这两个节点完全扩容到集群需要大概15分钟,并且时间同步

ceph orch daemon add osd node1:/dev/sdb 添加指定主机的单块磁盘为osd
ceph orch apply osd --all-available-devices 也可以在所有主机上将未使用的磁盘部署为osd

此时集群状态还是异常,因为OSD都是同一台设备的磁盘,PG存在单点故障问题,等其他两个节点加入集群,加入其他剩余磁盘即可恢复,下图为又加了一个节点进去

拓展:
关闭集群组件自扩展
ceph orch apply mon --unmanaged=true 关闭mon自动扩展
添加mgr节点
ceph orch daemon add mgr --placement=node2
添加mon节点
ceph orch daemon add mon --placement=node2
移除节点上的指定服务
ceph orch ps 查询各个节点上所运行的服务
ceph orch daemon rm mgr.node2.ifomqg 移除node2节点上的mgr服务
移除OSD
ceph orch daemon stop osd.6
ceph orch daemon rm osd.6 --force
ceph osd rm 6 这里6为osd序号
ceph orch device zap node2 /dev/sdd --force 擦除磁盘数据
ceph osd crush rm osd.6 删除cursh的osd映射
移除主机
ceph orch host rm node2 移除主机
标记ceph管理节点以执行cephadm
ceph orch host label add node2 mgr 给node2节点打上mgr标签
ceph orch host label add node3 mgr 给node3节点打上mgr标签
标记ceph组件节点以批量部署
ceph orch apply prometheus --placement="label:mgr" 给打上mgr标签节点部署prometheus

相关推荐
qq_448941081 天前
ceph文件系统
ceph
Tomorrow'sThinker2 天前
go语言调用s3接口通过rgw节点创建ceph用户
ceph·go
沉默的八哥3 天前
Ceph对象存储接口的路线
ceph
peter67683 天前
开源存储详解-分布式存储与ceph
ceph
腾科张老师9 天前
什么是Ceph?它的技术特点是什么?部署挑战及解决方案如何?
ceph·计算机·存储
活跃的煤矿打工人9 天前
【星海随笔】删除ceph
linux·服务器·ceph
怡雪~10 天前
k8s使用ceph
ceph·容器·kubernetes
怡雪~12 天前
Kubernetes使用Ceph存储
ceph·容器·kubernetes
学Linux的语莫22 天前
负载均衡,高可用,监控服务搭建总结
linux·服务器·分布式·ceph·lvs