当前位置:   article > 正文

ceph在信创操作系统和服务器上安装_ceph 生成新的keyring

ceph 生成新的keyring

微信公众号:运维开发故事,作者:wanger

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

基础配置

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

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

  • 1
  • 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
  • 50

之前想通过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
  • 6
配置hosts解析
cat >> /etc/hosts <<EOF
192.168.2.16 node1
192.168.2.19 node2
192.168.2.18 node3
EOF

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
关闭防火墙

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

systemctl stop firewalld && systemctl disable firewalld


  • 1
  • 2
  • 3
分别在三个节点设置主机名
hostnamectl set-hostname node1
hostnamectl set-hostname node2
hostnamectl set-hostname node3

  • 1
  • 2
  • 3
  • 4
配置主机时间同步
vi /etc/chrony.conf
server ntp1.aliyun.com iburst
allow 192.168.2.0/24
systemctl restart chronyd.service && systemctl enable chronyd.service

  • 1
  • 2
  • 3
  • 4
  • 5

使用yum安装

安装ceph

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

yum install -y ceph

  • 1
  • 2

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

pip install PrettyTable

  • 1
  • 2

部署monitor节点

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

在node1添加monitor

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

uuidgen

  • 1
  • 2

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

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


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

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

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

  • 1
  • 2

生成管理员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
  • 2

生成引导 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
  • 2

将生成的键添加到 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

  • 1
  • 2
  • 3

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

chown ceph:ceph /tmp/ceph.mon.keyring

  • 1
  • 2

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

monmaptool --create --add node1 192.168.2.16  --fsid 9c079a1f-6fc2-4c59-bd4d-e8bc232d33a4 /tmp/monmap


  • 1
  • 2
  • 3

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


sudo -u ceph mkdir /var/lib/ceph/mon/ceph-`hostname`


  • 1
  • 2
  • 3
  • 4

在node1节点对monitor进行初始化

sudo -u ceph ceph-mon --mkfs -i node1 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring

  • 1
  • 2

启动mon

systemctl start ceph-mon@node1 && systemctl enable ceph-mon@node1

  • 1
  • 2

在另外两个节点安装mon

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

scp /tmp/ceph.mon.keyring node2:/tmp/ceph.mon.keyring
scp /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.keyring
scp /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
  • 7

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

chown ceph.ceph /tmp/ceph.mon.keyring

  • 1
  • 2

获取monmap信息

ceph mon getmap -o /tmp/ceph.mon.map
got monmap epoch 1

  • 1
  • 2
  • 3

在mon节点上进行mon初始化

sudo -u ceph ceph-mon --mkfs -i node2 --monmap /tmp/ceph.mon.map --keyring /tmp/ceph.mon.keyring
sudo -u ceph ceph-mon --mkfs -i node3 --monmap /tmp/ceph.mon.map --keyring /tmp/ceph.mon.keyring

  • 1
  • 2
  • 3

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

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


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在两个节点上启动mon

systemctl start ceph-mon@`hostname` && systemctl enable ceph-mon@`hostname`

  • 1
  • 2

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

vim /etc/ceph/ceph.conf
mon initial members = node1,node2,node3
mon host = 192.168.2.16,192.168.2.17,192.168.2.18
systemctl restart ceph-mon@`hostname`

  • 1
  • 2
  • 3
  • 4
  • 5

添加osd

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

创建osd

在node1执行

ceph-volume lvm create --data /dev/sdb

  • 1
  • 2

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

ceph-volume lvm prepare --data /dev/sdb
查看osd fsid
ceph-volume lvm list
ceph-volume lvm activate {ID} {FSID}

  • 1
  • 2
  • 3
  • 4
  • 5

启动各个节点osd进程

#node1
systemctl restart ceph-osd@0
systemctl enable ceph-osd@0
 
#node2
systemctl restart ceph-osd@1
systemctl enable ceph-osd@1

#node3
systemctl restart ceph-osd@2
systemctl enable ceph-osd@2


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

创建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
  • 3

创建身份验证密钥

ceph auth get-or-create mgr.`hostname -s` mon 'allow profile mgr' osd 'allow *' mds 'allow *' > keyring
chown ceph.ceph /var/lib/ceph/mgr/ceph-`hostnbame`/keyring

  • 1
  • 2
  • 3

启动mgr守护进程

systemctl enable ceph-mgr@`hostname -s` && systemctl start ceph-mgr@`hostname -s`
或者
ceph-mgr -i `hostname`

  • 1
  • 2
  • 3
  • 4

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

公众号:运维开发故事

github:https://github.com/orgs/sunsharing-note/dashboard

博客**:https://www.devopstory.cn**

爱生活,爱运维

我是wanger,《运维开发故事》公众号团队中的一员,一线运维农民工,这里不仅有硬核的技术干货,还有我们对技术的思考和感悟,欢迎关注我们的公众号,期待和你一起成长!

扫码二维码

关注我,不定期维护优质内容

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/67276
推荐阅读
相关标签
  

闽ICP备14008679号