
我已經在 4 個節點上安裝了具有 Proxmox 的全新作業系統。每個節點有 2xNVMe 和 1xHD,1 個公用網路卡,1 個私有網路卡。在公共網路上,有一個額外的wireguard介面運行用於PVE集群通訊。私有介面應該僅用於即將到來的分散式儲存。
# ip a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP group default qlen 1000
link/ether 6c:b3:11:07:f1:18 brd ff:ff:ff:ff:ff:ff
inet 10.255.255.2/24 brd 10.255.255.255 scope global enp3s0
valid_lft forever preferred_lft forever
inet6 fe80::6eb3:11ff:fe07:f118/64 scope link
valid_lft forever preferred_lft forever
3: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether b4:2e:... brd ff:ff:ff:ff:ff:ff
inet 168..../26 brd 168....127 scope global eno1
valid_lft forever preferred_lft forever
inet6 2a01:.../128 scope global
valid_lft forever preferred_lft forever
inet6 fe80::b62e:99ff:fecc:f5d0/64 scope link
valid_lft forever preferred_lft forever
4: vmbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
link/ether a2:fd:6a:c7:f0:be brd ff:ff:ff:ff:ff:ff
inet6 2a01:....::2/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::..:f0be/64 scope link
valid_lft forever preferred_lft forever
6: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
link/none
inet 10.3.0.10/32 scope global wg0
valid_lft forever preferred_lft forever
inet6 fd01:3::a/128 scope global
valid_lft forever preferred_lft forever
節點正常,PVE 叢集如預期運作。
# pvecm status
Cluster information
-------------------
Name: ac-c01
Config Version: 4
Transport: knet
Secure auth: on
Quorum information
------------------
Date: Tue Dec 15 22:36:44 2020
Quorum provider: corosync_votequorum
Nodes: 4
Node ID: 0x00000002
Ring ID: 1.11
Quorate: Yes
Votequorum information
----------------------
Expected votes: 4
Highest expected: 4
Total votes: 4
Quorum: 3
Flags: Quorate
Membership information
----------------------
Nodeid Votes Name
0x00000001 1 10.3.0.4
0x00000002 1 10.3.0.10 (local)
0x00000003 1 10.3.0.13
0x00000004 1 10.3.0.16
PVE 防火牆在叢集中處於活動狀態,但有一條規則,即所有 PVE 節點都可以在任何介面上的任何連接埠上透過任何協定相互通訊。這是真的 - 我可以在所有 IP 上的所有節點之間執行 ping、ssh 等操作。
然後我安裝了ceph。
pveceph install
在第一個節點上,我用以下命令初始化了 ceph
pveceph init -network 10.255.255.0/24
pveceph createmon
這樣可行。
在第二個 - 我嘗試了相同的(我不確定,是否需要設置選項-network
- 我嘗試了有和沒有)。這也有效。
但 pveceph createmon 在任何節點上都會失敗:
# pveceph createmon
got timeout
我還可以訪問任何節點上的連接埠 10.255.255.1:6789。無論我嘗試什麼 - 我在任何節點上都會遇到“超時”,然後是節點1。另外,停用防火牆也沒有任何效果。
當我刪除該-network
選項時,我可以運行所有命令。看起來它無法透過第二個介面進行通訊。不過介面還是不錯的。
當我將網路設定為10.3.0.0/24
cluster-network時10.255.255.0/24
,它也可以工作,但我希望所有 ceph 通訊都通過10.255.255.0/24
.怎麼了?
答案1
僅供參考,官方文件提到巨型幀帶來了重要的性能改進:
https://ceph.io/en/news/blog/2015/ceph-loves-jumbo-frames/
我就是其中之一,在更改我們設定的 6 個節點(3 個儲存節點、3 個運算節點)上的 MTU 後,讀/寫效能提高了約 1400%。
不,這不是一個錯字。我們dd
在 Linux VM 中測試時的讀取/寫入速度從 110 MB/s 提高到了 1.5-1.6 GB/s(1 Gbps 公共網路、10 Gbps 專用網路、SATA SSD 上的 OSD)。
注意:更改所有網路介面(公共和私有)上的 MTU 似乎非常重要!在我們的例子中,僅在專用網路卡上更改它會使整個系統變得混亂。
來自 Redhat 的文檔:
重要的
紅帽 Ceph 儲存要求通訊路徑中的所有網路設備(公共網路和叢集網路的端對端)具有相同的 MTU 值。
我希望這可以幫助別人!乾杯
答案2
問題是 - MTU 9000 是一個問題。即使我透過專用網路運行完整的 Proxmox 集群,也會出現錯誤。
ip link set enp3s0 mtu 1500
所以,Ceph 存在巨型幀的問題。