Linux 9 部署 Ceph 分布式存储( 二 )

[aiops@automate-host ceph]$ ansible-playbook ceph-dependent.yaml 1.3.3 安装 Cephadm
登录 ceph1.server.aiops.red 主机,执行以下操作 。
安装 ceph repo:
[root@ceph1 ~]# dnf search release-ceph Last metadata expiration check: 0:00:45 ago on Sun 05 Feb 2023 11:53:21 AM CST. =========== Name Matched: release-ceph =========== centos-release-ceph-pacific.noarch : Ceph Pacific packages from the CentOS Storage SIG repository centos-release-ceph-quincy.noarch : Ceph Quincy packages from the CentOS Storage SIG repository [root@ceph1 ~]# dnf install -y centos-release-ceph-quincy
安装 cephadm:
[root@ceph1 ~]# dnf install -y cephadm
cephadm 通过容器部署 Ceph 集群,因此用到了几个镜像 。可以通过编辑该文件查看:
[root@ceph1 ~]# vim $(which cephadm) # 在打开的编辑器中搜索 images 关键字
安装 ceph 客户端:
[root@ceph1 ~]# cephadm install ceph-common 1.3.4 安装 Ceph 集群
在 Ceph 集群的第一台主机上,执行 cephadm bootstrap 命令创建 Ceph 集群,该命令会创建第一个 Monitor 守护进程,Monitor 守护进程需要监听在一个地址上,因此需要为该命令提供一个 IP 地址:
root@ceph1 ~]# cephadm bootstrap --mon-ip 10.211.55.44 --allow-fqdn-hostname
安装过程将持续一段时间,因为需要下载运行服务所需的容器镜像 。安装完成后,注意类似以下的输出内容:
Ceph Dashboard is now available at: URL: https://ceph1.server.aiops.red:8443/ User: admin Password: cpjxlxldcz
通过此信息,可以在浏览器中登录 Ceph 集群的 Dashboard 。第一次登录,需要修改密码 。

Linux 9 部署 Ceph 分布式存储

文章插图
 
图 1-1, Ceph cluster Dashboard
集群处于非健康状态 。可以通过 ceph -s 命令查看详细信息:
[root@ceph1 ~]# ceph -s cluster: id: 53522672-a50a-11ed-93ad-001c42a83cc8 health: HEALTH_WARN OSD count 0 < osd_pool_default_size 3 services: mon: 1 daemons, quorum ceph1.server.aiops.red (age 18m) mgr: ceph1.server.aiops.red.obitbj(active, since 16m) 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:
提示 OSD 的数量小于三 。
1.3.5 添加主机到集群
将主机添加到集群,需要执行以下步骤:
首先,将部署集群时生成的公钥 /etc/ceph/ceph.pub 添加到新主机的 root 用户,该步骤可以通过 Ansible Playbook 完成 。将 /etc/ceph/ceph.pub 文件从 ceph1.server.aiops.red 主机拷贝到 Ansible 主机,在 Ansible 主机上编辑 Playbook 文件 。
copy_pub.yaml:
--- - name: initialization SSH key play hosts: ceph gather_facts: false become: true tasks: - name: initialization ssh key task ansible.builtin.authorized_key: comment: aiops user public key user: root key: "{{ lookup('file', '/home/aiops/playbooks/test/ceph/ceph.pub') }}" ...
在 Ansible 节点上执行 copy_pub.yaml Playbook 文件,完成 SSH 公钥的添加:
[aiops@automate-host ceph]$ ansible-playbook copy_pub.yaml
然后,为 Ceph 集群添加节点,此步骤在 cephadm (ceph1.server.aiops.erd) 节点上完成:
[root@ceph1 ~]# ceph orch host add ceph2.server.aiops.red Added host 'ceph2.server.aiops.red' with addr '10.211.55.45' [root@ceph1 ~]# ceph orch host add ceph3.server.aiops.red Added host 'ceph3.server.aiops.red' with addr '10.211.55.46' ...
将所有节点加入 Ceph 集群 。
查看集群中的节点:
[root@ceph1 ~]# ceph orch host ls HOST ADDR LABELS STATUS ceph1.server.aiops.red 10.211.55.44 _admin ceph2.server.aiops.red 10.211.55.45 ceph3.server.aiops.red 10.211.55.46 ceph4.server.aiops.red 10.211.55.48 ceph5.server.aiops.red 10.211.55.49 ceph6.server.aiops.red 10.211.55.50 6 hosts in cluster
因为缺少 OSD,集群状态处于非健康状态,接下来将 OSD 部署到集群 。
1.3.6 部署 OSD
OSD (Object Storage Daemon) 用来存储数据,处理数据的复制、恢复以及再平衡,并通过检查其他 OSD 的心跳,为 Monitor、Manager 提供一些监控信息 。通常,需要至少三个 OSD 来实现冗余和高可用性 。
查看集群中可用设备:
ceph orch device ls
Linux 9 部署 Ceph 分布式存储

文章插图
 
图 1-2 列出 Ceph 集群中可用的设备


推荐阅读