Ubuntu20.04LTS环境docker+cephadm方式部署Ceph 17.2.5
简述
什么是ecph
 ceph是一个开放、自我修复和自我管理的统一分布式存储系统。具有高扩展性、高新能、高可靠性的优点。
 ceph分布式存储优势
 高扩展性:使用普通X86服务器,支持10~1000台服务器,支持TB到EB级的扩展。
 高可靠性:没有单点故障,多数据副本,自动管理,自动修复。
 高性能:数据分布均衡
ceph支持三种调用接口: 块存储、文件系统存储、对象存储。三种方式可以一同使用。
ceph的三个主要进程
 Monitor监控整个集群的状态,维护集群的cluster MAP数据分布图(二进制表),保证集群数据的一致性。
 OSD用于集群中所有数据与对象的存储,处理集群数据的复制、恢复、回填、在均衡,并向其他osd守护进程发送心跳,然后向Monitor提供监控信息。
 MDS(可选)为Ceph文件系统提供元数据计算、缓存与同步。MDS进程并不是必须的进程,只有需要使用CephFS时,才需要配置MDS节点。
部署时注意事项
 ceph生产环境推荐:
 1、存储集群采用全万兆网络(条件允许使用光纤网络)
 2、集群网络与公共网络分立
 3、mon、mds与osd分离部署在不通机器上
 4、OSD使用SATA亦可
 5、根据容量规划集群
 6、志强E5 2620 V3或以上的cpu,64GB或更高内存
 7、集群主机分散部署,避免机柜故障(电源、网络)
1、环境准备
1.1主机信息
| 主机名 | IP | 角色 | 备注 | 磁盘 | hosts | 
| node1 | 192.168.10.101 | admin,osd,mon,mar | sda/60G | IP 主机名 | |
| node2 | 192.168.10.102 | osd,mds | sdb/20G | IP 主机名 | |
| node3 | 192.168.10.103 | osd,mds | sdb/20G | IP 主机名 | |
| node4 | 192.168.10.104 | client | 客户端,访问存储 | sdb/60G | IP 主机名 | 
1.2修改主机名
node1/node2/node3
hostnamectl set-hostname node1/node2/node3
1.3修改hosts文件,加入主机信息
vi /etc/hosts
192.168.10.101 node1 192.168.10.102 node2 192.168.10.103 node3
1.4.1在node1上,从阿里云的NTP服务器上同步时间。
apt -y install chrony # 备份NTP服务的原始配置文件 mv /etc/chrony/chrony.conf /etc/chrony/chrony.conf.bak # 编写一个空的配置文件,文件只有两行配置 vim /etc/chrony/chrony.conf -------------------- server ntp.aliyun.com iburst allow 192.168.10.101/24 # 保存退出 #重启系统的ntp服务 service chrony restart
1.4.2再配置ceph0002和ceph0003的NTP服务,从ceph0001上拉去时间。
apt -y install chrony # 备份NTP服务的原始配置文件 mv /etc/chrony/chrony.conf /etc/chrony/chrony.conf.bak # 编写一个空的配置文件,文件只有一行配置 vim /etc/chrony/chrony.conf -------------------- server ceph0001 iburst #重启系统的ntp服务 service chrony restart
1.4.3三台节点执行以下命令。
chronyc sources

 
1.5 关闭 iptable 和 firewalld
systemctl stop iptables
systemctl stop firewalld
systemctl disable iptables
systemctl disable firewalld
1.6关闭 SElinux
vi /etc/selinux/config
SELINUX=disabled
1.7生成SSH证书,并分发到其他节点
ssh-keygen -t rsa -P '' ssh-copy-id -i .ssh/id_rsa.pub root@192.168.10.102 ssh-copy-id -i .ssh/id_rsa.pub root@192.168.10.103
1.8依赖安装
cephadm 部署 ceph 集群时,需要如下依赖:- python3
 - Docker或Podman
 - systemd
 - lvm2
 
运行以下命令即可安装Docker:
wget -qO- get.docker.com | sh
查看Docker版本
docker -v
使用以下命令 启动docker后台服务、使Docker在开机时自动启动:
sudo service docker start
systemctl enable docker
2. 安装部署Ceph17.2.5
2.1安装cephadm,拉取ceph镜像
以下命令在controller节点执行
# 下面的命令会自动安装 docker 等依赖 apt install -y cephadm # 拉取ceph镜像 docker pull quay.io/ceph/ceph:v17.2 # 查看cpeh版本 $ cephadm version ceph version 17.2.5 (98318ae89f1a893a6ded3a640405cdbb33e08757) quincy (stable) # 查看docker镜像 $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE quay.io/ceph/ceph v17.2 cc65afd6173a 2 months ago 1.36GB

 通过运行以下命令确认cephadm:
which cephadm
成功的命令将返回以下内容:/usr/sbin/cephadm
 
2.2创建集群
使用 cephadm 创建 Ceph 集群的流程为:
- 初始化第一个 mon 节点
 - 配置 ceph 命令行
 - 扩展集群 osd 节点
 
2.2.1. 初始化 mon 节点
cephadm bootstrap --mon-ip 192.168.10.101 --allow-overwrite

显示出 Bootstrap complete. 表示部署成功。使用:
–image quay.io/ceph/ceph:v17.2 指定镜像地址
–registry-url 指定仓库 https://hub.docker.com/u/quayioceph
–single-host-defaults
可以登陆输出的地址输入账号密码进入dashboard界面查看ceph运行情况如下图所示。

启用 CEPH CLI
安装该ceph-common软件包,其中包含所有 ceph 命令
cephadm add-repo --release pacific
cephadm install ceph-common
添加主机
1分发 SSH 公钥
我们在 2.1 引导第一台机器的时候,SSH 生成了一个公钥文件(默认位置是 /etc/ceph/ceph.pub)。
Cephadm 通过 SSH 免密实现对集群中各个机器的操作(私钥藏起来了),所以我们得把这个 SSH 公钥,分发到每个集群的主机上。
命令:ssh-copy-id -f -i /etc/ceph/ceph.pub root@<new-host>把引导机上的 SSH 公钥副本 /etc/ceph/ceph.pub 的内容,
写入 root@<new-host> 的 /root/.ssh/authorized_keys 中,从而实现免密(引导机的 /root/.ssh/authorized_keys 在引导阶段就已经写入了)。
ssh-copy-id -f -i /etc/ceph/ceph.pub root@node2
ssh-copy-id -f -i /etc/ceph/ceph.pub root@host3
2添加主机
ceph orch host add node2 192.168.10.102 ceph orch host add node3 192.168.10.103

若不能添加主机,请检查主机的4个依赖(python3、Docker或Podman、systemd、lvm2),未安装的须安装,所有主机的docker需要启动
添加额外的监视器 MON
ceph orch daemon add mon node2:192.168.10.102
ceph orch daemon add mon node3:192.168.10.103
添加OSD
CEPH-MGR 管理员
apt install ceph-mgr
创建一个身份验证密钥:
ceph auth get-or-create mgr.$name mon 'allow profile mgr' osd 'allow *' mds 'allow *'
将该密钥放入路径中,对于集群“ceph”和 mgr $name“foo”来说,该路径将是。mgr data/var/lib/ceph/mgr/ceph-foo
启动 ceph-mgr 守护进程:
ceph-mgr -i $name
 
                    
                
                
            
        
浙公网安备 33010602011771号