Ceph安装部署与测试调优

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Ceph安装部署及测试调优
目录
1.熟悉Ceph存储的基本原理与架构
2.掌握Ceph集群的安装部署方法
3.掌握Ceph常见的性能测试调优方法
目录
1.基本概念及架构
2.安装部署
3.测试调优
Ceph是一个统一的分布式存储系统,具有高扩展性、高可靠性、高性能,基于RADOS(reliable, autonomous, distributed object store ),可提供对象存储、块设备存储、文件系统存储三种接口
RADOS:是Ceph集群的精华,为用户实现
数据分配、Failover等集群操作。

LIBRADOS:Librados是RADOS的提供库,
上层的RBD、RGW和CephFS都是通过
LIBRADOS访问的,目前提供PHP、Ruby、
Java、Python、C和C++支持。

RBD:RBD全称RADOS block device,是
Ceph对外提供的块设备服务。

RGW:RGW全称RADOS gateway,是
Ceph对外提供的对象存储服务,接口与S3和
Swift兼容。

CephFS:CephFS全称Ceph File System,
是Ceph对外提供的文件系统服务
OSD :Ceph OSD 进程,功能是负责读写数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他OSD 守护进程的心跳来向Ceph Monitors 提供一些监控信息。

Monitor :集群的管理进程,维护着展示集群状态的各种图表,包括监视器图、OSD 图、归置组(PG )图、和CRUSH 图。

MDS :Ceph 元数据服务器,为Ceph 文件系统存储元数据(也就是说,Ceph 块存储和Ceph 对象存储不使用MDS )。

Ceph
存储集群
Object :Ceph 最底层的存储单元是Object 对象,每个Object 包含元数据和原始数据。

PG :PG 全称Placement Groups ,即归置组,是存放objects 的逻辑概念,一个PG 可映射到多个OSD 。

引入PG 这一层其实是为了更好的分配数据和定位数据。

存储映射关系理解
Pool :存储池是存储对象的逻辑分区,它的持久化方式、CRUSH 规则集和归置组数量决定着Ceph 如何放置数据。

CRUSH :CRUSH 是Ceph 使用的数据分布算法,类似一致性哈希,让数据分配到预期的地方。

持久化方式:(1)三副本(2)纠删码(K 个数据块+M 个编码块,最多支持同时M 个块出现问题
)
读写流程
存储引擎
Bluestore:
1.分离元数据和数据,针对ssd做优化;
2.直接管理裸盘,减少文件系统损耗Filestore
1.底层文件系统,存在i/o损失
2.不支持数据或元数据事务特性,
采用journal
,双写存在损失
12.2版本开始默认使用BlueStore,以前默认和唯一的选择是
Filestore
物理组网
硬盘划分
数据盘、db分区、wal分区
手动部署
安装前环境配置
•关闭防火墙、关闭SELinux
•配置主机名
•配置NTP同步
•配置免密登录
•配置软件源:epel源和Ceph官网源
手动部署
安装部署Ceph集群
•集群内每台服务器安装ceph软件(yum -y install ceph)
•1台服务器安装ceph-deploy工具(yum -y install ceph-deploy )
•部署mon节点:
cd /etc/ceph
ceph-deploy new ceph1 ceph2 ceph3
在ceph.conf文件中配置mon_host、public network、cluster network
初始化监视器并收集秘钥:ceph-deploy mon create-initial
将ceph.client.admin.keyring拷贝到各个节点上
手动部署
安装部署Ceph集群
•部署mgr节点:
ceph-deploy mgr create ceph1 ceph2 ceph3
•部署osd节点:
ceph-deploy osd create {node} --data /dev/xxx --block-wal /dev/xxx--block-db /dev/xxx
手动部署
验证Ceph----块存储
•创建存储池:
ceph osd pool create {pool-name} {pg-num} {pgp-num}•指定存储池类型为rbd:
ceph osd pool application enable {pool-name} rbd
•创建块设备:
rbd create --size {megabytes} {pool-name}/{image-name}•映射块设备:
rbd map {pool-name}/{image-name}
手动部署
验证Ceph----文件存储
•配置mds节点:
ceph-deploy mds create ceph1 ceph2 ceph3
•创建存储池:
ceph osd pool create {pool-name} {pg-num} {pgp-num}
ceph osd pool create {pool-name} {pg-num} {pgp-num}
•创建文件系统:
ceph fs new cephfs{pool-name}{pool-name}
•客户端挂载文件系统:
查看客户端访问ceph集群的秘钥:cat /etc/ceph/ceph.client.admin.keyring
mount -t ceph x.x.x.x:6789,x.x.x.x:6789,x.x.x.x:6789:/ /mnt/cephfs-o name=admin,secret=上一步骤查看
到的key,sync
手动部署
验证Ceph----对象存储
•部署RGW节点:
修改ceph.conf文件,添加RGW实例的端口配置,如
[client.rgw.bucket1]
rgw_frontends = civetweb port=10001
log file = /var/log/ceph/client.rgw.bucket1.log
•创建RGW实例:ceph-deploy rgw create ceph1:bucket1
•创建Data Pool和Index Pool:
ceph osd pool create {pool-name} {pg-num} {pgp-num}
ceph osd pool create {pool-name} {pg-num} {pgp-num}
•修改存储池类型为rgw
•创建RGW账户
自动化部署
Ceph-ansible
•Ceph-ansible是用于部署Ceph分布式系统的ansible剧本。

•ansible是一种自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。

•修改yml文件
自动化安装部署套件
•主机基本配置:主机名称配置、免密配置、防火墙自动设置、业务网卡IP(支持多网口组bond)、NTP配置等相关配置。

•Ceph的自定义安装:支持DB/WAL单独分区、osd Mgr Mon Mds Rgw指定节点安装等功能。

•Ceph优化配置:Ceph参数优化、系统参数优化。

•配置Excel文件
性能测试
•测试工具:
•主要关注指标:
IOPS
带宽
Fio
Vdbench
Cosbench
性能调优
•影响性能的因素及通用优化措施:•业务本身(业务配置、业务绑核)•OS (参数优化,网卡软中断绑核)•硬件(CPU ,内存,磁盘)☐业务本身1)Ceph 配置优化2)PG 分布优化3)OSD 绑核
☐OS
1)OS 配置调优
2)网络性能优化
☐硬件1)NVMe SSD 与网卡插在同一Riser 卡2)内存按1dpc 方式插满
3)全闪存场景下NVMe
SSD 、网卡均衡插到两个
CPU 下参照上面影响因素,结合Ceph 业务调优点
Taisha 相对X86关键不同点:
1. 核多,单核能力弱
2. 跨Numa 访问性能存在差异。

☐zlib
硬件加速调优
性能调优
系统调优
•系统参数配置优化
参数名称参数描述优化建议
vm.swappiness swap为系统虚拟内存,使用虚拟内存会导致性能下降,应避免使
用。

修改建议:关闭swap内存的使用,将该参数设定
为0
MTU 网卡所能通过的最大数据包的大小,调大后可以减少网络包的数
量以提高效率。

修改建议:网卡所能通过的最大数据包的大小设
置为9000 Bytes
pid_max 系统默认的“pid_max”值为32768,正常情况下是够用的,但跑重
量任务时会出现不够用的情况,最终导致内存无法分配的错误
修改建议:设置系统可生成最大线程数为4194303。

file-max “file-max”是设置系统所有进程一共可以打开的文件数量。

如果得
到大量使用完文件句柄的错误信息,则应该增加这个值
修改建议:设置系统所有进程一共可以打开的文
件数量,为cat /proc/meminfo|grep MemTotal
|awk'{print $2}' 所查看到的值。

read_ahead Linux的文件预读readahead,指Linux系统内核将指定文件的某区
域预读进页缓存起来,便于接下来对该区域进行读取时,不会因
缺页(pagefault)而阻塞。

修改建议:通过数据预读并且记载到随机访问内
存方式
提高磁盘读操作,调整为8192 kb
I/O Scheduler Linux I/O 调度器是Linux内核中的一个组成部分,用户可以通过调
整这个调度器来优化系统性能
修改建议:I/O调度策略,HDD设置为deadline,
SSD设置为noop
nr_requests 硬盘请求队列数,如果有大量读请求,默认的请求队列或许应付
不过来
修改建议:设置为
512
性能调优
系统调优
•旁路SMMU (非虚拟化场景才可用此优化)
•网络参数优化
查询网卡归属于那个numa 节点,然后将中断绑到对应numa 节点的core 上参数名称参数描述优化建议
irqbalance 系统中断均衡服务,会自动将网卡软中断分配到相对空闲的CPU 上
修改建议:关闭,手动将网卡中断绑到指定cpu 上rx_buff 聚合较大的网络报文需要多篇不连续的内存空间,内存利用率低,增大该项可以提高内存利用率修改建议:通过加载参数的方式,配置“rx_buff”的大小,减少不连续的内存,提高内存利用率,提高性能,调整为“8”ring_buffer
通过调整网卡buffer 大小可以增加吞吐量修改建议:将“ring_buffer”队列大小调整为4096lro Large Receive Offload. 打开后会将多个小包聚合为一个大包以提高效率
修改建议:打开“largereceive-offload”功能,调高网络包收发效率hinicadm lro -i hinic0 -t <NUM>表示最大NUM 微秒后将收到的包聚合发出
修改建议:配合lro 功能使用,调整为256微秒hinicadm lro -i hinic0 -n <NUM>表示最大收到NUM 个包后将聚合的包发出
修改建议:配合lro 功能使用,设置为32
个包
性能调优
Ceph调优
•调整pg pgp数量:
Total PGs = (Total_number_of_OSD* 100) / max_replication_count
得出的结果向上取到最近的2的整数次幂。

•pg自动均衡:
“ceph balancer mode”默认为“none”,用ceph balancer mode upmap命令调整为“upmap”。

“ceph balancer”功能默认不打开,ceph balancer on/off用来打开/关闭“ceph balancer”功能。

•修改ceph.conf中的配置
•OSD绑核:
通过修改“/etc/ceph/ceph.conf”文件,添加“osd_numa_node= <NUM>”即可
性能调优
Zlib加速引擎调优
•安装加速引擎前需申请安装license
•安装加速引擎
•替换zlib软算动态库
•修改加速器默认队列数
•Ceph适配加速器(rpm替换或修改源码编译)。

相关文档
最新文档