1. 程式人生 > 實用技巧 >使用cephadm安裝ceph octopus

使用cephadm安裝ceph octopus

一、基礎配置

Cephadm使用容器和systemd安裝和管理Ceph叢集,並與CLI和儀表板GUI緊密整合。

  • cephadm僅支援octopus v15.2.0和更高版本。
  • cephadm與新的業務流程API完全整合,並完全支援新的CLI和儀表板功能來管理叢集部署。
  • cephadm需要容器支援(podman或docker)和Python 3。
  • 時間同步

使用的centos8來安裝的ceph,已經內建了python3,不再單獨安裝,centos7需要單獨安裝python3

1、配置hosts解析

# cat /etc/hosts
192.168.40.132 node1
192.168.40.133 node2
192.168.40.134 node3

2、關閉防火牆和selinux

systemctl stop firewalld && systemctl disable firewalld
setenforce 0 && sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

3、設定主機名

hostnamectl set-hostname node1
hostnamectl set-hostname node2
hostnamectl set-hostname node3

4、配置主機時間同步

systemctl restart chronyd.service && systemctl enable chronyd.service(具體步驟省略)

5、安裝docker-ce

dnf config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
dnf install -y https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.13-3.1.el7.x86_64.rpm
dnf -y install docker-ce --nobest
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://s7owcmp8.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl enable docker

二、安裝cephadm

cephadm命令可以

  1. 引導新叢集
  2. 使用有效的Ceph CLI啟動容器化的Shell
  3. 幫助除錯容器化的Ceph守護程序。

以下操作只在一臺節點執行就可以

使用curl獲取獨立指令碼的最新版本。網路不好的話可直接去GitHub複製

curl --silent --remote-name --location https://github.com/ceph/ceph/raw/octopus/src/cephadm/cephadm  (wget也行)
chmod +x cephadm

安裝cephadmn

./cephadm add-repo --release octopus
./cephadm install

引導新群集

要引導群集,需要先建立一個目錄:/etc/ceph

mkdir -p /etc/ceph

然後執行該命令:ceph bootstrap

cephadm bootstrap --mon-ip 192.168.40.132

此命令將會進行以下操作:

  • 為本地主機上的新群集建立monitor和manager守護程式。
  • 為 Ceph 群集生成新的 SSH 金鑰,並將其新增到root使用者的檔案/root/.ssh/authorized_keys
  • 將與新群集通訊所需的最小配置檔案儲存到/etc/ceph/ceph.conf
  • client.admin管理(特權!)金鑰的副本寫入/etc/ceph/ceph.client.admin.keyring
  • 將公鑰的副本寫入/etc/ceph/ceph.pub

安裝完成後會有一個dashboard介面

Mgr epoch 13 is available
Generating a dashboard self-signed certificate...
Creating initial admin user...
Fetching dashboard port number...
Ceph Dashboard is now available at:

	     URL: https://node1:8443/
	    User: admin
	Password: rlvdfqj1di

You can access the Ceph CLI with:

	sudo /usr/sbin/cephadm shell --fsid 418abd02-42a9-11eb-91f4-000c298c369a -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/

Bootstrap complete.

瀏覽器訪問

執行完成後我們可以檢視ceph.conf已經寫入了

[root@node1 ~]# ll /etc/ceph/
total 12
-rw-------. 1 root root  63 Dec 20 17:55 ceph.client.admin.keyring
-rw-r--r--. 1 root root 179 Dec 20 17:55 ceph.conf
-rw-r--r--. 1 root root 595 Dec 20 17:55 ceph.pub
[root@node1 ~]# cat /etc/ceph/ceph.conf 
# minimal ceph.conf for 418abd02-42a9-11eb-91f4-000c298c369a
[global]
	fsid = 418abd02-42a9-11eb-91f4-000c298c369a
	mon_host = [v2:192.168.40.132:3300/0,v1:192.168.40.132:6789/0]

啟用 CEPH CLI

cephadm shell命令在安裝了所有Ceph包的容器中啟動bash shell。預設情況下,如果在主機上的/etc/ceph中找到配置和keyring檔案,則會將它們傳遞到容器環境中,以便shell完全正常工作。

# cephadm shell
Inferring fsid 418abd02-42a9-11eb-91f4-000c298c369a
Inferring config /var/lib/ceph/418abd02-42a9-11eb-91f4-000c298c369a/mon.node1/config
Using recent ceph image ceph/ceph:v15
[ceph: root@node1 /]# 

[ceph: root@node1 /]# ceph -s
cluster:
id: 418abd02-42a9-11eb-91f4-000c298c369a
health: HEALTH_WARN
OSD count 0 < osd_pool_default_size 3

services:
mon: 1 daemons, quorum node1 (age 16m)
mgr: node1.bibyjy(active, since 15m)
osd: 0 osds: 0 up, 0 in

data:
pools: 0 pools, 0 pgs
objects: 0 objects, 0 B
usage: 0 B used, 0 B / 0 B avail
pgs:

可以在節點上安裝包含所有 ceph 命令的包,包括 、(用於安裝 CephFS 檔案系統)等