
私は 4 つのノードに Proxmox で完全に新しい OS をインストールしました。各ノードには 2 つの NVMe と 1 つの HD、1 つのパブリック NIC、1 つのプライベート NIC があります。パブリック ネットワークでは、PVE クラスター通信用に実行されている追加の Wireguard インターフェイスがあります。プライベート インターフェイスは、今後の分散ストレージにのみ使用する必要があります。
# 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
それはうまくいきます。
2 番目に、同じことを試しました (オプションを設定する必要があるかどうかはわかりません。-network
ありとなしで試しました)。これも機能します。
しかし、pveceph createmon はどのノードでも失敗します:
# pveceph createmon
got timeout
どのノードでもポート 10.255.255.1:6789 に到達できます。何を試しても、どのノードでも node1 で「タイムアウトしました」というメッセージが表示されます。また、ファイアウォールを無効にしても効果はありません。
オプションを削除すると-network
、すべてのコマンドを実行できます。2 番目のインターフェイス経由では通信できないようです。ただし、インターフェイスは正常です。
ネットワークを に設定し10.3.0.0/24
、クラスターネットワークを に設定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% 向上しました。
いいえ、これはタイプミスではありません。Linux dd
VM でのテストでは読み取り/書き込み速度が 110 MB/秒でしたが、その後は 1.5~1.6 GB/秒に向上しました (1 Gbps パブリック ネットワーク、10 Gbps プライベート ネットワーク、SATA SSD 上の OSD)。
注意: すべてのネットワーク インターフェイス (パブリックとプライベート) の MTU を変更することは非常に重要であるようです。私たちの場合、プライベート NIC のみで MTU を変更したところ、システム全体がおかしくなりました。
Redhat のドキュメントより:
重要
Red Hat Ceph Storage では、パブリック ネットワークとクラスター ネットワークの両方において、通信パス内のすべてのネットワーク デバイス全体でエンドツーエンドで同じ MTU 値が必要です。
これが誰かの役に立つことを願います!乾杯
答え2
問題は、MTU 9000 が問題であることです。プライベート ネットワーク経由で完全な Proxmox クラスターを実行しても、エラーが発生します。
ip link set enp3s0 mtu 1500
つまり、Ceph にはジャンボ フレームに関する問題があります。