使用cephadm部署ceph octopus
参考本文档前使用 cat /etc/os-release
查看系统版本。
本文使用的版本如下
OS版本:
NAME=“Kylin Linux Advanced Server”
VERSION=“V10 (Sun)”
ID=“centos”
ID_LIKE=“kylin”
VERSION_ID=“8”
PLATFORM_ID=“platform:el8”
PRETTY_NAME=“Kylin Linux Advanced Server V10 (Sun)”
ANSI_COLOR=“0;31”
CPE_NAME=“cpe:/o:kylin:enterprise_linux:V10:GA”
HOME_URL=“http://www.kylinos.cn/”
BUG_REPORT_URL=“https://bugzilla.kylinos.cn/”
NEOKYLIN_BUGZILLA_PRODUCT=“Kylin Linux Advanced Server 10”
NEOKYLIN_BUGZILLA_PRODUCT_VERSION=V10
NEOKYLIN_SUPPORT_PRODUCT=“Kylin Linux Advanced Server”
NEOKYLIN_SUPPORT_PRODUCT_VERSION=“V10”
主机数量:3台
主机名:node1 node2 node3
Step 1
安装docker
执行以下命令安装依赖包:
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。
执行下面的命令添加 yum
软件源:使用清华大学源
#用清华大学源
yum-config-manager \
--add-repo \
https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
更换地址
sed -i 's+https://download.docker.com+https://mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
安装 Docker CE
更新 yum
软件源缓存,并安装 docker-ce
。
yum makecache
yum install docker-ce
启动Docker CE
systemctl enable docker
systemctl start docker
安装epel-release源
wget https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
rpm -ivh epel-release-latest-8.noarch.rpm
修改/etc/os-release
vim /etc/os-release
NAME="Kylin Linux Advanced Server"
VERSION="V10 (Sun)"
ID="centos" ###修改此行为centos
ID_LIKE="kylin"
VERSION_ID="8" ###修改此行为8
PLATFORM_ID="platform:el8"
PRETTY_NAME="Kylin Linux Advanced Server V10 (Sun)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:kylin:enterprise_linux:V10:GA"
HOME_URL="http://www.kylinos.cn/"
BUG_REPORT_URL="https://bugzilla.kylinos.cn/"
NEOKYLIN_BUGZILLA_PRODUCT="Kylin Linux Advanced Server 10"
NEOKYLIN_BUGZILLA_PRODUCT_VERSION=V10
NEOKYLIN_SUPPORT_PRODUCT="Kylin Linux Advanced Server"
NEOKYLIN_SUPPORT_PRODUCT_VERSION="V10"
修改 2个地方如下:
ID=centos
VERSION_ID=8
如果不修改,执行cephadm命令会报错 ERROR: Distro kylin version v10 not supported
设置主机名
hostnamectl set-hostname node1 # 主机名称自定义
由于kylinV10 无法使用ceph-deploy部署且ceph-deploy只支持nautilus及之前的版本。而且该工具开发者已经不进行维护了。
从octopus及以后的版本都使用cephadm进行安装部署
ceph版本号
版本 | 主版本号 | 初始发行时间 | 停止维护时间 |
---|---|---|---|
Quincy | 17 | 2022-04-19 | 2024-06-01 |
Pacific | 16 | 2021-03-31 | 2023-06-01 |
Octopus | 15 | 2020-03-23 | 2022-06-01 |
Nautilus | 14 | 2019-03-19 | 2021-06-30 |
Mimic | 13 | 2018-06-01 | 2020-07-22 |
Luminous | 12 | 2017-08-01 | 2020-03-01 |
Step2
部署步骤
1、获取cephadm(node1操作)
# curl --silent --remote-name --location https://github.com/ceph/ceph/raw/octopus/src/cephadm/cephadm
或者
# wget https://gitee.com/wsl12105/ceph/releases/download/cephadm_octpus/cephadm
chmod +x cephadm
mv cephadm /usr/bin/
2、添加repo安装Octopus所需的软件包(node1操作)
cephadm add-repo --release octopus
cephadm install
3、引导集群(node1操作)
mkdir -p /etc/ceph
cephadm --docker bootstrap --mon-ip 192.168.1.1 #ip根据实际情况修改
该命令将:
- 在本地主机上为新集群创建一个监视器和管理器守护程序。
- 为 Ceph 集群生成一个新的 SSH 密钥并将其添加到 root 用户的
/root/.ssh/authorized_keys
文件中。 - 将与新集群通信所需的最小配置文件写入
/etc/ceph/ceph.conf
. client.admin
将管理(特权!)密钥的副本写入/etc/ceph/ceph.client.admin.keyring
.- 将公钥的副本写入
/etc/ceph/ceph.pub
.
3.1如果ssh默认端口不是22请使用下面方式引导集群
创建ssh_config文件
cat > /root/.ssh/config << EOF
Host *
User root
Port 6022 #改成ssh端口
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
ConnectTimeout=30
EOF
## 给/root/.ssh/config 600权限
chmod 600 /root/.ssh/config
引导命令如下
cephadm bootstrap --mon-ip 192.168.233.201 --ssh-config ssh_config
3.2引导完成后下面的内容务必记录下来
Ceph Dashboard is now available at:
URL: https://node1:8443/
User: admin
Password: 1rxguvc8h5
You can access the Ceph CLI with:
sudo /usr/bin/cephadm shell --fsid 7e1e6a1c-4b37-11ef-9eeb-000c29b16ad3 -c /etc/ceph/ceph.conf -k /etc/ceph/ceph.client.admin.keyring
Please consider enabling telemetry to help improve Ceph:
ceph telemetry on
For more information see:
https://docs.ceph.com/docs/master/mgr/telemetry/
4、安装ceph-common(node1操作)
cephadm install ceph-common
确认ceph命令可以正常使用
ceph -v
ceph status
5、将authorized_keys文件拷贝到node2和node3(node1操作)
ssh-copy-id -f -i /etc/ceph/ceph.pub root@node2
ssh-copy-id -f -i /etc/ceph/ceph.pub root@node3
6、在node2和node3上添加monitor
ceph orch host add node2
ceph orch host add node3
ceph orch apply mon node1,node2,node3
或者可以通过标签添加monitor
-
先给主机添加标签(lable)
ceph orch host label add node1 mon ceph orch host label add node2 mon ceph orch host label add node3 mon
-
查看主机标签
# ceph orch host ls HOST ADDR LABELS STATUS node1 node1 mon node2 node2 mon node3 node3 mon
-
cephadm根据标签添加monitor
ceph orch apply mon label:mon
也可以通过yaml文件来部署
创建file.yaml内容如下
service_type: mon
placement:
hosts:
- host1
- host2
- host3
然后执行下面命令:
# ceph orch apply -i file.yaml
7、部署OSD
所有集群主机上的存储设备清单可以通过以下方式显示
如果只列出一个或2个清等待1min再次查看
# ceph orch device ls
Hostname Path Type Serial Size Health Ident Fault Available
node1 /dev/sdb hdd 53.6G Unknown N/A N/A No
node2 /dev/sdb hdd 53.6G Unknown N/A N/A No
node3 /dev/sdb hdd 53.6G Unknown N/A N/A No
如果满足以下所有条件,则认为存储设备可用:
- 设备不能有分区。
- 设备不得具有任何 LVM 状态。
- 不得安装该设备。
- 设备不得包含文件系统。
- 设备不得包含 Ceph BlueStore OSD。
- 设备必须大于 5 GB。
- 注意Available是Yes的,表示这个设备满足条件,可以安装成为OSD,如果是No表示设备已经是OSD了,或者设备无法安装OSD
- 如果有node上硬盘无法列出来,请等待一会,如果还不行请使用磁盘工具转换磁盘type 为dos
分别从node1 node2 node3上部署OSD。
# ceph orch daemon add osd node1:/dev/sdb
# ceph orch daemon add osd node2:/dev/sdb
# ceph orch daemon add osd node3:/dev/sdb
查看osd状态
ceph osd tree
8、部署MDS
使用 CephFS 文件系统需要一个或多个 MDS 守护进程
# ceph orch apply mds cephfs --placement="node1:mds-daemon-1"
# ceph orch apply mds cephfs --placement="node2:mds-daemon-2"
# ceph orch apply mds cephfs --placement="node3:mds-daemon-3"
9、创建pool
一个 Ceph 文件系统至少需要两个 RADOS 池,一个用于数据,一个用于元数据
# ceph osd pool create cephfs_data 32
# ceph osd pool create cephfs_metadata 32
10、创建文件系统
# ceph fs new cephfs cephfs_metadata cephfs_data
11、node2 和node3 安装ceph-common
yum install ceph-common
12、拷贝配置文件到node2 node3
scp -r /etc/ceph/ root@node2:/etc/
scp -r /etc/ceph/* root@node3:/etc/
node2 和node3上也可以使用ceph -s
等命令查看ceph集群状态了
关注我成为更好的Linuxer