找回密码
 立即注册
首页 业界区 安全 [Ceph 14.2.22] 使用deploy部署多机集群

[Ceph 14.2.22] 使用deploy部署多机集群

静轾 2026-1-21 15:10:20
1. 前言

1.png

上表中是 Ceph 官方文档给出的 Ceph 14 系列的系统和内核推荐,其中在centos 7、ubuntu 14.04、ubuntu 16.04、ubuntu 18.04上都做了完整的测试。本文将介绍如何在ubuntu 18.04中使用 ceph-deploy 部署 ceph 集群,ceph 版本为14.2.22。
2. 准备

2.1. 集群规划

  1. component name            component type    node ip         node name
  2. ----------------------------------------------------------------------
  3. [mon.node1]               mon               192.168.3.11    node1
  4. [mgr.node1]               mgr               192.168.3.11    node1
  5. [osd.0]                   osd               192.168.3.11    node1
  6. [osd.1]                   osd               192.168.3.12    node2
  7. [osd.2]                   osd               192.168.3.13    node3
  8. [ceph-deploy]             -                 192.168.3.10    node0
复制代码
在 ceph 集群中,安装了 ceph 软件的并且部署了一系列 ceph 集群服务的主机被称之为 ceph 集群节点。node0 虽然属于管理节点,但它并不属于 ceph 集群,它没有安装任何 ceph 软件,也没有部署任何 ceph 集群服务。
2.2. 新建用户

ceph-deploy 部署 ceph 到不同节点上,是通过 ssh 方式登录到不同节点上,然后执行一系列指令。默认情况下,ssh 需要输入对应的用户名和节点 ip。为了方便管理集群中每一个节点,官方建议为 ceph 集群中每一个节点都创建一个新的相同的用户名。由于 ceph-deploy 是完全自动化脚本,在部署 ceph 集群时,是不支持交互式操作。当使用 ssh 登录到集群中某个节点时,要求输入远程节点的密码,因此必须要设置 ssh 免密登录。同时 ceph-deploy 中使用了大量的 sudo 权限的指令,因此必须要求当前用户免输入密码。
如果想直接将 root 用户作为 ceph 集群用户,可以直接忽略此步骤,本文就是使用的 root 用户,以下创建用户以及用户设置只是一个参考。
2.2.1. 创建一个新用户

在集群所有节点(node1-node3)上执行以下命令:
  1. useradd -d /home/cephtest -m cephtest
  2. passwd cephtest
复制代码
其中cephtest 为用户名,该命令将会在 node1、node2 和 node3 上创建名为 cephtest 的普通用户,用户密码为 cephtest。
2.2.2. 获取免密的 sudo 权限

在集群所有节点(node1-node3)上执行以下命令:
  1. echo "cephtest ALL = (root) NOPASSWD:ALL" > /etc/sudoers.d/cephtest
  2. chmod 0440 /etc/sudoers.d/cephtest
复制代码
其中cephtest为用户名,该命令将使得 node1、node2 和 node3 上名为 cephtest 的普通用户获取免密的 root 权限。
2.2.3. 设置 ssh 免密登录

生成 ssh key
在管理节点(node0)上执行ssh-keygen,一路回车,不要输入任何东西。
将 ssh key 拷贝到所有节点上
在管理节点(node0)上执行以下命令:
  1. ssh-copy-id cephtest@192.168.3.11
  2. ssh-copy-id cephtest@192.168.3.12
  3. ssh-copy-id cephtest@192.168.3.13
复制代码
其中cephtest为用户名,192.168.3.11、192.168.3.12、192.168.3.13为集群节点的 ip 地址,该命令将 ssh key 分发到集群所有节点中。
以上 2 个步骤是设置免密登录,以下的步骤是设置免用户登录。由前述可知,ssh 远程登录需要指定用户名和节点 ip。当然 ceph-deploy 可以通过--username参数指定用户名。此处建议在~/.ssh/config文件中指定用户名,可以避免 ceph-deploy 部署时要求指定用户。
2.2.4. 设置 ssh 免用户登录

2.2.4.1. 修改/etc/hosts

在集群节点(node1-node3)和管理节点(node0)的/etc/hosts文件中追以下相同内容:
  1. 192.168.3.11 node1
  2. 192.168.3.12 node2
  3. 192.168.3.13 node3
复制代码
2.2.4.2. 修改~/.ssh/config

在管理节点(node0)上,新建~/.ssh/config文件,并添加以下内容:
  1. Host node1
  2.         Hostname node1
  3.         User cephtest
  4. Host node2
  5.         Hostname node2
  6.         User cephtest
  7. Host node3
  8.         Hostname node3
  9.         User cephtest
复制代码
2.2.4.3. 修改 hostname

建议统一修改集群节点的主机名,在集群节点之间来回切换时,很容易通过终端主机名查看该主机是哪个节点。
在集群所有节点(node1-node3)上执行以下命令:
  1. hostname node1
  2. hostname node2
  3. hostname node3
复制代码
其中node1、node2和node3是集群节点的 hostname。
通过以上步骤,就可以直接用形如ssh node1方式直接远程登录集群中其他节点上,而不用输入用户名和密码。
2.3. 设置时间同步

在 ceph 集群中,osd 进程心跳机制,mon 进程维护集群 map,要求每个主机之间时间同步,否则会影响集群。在 ubuntu 系统上可以安装 ntp 服务和 ntpdate 客户端工具实现时间同步。在集群节点中只需要一个 ntp 服务,其他集群节点安装 ntpdate 客户端工具即可。
2.3.1. 安装 ntp 服务

在集群节点(node1)上执行以下命令:
  1. apt install ntp
复制代码
2.3.2. 安装 ntpdate 客户端

在集群节点(node2-node3)上执行以下命令:
  1. apt install ntpdate
复制代码
以上将 node1 作为 ntp 服务端,node2-node3 为 ntp 客户端,node2-node3 通过 ntpdate 工具实现与 node1 时间同步。
2.4. 安装 ceph-deploy

使用 ceph-deploy 部署 ceph 集群,需要下载安装 ceph-deploy 工具。ubuntu 自带 ceph-deploy 安装包,但该版本不一定支持 ceph-14.2.22 版本,需要从 ceph 官方下载 ceph14.2.22 对应版本的 ceph-deploy 工具。
2.4.1. 配置 ceph-14.2.22 软件源

为了加快下载速度,此处使用阿里云开源镜像站,在管理节点(node0)上执行以下命令:
  1. echo "deb https://mirrors.aliyun.com/ceph/debian-nautilus/ bionic main" > /etc/apt/sources.list.d/ceph.list
复制代码
2.4.2. 添加 release key

在管理节点(node0)上执行以下命令
  1. wget -q -O- 'https://mirrors.aliyun.com/ceph/keys/release.asc' | apt-key add -
复制代码
2.4.3. 安装 ceph-deploy

在管理节点(node0)上执行以下命令:
  1. apt install ceph-deploy
复制代码
3. 集群部署

如果之前已经安装了 ceph,无论是哪个版本的,请按照集群卸载步骤执行卸载操作。
3.1. 创建临时目录

ceph-deploy 在部署 ceph 集群过程中会产生一些日志文件、配置文件以及 ceph 必备的文件。为了方便管理,建议创建一个临时目录来存放这些文件。
在管理节点(node0)上执行以下命令:
  1. mkdir cluster
复制代码
上述命令创建一个名为 clustre 的临时文件夹,之后所有的关于 ceph-deploy 的操作都必须在cluster目录下执行。
3.2. 初始化集群

在管理节点(node0)上执行以下命令:
  1. ceph-deploy new node1
复制代码
其中 node1 为集群 MON 节点的 hostname,该命令将初始化 Ceph 集群 conf 和 keyring 文件并初始化 MON 名字,可以同时指定多个 MON 节点 hostname。
3.3. 安装 ceph 软件

在管理节点(node0)上执行以下命令:
  1. ceph-deploy install node1 node2 node3 \
  2. --repo-url=https://mirrors.aliyun.com/ceph/debian-nautilus \
  3. --gpg-url=https://mirrors.aliyun.com/ceph/keys/release.asc
复制代码
其中node1 node2和node3为集群节点。--repo-url是 ceph 软件仓库的地址,--gpg-url是 ceph 软件仓库中 key 的地址。默认情况下,ceph-deploy 安装脚本中指定的是 ceph13 版本的地址,所以需要重新指定为 ceph14 版本的地址。上述命令将在 node1、node2 和 node3 上安装 ceph 相关软件,可以同时指定多个 hostname。
3.4. 创建和初始化 mon 进程

在管理节点(node0)上执行以下命令:
  1. ceph-deploy mon create-initial
复制代码
上述命令将会初始化所有的 mon 进程。
3.5. 创建 mgr 进程

在管理节点(node0)上执行以下命令:
  1. ceph-deploy mgr create node1
复制代码
上述命令将在 node1 上创建 mgr 进程。
3.6. 创建 osd 进程

ceph 支持 2 种存储引擎:bluestore和filestore。filestore 模式下,可以看到数据存在哪个目录下,而 bluestore 则无法看到。filestore 是一个过时的技术,在后续版本中逐渐被 Ceph 弃用,filestore 已经没有任何研究价值,因此本文默认以 bluestore 为准。
在管理节点(node0)上执行以下命令:
  1. ceph-deploy osd create --data /dev/sdb node1
  2. ceph-deploy osd create --data /dev/sdb node2
  3. ceph-deploy osd create --data /dev/sdb node3
复制代码
其中/dev/sdb是磁盘设备,node1、node2和node3是集群节点的 hostname。
3.7. 分发 key

ceph 通过 ceph 命令来管理集群,如果想要使用 ceph 命令,需要将相关的 key 文件和 ceph.conf 文件放到指定路径下。
在管理节点(node0)上执行以下命令:
  1. ceph-deploy admin node1 node2 node3
复制代码
其中node1、node2和node3是集群节点 hostname,该命令将 key 文件和 ceph.conf 文件分发到 node1、node2 和 node3 上,可以同时指定多个 hostname。
3.8. 修改 ceph.client.admin.keyring 权限

普通用户对/etc/ceph/ceph.client.admin.keyring文件没有读权限,在执行 ceph 相关命令的时候,需要读取该文件中的 key 值信息,因此需要为该文件添加普通用户读权限。
在集群所有节点(node1-node3)上执行以下命令:
  1. chmod +r /etc/ceph/ceph.client.admin.keyring
复制代码
3.9. 查看集群状态

在上述分发的任意的一个集群节点(node1、node2、node3)上执行ceph -s便可以查看到集群的状态信息。
  1. ceph -s
  2. ---------
  3.   cluster:
  4.     id:     4a7760d1-22b6-49d3-8236-31962c941632
  5.     health: HEALTH_WARN
  6.             mon is allowing insecure global_id reclaim
  7.   services:
  8.     mon: 1 daemons, quorum node1 (age 3m)
  9.     mgr: node1(active, since 3m)
  10.     osd: 3 osds: 3 up (since 80s), 3 in (since 80s)
  11.   data:
  12.     pools:   0 pools, 0 pgs
  13.     objects: 0 objects, 0 B
  14.     usage:   3.0 GiB used, 12 GiB / 15 GiB avail
  15.     pgs:
复制代码
4. 集群卸载

删除集群很简单,但也容易删除不干净,主要包括:卸载 ceph 软件、清楚磁盘数据、删除逻辑卷。
4.1. 删除 ceph 软件

在管理节点(node0)上执行以下命令:
  1. ceph-deploy purge node1 node2 node3
复制代码
其中node1、node2和node3是集群节点的 hostname,该命令将会删除 node1、node2 和 node3 中 ceph 相关的所有软件,可以同时指定多个 hostname。
4.2. 删除数据

在管理节点(node0)上执行以下命令:
  1. ceph-deploy purgedata node1 node2 node3
复制代码
其中node1、node2和node3是集群节点的 hostname,该命令将会清除 node1、node2 和 node3 中 ceph 所有配置文件和数据文件,可以同时指定多个 hostname。
4.3. 删除密钥

在管理节点(node0)上执行以下命令:
  1. ceph-deploy forgetkeys
复制代码
4.4. 删除逻辑卷

ceph-deploy 在创建 osd 时,会将每个 osd 对应的硬盘以逻辑卷的形式挂在到系统中。有时候会遇到,如果不删除 osd 对应的逻辑卷,下次再部署相同 id 的 osd 时,会发现 osd 对应的逻辑卷已经存在,直接导致 osd 创建失败,所以有必要删除 osd 逻辑卷。
4.4.1. 查看 osd 逻辑卷

在部署 osd 的集群节点上执行以下命令:
  1. vgdisplay -s | grep ceph
  2. -----------------------------------------------------------------------------------------------------------------------
  3. "ceph-7d7f39a3-f9f1-47ba-88ea-1f9b1c53e7a4" 9.00 GiB  [9.00 GiB  used / 0    free]
  4. "ceph-310bbc06-b539-42aa-a7d6-ed430310f95f" 9.00 GiB  [9.00 GiB  used / 0    free]
  5. "ceph-4258b146-2d7d-4132-985d-63a2148e6d4a" 9.00 GiB  [9.00 GiB  used / 0    free]
复制代码
其中ceph-7d7f39a3-f9f1-47ba-88ea-1f9b1c53e7a4 就是 vg name。
4.4.2. 删除 osd 逻辑卷

在部署 osd 节点上执行以下命令:
  1. vgremove ceph-7d7f39a3-f9f1-47ba-88ea-1f9b1c53e7a4
复制代码
5. 参考资料



  • https://docs.ceph.com/en/octopus/start/os-recommendations

  • https://docs.ceph.com/en/nautilus/start/


来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

2026-2-2 04:37:21

举报

2026-2-3 08:46:08

举报

2026-2-9 18:16:22

举报

喜欢鼓捣这些软件,现在用得少,谢谢分享!
2026-2-12 04:21:34

举报

2026-2-12 09:55:27

举报

很好很强大  我过来先占个楼 待编辑
2026-3-4 07:42:16

举报

很好很强大  我过来先占个楼 待编辑
2026-3-5 07:18:22

举报

2026-3-11 08:09:05

举报

懂技术并乐意极积无私分享的人越来越少。珍惜
您需要登录后才可以回帖 登录 | 立即注册