Product Documentation for Red Hat Ceph Storage 5
目录
名词解析及须知
OSD:1块硬盘就是一个OSD,主要作用是存储集群的数据,全称是Object Storage Device
Ceph Manager:类似工厂里面的监控,作用就一个,监视有效范围内的动静
Ceph MDS:全称是 Ceph MetaData Server,一般的存储形式是元数据+数据,ceph也有自己的存储形式(CephFS)也是元数据+数据,因为ceph支持多种接口,所以MDS只为CephFS接口提供支持
Red Hat Ceph Storage 5的初始发行版本在 Red Hat Enterprise Linux 8.4 或更高版本上被支持
Red Hat Ceph Storage 5只在基于容器的部署中被支持
具有适当权利的有效的红帽订阅 ====> 重点,可能会卡在这里不能往下继续,可找有RHCE的人注册你当前使用的OS!!!
用于访问 Red Hat Registry 的有效红帽网络 (RHN) 或服务帐户 ====> 重点,可能会卡在这里不能往下继续,可找有RHCE的人注册你当前使用的OS!!!
Red Hat Registry 位于 https://registry.redhat.io/。节点需要连接到 registry
简介
本文档提供在 AMD64 和 Intel 64 架构上运行的 Red Hat Enterprise Linux 8 安装 Red Hat Ceph Storage 的说明。
Red Hat Ceph Storage 是一款可扩展、开放、软件定义型存储平台,结合了 Ceph 存储系统的企业级强化版本和 Ceph 管理平台、部署实用程序和支持服务。
Red Hat Ceph Storage 存储专为云基础架构和 Web 规模对象存储而设计。Red Hat Ceph Storage 集群由以下类型的节点组成:
Ceph monitor
每一 Ceph 监控 (Monitor) 节点会运行 ceph-mon 守护进程,它会维护存储集群映射的一个主(master)副本(存储集群映射包含存储集群拓扑)。
连接Ceph存储集群的客户端从Ceph monitor检索存储集群映射的当前副本,这使得客户端能够从存储集群读取和写入数据。
翻译:
我让小王维护着存储集群映射的一个主副本(存储集群映射包含存储集群拓扑),所有要连接这个集群的客户端都需要从我这里(我会把你打请求给到小王)检索存储集群映射的当前副本,然后所有客户端才能往集群中读写数据
Tips:
存储群集只能使用一个 Ceph monitor 运行;但是,为了确保在生产存储集群中实现高可用性,红帽将仅支持具有至少三个 Ceph 监控节点的部署。红帽建议为超过 750 个 Ceph OSD 的存储集群部署总计 5 个 Ceph 监控器。
翻译:
原则上我只会把客户端请求交给小王,但小王有一天生病了怎么办?此时我这边就有了规定,为了防止这种情况出现,我会将客户端请求发给不超3个人(小王、小李、小红),小王未到我会把客户端请求交给其他2个人中的其中一个
请求数大于等于750个时我会把小明、lucy也加进来
Ceph Manager
Ceph Manager(管理器)守护进程ceph-mgr与Ceph监控节点上运行的Ceph monitor守护进程共同存在,以提供额外的服务。
Ceph 管理器利用Ceph管理器模块为其他监控和管理系统提供接口。运行 Ceph 管理器守护进程对于普通存储集群操作是必需的。
Ceph OSD
每个Ceph对象存储设备 (OSD) 节点运行 ceph-osd 守护进程,该守护进程与附加到节点的逻辑卷交互。存储集群会把数据存到这些Ceph OSD节点上
Ceph可在只有很少OSD节点的情况下运行(默认为三个),但生产存储集群从中等规模开始便实现了更好的性能。例如,存储集群中的50个Ceph OSD。
理想情况下Ceph存储集群具有多个OSD节点,可通过相应地配置 CRUSH map 来隔离故障域。
Ceph MDS
每个Ceph元数据服务器 (MDS) 节点运行ceph-mds守护进程,它管理与Ceph文件系统 (CephFS) 中存储的文件相关的元数据。Ceph MDS守护进程也协调对共享存储集群的访问。
Ceph 对象网关
Ceph 对象网关节点运行 ceph-radosgw 守护进程,它是基于 librados 构建的对象存储接口,为应用提供 Ceph 存储集群的 RESTful 访问点。
Ceph对象网关支持两个接口:
S3
通过与 Amazon S3 RESTful API 的大子集兼容的接口提供对象存储功能。
Swift
通过与 OpenStack Swift API 的大集兼容的接口提供对象存储功能。
注意事项
使用 Red Hat Ceph Storage 的第一个考虑因素是为数据制定存储策略(一种存储服务特定用例的数据的方法)。
如果您需要为 OpenStack 等云平台存储卷和镜像,可以选择将数据存储在带有 Solid State Drives (SSD) 的快速 Serial Attached SCSI (SAS) 驱动器上。
如果您需要存储 S3 或 Swift 兼容网关的对象数据则可选择使用更经济的方式,如传统的 SATA 驱动器。
Red Hat Ceph Storage 可以在同一存储集群中同时容纳这两种场景,但您需要一种方式为云平台提供快速存储策略并为对象存储提供更传统的存储方式。
一个成功的 Ceph 部署中的最重要的一个步骤是找出一个适合存储集群的用例和工作负载的性价比配置集。为用例选择正确的硬件非常重要。
例如为冷存储应用程序选择IOPS优化的硬件会不必要地增加硬件成本。然而在IOPS密集型工作负载中,选择容量优化的硬件使其更具吸引力的价格点可能会导致用户对性能较慢的抱怨。
Red Hat Ceph Storage 可以支持多种存储策略。用例、成本与好处性能权衡以及数据持久性是帮助开发合理存储策略的主要考虑因素。
Ceph 提供大量存储容量,它支持许多用例,例如:
Ceph块设备客户端是云平台的领先存储后端,可为具有写时复制(copy-on-write)克隆等高性能功能的卷和镜像提供无限存储。
Ceph对象网关客户端是云平台的领先存储后端,为音频、位映射、视频和其他数据等对象提供 RESTful S3 兼容和 Swift 兼容对象存储。
传统文件存储的 Ceph 文件系统.
越快越好。越大越好。越耐用越好。但是每种出色的质量、相应的成本与收益权衡都有价格。
从性能角度考虑以下用例:
SSD可以为相对较小的数据和日志量提供非常快速的存储。存储数据库或对象索引可以从非常快的SSD池中受益,但对于其他数据而言成本过高。
带有SSD日志的SAS驱动器以经济的价格为卷和图像提供快速性能。
SATA驱动器可提供低成本存储,同时整体性能也较低
在创建OSD的CRUSH层次结构时,您需要考虑用例和可接受的成本与性能权衡
Ceph通过对象的多个副本解决数据持久性问题,或使用纠删码和多个编码区块来解决数据持久性。
多个副本或多个编码区块会带来额外的成本与好处权衡:
存储更少的副本或编码区块会更便宜,但可能会导致在降级状态中为写入请求提供服务。
通常一个具有两个额外副本的对象(或两个编码区块)可以允许存储集群在存储集群恢复时服务降级状态的写入。
重要
数据存储池可以使用纠删代码。存储服务数据和存储桶索引的池使用复制
不要使用RAID,因为Ceph已经处理数据持久性,降级的RAID对性能有负面影响,并且使用RAID恢复数据比使用深度副本或纠删代码区块要慢得多。
网络注意事项
网络硬件配置必须支持所选工作负载,以满足价格与性能要求
除需考虑使用 Solid State Disks(SSD)、闪存、NVMe 和其他高性能存储设备时,还需要考虑到网络性能变得越来越重要
Ceph 支持公共网络和存储集群网络。
公共网络处理客户端流量以及与Ceph监控器的通信
存储集群网络处理Ceph OSD心跳、复制、回填和恢复流量
至少存储硬件应使用10GB的以太网链接,您可以为连接和吞吐量添加额外的10GB以太网链接
红帽建议为存储集群网络分配带宽,以便它是使用 osd_pool_default_size 作为复制池多个池基础的公共网络的倍数
红帽还建议将公共和存储集群网络分开单独使用、运行
红帽建议在生产环境中使用10GB以太网部署Red Hat Ceph Storage。1GB以太网网络不适用于生产环境的存储集群
对于大型环境(如机架)的故障,意味着存储集群将使用的带宽要高得多。在构建由多个机架组成的存储群集(对于大型存储实施常见)时,应考虑在"树树"设计中的交换机之间利用尽可能多的网络带宽,以获得最佳性能。
典型的10GB以太网交换机有48个10GB端口和四个40GB端口
使用40GB端口以获得最大吞吐量。
或者考虑将未使用的10GB端口和QSFP+ 和 SFP+ 电缆聚合到40GB端口,以连接到其他机架和机械路由器
此外还要考虑使用LACP模式4来绑定网络接口。另外特别是在后端或集群网络上使用巨型帧、最大传输单元 (MTU) 9000
Ceph中大多数与性能相关的问题通常是因为网络问题造成的。简单的网络问题(如粒度或 Bean Cat-6 电缆)可能会导致带宽下降。至少将10GB以太网用于前端网络。对于大型集群请考虑将40GBethernet用于后端或集群网络。
将RAID用于OSD节点的注意事项
1、如果OSD节点安装了1-2GB缓存,启用回写缓存可能会导致小I/O写入吞吐量增加。 翻译:缓存必须具有非易失性。
2、现代大多数RAID都具有超大容量,在出现电源不足时有足够的能力为非易失性NAND内存排空易失性内存。 翻译:要了解特定控制器及其固件在恢复电源后的行为。
3、有些RAID控制器需要手动干预。硬盘驱动器通常会向操作系统播发其磁盘缓存,无论是默认应启用或禁用其磁盘缓存。但某些RAID和某些固件不提供此类信息。 翻译:验证磁盘级别的缓存是否已禁用,以避免文件系统损坏。
4、为启用了回写缓存的每个Ceph OSD数据驱动器创建一个RAID 0卷
5、如果RAID中也存在 Serial Attached SCSI(SAS)或SATA连接的Solid-state Drive(SSD)磁盘,然后调查控制器和固件是否支持透传(pass-through)模式 翻译:启用透传模式有助于避免缓存逻辑,通常会降低快速介质的延迟。
运行CEPH时调整LINUX内核的注意事项
生产环境的Red Hat Ceph Storage集群通常受益于操作系统调优,尤其是关于限值和内存分配。确保为存储集群内的所有节点设置了调整
1、为 Ceph OSD 保留可用内存
为了帮助防止 Ceph OSD 内存分配请求期间与内存相关的错误不足,请设置特定数量的物理内存来保留。红帽建议根据系统 RAM 数量进行以下设置。
对于 64 GB,保留 1 GB: vm.min_free_kbytes = 1048576
对于 128 GB,保留 2 GB:vm.min_free_kbytes = 2097152
对于 256 GB,保留 3 GB:vm.min_free_kbytes = 3145728
2、增加文件描述符数量
如果 Ceph 对象网关缺少文件描述符,它可能会挂起。您可以修改 Ceph 对象网关节点上的 /etc/security/limits.conf 文件,以增加 Ceph 对象网关的文件描述符。
~]# vim /etc/security/limits.conf
ceph soft nofile unlimited
3、调整大型存储集群的 ulimit 值
在大型存储集群上运行Ceph管理命令时,例如具有1024个Ceph OSD或更多OSD时,在每个节点上创建一个具有以下内容的管理命令文件:
~]# vim /etc/security/limits.d/50-ceph.conf
USER_NAME soft nproc unlimited
注:将 USER_NAME 替换为运行Ceph管理命令的非 root 用户帐户的名称。root用户的ulimit值默认设置是ulimit
Redhat Ceph Storage的操作系统要求
在所有节点上使用相同的操作系统版本、架构和部署类型。
请勿混合使用 AMD64 和 Intel 64 架构的节点、将节点与Red Hat Enterprise Linux 8操作系统混合,或使用基于容器的部署混合节点,红帽不支持具有异构架构、操作系统版本或部署类型的集群
默认情况下,SELinux 设置为 Enforcing 模式,并且安装了 ceph-selinux 软件包
Redhat Ceph Storage的最低硬件注意事项
Red Hat Ceph Storage 可在非专有商用硬件上运行。通过使用适度的硬件,可在不优化性能的情况下运行小型生产集群和开发集群
翻译:如nginx在不优化的情况下能抗住几万的并发,ceph在硬件达标的情况下默认也能带起一个小集群
磁盘空间要求基于 /var/lib/ceph/ 目录下的 Ceph 守护进程默认路径
Redhat Ceph Storage安装
第一天的操作涉及安装和引导一个最小的、容器化的 Ceph 存储集群,在单个节点上运行。 第一天还包括部署 Monitor 和 Manager 守护程序以及添加 Ceph OSD。
第二天的操作使用 Ceph 编排界面、cephadm orch 或 Red Hat Ceph Storage Dashboard 通过将其他 Ceph 服务添加到存储集群来扩展存储集群。
先决条件
1、至少一个正在运行的虚拟机 (VM) 或具有活跃互联网连接的裸机服务器
2、Red Hat Enterprise Linux 8.4 或更高版本
3、Ansible 2.9 或更高版本
4、所有节点需具备访问根级别的权限
Cephadm实用程序
cephadm 实用程序是 Red Hat Ceph Storage 5.0 中的一项新功能。它不支持旧版本的 Red Hat Ceph Storage
cephadm实用程序可部署和管理Ceph存储集群。
它与命令行界面 (CLI) 和 Red Hat Ceph Storage Dashboard Web 界面紧密集成,以便您可从这两个环境中管理存储集群。
cephadm使用SSH从管理器守护进程连接主机,以添加、移除或更新 Ceph 守护进程容器。它不依赖于外部配置或编配工具,如 Ansible 或 Rook
cephadm 实用程序由两个主要组件组成:
1、cephadm shell
2、cephadm 编配器
cephadm shell
cephadm shell 在容器内启动 bash shell安装和引导等,以及调用 ceph 命令
可以通过两种方式调用 cephadm shell:
1、在系统提示符处输入 cephadm shell :
[root@node00 ~]# cephadm shell
[cephadm@cephadm ~]# ceph -s
或者
[root@node00 ~]# cephadm shell ceph -s
2、cephadm 编配器
cephadm 编排器允许您执行"第两天" Ceph 功能,如扩展存储集群和调配 Ceph 守护进程和服务。
您可以通过命令行界面 (CLI) 或基于Web的RedHat Ceph Storage仪表板来使用cephadm编配器。编配器命令采用ceph orch形式
cephadm脚本 和 Ceph管理器使用的 Ceph 编配模块进行交互
Cephadm的工作原理
cephadm 命令管理 Red Hat Ceph Storage 集群的完整生命周期。
cephadm 命令可以执行以下操作:
1、引导新的RedHat Ceph Storage 集群
2、启动使用RedHat Ceph Storage 令行界面 (CLI) 的容器化 shell
3、有助于调试容器化守护进程
将Redhat Ceph Storage节点注册到CDN并附加订阅
按序执行!!!
1、注册节点,并在提示时输入您的红帽客户门户网站凭证:
subscription-manager register
2、从 CDN 拉取最新的订阅数据:
subscription-manager refresh
3、列出 Red Hat Ceph Storage 的所有可用订阅:
subscription-manager list --available --matches 'Red Hat Ceph Storage'
4、确定适当的订阅并检索其池 ID。
5、附加池 ID 以获取软件权利的访问权限。使用您在上一步中确定的池 ID
subscription-manager attach --pool=<POOL_ID>
6、禁用默认软件存储库,并在相应版本的 Red Hat Enterprise Linux 中启用服务器和附加软件仓库:
subscription-manager repos --disable=*
subscription-manager repos --enable=rhel-8-for-x86_64-baseos-rpms
subscription-manager repos --enable=rhel-8-for-x86_64-appstream-rpms
7、更新该系统以接收 Red Hat Enterprise Linux 8 的最新软件包:
dnf update
8、订阅红帽 Ceph 存储 5.0 内容,按照如何通过 Red Hat Satellite 6 注册 Ceph 中的说明进行操作:https://access.redhat.com/mt/zh-hans/articles/1750863
9、启用 ceph-tools 存储库:
subscription-manager repos --enable=rhceph-5-tools-for-rhel-8-x86_64-rpms
10、启用 Ansible 存储库:
subscription-manager repos --enable=ansible-2.9-for-rhel-8-x86_64-rpms
11、安装 cephadm-ansible:
dnf install cephadm-ansible
为 ANSIBLE 启用免密码 SSH
待续未完.....
欢迎加入QQ群一起讨论Linux、开源等技术