Proxmox Ceph - 单独网络超时

Proxmox Ceph - 单独网络超时

我在 4 个节点上安装了全新的 Proxmox 操作系统。每个节点都有 2 个 NVMe 和 1 个 HD,一个公用 NIC,一个专用 NIC。在公用网络上,还有一个额外的 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并将集群网络设置为时10.255.255.0/24,它也能正常工作,但我希望所有 ceph 通信都通过 运行10.255.255.0/24。哪里出了问题?

答案1

仅供参考,官方文档提到巨型帧带来了重要的性能改进:

https://access.redhat.com/documentation/en-us/red_hat_ceph_storage/4/html/configuration_guide/ceph-network-configuration#verifying-and-configuring-the-mtu-value_conf

https://ceph.io/en/news/blog/2015/ceph-loves-jumbo-frames/

就我而言,在我们设置的 6 个节点(3 个存储节点、3 个计算节点)上更改 MTU 后,读/写性能提高了约 1400%。

不,这不是打字错误。我们在 Linux VM 上测试的读写速度从 110 MB/sdd提高到了 1.5-1.6 GB/s(1 Gbps 公共网络,10 Gbps 私有网络,SATA SSD 上的 OSD)。

注意:更改所有网络接口(公网和私网)上的 MTU 似乎非常重要!在我们的例子中,仅在私网 NIC 上更改它会导致整个系统陷入混乱。

来自Redhat的文档:

重要的

Red Hat Ceph Storage 要求在通信路径中的所有网络设备中都使用相同的 MTU 值,无论是公共网络还是集群网络,都是端到端的。

希望这对大家有帮助!谢谢

答案2

问题是 - MTU 9000 有问题。即使我通过私有网络运行完整的 Proxmox 集群,也会出现错误。

ip link set enp3s0 mtu 1500

因此,Ceph 在巨型帧方面存在问题。

相关内容