CentOS7部署ceph
阅读原文时间:2021年11月30日阅读:8

不管你是想为云平台提供Ceph 对象存储和/或 Ceph 块设备,还是想部署一个 Ceph 文件系统或者把 Ceph 作为他用,所有 Ceph 存储集群的部署都始于部署一个个 Ceph 节点、网络和 Ceph 存储集群。 Ceph 存储集群至少需要一个 Ceph Monitor 和两个 OSD 守护进程。而运行 Ceph 文件系统客户端时,则必须要有元数据服务器( Metadata Server )。

  • Ceph OSDs: Ceph OSD 守护进程( Ceph OSD )的功能是存储数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他OSD 守护进程的心跳来向 Ceph Monitors 提供一些监控信息。当 Ceph 存储集群设定为有2个副本时,至少需要2个 OSD 守护进程,集群才能达到 active+clean 状态( Ceph 默认有3个副本,但你可以调整副本数)。
  • Monitors: Ceph Monitor维护着展示集群状态的各种图表,包括监视器图、 OSD 图、归置组( PG )图、和 CRUSH 图。 Ceph 保存着发生在Monitors 、 OSD 和 PG上的每一次状态变更的历史信息(称为 epoch )。
  • MDSs: Ceph 元数据服务器( MDS )为 Ceph 文件系统存储元数据(也就是说,Ceph 块设备和 Ceph 对象存储不使用MDS )。元数据服务器使得 POSIX 文件系统的用户们,可以在不对 Ceph 存储集群造成负担的前提下,执行诸如 ls、find 等基本命令。

Ceph 把客户端数据保存为存储池内的对象。通过使用 CRUSH 算法, Ceph 可以计算出哪个归置组(PG)应该持有指定的对象(Object),然后进一步计算出哪个 OSD 守护进程持有该归置组。 CRUSH 算法使得 Ceph 存储集群能够动态地伸缩、再均衡和修复。

服务器

节点

类型

ip

CPU

内存

硬盘

ceph-deploy

管理平台

192.168.68.50

2

4G

/dev/sdb

/dev/sdc

ceph1

Monitor osd

192.168.68.51

2

4G

/dev/sdb

/dev/sdc

ceph2

osd

192.168.68.52

2

4G

/dev/sdb

/dev/sdc

ceph3

osd

192.168.68.53

2

4G

/dev/sdb

/dev/sdc

系统环境

ceph version: 14.2.22 nautilus

OS: CentO7.9

内核:5.4.161

转载请在文章开头附上原文链接地址:https://www.cnblogs.com/Sunzz/p/15624370.html

修改/etc/hosts

每个服务器都要修改

192.168.68.50 ceph.local
192.168.68.51 ceph1.local ceph1
192.168.68.52 ceph2.local ceph2
192.168.68.53 ceph3.local ceph3

新增用户

各ceph节点新增cephuser用户

useradd cephuser
echo "123456" | passwd --stdin cephuser
echo "cephuser ALL = (root) NOPASSWD:ALL" > /etc/sudoers.d/cephuser

安装rpm包

ceph-deploy节点安装所需的包,root用户操作

yum install ceph-deploy python2-pip.noarch ceph-common -y

部署节点新增用户

deploy管理节点新增manager用户

useradd manager echo "123456" | passwd --stdin manager

copy密钥

在ceph-deploy节点上生成并copy密钥,做免密登陆

su - manager
ssh-keygen #一顿回车或者根据自己情况选择
ssh-copy-id cephuser@192.168.68.51
ssh-copy-id cephuser@192.168.68.52
ssh-copy-id cephuser@192.168.68.53

简化ssh配置

ceph-deply节点的manger用户家目录下,

修改config后deploy节点所建的用户名登录Ceph节点无需每次指定 --username cephuser ,简化了ssh和scp的用法

vim /home/manager/.ssh/config

Host ceph1
Hostname ceph1
User cephuser
Host ceph2
Hostname ceph2
User cephuser
Host ceph3
Hostname ceph3
User cephuser 

chmod 600 .ssh/config

创建工作目录

mkdir ceph-cluster
cd ceph-cluster

创建集群

ceph-deploy new ceph1

或 指定网段,如果有多个网卡,可使用不同的网段

ceph-deploy new --cluster-network 192.168.68.0/24 --public-network 192.168.68.0/24 ceph1

ceph-deploy install ceph1 ceph2 ceph3 --stable --release nautilus --repo-url=https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/ --gpg-url=https://mirrors.aliyun.com/ceph/keys/release.asc

--stable 指名为稳定版

--release 指定版本 nautilus ,即就是14.2版本

可指定repo为国内源

--repo-url=https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/ --gpg-url=https://mirrors.aliyun.com/ceph/keys/release.asc

ceph-deploy mon create-initial #初始monitor、并收集所有密钥

部署mgr

ceph-deploy mgr create ceph1 ceph2 ceph3

复制key

ceph-deploy admin ceph1 ceph2 ceph3

给deploy本身也复制一份,需要用root操作,以方便用deploy管理ceph集群

cp /home/manager/ceph-cluster/ceph.client.admin.keyring /etc/ceph/ chmod 644 /etc/ceph/ceph.client.admin.keyring

ceph -s

WARN解决

1. Module 'restful' has failed dependency: No module named 'pecan' (这个在centos7上安装13版本不会出现)

yum install python36-devel

pip3 install werkzeug pecan

systemctl restart ceph-mon.target

systemctl restart ceph-mgr.target

2. mon is allowing insecure global_id reclaim

如果有警告,则禁用安全模式

ceph config set mon auth_allow_insecure_global_id_reclaim false

3.OSD count 0 < osd_pool_default_size 3

这个是因为还没有添加osd,等一会添加后就好了

列出磁盘

ceph-deploy disk list ceph1 【ceph2 ceph3】

添加osd

ceph-deploy osd create --data /dev/sdb ceph1
ceph-deploy osd create --data /dev/sdc ceph1
ceph-deploy osd create --data /dev/sdb ceph2
ceph-deploy osd create --data /dev/sdc ceph2
ceph-deploy osd create --data /dev/sdb ceph3
ceph-deploy osd create --data /dev/sdc ceph3

扩展高可用

ceph-deploy mon add ceph2

提示:默认情况下,dashboard的所有HTTP连接均使用SSL/TLS进行保护。以上内置命令可快速生成并安装自签名证书。

各ceph节点安装dashboard

yum install ceph-mgr-dashboard.noarch -y

启用dashboard

ceph mgr module enable dashboard
ceph dashboard create-self-signed-cert
echo admin > pass.txt #设置管理员密码
ceph dashboard ac-user-create admin -i pass.txt #创建管理员

或者 ceph dashboard set-login-credentials admin -i pass.txt ceph mgr services #确认验证

或者关闭ssl

ceph mgr module enable dashboard
ceph config set mgr mgr/dashboard/ssl false
echo admin > pass.txt #创建管理员
ceph dashboard set-login-credentials admin -i pass.txt

aliyun-base.repo

[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
enabled=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/extras/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

base.repo

阿里云epel源

aliyun-epel.repo

[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=http://mirrors.aliyun.com/epel/7/$basearch
failovermethod=priority
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

eple.repo

阿里云ceph源

[ceph-noarch]
name=Ceph noarch packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-15.2.9/el7/noarch/
#baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc

ceph.repo

octopus ,即就是15.2版本,在centos7上问题比较多,dashboard没法使用。

yum install ceph-mgr-dashboard

 

缺的这三个报在centos8上有,centos7上没有。