ceph手工版浅谈

Ceph网络通信

性能评价:带宽和延迟
稳定可靠:不丢包,网络中断时,重连等异常处理

RGW

RGW 高可用

rgw是无状态化的服务,用HAProxy达到负载均衡的效果,用 keepalive确保 HAProxy的高可用
无状态服务运行过程中的所有数据(除日志和监控数据)都存在容器实例里的文件系统中,如果实例停止或者删除,则这些数据都将丢失,无法找回;而对于有状态服务,凡是已经挂载了存储卷的目录下的文件内容都可以随时进行备份,备份的数据可以下载,也可以用于恢复新的服务。但对于没有挂载卷的目录下的数据,仍然是无法备份和保存的,如果实例停止或者删除,这些非挂载卷里的文件内容同样会丢失。 】

# 查看有几个rgw可用
ceph -s

在两个节点部署rgw,两个节点共享vip, 外界通过vip (virtual_ipaddress) 访问 rgw. haproxy也部署两个在两个节点,这样一挂另一个能顶上
在这里插入图片描述

# 在keepalived.conf里面设置vip
yum install keepalived -y

# 两个节点都装,haproxy.cfg里加上两个节点的ip和rgw的端口
yum install haproxy -y

ceph 与k8s

StorageClass可以接各种provisioner, ceph或者云存储,nfs都可以

在这里插入图片描述
pv
静态是指管理员提前创建好pv
动态是指用sc

ceph 关联 k8s 用的是ceph-csi

RBD块设备

1、比如你分配了10g,它会根据你使用容量的增长才增长,节约了空间
2、每个文件被切割成obj, obj落到pg上 pg在逻辑分区pool里,pool里的对象根据crush map 分到对应的osd上
create pool --> create rbd image --> map 成 裸盘 就能用了
扩容 rbd resize ,resize2fs /dev/rbd0 完成扩容,不用卸载掉mount的块设备,前提是没有分区的

RGW

1、数据最终落在osd上, 将node-1设置成了网关
2、默认的端口是7480,可以改成80
3、使用需要创建user,编写脚本,用上user info,创建bucket ,通过bucket操作对象(上传、下载和删除文件或文件夹在bucket里),就能访问rgw
不用脚本就用 s3cmd,用命令行操作
4、通过
ceph osd lspools
可以看到index 和 data,分别存的是索引和数据的pool

OSD

scale out 增加节点

ceph官网有教程
在这里插入图片描述

scale up 同一台机器增加硬盘

ceph-deploy osd create node-1 --data /dev/sdc

rebalancing 重分布

加osd,会进行rebalancing, 如下图,增加节点后,移动pg(而不是obj, 若obj,计算量太大),一块一块加,这样比较好,不要对业务造成冲击
在这里插入图片描述

# 一秒钟显示一次
watch -n1 'ceph -s'

# 重分布参数调节 osd_max_backfills:"1" 验证是比较好的
ceph --admin-daemon /var/run/ceph/ceph-mon.node-1.asok config show|grep max_b
#暂停rebalance
ceph osd set norebalance
ceph osd set nobackfill
# 取消暂停
ceph osd unset nobackfill
ceph osd unset norebalance

更换osd

# 如果一块盘坏了,可以通过它看到信息
dmesg
# 有的盘没坏,块坏了,就会很拖ceph的性能,找到它通过延迟特别大
ceph osd perf
# 踢掉osd.5
systemctl stop ceph-osd@5
ceph osd out osd.5
# 换盘前先等数据重分布 100%
ceph -s
# crush map 角度也删掉它
ceph osd crush rm osd.5 

ceph osd rm osd.5
# 把认证的key也删掉
ceph auth rm osd.5

网络

# 客户端是走public network, 重分布是 cluster_network。网络分开
cat /etc/ceph/ceph.conf  

卸载

添加链接描述

集群测试

mon

mon 挂掉一个对集群没有影响
tail -f /var/log/ceph/ceph-mon.node-3.log
如果三个挂掉两个就不能用了,因为选举算法 paxos 要求在线的mon要超过半数 1.5个。那么5个mon 最多挂两个

mds 对应cephfs

mds两台机器挂掉不影响,只是warn,警告说没有standby的,只要有一个可用即可

RGW

因为它是无状态的,得在前面加个负载均衡器,它才能一个挂掉,自己切换过来

osd

3副本的话,坏两个还能用。但是这个同步很慢

压测

用 fio或者是bench 压测

fio用于虚拟机内部测试
在这里插入图片描述
ceph测试用bench
rbd help bench

K8s 与手工版ceph 集成

1、storageClass 是最先进的,自动创建pv,pvc
Each StorageClass has a provisioner 它来决定用什么(rbd nfs,CephFs等)来提供pv。
2、之前的开发者必须是全栈,得懂存储才能写yaml,那样显然不合适
volume 需要开发者要定义存储,定义存储访问的方式,然后容器去引用存储,里面涉及到很多存储的细节信息

k8s管理员要预先把需要的存储空间定义好,然后通过pvc调用pv即可。这样开发就免去了一道工序,只需要调用即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值