Ceph在信创操作系统和服务器上安装

作者阿里云代理 文章分类 分类:linux图文教程 阅读次数 已被围观 971

编辑搜图

本文介绍在国产化操作系统和服务器上进行ceph集群的安装。

基础配置

操作系统使用银河kylin v10,CPU为飞腾处理器S2500。

复制
[root@node1 ~]# cat /etc/kylin-release Kylin Linux Advanced Server release V10 (Sword)
[root@node1 ~]# lscpu架构:                           aarch64CPU 运行模式:                   64-bit字节序:                         Little EndianCPU:                             128在线 CPU 列表:                  0-127每个核的线程数:                 1每个座的核数:                   64座:                             2NUMA 节点:                      16厂商 ID:                        Phytium型号:                           3型号名称:                       Phytium,S2500/64 C00步进:                           0x1CPU 最大 MHz:                   2100.0000CPU 最小 MHz:                   1100.0000BogoMIPS:                       100.00L1d 缓存:                       4 MiBL1i 缓存:                       4 MiBL2 缓存:                        64 MiBL3 缓存:                        128 MiBNUMA 节点0 CPU:                 0-7NUMA 节点1 CPU:                 8-15NUMA 节点2 CPU:                 16-23NUMA 节点3 CPU:                 24-31NUMA 节点4 CPU:                 32-39NUMA 节点5 CPU:                 40-47NUMA 节点6 CPU:                 48-55NUMA 节点7 CPU:                 56-63NUMA 节点8 CPU:                 64-71NUMA 节点9 CPU:                 72-79NUMA 节点10 CPU:                80-87NUMA 节点11 CPU:                88-95NUMA 节点12 CPU:                96-103NUMA 节点13 CPU:                104-111NUMA 节点14 CPU:                112-119NUMA 节点15 CPU:                120-127Vulnerability Itlb multihit:     Not affectedVulnerability L1tf:              Not affectedVulnerability Mds:               Not affectedVulnerability Meltdown:          Mitigation; PTIVulnerability Spec store bypass: VulnerableVulnerability Spectre v1:        Mitigation; __user pointer sanitizationVulnerability Spectre v2:        Not affectedVulnerability Srbds:             Not affectedVulnerability Tsx async abort:   Not affected标记:                           fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.

之前想通过cephadm的方式去部署,结果发现cephadm不支持kylin v10的操作系统,那么剩下的就只有手动部署和编译安装的方式,kylin v10系统已经自带了ceph luminous版本的包,如果想用新版的ceph那只能通过编译安装的方式了。

复制
CEPH_GIT_VER = "ae699615bac534ea496ee965ac6192cb7e0e07c0"CEPH_GIT_NICE_VER = "12.2.8"CEPH_RELEASE = "12"CEPH_RELEASE_NAME = "luminous"CEPH_RELEASE_TYPE = "stable"1.2.3.4.5.

配置hosts解析

复制
cat >> /etc/hosts <<EOF192.168.2.16 node1192.168.2.19 node2192.168.2.18 node3EOF1.2.3.4.5.

关闭防火墙

这里之前忘了关,创建ceph的时候卡主好几次。

复制
systemctl stop firewalld && systemctl disable firewalld1.

分别在三个节点设置主机名

复制
hostnamectl set-hostname node1hostnamectl set-hostname node2hostnamectl set-hostname node31.2.3.

配置主机时间同步

复制
vi /etc/chrony.confserver ntp1.aliyun.com iburstallow 192.168.2.0/24systemctl restart chronyd.service && systemctl enable chronyd.service1.2.3.4.

使用yum安装

安装ceph

麒麟v10已经自带了ceph 12版本的rpm包。

复制
yum install -y ceph1.

ceph命令执行需要用到python的PrettyTable模块,需要使用pip安装下。

复制
pip install PrettyTable1.

部署monitor节点

所有 Ceph 群集至少需要一个monitor,并且至少需要与存储在群集上的对象副本一样多的 OSD。引导初始mon是部署 Ceph 存储群集的第一步,这里我直接在node1、node2、node3创建三个mon。

在node1添加monitor

为集群生成唯一的fsid,fsid是群集的唯一标识符,代表 Ceph 存储群集主要用于 Ceph 文件系统的文件系统 ID。

复制
uuidgen1.

创建ceph配置文件,将生成的fsid添加到配置文件中。

复制
vim /etc/ceph/ceph.repo[global]fsid=9c079a1f-6fc2-4c59-bd4d-e8bc232d33a4mon initial members = node1mon host = 192.168.2.16public network = 192.168.2.0/24auth cluster required = cephxauth service required = cephxauth client required = cephxosd journal size = 1024osd pool default size = 1osd pool default min size = 1osd pool default pg num = 8osd pool default pgp num = 8osd crush chooseleaf type = 11.2.3.4.5.6.7.8.9.10.11.12.13.14.15.

为群集创建keyring并生成monitor keyring。monitor通过密钥相互通信。必须生成具有monitor密钥的keyring,并在引导初始monitor时提供keyring。

复制
ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'1.

生成管理员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 *'1.

生成引导 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'1.

将生成的键添加到 ceph.mon.keyring。

复制
ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyringceph-authtool /tmp/ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring1.2.

更改 ceph.mon.keyring的所有者。

复制
chown ceph:ceph /tmp/ceph.mon.keyring1.

使用主机名、主机 IP 地址和 FSID 生成monitor映射。将其保存为 :/tmp/monmap。

复制
monmaptool --create --add node1 192.168.2.16  --fsid 9c079a1f-6fc2-4c59-bd4d-e8bc232d33a4 /tmp/monmap1.

在monitor主机上创建默认数据目录,目录名是{cluster-name}-{hostname}格式。

复制
sudo -u ceph mkdir /var/lib/ceph/mon/ceph-`hostname`1.

在node1节点对monitor进行初始化。

复制
https://mp.weixin.qq.com/s/0e1ZUdR1L7THS0y_TZSBrw#:~:text=sudo%C2%A0%2Du%C2%A0ceph%C2%A0ceph%2Dmon%C2%A0%2D%2Dmkfs%C2%A0%2Di%C2%A0node1%C2%A0%2D%2Dmonmap%C2%A0/tmp/monmap%C2%A0%2D%2Dkeyring%C2%A0/tmp/ceph.mon.keyring1.

启动mon。

复制
systemctl start ceph-mon@node1 && systemctl enable ceph-mon@node11.

在另外两个节点安装mon

将密钥和配置文件拷贝至其他节点。

复制
scp /tmp/ceph.mon.keyring node2:/tmp/ceph.mon.keyringscp /etc/ceph/* root@node2:/etc/ceph/scp /var/lib/ceph/bootstrap-osd/ceph.keyring root@node2:/var/lib/ceph/bootstrap-osd/scp /tmp/ceph.mon.keyring node3:/tmp/ceph.mon.keyringscp /etc/ceph/* root@node3:/etc/ceph/scp /var/lib/ceph/bootstrap-osd/ceph.keyring root@node3:/var/lib/ceph/bootstrap-osd/1.2.3.4.5.6.

在两个节点上修改ceph.mon.keyring属主和属组为ceph。

复制
chown ceph.ceph /tmp/ceph.mon.keyring1.

获取monmap信息。

复制
ceph mon getmap -o /tmp/ceph.mon.mapgot monmap epoch 11.2.

在mon节点上进行mon初始化。

复制
sudo -u ceph ceph-mon --mkfs -i node2 --monmap /tmp/ceph.mon.map --keyring /tmp/ceph.mon.keyringsudo -u ceph ceph-mon --mkfs -i node3 --monmap /tmp/ceph.mon.map --keyring /tmp/ceph.mon.keyring1.2.

将新的mon节点添加至ceph集群的mon列表。

复制
[root@node1 ~]# ceph mon add node2 192.168.2.17:6789adding mon.node2 at 192.168.2.17:6789/0[root@node1 ~]# ceph mon add node3 192.168.2.18:6789adding mon.node3 at 192.168.2.18:6789/01.2.3.4.

在两个节点上启动mon。

复制
systemctl start ceph-mon@`hostname` && systemctl enable ceph-mon@`hostname`1.

修改ceph.conf并重启ceph-mon(所有节点操作)。

复制
vim /etc/ceph/ceph.confmon initial members = node1,node2,node3mon host = 192.168.2.16,192.168.2.17,192.168.2.18systemctl restart ceph-mon@`hostname`1.2.3.4.

添加osd

Ceph提供了该ceph-volume实用程序,该实用程序可以准备逻辑卷,磁盘或分区以供Ceph使用。该ceph-volume实用程序通过增加索引来创建OSD ID。

创建osd

在node1执行。

复制
ceph-volume lvm create --data /dev/sdb1.

上面的创建过程可以分为两个阶段(准备和激活):

复制
ceph-volume lvm prepare --data /dev/sdb查看osd fsidceph-volume lvm listceph-volume lvm activate {ID} {FSID}1.2.3.4.

启动各个节点osd进程。

复制
#node1systemctl restart ceph-osd@0systemctl enable ceph-osd@0#node2systemctl restart ceph-osd@1systemctl enable ceph-osd@1#node3systemctl restart ceph-osd@2systemctl enable ceph-osd@21.2.3.4.5.6.7.8.9.

创建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`1.2.

创建身份验证密钥

复制
ceph auth get-or-create mgr.`hostname -s` mon 'allow profile mgr' osd 'allow *' mds 'allow *' > keyringchown ceph.ceph /var/lib/ceph/mgr/ceph-`hostnbame`/keyring1.2.

启动mgr守护进程

复制
systemctl enable ceph-mgr@`hostname -s` && systemctl start ceph-mgr@`hostname -s`或者ceph-mgr -i `hostname`1.2.3.

最后查看ceph运行状态,我只添加了两个osd。

编辑搜图


本公司销售:阿里云、腾讯云、百度云、天翼云、金山大米云、金山企业云盘!可签订合同,开具发票。

我有话说: