前提条件 Cephadm使用容器和systemd安装和管理Ceph集群,并与CLI和仪表板GUI紧密集成。 cephadm仅支持octopus v15.2.0和更高版本。 cephadm与新的业务流程API完全集成,并完全支持新的CLI和仪表板功能来管理集群部署。 cephadm需要容器支持(podman或docker)和Python 3。 /cephadm chmod +x cephadm 安装cephadmn . /cephadm install 引导新群集 要引导群集,需要先创建一个目录:/etc/ceph mkdir -p /etc/ceph 然后运行该命令:ceph bootstrap cephadm cephadm shell ?
cephadm 安装部署 ceph 集群 介绍 手册: https://access.redhat.com/documentation/zh-cn/red_hat_ceph_storage/5/html /cephadm # 创建源信息 . /cephadm add-repo --release 17.2.5 sed -i 's#download.ceph.com#mirrors.ustc.edu.cn/ceph#' /etc/yum.repos.d /cephadm install # 引导新的集群 [root@ceph-1 ~]# cephadm bootstrap --mon-ip 192.168.1.25 Verifying podman Waiting for mgr epoch 4... mgr epoch 4 is available Setting orchestrator backend to cephadm...
,Ceph集群核心集成了所有的管理任务 Cephadm 由 Cephadm 包装提供,应该在第一个集群节点上安装这个包,它充当引导节点。 常用命令 cephadm bootstrap: 用于在 Ceph 集群上引导 cephadm 客户端。 cephadm add-repo: 添加一个自定义 yum 或 apt 存储库,以便 cephadm 客户端可以使用新的软件包。 cephadm deploy: 使用配置文件指定的配置部署 Ceph 群集。 cephadm rm-daemon: 从 Ceph 群集中删除指定的 Ceph 守护进程。 cephadm ls: 列出所有已知主机及其状态、版本和其他详细信息。 cephadm set-privs: 设置 ssh 私钥配置参数,以便 cephadm 可以通过 SSH 访问主机。
关于 Ceph 更详细的介绍和环境部署可以参考这篇文章:分布式存储系统 Ceph 介绍与环境部署 二、cephadm 工具的使用 cephadm 官方文档 1)cephadm 工具的介绍 cephadm 以下是一些事情的列表 cephadm 可以做: cephadm 可以将 Ceph 容器添加到集群。 cephadm 可以从集群中移除 Ceph 容器。 cephadm 可以更新 Ceph 容器。 https://github.com/ceph/ceph/raw/octopus/src/cephadm/cephadm -o cephadm chmod +x cephadm # 开始安装ceph-common /cephadm install ceph-common ceph # 安装cephadm工具 . /cephadm install which cephadm which ceph # 查看帮助 cephadm --help 3)cephadm 常用命令使用 一般使用 cephadm 用作环境初始化
cephadm 包含两个组件 cephadm shell cephadm orchestrator cephadm shell 命令在ceph提供的管理容器中运行一个bash shell,最初使用 cephadm ansible-playbook -i hosts cephadm-preflight.yml -e ceph_origin= 使用cephadm引导集群。 cephadm-ansible 是 Ansible 剧本的集合,用于简化 CEPHADM 未涵盖的工作流。 cephadm 的方式, cephadm-ansible 这里仅仅用作为安装前的检查。 它还安装必要的包,例如Podman、lvm2、chrony 和 cephadm cephadm-preflight 使用 cephadm-ansible inventory 文件来识别 admin 和
以及ceph-common # curl --silent --remote-name --location https://github.com/ceph/ceph/raw/pacific/src/cephadm /cephadm # chmod +x cephadm # . /cephadm add-repo --release pacific # ./cephadm install # . /cephadm install ceph-common 向集群中添加新节点 在ceph集群添加新主机 [root@node2 ~]# ceph orch host add node1 Added ,在上面的命令中其实可以看到新加的node1是缺少一个_admin标签的,这里提一下ceph是有几个特殊的主机标签的,以_开头的属于ceph主机的特殊标签,将_admin标签添加到这台新节点,就会导致cephadm
IP Address node01 10.141.160.50 node02 10.141.160.51 node03 10.141.160.52 安装 node01作为主要的host,先安装cephadm curl --silent --remote-name --location https://github.com/ceph/ceph/raw/octopus/src/cephadm/cephadm chmod +x cephadm 安装ceph-common . /cephadm add-repo --release octopus sed -i 's#download.ceph.com#mirrors.aliyun.com/ceph#' /etc/yum.repos.d /ceph.repo dnf makecache dnf install -y ceph-common 开始初始化 cephadm bootstrap --mon-ip 10.141.160.50
RGWRADOSGateway,对象存储接口(兼容S3/Swift)MDS元数据服务,支持CephFS推荐使用Ceph“Pacific”/“Quincy”系列(取决于稳定版发布周期),支持更丰富的监控与Cephadm 可提升性能示例网络划分:网络用途子网MTUpublic客户端访问10.10.0.0/241500clusterOSD复制/恢复10.20.0.0/249000五、RockyLinux8环境准备Ceph建议使用容器化部署(cephadm 16777216net.core.wmem_max=16777216net.ipv4.tcp_rmem=40968738016777216net.ipv4.tcp_wmem=40968738016777216EOFsysctl-p六、部署Cephadm 与引导集群6.1安装Cephadm展开代码语言:BashAI代码解释curl--silent--remote-name\https://download.ceph.com/keys/release.ascgpg --importrelease.asccurl--silent--remote-name\https://download.ceph.com/cephadm/cephadmchmod+xcephadmmvcephadm
logdir /var/log/chrony systemctl enable --now chronyd # 客户端验证 chronyc sources -v 安装 ceph 集群 # 安装 cephadm /cephadm [root@ceph-01 ~]# chmod +x cephadm # 创建源信息 [root@ceph-01 ~]# . /cephadm add-repo --release 17.2.5 [root@ceph-01 ~]# sed -i 's#download.ceph.com#mirrors.ustc.edu.cn/ /cephadm install # 引导集群 [root@ceph-01 ~]# cephadm bootstrap --mon-ip 192.168.0.14 Creating directory Waiting for mgr epoch 5... mgr epoch 5 is available Setting orchestrator backend to cephadm...
阅读之前,简单接下来操作中涉及到的 Ceph 基本概念: cephadm 是 Ceph 集群专门的运维管理工具,我们会用他初始化 Ceph 集群 OSD(Object Storage Daemon)是 如果不做这一步,后续 cephadm 会从官方源拉,取决于当地网络环境,可能会非常慢。 /cephadm_17.2.6-1focal_amd64.deb # 手动安装完 cephadm 后,还需要额外将 Ceph 相关的软件源纳入到包管理器的 repo 列表 # 该命令是为了下一步能够安装版本符合要求的 但考虑到主控节点已经在宿主机层面安装了所有需要的工具,事实上不进入 cephadm shell 也是完全可以的。 部署监控 Cephadm 部署时,会默认安装自己的 Grafana,并且默认与其 Dashboard 进行了集成。
不过好在现在 Ceph 的部署工具已经成熟很多了,尤其是 cephadm 这套基于容器的部署方式,比早年手动编译、配置一堆服务省心太多了。 今天这篇文章就把我从零开始搭建 Ceph 集群的过程完整记录下来,全程基于 Ubuntu 22.04 LTS,使用的是官方推荐的 cephadm 工具。 hosts,三台机器都加上: 192.168.1.10 ceph1 192.168.1.11 ceph2 192.168.1.12 ceph3 ⚠️ 注意:主机名必须和 hosts 里一致,否则后面 cephadm 创建统一用户并配 sudo 免密 虽然 cephadm 支持 root,但官方建议用普通用户。 最后说两句 Ceph 看似复杂,其实只要按步骤来,用 cephadm 部署并不难。我这套流程已经在多个客户现场跑了几个月,稳定得很。关键是前期规划要做好:网络、硬盘、主机名,这些细节一错,后面全是坑。
ceph.conf 配置文件,使集中配置数据库成为存储配置设置的首选方式 3修改集群配置文件 每个 Ceph 节点存储一个本地集群配置文件,集群配置文件的默认位置为 /etc/ceph/ceph.conf,cephadm boostrap 带有 --config 选项的命令来传递配置文件 [root@node ~]# cephadm bootstrap --config ceph-config.yaml 配置 Sections 使用 cephadm 部署集群时,默认启用 cephx。 在Red Hat Ceph Storage 5中,cephadm通过对大多数服务使用public网络在任意主机上部署守护进程,为了处理cephadm部署新守护进程的位置,可以定义一个特定的子网供服务使用 如果client.rgw配置段为空,Cephadm使用默认的80端口 Ceph iSCSI Gateway 9287/TCP 与Ceph iSCSI网关通信 MONs总是在public网络上运行。
$ curl --remote-name --location https://github.com/ceph/ceph/raw/octopus/src/cephadm/cephadm $ chmod /cephadm $ ./cephadm -h1.2.3. 没有问题的话,下一步添加ceph的官方软件源。 $ ./cephadm add-repo --release octopus1. 然后安装cephadm到系统,其实就是调用apt进行了一个安装 $ . /cephadm install $ which cephadm #检查安装结果1.2. 3.4 开始部署集群 首先创建一个ceph的配置文件存放地点,这里要提示的一点就是以前的版本很多配置都需要写到配置文件里 /cephadm bootstrap --mon-ip 192.168.3.61.2. 等待结束后,会给你一个用户名和密码,访问一下这个地址,发现已经部署好了。
hosts10.0.1.10mon110.0.1.11mon210.0.1.12mon310.0.1.20osd110.0.1.21osd2EOF#SSH免密登录ssh-keygen-trsassh-copy-idroot@其它节点IP三、Ceph软件安装与基本部署本文采用cephadm 1.安装cephadm在其中一个MON主机(如mon1)执行:展开代码语言:BashAI代码解释curl--silent--remote-namehttps://raw.githubusercontent.com /ceph/ceph/master/src/cephadm/cephadmchmod+xcephadmmvcephadm/usr/local/bin/2.创建集群展开代码语言:BashAI代码解释#创建初始集群 展开代码语言:BashAI代码解释cephosddownosd.3cephosdoutosd.3监控恢复:展开代码语言:BashAI代码解释watchceph-s六、监控与数据安全1.Dashboard登陆cephadm 重点包括:精细的硬件与网络规划,使集群稳定可靠;灵活利用Cephadm与容器化部署提升部署效率;通过合理的存储池与副本策略达到理想的性能与容错能力;强化监控与调优策略,保障长时间运行。
cephadm shell 自动从/etc/ceph/目录挂载密钥环,如果不在默认位置,需要显示指定 5修改用户权限 用 ceph auth caps 命令修改用户帐户的能力(权限),这个例子修改了 osd del client.app1 updated 然后可以删除相关的密钥环文件 Part3Demo # 在 Ceph 集群中创建两个新的客户端,分别用于编辑和获取名为 replpool1 下的文档资源 cephadm 'allow r' osd 'allow rw pool=replpool1 namespace=docs' | tee /etc/ceph/ceph.client.docedit.keyring cephadm tee /etc/ceph/ceph.client.docget.keyring # 列出 Ceph 认证密钥,并查找与 client.docedit 和 client.docget 对应的密钥 cephadm 删除客户端密钥文件和认证记录 rm /etc/ceph/ceph.client.doc*.keyring ssh serverd rm /etc/ceph/ceph.client.doc*.keyring cephadm
https://docs.ceph.com/projects/ceph-ansible/en/latest/index.html如果你希望你的集群运行在物理机上的docker容器中,可以使用cephadm https://docs.ceph.com/en/quincy/cephadm/#cephadm如果你希望你的集群运行在Kubernetes中,运行在云服务器上,可以使用rook-ceph。
/mlnx_add_kernel_support.sh -m /root/ib -k (kernel 版本) 对象存储 对象存储采用自建的 Ceph 集群,Ceph 集群采用 Cephadm 进行部署, Cephadm 是随着 Ceph 新版本 v15.2.0(Octopus)发布的安装工具,并且不支持 Ceph 的旧版本,Cephadm 不依赖于外部配置工具,如 Ansible、 Rook 和 Salt 通过 Cephadm 引导一个单节点的集群,Cephadm 会在执行 bootstrap 引导的节点部署 mgr 跟 mon 服务,当添加其他节点的时候,会自动在其中一台部署 mgr 管理节点,目前我们生产采用
起因# 在使用 cephadm 安装 ceph v16.2 时升级了 python,系统默认版本是 3.7.4 ,升级后版本是 3.8.5,glibc 作为依赖同时进行了升级,系统默认版本是 2.28
Not affected 标记: fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid 之前想通过cephadm 的方式去部署,结果发现cephadm不支持kylin v10的操作系统,那么剩下的就只有手动部署和编译安装的方式,kylin v10系统已经自带了ceph luminous版本的包,如果想用新版的ceph
Architecture(ceph架构) ceph install (Getting started)(ceph) Rook(容器化安装):install for kubernets or openshift cephadm