Broadcom NIC bnx2x 드라이버의 클러스터 네트워크 문제 팔로우
증상
저 부하 네트워크 통신은 정상적으로 작동하지만 부하가 증가하면 패킷이 삭제됩니다. 이로 인해 프로비저닝 시나리오에서 다양한 오류가 발생할 수 있습니다.
1. 호스트에서 MDS에 연결할 수 없습니다.
# vstorage -c aci_cluster get-event
connected to MDS#16
2020-06-19 11:32:17.180 MDS#16 responds with error 13 (Peer did not respond or did not hold deadline)
2020-06-19 11:32:17.180 Unable complete operation, timeout (30 sec) expired.
Operation failed
cs.log에 시간 초과가 표시됩니다.
2020-0619 14:49:25.108 timer_work: rpc timer expired, killing connection to MDS#16, 1
2020-06-19 14:49:25.108 sio_trace_health: Trouble on MDS#16 fd=24 st=1/0 bufs=235104/108604/332800/0 queue=0/0/0/0/3 retr=1/0/0:0 rtt=103/65/0 cwnd=10/7/26880
2020-06-19 14:49:25.108 rpc_abort: aborted msg to MDS#16, tmo=0, err=13, -30000
2020-06-19 14:49:25.108 mds_register_done: CSD register error 13
2. 기존 클러스터를 사용한 VM 생성이 실패합니다. /var/log/hci/nova/nova-compute.log에서 이 메시지가 표시됩니다
2020-06-09 01:38:08.644 6 ERROR nova.compute.resource_tracker
Skipping removal of allocations for deleted instances: Unable to establish connection to https://compute-api.vstoragedomain.:35357/v3/auth/tokens: ('Connection aborted.', error(104, 'Connection reset by peer')): ConnectFailure: Unable to establish connection to https://compute-api.vstoragedomain.:35357/v3/auth/tokens: ('Connection aborted.', error(104, 'Connection reset by peer'))
3. 컴퓨팅 클러스터 생성이 실패합니다. celery.log에서 스택(504)에 실패 참조 :
2020-06-05 16:08:26,851 ERROR [r-f736b935058341aa] backend/presentation/utils.py:85:make_error_response Request error
Traceback (most recent call last):
...
File "/opt/rh/rh-python36/root/usr/lib/python3.6/site-packages/magnumclient/common/httpclient.py", line 362, in _http_request
error_json.get('debuginfo'), method, url)
magnumclient.common.apiclient.exceptions.GatewayTimeout: Gateway Timeout (HTTP 504)
2020-06-05 16:08:26,854 INFO [r-f736b935058341aa] backend/hooks/req_id.py:29:request_finished === END REQUEST: POST:/api/v2/compute/k8saas/ STATUS:504 ==
4. Acronis Cyber Infrastructure를 설정하고 있으며 최상의 성능을 얻기 위해 bnx2x 드라이버를 사용하여 Broadcom NIC의 MTU를 늘리려 고하지만 3616보다 큰 값을 설정할 수 없습니다.
해결 방법
bnx2x 드라이버가 있는 네트워크 어댑터 (예 : Broadcom Limited BCM57840 NetXtreme II 10 / 20-Gigabit Ethernet / Hewlett-Packard Company FlexFabric 10Gb 2 포트 536FLB 어댑터)는 높은 MTU 값에서 제대로 작동하지 않습니다. 이것은 드라이버의 알려진 구현 문제입니다. 이 드라이버가 있는 네트워크 어댑터의 경우 Acronis Cyber Infrastructure 커널에 MTU 3616 제한을 구현했습니다. 그러나 이러한 카드가 본드에 포함되면 (본딩에 대한 기본 MTU 값은 9000임) 장치는 MTU 값보다 큰 모든 패킷을 삭제합니다.
확인을 위해 Broadcom 제한 값보다 큰 패킷 크기로 ping을 실행할 수 있습니다.
# ping <IP address> -s 4000
출력에 100 % 패킷 손실이 표시됩니다.
--- 10.XXX.XXX.XXX ping statistics ---
5 packets transmitted, 0 received, 100% packet loss, time 4003ms
MTU 값을 권장 9000으로 설정할 수 없으므로 이러한 어댑터는 스토리지 인프라 솔루션에 대한 최상의 성능을 허용하지 않으며 Acronis Cyber Infrastructure 설정에 사용해서는 안됩니다.
하드웨어 교체 단계에 대한 임시 해결 방법으로 본드 연결 MTU를 3000으로 줄이십시오. 이렇게하면 가상 장치 크기가 물리적 iface에 맞춰져 통신이 가능해집니다.
추가 정보
Acronis Cyber Infrastructure 코어는 RedHat 드라이버와 함께 작동하도록 설계되었으며 공급 업체에서 제공하는 다른 드라이버의 기능을 보장할 수 없습니다. 인프라에 다른 네트워크 어댑터를 선택하는 것이 좋습니다. 이 항목 및 기타 네트워크 하드웨어 권장 사항 은 제품 설명서를 참조하십시오.
참조 - https://kb.acronis.com/content/65165