本文将总结一次为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网段可以访问整个原环境外网  //注意保持原网环境不变

192.168.2.0/24网段访问7,8,9节点用新网卡组成的内网 //使用新网段的节点可以通过原网段访问。
 

 ceph万兆内网配置

1.大部分Cpeh集群按照官网方式搭建出来基本上都是将Client,Mgr,RDB,Mon等放在同一个局域网络环境下(同一网段),其中数据恢复,复制等都走的一个网,影响用户服务质量与其他速度。建立内网是为了降低 OSD 节点间数据复制对 Ceph 整体的影响,那么一般只要在 OSD 节点上加内网就可以了,所以使用官网的话,提升效果有限。

Ceph 的客户端,如 RADOSGW,RBD 等,会直接和 OSD 互联,以上传和下载数据,这部分是直接提供对外下载上传能力的;Ceph 一个基本功能是提供数据的冗余备份,OSD 负责数据的备份,跨主机间的数据备份当然要占用带宽,而且这部分带宽是无益于 Ceph 集群的吞吐量的。只有一个网络,尤其是有新的存储节点加入时,Ceph 集群的性能会因为大量的数据拷贝而变得很糟糕。所以对于性能有一定要求的用户,还是有必要配置内外网分离的。

因为原来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万兆内网与系统万兆迁移的更多相关文章

  1. 怎样从外网访问内网Linux系统?

    本地安装了一个Linux系统,只能在局域网内访问到,怎样从外网也能访问到本地的Linux系统呢?本文将介绍具体的实现步骤. 1. 准备工作 1.1 启动Linux系统 默认Linux系统ssh服务端端 ...

  2. 从SQL注入到内网漫游

    前言 在一次渗透实战中,发现了一个注入点,最后成功的漫游了内网. 正文 在渗透中遇到一个站点,顺手测试了一下,在搜索框随便输入了一个字符加个单引号直接报错了,差不多可以确认这里存在注入了.一般这种站安 ...

  3. 刺透内网的HTTP代理

    从偶然出发 在做测试的时候发现了这样一个漏洞,原请求报文如下: GET / HTTP/1.1 Host: attack_website [... HEADER ...] ... 当时最初目的是想测SS ...

  4. 一台PC双网卡,一个外网一个内网

    问题:一台PC双网卡,一个连外网一个连内网.用户主要访问外网,内网只访问有限的几个ip.因为外网很大,一般人公司内网常访问的ip是有限的几个. 现在如何做到在上外网的同时也能访问内网的系统?明明两个网 ...

  5. 基于Yarp的http内网穿透库HttpMouse

    简介 前几天发表了<基于Yarp实现内网http穿透>,当时刚刚从原理图变成了粗糙的代码实现,项目连名字都还没有,也没有开放源代码.在之后几天的时间,我不断地重构,朝着"可集成. ...

  6. 内网横向渗透 之 ATT&CK系列一 之 横向渗透域主机

    前言 上一篇文章中已获取了关于域的一些基本信息,在这里再整理一下,不知道信息收集的小伙伴可以看回上一篇文章哦 域:god.org 域控 windows server 2008:OWA,192.168. ...

  7. 我是如何一步步编码完成万仓网ERP系统的(三)登录

    https://www.cnblogs.com/smh188/p/11533668.html(我是如何一步步编码完成万仓网ERP系统的(一)系统架构) https://www.cnblogs.com/ ...

  8. 我是如何一步步编码完成万仓网ERP系统的(十二)库存 1.概述

    https://www.cnblogs.com/smh188/p/11533668.html(我是如何一步步编码完成万仓网ERP系统的(一)系统架构) https://www.cnblogs.com/ ...

  9. 我是如何一步步编码完成万仓网ERP系统的(一)系统架构

    https://www.cnblogs.com/smh188/p/11533668.html(我是如何一步步编码完成万仓网ERP系统的(一)系统架构) https://www.cnblogs.com/ ...

随机推荐

  1. Mac 电脑前端环境配置

    恍惚间,好久没有在外面写过随笔了.在阿里的那两年,学到了许多,也成长了许多,认识了很多可爱的人,也明白了很多社会的事.最后种种艰难抉择,我来到了美团成都,一个贫穷落后但更自由开放弹性的地方.已经误以为 ...

  2. javaXML文件的写入之DOM和DOM4J

    1.DOM篇 首先是DOM的操作方法,字符串数据可以从对象中读,例如上篇提到的Person对象,这里为了方便直接手写. package com.dom.node; import javax.xml.p ...

  3. 分享一下 常用的转换方法(例如:数字转金钱,文本与html互转等)

    public sealed class SAFCFormater { /// <summary> /// 文本格式到HTML /// </summary> /// <pa ...

  4. 记录一次坑爹的Python脚本抢购低价手机经历!

    无意间浏览到魅族官网,说魅族3限量100台.30号中午12点抢购.正好我爪机目前处于报废状态,就来一试手气了.11点多种,习惯性的看了下网页脚本,发现了检测是否到抢购时间,并返回抢购消息的ajax.于 ...

  5. 15.linux基础

    1.目录 /:根目录,一般根目录下只存放目录,在Linux下有且只有一个根目录.所有的东西都是从这里开始.当你在终端里输入“/home”,你其实是在告诉电脑,先从/(根目录)开始,再进入到home目录 ...

  6. 洛谷 P1054 解题报告

    P1054 等价表达式 题目描述 明明进了中学之后,学到了代数表达式.有一天,他碰到一个很麻烦的选择题.这个题目的题干中首先给出了一个代数表达式,然后列出了若干选项,每个选项也是一个代数表达式,题目的 ...

  7. System Error. Code:1722. RPC服务器不可用解决办法

    原文链接(转载请注明出处):System Error. Code:1722. RPC服务器不可用解决办法 问题 最近在软件设计上机课的时候,使用 starUML 建模工具画UML图的时候总是弹出一条如 ...

  8. 不使用JavaScript实现菜单的打开和关闭

    我在写有菜单栏的网页时,基本都会用响应式设计来适配移动端,例如把不重要的菜单选项隐藏,或者创建一个菜单按钮来控制的菜单的打开和关闭之类的.而我之前一直是使用JavaScript来实现菜单的打开和关闭的 ...

  9. Js的String对象

    Js的String对象常用方法: 方法一.得到某字符在字符串中的索引位置. str.indexOf(findStr,[index])--返回的是要查找字符在字符串中的位置索引   ,index开始查找 ...

  10. java导入excel时处理日期格式(已验证ok)

    在Excel中的日期格式,比如2009-12-24将其转化为数字格式时变成了40171,在用java处理的时候,读取的也将是40171.如果使用POI处理Excel中的日期类型的单元格时,如果仅仅是判 ...