搭建开源版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,一台执行就行,这里选择node1wget 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服务移除OSDceph orch daemon stop osd.6ceph orch daemon rm osd.6 --forceceph 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管理节点以执行cephadmceph 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