Ceph万兆内网与系统万兆迁移
本文将总结一次为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修改结束
分布式存储系统各部分耗时占比实验未完待续。。。
Ceph万兆内网与系统万兆迁移的更多相关文章
- 怎样从外网访问内网Linux系统?
本地安装了一个Linux系统,只能在局域网内访问到,怎样从外网也能访问到本地的Linux系统呢?本文将介绍具体的实现步骤. 1. 准备工作 1.1 启动Linux系统 默认Linux系统ssh服务端端 ...
- 从SQL注入到内网漫游
前言 在一次渗透实战中,发现了一个注入点,最后成功的漫游了内网. 正文 在渗透中遇到一个站点,顺手测试了一下,在搜索框随便输入了一个字符加个单引号直接报错了,差不多可以确认这里存在注入了.一般这种站安 ...
- 刺透内网的HTTP代理
从偶然出发 在做测试的时候发现了这样一个漏洞,原请求报文如下: GET / HTTP/1.1 Host: attack_website [... HEADER ...] ... 当时最初目的是想测SS ...
- 一台PC双网卡,一个外网一个内网
问题:一台PC双网卡,一个连外网一个连内网.用户主要访问外网,内网只访问有限的几个ip.因为外网很大,一般人公司内网常访问的ip是有限的几个. 现在如何做到在上外网的同时也能访问内网的系统?明明两个网 ...
- 基于Yarp的http内网穿透库HttpMouse
简介 前几天发表了<基于Yarp实现内网http穿透>,当时刚刚从原理图变成了粗糙的代码实现,项目连名字都还没有,也没有开放源代码.在之后几天的时间,我不断地重构,朝着"可集成. ...
- 内网横向渗透 之 ATT&CK系列一 之 横向渗透域主机
前言 上一篇文章中已获取了关于域的一些基本信息,在这里再整理一下,不知道信息收集的小伙伴可以看回上一篇文章哦 域:god.org 域控 windows server 2008:OWA,192.168. ...
- 我是如何一步步编码完成万仓网ERP系统的(三)登录
https://www.cnblogs.com/smh188/p/11533668.html(我是如何一步步编码完成万仓网ERP系统的(一)系统架构) https://www.cnblogs.com/ ...
- 我是如何一步步编码完成万仓网ERP系统的(十二)库存 1.概述
https://www.cnblogs.com/smh188/p/11533668.html(我是如何一步步编码完成万仓网ERP系统的(一)系统架构) https://www.cnblogs.com/ ...
- 我是如何一步步编码完成万仓网ERP系统的(一)系统架构
https://www.cnblogs.com/smh188/p/11533668.html(我是如何一步步编码完成万仓网ERP系统的(一)系统架构) https://www.cnblogs.com/ ...
随机推荐
- 免费私有gitLab服务推荐
阿里云code :https://code.aliyun.com/,可以免费开50个私有项目. 配套的持续交付:https://crp.aliyun.com
- 解决distinct与order by 的冲突
sql="select distinct id from test order by otherfield desc" 需要找到不同的id,同时又想让记录按fbsj排序.但是这样一 ...
- 寻找DevExpress破解经历之旅
众所周知DevExpress是收费的,但是破解版的也不少,近期公司需要做发票套打的功能让我找个打印工具,我寻思着DevExpress这个软件好像挺不错的,功能强大,看了下价格方面,好吧!2W多呢,市面 ...
- Html5的表单元素
表单是HTML中获取用户输入的手段,,对于web应用系统及其重要,文字是不能说明问题的: 直接上代码把: <!DOCTYPE html><html lang="en&quo ...
- 批处理(Batch)---批处理脚本。
批处理(Batch),也称为批处理脚本.顾名思义,批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于DOS和Windows系统中.批处理文件的扩展名为bat .目前比较常见的批 ...
- 函数上下文this
一般来说谁调用上下文都指向谁,具体有以下几种情况: 1.函数用圆括号调用,函数的上下文是window 注意:所有的全局变量都是window的属性,而函数里边定义的变量谁的属性也不是. 2.函数作为对象 ...
- 团队项目第二阶段个人进展——Day6
一.昨天工作总结 冲刺第六天,学习了leancloud的一些数据处理知识,并看了如何在微信小程序中使用 二.遇到的问题 无 三.今日工作规划 通过动手完成一个demo来学习后端数据的请求和响应
- 使用伪类before和after
.content { padding: 20px } .content::before { content: "我是before添加的内容"; font-weight: bold ...
- MySQL varchar类型数据转tinyint类型
在mysql数据库中性别字段以前存的是'男'和'女',使用varchar类型存储的,但是在我mongo库中这个字段使用的是'1'和'0'存储的,在两个库之间的数据转换就很不方便,于是想要统一存储类型, ...
- mysql由于权限问题看不到用户数据库
一.登录数据库 [root@localhost ~]# mysql -u root mysql > show databases; +--------------------+| Databas ...