cookbook

ceph cookbook

可靠性 纠删码 缓存

rbd接口

块设备

每一个块设备分布在多个ceph节点上.
librbd库,RBD原生支持Linux内核.

特性

1) 可靠性,性能
2) 完整和增量快照
3) 自动精简配置
4) 写时复制克隆
5) 动态调整大小
6) 内存内缓存

块设备可以和Cinder(块存储)和Glance(镜像)组件对接.

检查内核对RBD支持

sudo modprobe rbd


rbd create rbd1 --size 10240

Openstack

Glance后端存储

Glance将虚拟机镜像存储在RBD中

Cinder的后端块存储

Cinder将卷建在Ceph中
Nova将卷挂载到虚拟机上

对象存储

ceph可以跟身份管理服务,keystone集成
任何被keystone验证通过的用户都将获得RGW的访问权限.

owncloud + S3 私有云存储

使用ceph文件系统

libcephfs 原生支持linux内核驱动,可以直接使用文件挂载方式
允许直接与Rados交互,作为HDFS的替代品.

ceph FUSE 时为了较早版本的linux系统,或者有些程序依赖.通过客户端方便的挂载文件系统.

可以将cephfs导出为NFS,进行挂载.

windows平台,可以挂载为本地磁盘

监控集群

操作个管理Ceph集群

深入ceph

  • 扩展性
  • 搞可用性
  • 身份验证和授权
  • CRUSH map
  • 动态管理
  • ceph存储池

CRUSH map

ceph cluster map
monitor 通过维护cluster map 来实现功能.
cluster map包括:
1) monitor map
2) osd map
3) PG map
4) CRUSH map
5) MDS map

monitor map

[ceph_user@admin-node ~]$ ceph mon dump
dumped monmap epoch 3
epoch 3
fsid ec3c5aae-83f4-4bcb-ac02-bea56023d421
last_changed 2016-09-20 17:31:46.361085
created 0.000000
0: 192.168.0.133:6789/0 mon.node1
1: 192.168.0.134:6789/0 mon.node2
2: 192.168.0.135:6789/0 mon.node3
[ceph_user@admin-node ~]$

[ceph_user@admin-node ~]$ ceph osd dump
ceph pg dump
ceph osd crush dump
ceph mds dump

OSD读写顺序

主OSD是唯一接收客户写操作的OSD,客户读操作时,默认从OSD读取.
可以设置读亲和性(read affinity)来改变这种行为.

PG状态

clean对象已经复制了规定的份数
degraded 副本未达到规定的数目
backfill 新的OSD加入集群,CRUSH将现有的一部分PG分配给她
stale pg处于未知状态 monitor 在pg改变后没有收到更新.
remapped pg的acting set 变化后,数据从旧的acting set 迁移到新的acting set需要一段时间才能提供服务.

ceph生产计划和性能调优

1) 性能调优
2) 纠删码
3) 缓存分层
4) 日志盘

日志盘

每一个写操作分为两步:
1. 请求写个对象,先将对象写入到 PG acting set 对应的日志盘中
2. 发送写确认请求给客户端,日志同步到数据盘

SSD作为日志盘.
在SSD上建立多个逻辑分区.每个逻辑分区映射到一个OSD数据盘.
日志分区不能超过SSD的上限.

1、每块硬盘理论上最多可以包含四个主分区,用特殊软件或有意去修改MBR方法达到更多主分区都是非标准的,也没有必要。
2、扩展分区可有可无,但是要分逻辑分区则必须先划分扩展分区。
3、每个扩展分区理论上最多可以包含64个逻辑分区。
硬盘的分区由主分区、扩展分区和逻辑分区组成:主分区(注意扩展分区也是一个主分区)的最大个数是四个,其个数是由硬盘的主引导记录MBR(Master Boot Recorder)决定的,MBR存放启动管理程序(如GRUB)和分区表记录。扩展分区下又可以包含多个逻辑分区 — 所以主分区范围是从1-4,逻辑分区是从5开始的。
SSD和OSD的比例为1:4
PCIE和NVME可以达到1:12或1:18
如果SSD出现问题,关联的OSD也将出问题.

PG PGP数目应保持一致

8.1 纠删码
8.2 缓存分层
两种模式
1. 回写模式,写立即收到确认回复
2. 只读模式,只服务读操作

为存储池是在

ceph虚拟存储管理器

ceph内存分析

低层次PG和对象恢复工具
ceph-objectstore-tool

磁盘性能测试

清除缓存
echo 3> /proc/sys/vm/drop_caches
direct 表示绕过磁盘缓存,获得真实效果

写属性
dd if=/dev/zero of=/home/ceph_user/filetest bs=1M count=1000 oflag=direct

读属性
dd if=/home/ceph_user/filetest of=/dev/null  bs=1M count=1000 oflag=direct

不同标志性能差异比较大

[ceph_user@node1 ~] ddif=/dev/zeroof=/home/cephuser/filetestbs=1Mcount=10001000+0recordsin1000+0recordsout1048576000bytes(1.0GB)copied,5.68634s,184MB/s[cephuser@node1 ] dd if=/dev/zero of=/home/ceph_user/filetest bs=1M count=1000 oflag=direct
1000+0 records
1000+0 records out
1048576000 bytes (1.0 GB) copied, 0.894945 s, 1.2 GB/s
[ceph_user@node1 ~]$

网络性能测试

启动服务器端

-s启动服务器 -p 指定端口监听

iperf -s -p 6900

启动客户端

nod1指定服务器的名称

iperf -c node1 -p 6900

rados bench工具

  • 10s写测试
rados bench -p rbd 10 write --no-cleanup
  • 10s 顺序测试
rados bench -p rbd 10  write seq

rados bench -p test 10  rand
  • load-gen 工具

    rados -p test load-gen –num-objects 50 –run-length 3

  • 块设备基准测试

    rbd bench-write block-device1 –io-total 5368709200

清理特定的pool

for obj in `rados -p rbd ls`;
do
  rados -p rbd rm  $obj
done

FIO 做Ceph RBD 基准测试

yum install -y fio
第一章:数据结构和算法 13 1.1 解压序列赋值给多个变量 . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.2 解压可迭代对象赋值给多个变量 . . . . . . . . . . . . . . . . . . . . . . . 14 1.3 保留最后 N 个元素 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.4 查找最大或最小的 N 个元素 . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.5 实现一个优先级队列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.6 字典中的键映射多个值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 1.7 字典排序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 1.8 字典的运算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 1.9 查找两字典的相同点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 1.10 删除序列相同元素并保持顺序 . . . . . . . . . . . . . . . . . . . . . . . . 28 1.11 命名切片 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 1.12 序列中出现次数最多的元素 . . . . . . . . . . . . . . . . . . . . . . . . . 31 1.13 通过某个关键字排序一个字典列表 . . . . . . . . . . . . . . . . . . . . . 32 1.14 排序不支持原生比较的对象 . . . . . . . . . . . . . . . . . . . . . . . . . 34 1.15 通过某个字段将记录分组 . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 1.16 过滤序列元素 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 1.17 从字典中提取子集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 1.18 映射名称到序列元素 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 1.19 转换并同时计算数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 1.20 合并多个字典或映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 第二章:字符串和文本 47 2.1 使用多个界定符分割字符串 . . . . . . . . . . . . . . . . . . . . . . . . . . 47 2.2 字符串开头或结尾匹配 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2.3 用 Shell 通配符匹配字符串 . . . . . . . . . . . . . . . . . . . . . . . . . . 50 2.4 字符串匹配和搜索 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 2.5 字符串搜索和替换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 2.6 字符串忽略大小写的搜索替换 . . . . . . . . . . . . . . . . . . . . . . . . . 56 2.7 最短匹配模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 2.8 多行匹配模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 2.9 将 Unicode 文本标准化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 2.10 在正则式中使用 Unicode . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 2.11 删除字符串中不需要的字符 . . . . . . . . . . . . . . . . . . . . . . . . . 61 2.12 审查清理文本字符串 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 2.13 字符串对齐 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 2.14 合并拼接字符串 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 2.15 字符串中插入变量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 2.16 以指定列宽格式化字符串 . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 2.17 在字符串中处理 html 和 xml . . . . . . . . . . . . . . . . . . . . . . . . . 73 2.18 字符串令牌解析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 2.19 实现一个简单的递归下降分析器 . . . . . . . . . . . . . . . . . . . . . . . 77 2.20 字节字符串上的字符串操作 . . . . . . . . . . . . . . . . . . . . . . . . . 85 第三章:数字日期和时间 88 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值