版本信息
- 系统信息
[root@cepho ~]# uname -r
3.10.0-957.el7.x86_64
[root@cepho ~]# cat /etc/system-release
CentOS Linux release 7.6.1810 (Core) - Python3 版本 生产环境中我们没有必要追求最新,安装 3.6 版本即可。当然如果你追求最新,那么就用最新的也好。
[root@cepho ~]# python3 -V
Python 3.8.2 - Docker 信息
[root@cepho ~]# docker --version
Docker version 19.03.8, build afacb8b - CEPH 版本因为系统安装的是普通版本而不是最小安装,所以 ntp、lvm 管理工具等默认已经安装。
ceph --version
ceph version 15.1.1 (4536217610b4c55c08a293e67f5ae1f1129190be) octopus (rc)
介绍
Cephadm 通过 SSH 从管理守护程序连接到主机来部署和管理 Ceph 群集,以添加、删除或更新 Ceph 守护程序的容器。它不依赖于外部配置或编排工具,如 Ansible、Rook 或 Salt。
Cephadm 管理 Ceph 群集的整个生命周期。它首先在单个节点(一个monitor
和一个mgr
)上引导一个最简的 Ceph 群集,然后使用业务流程接口(后续命令(“day 2” commands))扩展群集以包括所有主机并预配所有 Ceph 守护进程和服务。这可以通过 Ceph 命令行接口 (CLI) 或 dashboard (GUI) 执行完成。
发展动向
目前 cephadm 仍然在进一步开发,功能正在有条不紊地进行着,使用 cephadm 是一个差强人意的选择。
以下组件的 Cephadm 管理目前得到良好支持:
- Monitors
- Managers
- OSDs
- CephFS 文件系统
- rbd-mirror
以下组件正在使用 cephadm,但文档并不像我们希望的那么完整,而且在不久的将来使用可能会有一些变化:
- RGW
- dmcrypt Osds
Cephadm 对以下功能的支持仍在开发中:
- NFS
- iSCSI
如果遇到问题,您始终可以使用:ceph orch pause
或使用如下指令完全关闭 cephadm:ceph orch set backend ''
ceph mgr module disable cephadm
安装 cephadm
- 下载 cephadm 并赋权
curl --silent --remote-name --location https://github.com/ceph/ceph/raw/octopus/src/cephadm/cephadm
chmod +x cephadm 添加源信息,指定为 Octopus 版本
./cephadm add-repo --release octopus
./cephadm install此时会更新 repo 信息
./cephadm add-repo --release octopus
INFO:root:Writing repo to /etc/yum.repos.d/ceph.repo...
INFO:cephadm:Enabling EPEL...验证:
[root@cepho yum.repos.d]# ll -t
total 48更新前:
# before
total 36
-rw-r--r--. 1 root root 413 Mar 15 12:36 ceph.repo
-rw-r--r--. 1 root root 1664 Nov 23 2018 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 Nov 23 2018 CentOS-CR.repo
-rw-r--r--. 1 root root 649 Nov 23 2018 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 314 Nov 23 2018 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 Nov 23 2018 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Nov 23 2018 CentOS-Sources.repo
-rw-r--r--. 1 root root 5701 Nov 23 2018 CentOS-Vault.repo更新后
# after
-rw-r--r--. 1 root root 477 Mar 22 17:33 ceph.repo
-rw-r--r--. 1 root root 2424 Oct 19 05:57 docker-ce.repo
-rw-r--r--. 1 root root 1050 Sep 18 2019 epel.repo
-rw-r--r--. 1 root root 1149 Sep 18 2019 epel-testing.repo
-rw-r--r--. 1 root root 1664 Nov 23 2018 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 Nov 23 2018 CentOS-CR.repo
-rw-r--r--. 1 root root 649 Nov 23 2018 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 314 Nov 23 2018 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 Nov 23 2018 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Nov 23 2018 CentOS-Sources.repo
-rw-r--r--. 1 root root 5701 Nov 23 2018 CentOS-Vault.repo其中前三行即是更新之后的源信息。
安装 cephadm
./cephadm install
INFO:cephadm:Installing packages ['cephadm']...
- 验证 cephadm 安装完成
which cephadm
/usr/sbin/cephadm
引导新集群
你需要知道用于群集的第一个监视器守护程序的 IP 地址。 通常,这是第一台主机的 IP。 如果存在多个网络和接口,请确保选择任何可供访问 Ceph 群集的主机访问的网络和接口。mkdir -p /etc/ceph
cephadm bootstrap --mon-ip *<mon-ip>* # 此处指定moniter地址
TODO
注意,此处指定为 ssh 登录的 ip 时一直提示端口占用,且 mon 进程一直启不来,后来改成另一个节点之后可以正常部署,需要查阅更多资料确认!
cephadm bootstrap --mon-ip 172.18.1.128 |
INFO:cephadm:Using recent ceph image ceph/daemon-base:latest |
该命令会做以下操作:
在本地主机上为集群创建
mon
和mgr
守护程序。为 Ceph 集群生成一个新的 SSH 密钥,并将其添加到
root
用户的/root/.ssh/authorized_keys
文件中。将与新集群通信所需的最小配置文件写入
/etc/ceph/ceph.conf
。将
client.admin
管理(特权!)秘密密钥的副本写入/etc/ceph/ceph.client.admin.keyring
。将公共密钥的副本写入
/etc/ceph/ceph.pub
。
注意: 执行上述命令会去 docker 上面拉取最新的ceph/daemon-base
,国内需要换源。具体操作如下:
- 编辑或新建配置文件:写入:
vi /etc/docker/daemon.json
{
"registry-mirrors" : [
"http://ovfftd6p.mirror.aliyuncs.com",
"http://registry.docker-cn.com",
"http://docker.mirrors.ustc.edu.cn",
"http://hub-mirror.c.163.com"
],
"insecure-registries" : [
"registry.docker-cn.com",
"docker.mirrors.ustc.edu.cn"
],
"debug" : true,
"experimental" : true
} - 重启 docker 服务
systemctl restart docker
- 手动拉取镜像由于本人第一次使用 docker,所以一些表述可能存在问题。
docker pull ceph/daemon-base
访问 dashboard
默认的引导行为适用于绝大多数用户。 请参阅以下有关选项对某些用户可能有用的一些,或运行 cephadm bootstrap -h
以查看所有可用选项:
方便起见,Bootstrap 会将访问新集群所需的文件写到
/etc/ceph
中,以便主机本身安装的任何 Ceph 软件包(例如,访问命令行界面)都可以轻松找到它们。但是,使用
cephadm
部署的守护程序容器根本不需要/etc/ceph
。 使用--output-dir *directory>*
选项将它们放在不同的目录(如.<当前目录>)中,避免与同一主机上的现有 Ceph 配置(cephadm
或其他)之间的潜在冲突。我们可以将任何初始 Ceph 配置选项传递到新集群,方法是将它们放置在标准
ini
样式的配置文件中,并使用--config * <config-file> *
选项。
使能 CEPH CLI
ceph 官方建议启用对 ceph 命令的轻松访问,我们有以下途径可以实现:
- 调用 cephadm shell 命令启动容器中的 bash 其中的
sudo /usr/sbin/cephadm shell --fsid d0d73402-6c28-11ea-8165-00505625d3e6 -c ceph.conf -k ceph.client.admin.keyring
fsid
可以在上一条返回信息中找到,或者在ceph.conf
中进行查看。INFO:cephadm:Using recent ceph image ceph/daemon-base:latest
- 安装 ceph-common 包,包含了
ceph
,rbd
,mount.ceph
(用于挂载 CephFS 文件系统)等;cephadm add-repo --release octopus # 此处会更新源,如果需要使用国内源请不要执行
yum install ceph-common # 此处官网暂为cephadm install xxx,但是我执行之后报错,所以修改。 - 调用
ceph
命令查看集群状态ceph -s
cluster:
id: d0d73402-6c28-11ea-8165-00505625d3e6
health: HEALTH_WARN
Reduced data availability: 1 pg inactive
OSD count 0 < osd_pool_default_size 3
services:
mon: 1 daemons, quorum cepho (age 20m)
mgr: cepho.lgqcve(active, since 18m)
osd: 0 osds: 0 up, 0 in
data:
pools: 1 pools, 1 pgs
objects: 0 objects, 0 B
usage: 0 B used, 0 B / 0 B avail
pgs: 100.000% pgs unknown
1 unknown - 在
cephadm shell
中查看集群健康信息[ceph: root@cepho /]# ceph health
HEALTH_WARN Reduced data availability: 1 pg inactive; OSD count 0 < osd_pool_default_size 3
TODO:以下待验证