既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
hostnamectl set-hostname node3
配置主机时间同步
systemctl restart chronyd.service && systemctl enable chronyd.service
## 使用yum安装
安装yum-plugin-priorities
yum install yum-plugin-priorities
安装依赖包
yum install snappy leveldb gdisk python-argparse gperftools-libs epel-release
**添加ceph仓库**
建议使用阿里的源,国外的太慢了
vim /etc/yum.repos.d/ceph.repo
[ceph]
name=ceph
baseurl=http://mirrors.aliyun.com/ceph/rpm-15.2.8/el7/x86_64/
gpgcheck=0
[ceph-noarch]
name=cephnoarch
baseurl=http://mirrors.aliyun.com/ceph/rpm-15.2.8/el7/noarch/
gpgcheck=0
安装ceph
yum install ceph -y
**部署monitor节点**
所有 Ceph 群集至少需要一个monitor,并且至少需要与存储在群集上的对象副本一样多的 OSD。引导初始mon是部署 Ceph 存储群集的第一步,这里我直接在node1、node2、node3创建三个mon。
**在node1添加monitor**
为集群生成唯一的fsid,fsid是群集的唯一标识符,代表 Ceph 存储群集主要用于 Ceph 文件系统的文件系统 ID
uuidgen
创建ceph配置文件,将生成的fsid添加到配置文件中
vim /etc/ceph/ceph.repo
[global]
fsid=9c079a1f-6fc2-4c59-bd4d-e8bc232d33a4
为群集创建keyring并生成monitor keyring。monitor通过密钥相互通信。必须生成具有monitor密钥的keyring,并在引导初始monitor时提供keyring。
ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon ‘allow *’
生成管理员keyring,生成用户并将用户添加到client.admin keyring中。要使用 CLI 工具,必须有一个用户,并且还必须将用户添加到monitor keyring。
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 *’
成引导 osd 密钥,生成用户并将用户添加到client.bootstrap-osd keyring中。
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.mon.keyring
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.mon.keyring的所有者。
chown ceph:ceph /tmp/ceph.mon.keyring
使用主机名、主机 IP 地址和 FSID 生成monitor映射。将其保存为 :/tmp/monmap
monmaptool --create --add node1 192.168.2.16 --add node2 192.168.2.19 --add node3 192.168.2.18 --fsid 9c079a1f-6fc2-4c59-bd4d-e8bc232d33a4 /tmp/monmap
查看生成的monitor映射文件
monmaptool --print /tmp/monmap
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210116190021856.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTA3OTc3,size_16,color_FFFFFF,t_70)
在monitor主机上创建默认数据目录,目录名是{cluster-name}-{hostname}格式
mkdir /var/lib/ceph/mon/ceph-node1
chmod 777 -R /var/lib/ceph/mon/ceph-node3
在node1节点对monitor进行初始化
ceph-mon --mkfs -i node1 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring
可以查看数据目录生成的文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210116190046635.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTA3OTc3,size_16,color_FFFFFF,t_70)
编辑ceph配置文件
[global]
fsid = 9c079a1f-6fc2-4c59-bd4d-e8bc232d33a4
mon initial members = node1,node2,node3
mon host = 192.168.2.16,192.168.2.19,192.168.2.18
mon clock drift allowed = .5
auth cluster required = cephx
auth service required = cephx
auth client required = cephx
osd pool default size = 3 //创建pool的时候默认pool是3副本
osd pool default min size = 2 //pool最少可写的副本数为2
osd pool default pg num = 8
osd pool default pgp num = 8
osd crush chooseleaf type = 0
将配置文件拷贝到其他节点
scp /etc/ceph/ceph.conf node2:/etc/ceph/ceph.conf
scp /etc/ceph/ceph.conf node3:/etc/ceph/ceph.conf
将mon keyring,mon map及admin keyring拷贝到其他节点
scp /tmp/ceph.mon.keyring node2:/tmp/ceph.mon.keyring
scp /etc/ceph/ceph.client.admin.keyring node2:/etc/ceph/ceph.client.admin.keyring
scp /tmp/monmap node2:/tmp/monmap
scp /tmp/ceph.mon.keyring node3:/tmp/ceph.mon.keyring
scp /etc/ceph/ceph.client.admin.keyring node3:/etc/ceph/ceph.client.admin.keyring
scp /tmp/monmap node3:/tmp/monmap
**在node2、node3上添加monitor**
分别在这两个节点创建数据目录
mkdir /var/lib/ceph/mon/ceph-node2
chmod 777 -R /var/lib/ceph/mon/ceph-node2
mkdir /var/lib/ceph/mon/ceph-node3
chmod 777 -R /var/lib/ceph/mon/ceph-node3
分别在这两个节点对monitor进行初始化
ceph-mon --mkfs -i node2 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring
ceph-mon --mkfs -i node3 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring
分别在三个节点启动ceph-mon服务
systemctl start ceph-mon@node1 && systemctl enable ceph-mon@node1
systemctl start ceph-mon@node2 && systemctl enable ceph-mon@node2
systemctl start ceph-mon@node3 && systemctl enable ceph-mon@node3
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210116190506621.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTA3OTc3,size_16,color_FFFFFF,t_70)
>
> 可以看到提示3 monitors have not enabled msgr2"
>
>
>
执行以下命令恢复正常
ceph mon enable-msgr2
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210116191551497.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTA3OTc3,size_16,color_FFFFFF,t_70)
**创建MGR**
在运行ceph-mon守护程序的每个节点上,还应该设置一个ceph-mgr守护程序。
**创建密钥目录**
所有mgr节点都要执行
sudo -u ceph mkdir /var/lib/ceph/mgr/ceph-hostname -s
cd /var/lib/ceph/mgr/ceph-hostname -s
创建身份验证密钥
ceph auth get-or-create mgr.hostname -s
mon ‘allow profile mgr’ osd ‘allow *’ mds ‘allow *’ > keyring
启动mgr守护进程
systemctl enable ceph-mgr@hostname -s
&& systemctl start ceph-mgr@hostname -s
看样子状态有点异常,在所有节点执行下面的命令之后重启机器即可解决
>
> Module ‘restful’ has failed dependency: No module named ‘pecan’
>
>
>
pip3 install pecan werkzeug
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210116191639443.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTA3OTc3,size_16,color_FFFFFF,t_70)
**部署osd**
Ceph提供了该ceph-volume实用程序,该实用程序可以准备逻辑卷,磁盘或分区以供Ceph使用。该ceph-volume实用程序通过增加索引来创建OSD ID。
**创建osd**
在node1执行
ceph-volume lvm create --data /dev/sdb
上面的创建过程可以分为两个阶段(准备和激活):
ceph-volume lvm prepare --data /dev/sdb
查看osd fsid
ceph-volume lvm list
ceph-volume lvm activate {ID} {FSID}
当创建完osd之后,我们发现osd服务已经起来了
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210116191708839.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTA3OTc3,size_16,color_FFFFFF,t_70)
当我们在node2、node3节点执行此命令的时候报错了,发现缺少密钥文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210116191720740.png)
拷贝密钥文件
scp /var/lib/ceph/bootstrap-osd/ceph.keyring node2:/var/lib/ceph/bootstrap-osd/ceph.keyring
scp /var/lib/ceph/bootstrap-osd/ceph.keyring node3:/var/lib/ceph/bootstrap-osd/ceph.keyring
修改密钥属主属组
chown ceph.ceph /var/lib/ceph/bootstrap-osd/ceph.keyring
分别在node2、node3创建osd
ceph-volume lvm create --data /dev/sdb
也可以分步执行
ceph-volume lvm prepare --data /dev/sdb
##获取osd id 和osd fsid
ceph-volume lvm list
##激活osd
ceph-volume lvm activate {ID} {FSID}
最后状态是这样的
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210116191754487.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTA3OTc3,size_16,color_FFFFFF,t_70)
**添加MDS**
创建mds数据目录
mkdir -p /var/lib/ceph/mds/ceph-hostname -s
chown -R ceph.ceph /var/lib/ceph/mds/ceph-hostname -s
创建keyring
ceph-authtool --create-keyring /var/lib/ceph/mds/ceph-hostname -s
/keyring --gen-key -n mds.hostname -s
导入keyring并设置权限
ceph auth add mds.hostname -s
osd “allow rwx” mds “allow” mon “allow profile mds” -i /var/lib/ceph/mds/ceph-hostname -s
/keyring
chown ceph:ceph /var/lib/ceph/mds/ceph-hostname -s
/keyring
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
allow profile mds" -i /var/lib/ceph/mds/ceph-hostname -s
/keyring
chown ceph:ceph /var/lib/ceph/mds/ceph-hostname -s
/keyring
[外链图片转存中…(img-BC4PFNbP-1714975810621)]
[外链图片转存中…(img-7N9ZvaOK-1714975810621)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!