任务目标

  1. 完成使用cephadm方式部署ceph集群

任务平台

  1. 物理设备—
  2. 操作系统:openEuler 22.03 LTS SP2

部署指南

任务一:配置准备

  1. 重命名hostname
1
2
3
4
5
6
7
8
# 将10.10.3.117的主机名改为future-ceph-node0
hostnamectl set-hostname future-ceph-node0 && bash
# 将10.10.3.118的主机名改为future-ceph-node1
hostnamectl set-hostname future-ceph-node1 && bash
# 将10.10.3.119的主机名改为future-ceph-node2
hostnamectl set-hostname future-ceph-node2 && bash
# 将10.10.3.120的主机名改为future-ceph-node3
hostnamectl set-hostname future-ceph-node3 && bash
  1. 安装前的配置修改
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
# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
firewall-cmd --state

# selinux永久关闭
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
cat /etc/selinux/config


# 添加hosts
cat >> /etc/hosts << EOF
10.10.3.117 future-ceph-node0
10.10.3.118 future-ceph-node1
10.10.3.119 future-ceph-node2
10.10.3.120 future-ceph-node3
EOF
#查看
cat /etc/hosts


#同步时间
yum install ntp -y
systemctl start ntpd
systemctl enable ntpd
yum install chrony -y
systemctl start chronyd
systemctl enable chronyd
#修改配置,添加内容
echo "
server 10.10.3.70 iburst
allow 10.10.3.0/24
" >> /etc/chrony.conf
timedatectl set-ntp true
systemctl restart chronyd
timedatectl status
date
  1. 添加SSH免密通信
1
2
3
4
ssh-keygen -t rsa
ssh-copy-id 10.10.3.118
ssh-copy-id 10.10.3.119
ssh-copy-id 10.10.3.120

任务二:安装docker

  1. 配置Docker CE的yum存储库。打开docker-ce.repo的文件,并将以下内容复制到文件中:
1
2
3
4
5
6
7
echo '
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://download.docker.com/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg ' > /etc/yum.repos.d/docker-ce.repo

保存并退出文件。

  1. 安装Docker CE。运行以下命令来安装Docker CE:
1
2
3
4
5
6
7
 yum -y install docker-ce docker-ce-cli  containerd.io
#启动docker并设置开机自启
systemctl start docker
systemctl enable docker
#查看版本
docker -v
docker compose version
  1. Docker配置修改存储路径,配置修改为如下。
1
2
3
4
5
6
7
8
9
#将配置写入daemon.json文件
echo '{
"data-root": "/data/docker"
} ' > /etc/docker/daemon.json
#查看
cat /etc/docker/daemon.json
systemctl daemon-reload
systemctl restart docker
docker info

任务三:使用cephadm建设集群

  1. 安装ceph软件

在所有主机上安装ceph软件

1
2
3
yum install -y cephadm ceph-common
#查看版本
ceph -v
  1. 启用admin节点

在10.10.3.117上启用集群

1
cephadm bootstrap --mon-ip 10.10.3.117

访问dashboard修改默认密码

Fetching dashboard port number…

Ceph Dashboard is now available at:

​ URL: https://future-ceph-node0:8443/

​ User: admin

​ Password: p4csdavtmr

Enabling client.admin keyring and conf on hosts with “admin” label

You can access the Ceph CLI with:

​ sudo /usr/sbin/cephadm shell —fsid 5f344e64-85e4-11ee-9181-0050569a1378 -c /etc/ceph/ceph.conf -k /etc/ceph/ceph.client.admin.keyring

  1. 添加节点

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
#启用ceph命令
cephadm shell
#添加ceph的免密访问
ceph cephadm get-pub-key > ~/ceph.pub
ssh-copy-id -f -i ~/ceph.pub root@future-ceph-node1
ssh-copy-id -f -i ~/ceph.pub root@future-ceph-node2
ssh-copy-id -f -i ~/ceph.pub root@future-ceph-node3
#添加ceph节点
ceph orch host add future-ceph-node1 10.10.3.118
ceph orch host add future-ceph-node2 10.10.3.119
ceph orch host add future-ceph-node3 10.10.3.120
#查看节点
ceph orch host ls
#添加_admin标签允许该节点运行ceph相关命令
ceph orch host label add future-ceph-node1 _admin
ceph orch host label add future-ceph-node2 _admin
ceph orch host label add future-ceph-node3 _admin

#将配置文件拷贝到其他节点
scp /etc/ceph/ceph.conf future-ceph-node1:/etc/ceph/
scp /etc/ceph/ceph.conf future-ceph-node2:/etc/ceph/
scp /etc/ceph/ceph.conf future-ceph-node3:/etc/ceph/
scp /etc/ceph/ceph.client.admin.keyring future-ceph-node1:/etc/ceph/
scp /etc/ceph/ceph.client.admin.keyring future-ceph-node2:/etc/ceph/
scp /etc/ceph/ceph.client.admin.keyring future-ceph-node3:/etc/ceph/
  1. 设置mon节点(监控)

1
2
3
ceph orch apply mon --placement="4 future-ceph-node0 future-ceph-node1 future-ceph-node2 future-ceph-node3"
#查看mon的详细信息
ceph mon dump
  1. 设置mgr节点(管理)

1
2
3
4
5
6
ceph orch apply mgr --placement="2 future-ceph-node0 future-ceph-node1 "
#查看详情
ceph orch ls
#打上标签
ceph orch host label add future-ceph-node0 master
ceph orch host label add future-ceph-node1 master
  1. 添加osd(存储数据)

1
2
3
4
5
6
7
#查看要挂载的磁盘
lsblk
#所有节点
ceph orch daemon add osd future-ceph-node0:/dev/sdb
ceph orch daemon add osd future-ceph-node1:/dev/sdb
ceph orch daemon add osd future-ceph-node2:/dev/sdb
ceph orch daemon add osd future-ceph-node3:/dev/sdb
  1. 创建mds(元数据)

1
2
3
4
5
6
7
8
#创建cephfs文件系统
ceph osd pool create cephfs_data
ceph osd pool create cephfs_metadata
ceph fs new cephfs cephfs_metadata cephfs_data
#设置mds组件
ceph orch apply mds cephfs --placement="4 future-ceph-node0 future-ceph-node1 future-ceph-node2 future-ceph-node3"
#查看mds状态
ceph orch ps --daemon-type mds
  1. 配置rgw(对象网关)

1
2
3
4
5
6
7
8
9
10
11
#创建名为myorg的realm
radosgw-admin realm create --rgw-realm=myorg
#创建名为default的区域组(设置为主区域组)
radosgw-admin zonegroup create --rgw-zonegroup=default --master
#创建名为cn-east-1的区域(设置为主区域)
radosgw-admin zone create --rgw-zonegroup=default --rgw-zone=cn-east-1 --master
#为realm与区域配置radosgw
ceph orch apply rgw myorg cn-east-1 --placement="4 future-ceph-node0 future-ceph-node1 future-ceph-node2 future-ceph-node3"
#验证
ceph orch ps --daemon-type rgw
ceph -s
  1. 访问测试

1
2
3
4
5
6
#ceph-Dashboard
https://10.10.3.117:8443
#Prometheus
http://10.10.3.117:9095/
#Grafana
https://10.10.3.117:3000/