centos8最小化安装环境使用cephadm部署ceph集群存储

配置IP

1
2
3
ip addr  查看网络配置
nmcli:   查看网络配置

修改配置文件:vi /etc/sysconfig/network-scripts/ifcfg-ens192

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens192"
UUID="d4bf9a37-b2bf-4136-8f60-28d653247ae4"
DEVICE="ens192"
ONBOOT="yes"
IPADDR="10.10.10.100"
PREFIX="24"
GATEWAY="10.10.10.254"
DNS1="10.10.17.1"
IPV6_PRIVACY="no"

方法:nmcli c reload +网卡名
例:nmcli c reload ens192

1
2
3
4
5
6
7
8
9
# 重载所有ifcfg或route到connection(不会立即生效)
nmcli c reload ifcfg-xxx
# 重载指定ifcfg或route到connection(不会立即生效)
nmcli c load /etc/sysconfig/network-scripts/ifcfg-ethX
nmcli c load /etc/sysconfig/network-scripts/route-ethX
# 立即生效connection,有3种方法
nmcli c up ethX
nmcli d reapply ethX
nmcli d connect ethX

centos8修改时区以及修正时间
查看系统当前的时区命令:timedatectl
设置系统时区位亚洲/上海:timedatectl set-timezone Asia/Shanghai
校准时间命令:

1
2
yum install -y ntpdate
ntpdate us.pool.ntp.org

CentOS 8 源 yum/dnf 源添加、删除和优化

1
2
3
执行yum源更新命令 
yum repolist #查看已安装的源
yum makecache #更新元数据

删除yum中的源

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
1) 删除库配置文件 

以root权限运行下面的命令:

cd /etc/yum.repos.d/

ls #结果如下

CentOS-Base.repo epel.repo mirrors-rpmforge-testing

CentOS-Debuginfo.repo epel-testing.repo rpmforge.repo


2) 删除目标库 epel,指定具体的名称。

rm epel.repo epel-testing.repo

rm /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL


3) 删除库的.rpm包

rpm -qa | grep epel

输出:

epel-release-6-8.noarch

删除即可:yum remove epel-release-6-8.noarch


4)重建数据源:

yum repolist #查看已安装的源

yum makecache #更新元数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
安装阿里云源的案例:

aliyun 更新了 centos8 的说明

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo

centos 8 默认是会读取centos.org的mirrorlist的,所以一般来说是不需要配置镜像的。

如果你的网络访问centos.org的mirrorlist有问题,可能才需要另外配置镜像

cd /etc/yum.repos.d

#备份

cp CentOS-Base.repo CentOS-Base.repo.bak
cp CentOS-AppStream.repo CentOS-AppStream.repo.bak
cp CentOS-Extras.repo CentOS-Extras.repo.bak

sed -i 's/mirrorlist=/#mirrorlist=/g' CentOS-Base.repo CentOS-AppStream.repo CentOS-Extras.repo

sed -i 's/#baseurl=/baseurl=/g' CentOS-Base.repo CentOS-AppStream.repo CentOS-Extras.repo

sed -i 's/http:\/\/mirror.centos.org/https:\/\/mirrors.aliyun.com/g' CentOS-Base.repo CentOS-AppStream.repo CentOS-Extras.repo
1
2
3
4
# systemctl start chronyd && systemctl enable chronyd
# systemctl disable firewalld && systemctl stop firewalld
#setenforce 0
#sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
1
#hostnamectl set-hostname node01
1
2
3
4
5
#dnf install epel-release -y
#dnf install python3 -y
#dnf install podman -y
#dnf install -y chrony
#systemctl start chronyd && systemctl enable chronyd
1
2
3
4
5
6
# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.149.128 ceph1
192.168.149.145 ceph2
192.168.149.146 ceph3
1
2
3
#vi /etc/chrony.conf
allow 192.168.123.0/24
#systemctl restart chronyd

ssh-keygen

ssh-copy-id -f -i /etc/ceph/ceph.pub root@node01

ssh-copy-id -i /root/.ssh/id_rsa.pub node01

scp /etc/hosts node01:/etc/

scp /etc/chrony.conf node02:/etc/

ceph orch host add node02 10.10.10.102

下载cephadm脚本

下载cephadm脚本,并安装相应版本的容器源。

1
2
3
4
5
#curl --silent --remote-name --location https://github.com/ceph/ceph/raw/pacific/src/cephadm/cephadm
#chmod +x cephadm
#./cephadm add-repo --release pacific
#./cephadm install
#./cephadm install ceph-common

官方文档中还提到了另一种安装cephadm方式,就是通过dnf install -y cephadm安装,实践证明最好不要使用这种方式,这种方式安装的cephadm可能不是最新版本的,但cephadm去拉的容器版本又是最新的,会导致两个版本不一致!

查看编排后端是cephadm,如果是使用的rook这里后端显示的就是rook。

1
2
3
4
[root@ceph1 ~]#  ceph orch status
Backend: cephadm
Available: Yes
Paused: No

引导单群集Ceph安装

[root@ceph1 ~]# cephadm bootstrap –mon-ip 192.168.149.128

引导完成一个单节点群集,程序会做如下事情:

  • 在本地主机上为新集群创建monitor 和 manager daemon守护程序。
  • 为Ceph集群生成一个新的SSH密钥,并将其添加到root用户的/root/.ssh/authorized_keys文件中。
  • 将与新群集进行通信所需的最小配置文件保存到/etc/ceph/ceph.conf。
  • 向/etc/ceph/ceph.client.admin.keyring写入client.admin管理secret key的副本。
  • 将public key的副本写入/etc/ceph/ceph.pub。

完成后记录以上了IP以及用户和密码,打开Ceph Dashboard并根据提示修改密码,打开后提示要激活计量模块。

(可选)如果忘记记录密码可以通过以下方法重置密码(将密码写入password文件中,通过命令导入密码)

1
2
ceph dashboard ac-user-set-password admin -i password 
{"username": "admin", "password": "$2b$12$6oFrEpssXCzLnKTWQy5fM.YZwlHjn8CuQRdeSSJR9hBGgVuwGCxoa", "roles": ["administrator"], "name": null, "email": null, "lastUpdate": 1620495653, "enabled": true, "pwdExpirationDate": null, "pwdUpdateRequired": false}

如果Ceph Dashboard中错过了启用,也可以使用命令启用,命令是“ceph telemetry on –license sharing-1-0”。

添加主机

上文中提示了在引导成功单节点Ceph群集后会引导程序会将public key的副本写入/etc/ceph/ceph.pub,在添加主机节点前需要讲该key分发到要加入群集的主机上

1
2
[root@ceph1 ~]# ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph2
[root@ceph1 ~]# ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph3
1
[root@ceph1 ~]# ceph orch host add ceph2 192.168.149.145
1
2
3
4
5
[root@ceph1 ~]# ceph orch host ls
HOST ADDR LABELS STATUS
ceph1 192.168.149.128 _admin
ceph2 192.168.149.145
ceph3 192.168.149.146

添加OSD

添加OSD需求满足以下所有条件:

  • 设备必须没有分区。
  • 设备不得具有任何LVM状态。
  • 不得安装设备。
  • 该设备不得包含文件系统。
  • 该设备不得包含Ceph BlueStore OSD。
  • 设备必须大于5 GB。

添加OSD有2种方式,1为自动添加所有满足条件的OSD。

1
#ceph orch apply osd --all-available-devices

2为通过手工指定的方式添加OSD。

1
#ceph orch daemon add osd ceph1:/dev/sdb
1
[root@ceph1 ~]# ceph orch device ls

查看Ceph部署服务

命令行查看Ceph状态正常。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@ceph1 ~]# ceph -s
cluster:
id: 36e7a21c-e3f7-11eb-8960-000c299df6ef
health: HEALTH_OK

services:
mon: 3 daemons, quorum ceph1,ceph2,ceph3 (age 8s)
mgr: ceph1.nwbihh(active, since 3d), standbys: ceph2.ednijf
osd: 9 osds: 9 up (since 3s), 9 in (since 3d)

data:
pools: 1 pools, 1 pgs
objects: 0 objects, 0 B
usage: 48 MiB used, 180 GiB / 180 GiB avail
pgs: 1 active+clean

iSCSI还是没有自动集成。

rbd-mirror服务没有启用。

NFS也没有集成。

Cephfs也没有部署。

RGW也没有集成。

下面我们逐步一个个部署集成这些服务。

部署RGW

使用指定数量匹配模式部署。


centos8最小化安装环境使用cephadm部署ceph集群存储
http://anximin.github.io/2021/07/23/Linux_centos8_mini_cephadm/
作者
Sylar
发布于
2021年7月23日
许可协议