长时间以来,为了使Ceph
易于安装和管理,社区出现了各种各样的Ceph
部署工具。这些工具大多数都利用了Ansible
,Puppet
和Salt
等现有的自动化工具,因为他们带来了现有的用户管理生态,并且与其保持一致。但结果是,Ceph
社区的精力被分散在许多额外的工作上。新用户在入门时面临着艰难的工具选择,而且当用户试图简化这些工具并且与Ceph
自身集成也是非常困难的。
Cephadm
Cephadm
的目标是提供一个功能齐全、健壮且维护良好的安装和管理层,可供不在Kubernetes
中运行Ceph
的任何环境使用。具体特性如下:
将所有组件部署在容器中。 使用容器简化了不同发行版之间的依赖关系和打包复杂度。当然,我们仍在构建
RPM
和Deb
软件包,但是随着越来越多的用户过渡到cephadm
(或Rook
)并构建容器,我们看到的特定于操作系统的bug
就越少。与Orchestrator API紧密集成。
Ceph
的Orchestrator
界面在cephadm
的开发过程中得到了广泛的发展,以匹配实现并清晰地抽象出Rook
中存在的(略有不同)功能。最终结果是不管是看起来还是感觉都像Ceph
的一部分。不依赖管理工具。
Salt
和Ansible
之类的工具在大型环境中进行大规模部署时非常出色,但是使Ceph
依赖于这种工具意味着用户还需要学习该相关的软件。更重要的是,与专为管理Ceph
而专门设计的部署工具相比,依赖这些工具(Salt
和Ansible
等)的部署最终可能变得更加复杂,难以调试并且(最显着)更慢。最小的操作系统依赖性。
Cephadm
需要Python 3
,LVM
和container runtime
(Podman
或Docker
)。任何当前的Linux
发行版都可以。将群集彼此隔离。 支持多个
Ceph
集群同时存在于同一主机上一直是一个比较小众的场景,但是确实存在,并且以一种健壮,通用的方式将集群彼此隔离,这使得测试和重新部署集群对于开发人员和用户而言都是安全自然的过程。自动升级。 一旦
Ceph
“拥有”自己的部署方式,它就可以以安全和自动化的方式[升级Ceph
。从“传统”部署工具轻松迁移。 我们需要从现有工具(例如
ceph-ansible
,ceph-deploy
和DeepSea
)中现有的Ceph
部署轻松过渡到cephadm
。
所有这一切的目的是将Ceph
开发人员和用户社区的注意力集中在仅这两个平台上:cephadm
用于“裸机”部署,Rook
用于在Kubernetes
环境中运行Ceph
,并为这两个平台提供类似的管理体验。
Bootstrap
cephadm
模型有一个简单的“ Bootstrap
”步骤,该步骤从命令行启动,该命令行在本地主机上启动一个最小的Ceph
群集(一个monitor
与 manager
守护程序)。然后,使用orchestrator
命令部署集群的其余部分,以添加其他主机,使用存储设备并为集群服务部署守护程序。
引导群集很简单:
curl --silent --remote-name --location https://github.com/ceph/ceph/raw/octopus/src/cephadm/cephadmchmod +x cephadmmkdir -p /etc/ceph./cephadm bootstrap --mon-ip <ip>
30到60秒后,最小的Ceph
集群将启动并运行,并且cephadm
将打印出命令以访问Ceph CLI
(通过容器化shell
)和URL
来访问dashboard
:
INFO:cephadm:Ceph Dashboard is now available at: URL: https://gnit:8443/ User: admin Password: 07j394z550INFO:cephadm:You can access the Ceph CLI with: sudo ./cephadm shell --fsid 2d2fd136-6df1-11ea-ae74-002590e526e8 -c /etc/ceph/ceph.conf -k /etc/ceph/ceph.client.admin.keyringINFO:cephadm:Bootstrap complete.
访问Ceph CLI
由于Ceph
已完全容器化(podman ps
或docker ps
进行验证),因此主机上尚未安装任何软件,通常的ceph
命令将不起作用(至少现在还不行)。有几种与新群集进行交互的方法。
一种方法是使用cephadm shell
命令。用于引导的cephadm
也可以启动装有所有Ceph
软件(包括CLI
)的容器话Shell
。因为bootstrap
在默认情况下会将ceph config
和admin keyring
的副本放在/etc/ceph
中,而shell
命令在默认情况下会在那里显示,所以您可以通过以下的命令启动一个shell并进入CLI管理端:
./cephadm shellceph status
cephadm
命令还使在主机上安装Ceph
软件包变得更加容易。如下命令是将Ceph CLI
命令和cephadm
命令安装在标准位置:
./cephadm add-repo --release octopus./cephadm install cephadm ceph-common
<