本文将总结一次为Ceph集群加装万兆内网(cluster network),后因需要对比实验来研究分布式存储集群在计算,网络,存储过程中各部分耗时比例,而将Ceph整体系统又整体搬移至万兆网的过程。但由于原始集群环境上还有其他不同的业务,为了不影响其他任务工作,本文确保以前的环境,配置,设备等不变,所以在整个过程中也是采坑不少!
Ceph仅做内外网分离将内网设为万兆,整体系统提升效果不是很大,但生产环境下都这么做,最后为了测试将ceph都挂在新的万兆网下,但还是需要保证ceph集群与其他节点在原千兆网环境下可以互联互通。
原环境:
1. 纯电口千兆交换机
2. 内部局域网192.168.1.0/24,所有服务器通过一节点做转发连接外网。
3. 24台服务器,每个只有一块千兆网卡(双口),通过节点1(192.168.1.1)转发至外网。
4. 其中节点7,8,9配置为Ceph存储节点,节点6配置为Ceph Monitor节点。
5. 所有Ceph组件都配置在192.168.1.0/24的局域网网段下。
需求:
1. 在保留原环境的不动的前提下,将Ceph集群加装万兆内网,做内外网分离。
2. 实验进行完后,在原环境不动的前提下,将Ceph所有组件整体迁移到刚加小的万兆网环境下
因原网都在192.168.1.0/24网段下,而新交换机与老交换机之间无法连接(万兆到千兆,光转电模块丢包严重),不能将新网卡直接配置成192.168.1.0/24的IP(除非想呆在wong wong wong 的机房中做实验)。
万兆网卡与万兆交换机
本文仅将部分节点加万兆网。
万兆网卡:intel X520(二光口)
万兆交换机:华为S6720(纯光口)
坑点:网卡上光模块与交换机上光模块波长要一样,多模模块黑色拉环,单模1310波长蓝色拉环,单模1550波长红色拉环
单模LC光纤黄色,多模LC光纤橙色(橘色),连接时采用直连的方式,一根线一进一出
网卡用单模模块,交换机就也要用单模模块,光纤也就要用单模光纤,多模同理
借用别人的这一张图
将网卡插入服务器对应cpu的PICe插槽,用光纤将交换机与网卡连接好。注意交换机灯,绿灯常量,黄灯闪烁这就对了。
本文在此保留原网不变(可以使用原网络环境访问),将万兆网卡插入7,8,9节点,网卡与交换机均采用单模模块连接
双网卡网络配置:
copy /etc/sysconfig/network-scripts/下的一个网卡的ifcfg文件,名字改为万兆网卡名字(通过ifconfig查询)
其中修改配置,IPaddr需要修改为新IP(192.168.2.107),name改为新网卡name,uuid生成一个新的(uuid用于区分网卡,可以查询到,也可以实用工具生成)
注意:千万不要设置以GATEWAY
其他几张网卡均设置好之后设置route路由指定不同网段IP包走不同网卡
route -n查看当前路由表
route add -net 192.168.2.0 netmask 255.255.255.0 dev enp6s0f0指定所有192.168.2.0/24网段的包走万兆网卡
route相关其他可以参考https://www.cnblogs.com/chenjiaxin--007/p/7724901.html
也可以直接用ifup enp6s0f0启动网卡,然后再systemctl restart network。
现在环境成为了
192.168.1.0/24网段可以访问整个原环境外网 //注意保持原网环境不变
ceph万兆内网配置
1.大部分Cpeh集群按照官网方式搭建出来基本上都是将Client,Mgr,RDB,Mon等放在同一个局域网络环境下(同一网段),其中数据恢复,复制等都走的一个网,影响用户服务质量与其他速度。建立内网是为了降低 OSD 节点间数据复制对 Ceph 整体的影响,那么一般只要在 OSD 节点上加内网就可以了,所以使用官网的话,提升效果有限。
因为原来ceph集群在配置时已经关闭了防火墙,此处不需用对新IP开放防火墙,若是防火墙开启状态,则需要对OSD的新ip开放防火墙。
Ceph.conf配置
[golbal] ... public_network = 192.168.1.0/24 cluster_network = 192.168.2.0/24 ... [osd.0] host = node7 public_addr = 192.168.1.107 cluster_addr = 192.168.2.107 .... [osd.3] host = node8 public_addr = 192.168.1.108 cluster_addr = 192.168.2.108
主要是需要加入global段,在其中配置好public_network = 192.168.1.0/24与cluster_network = 192.168.2.0/24,然后需要指明osd的公网与集群网地址。
配置修改好后,就需要把配置上传到服务器上了,配置 Ceph 环境,通常都是使用 ceph-deploy命令
ceph-deploy --overwrite-conf config push node7 node8 node9
然后在7,8,9节点上重启ceph各部件。
systemctl restart ceph.target
坑点:每个OSD都要配置外网与集群内网,要不然系统找不到。注意osd内网的防火墙问题。
参考链接:http://docs.ceph.com/docs/master/rados/configuration/network-config-ref/
据官网介绍,内外网分离可以使osd之间的数据复制等走内网,而不影响外网等其他部分,但这样提升效果还是有限,毕竟从Client端到osd端走的还是千兆网,osd到RGW等直接也还是千兆网,只能节省数据复制等过程的时间。为了对比计算出网络对分布式存储系统各部分的提升效果,本文后又将整体ceph集群整个搬迁至7,8,9节点构成的小万兆网环境上。
Ceph系统万兆网搬迁
意义:撇开上文万兆内外网分离,实验对比纯千兆网下集群性能与纯万兆网下集群性能,来测试网络对ceph集群的影响程度。加上其他磁盘读取实验,从而可以计算出ceph分布式存储过程中每一部分对整体流程的影响程度。
需求:依旧保持原集群环境不动,不重装ceph,要能用原192.168.1.0网访问到7,8,9组成的新万兆网ceph集群。
一次失败的尝试:本人SB一般的将ceph.conf中mon 的ip换为192.168.2.0/24段的万兆ip,然后将上文万兆内网conf文件内的所有192.268.1.0/24段的ip换为192.168.2.0/24段的ip,本以为可以使ceph集群中所有部分都走万兆网卡,其实不然。ceph -s ,ceph osd tree之类的命令都不能使用了,看来问题出现在了mon上,一查果然是SB了。ceph.conf中的mon IP 与 mon map中的mon IP不一致,导致集群找不到mon,mon无法启动,然后就无法获得ceph集群的map。
正确的方法:在原千兆不分内外网的集群环境下,修改mon osd等及其他部分IP为万兆网IP。通过IP的迫使所有的数据都走万兆网卡,而不影响192.168.1.0/24网段的使用(可以远程)
ceph mon IP修改
原mon IP :192.168.1.107
目标monIP: 192.168.2.107
同一台节点上两张不同网卡的IP
正常步骤为:
确保 ceph mon 正常工作, 备份原有 ceph mon 配置
导出 ceph mon 配置并修改
导入 ceph mon 配置
关闭集群并重启
修改 ceph 配置文件
在MON主机上执行
最好先关了ceph集群
获得mon map root@ceph1: ceph mon getmap -o /tmp/monmap
copy monmap root@ceph1: cp /tmp/monmap /tmp/monmap2
然后停止mon root@ceph1: sudo systemctl start ceph-mon@{hostname}
可以使用monmaptool --print /tmp/monmap 查看mon map配置
[root@ceph1 ~]# monmaptool --print /tmp/monmap monmaptool: monmap file /tmp/monmap epoch 1 fsid xxxxxxxxxxxxxxxxxxxxxxxxxxxxx last_changed 2018-05-14 10:33:50.570920 created 2018-05-14 10:33:50.570920 0: xx.xxx.xxx.xxx:6789/0 mon.node7 1: xx.xxx.xxx.xxx:6789/0 mon.node8 2: xx.xxx.xxx.xxx:6789/0 mon.node9
然后修改mon IP
先删除root@ceph1:monmaptool --rm node7 --rm node8 --rm node9 /tmp/monmap
再添加新的root@ceph1:monmaptool --add node7 192.168.2.107 --add node8 192.168.2.108 --add node9 192.168.2.109 /tmp/monmap
接着查看monmap root@ceph1: monmaptool --print /tmp/monmap
然后单独在每个mon节点上 注入新的monmap
[root@node7 ~]# ceph-mon -i node7 --inject-monmap /tmp/monmap
其他节点同理。
最后修改ceph.conf中MON ip地址,其他osd等的ip地址为万兆网IP(最好别做内外网分离)
启动集群
MON IP修改结束
分布式存储系统各部分耗时占比实验未完待续。。。
来源:https://www.cnblogs.com/freedom314/p/10788081.html