本文將總結一次為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修改結束
分布式存儲系統各部分耗時占比實驗未完待續。。。