1. 程式人生 > >Ceph萬兆內網與系統萬兆遷移

Ceph萬兆內網與系統萬兆遷移

狀態 host moni com 組件 基本上 ado htm 存儲系統

本文將總結一次為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 [email protected]: ceph mon getmap -o /tmp/monmap

copy monmap [email protected]: cp /tmp/monmap /tmp/monmap2

然後停止mon [email protected]: sudo systemctl start [email protected]{hostname}

可以使用monmaptool --print /tmp/monmap 查看mon map配置

[[email protected] ~]# 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

先刪除[email protected]:monmaptool --rm node7 --rm node8 --rm node9 /tmp/monmap

再添加新的[email protected]:monmaptool --add node7 192.168.2.107 --add node8 192.168.2.108 --add node9 192.168.2.109 /tmp/monmap

接著查看monmap [email protected]: monmaptool --print /tmp/monmap

然後單獨在每個mon節點上 註入新的monmap

[[email protected] ~]# ceph-mon -i node7 --inject-monmap /tmp/monmap

其他節點同理。

最後修改ceph.conf中MON ip地址,其他osd等的ip地址為萬兆網IP(最好別做內外網分離)

啟動集群

MON IP修改結束

分布式存儲系統各部分耗時占比實驗未完待續。。。

Ceph萬兆內網與系統萬兆遷移