
Proxmox를 사용하여 완전히 새로운 OS를 4개 노드에 설치했습니다. 모든 노드에는 2xNVMe와 1xHD, 공용 NIC 1개, 개인용 NIC 1개가 있습니다. 공용 네트워크에는 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
작동합니다.
두 번째에서도 동일한 방법을 시도했습니다(옵션을 설정해야 하는지 확실하지 않습니다. 포함 -network
여부에 관계없이 시도했습니다). 그것도 작동합니다.
그러나 pveceph createmon은 다음과 같은 노드에서 실패합니다.
# pveceph createmon
got timeout
또한 모든 노드에서 포트 10.255.255.1:6789에 연결할 수 있습니다. 무엇을 시도하든지 - node1 이후의 모든 노드에서 "시간 초과 발생"이 발생합니다. 또한 방화벽을 비활성화해도 아무런 효과가 없습니다.
옵션 을 제거하면 -network
모든 명령을 실행할 수 있습니다. 두 번째 인터페이스를 통해 대화할 수 없는 것 같습니다. 하지만 인터페이스는 괜찮습니다.
네트워크를 로 설정 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 VM의 테스트를 통해 110MB/s 읽기/쓰기에서 dd
1.5~1.6GB/s로 향상되었습니다(1Gbps 공용 네트워크, 10Gbps 개인 네트워크, SATA SSD의 OSD).
참고: 모든 네트워크 인터페이스(공용 및 개인)에서 MTU를 변경하는 것이 매우 중요해 보입니다! 우리의 경우 개인 NIC에서만 변경하면 전체 시스템이 엉망이 되었습니다.
Redhat의 문서에서:
중요한
Red Hat Ceph Storage에는 공용 네트워크와 클러스터 네트워크 모두에 대해 종단 간 통신 경로의 모든 네트워킹 장치에 걸쳐 동일한 MTU 값이 필요합니다.
이것이 누군가에게 도움이 되기를 바랍니다! 건배
답변2
문제는 MTU 9000이 문제라는 것입니다. 개인 네트워크를 통해 전체 Proxmox 클러스터를 실행해도 오류가 발생합니다.
ip link set enp3s0 mtu 1500
따라서 Ceph에는 점보 프레임에 문제가 있습니다.