在树莓派集群中部署 Ceph
使用 ceph-ansible 安装 Ceph 存储,并将其部署在树莓派集群中。
Ceph 是一个开源软件存储平台,它在统一的存储集群中提供对象、块和文件系统存储。我第一次使用 Ceph 是在 OpenStack 中集成它的时候。一开始,我很困惑,既然存储设备广泛存在,为什么要使用 Ceph。但在使用了三年多之后,这个平台的稳定性和完整性一再证明了它的价值。
本文将告诉你如何使用 ceph-ansible(Ceph 官方支持的 Ansible playbook)安装 Ceph,并将其部署在树莓派集群中。
材料:
- 树莓派 4B 4GB 型号四台。
- 四张 32GB 的 microSD 卡(用于启动操作系统)
- 四个树莓派外壳,带风扇和散热片(非常重要)
- 四个树莓派充电器
- 6 个 32GB U 盘(用于 Ceph OSD 节点)
架构:
关于配置:
- 前端和后端网络都在同一个子网中
- Ceph Monitor 软件使用 4GB 内存的树莓派 4B。
- Ceph OSD 节点使用相同的树莓派型号,但有两个 U 盘用于 OSD 磁盘
使用 ceph-ansible 部署 Ceph
使用 Ceph 的 Ansible 仓库可以让部署变得顺畅简单
1、复制 ssh 密钥到所有服务器
我在所有的服务器上都有一个名为 cephadmin
的共同用户(在此背景下,每个树莓派都是一台服务器)。cephadmin
用户配置了无密码的 sudo
,以方便工作。
使用 ssh-keygen
生成密钥后,使用 ssh-copy-id
部署所有密钥。
我使用了一个 Bash for
循环,因为我使用的是一致并递增的主机名:
1 |
|
你需要每个接受并输入密码,但你可以用 expect
来自动完成。
2、克隆 ceph-ansible 并安装依赖
安装 Git 来克隆仓库:
1 |
|
克隆 ceph-ansible 仓库:
1 |
|
我使用的是 CentOS 7 的 AArch64 构建,所以在继续之前,我必须安装一些所需的包。
首先安装 Python pip
:
1 |
|
接着是 ceph-ansible 需要的包:
1 |
|
最后,ceph-ansible 需要的依赖:
1 |
|
我收到了这个错误:
1 |
|
这可能与架构有关,因为我无法在 CentOS 7 虚拟机中复现该错误。
部署时,将 CRYPTOGRAPHY_ALLOW_OPENSSL_102
导出为 True
,这样 Ansible 就可以运行了。
1 |
|
3、配置 ceph-ansible 进行部署
现在你可以使用 ceph-ansible 部署 Ceph 了。
复制 site.yml.sample
到 site.yml
:
1 |
|
在 group_vars
目录下创建 all.yml
:
1 |
|
在 group_vars
目录下创建 osds.yml
:
1 |
|
创建一个 inventory
文件:
1 |
|
在写这篇文章的时候,ceph-ansible 仓库里有一个 bug(根据这个 bug 工单)。你可以通过编辑角色的第 85 行和第 86 行来减轻这个 bug。
1 |
|
4、部署 Ceph
用你的 inventory
文件运行 Ansible 剧本:
1 |
|
15-20 分钟后,你应该看到这个结果:
下面的步骤
之前,我在另一个树莓派集群中手动部署了一个 OpenStack 集群。我希望能将其与这个集群整合在一起。我也在研究用 TripleO 部署。
树莓派、Ansible 和 OpenStack 的可能性是无穷的。开始做你自己的实验,并在评论中告诉我结果如何。
via: https://opensource.com/article/21/1/ceph-raspberry-pi