고성능 네트워크 SIG 월간 뉴스: virtio-net은 동적 인터럽트 조정을 지원하고 SMC v2 프로토콜은 새로운 확장을 추가합니다.

고성능 네트워크 SIG(Special Interest Group): 클라우드 컴퓨팅 시대에 소프트웨어와 하드웨어가 빠르게 발전하고 클라우드 네이티브 및 마이크로 서비스와 같은 새로운 애플리케이션 형태가 등장하여 프로세스와 네트워크 간에 더 많은 데이터가 흐를 수 있습니다. 스트리밍 캐리어는 전체 클라우드 시대에서 유례없이 중요한 역할을 합니다. 만물인터넷 시대에 클라우드에서의 네트워크 통신의 효율성은 다양한 서비스에 매우 중요합니다.High Performance Network Interest Group은 XDP, RDMA, VIRTIO와 같은 새로운 고효율 통신 기술을 사용하고 고성능 네트워크 프로토콜 스택은 클라우드 컴퓨팅 시대에 데이터 센터에 적용되는 네트워크의 성능을 향상시킵니다.

01 이번 달 SIG 전체 진행

이번 달의 고성능 네트워킹 SIG의 주요 작업은 SMC, virtio 및 Anolis OS 공통 커널 네트워킹에 중점을 둡니다.

이번 달 주요 개발 사항:

  • 이번 달 SIG 팀과 IBM SMC 개발 팀은 SMC v2의 프로토콜 확장에 대한 합의에 도달했습니다. 지금까지 SIG가 추진하는 몇 가지 주요 프로토콜 확장(단일 연결 기능 지원, LGR 최대 연결 수 협상 가능 지원, RDMA 쓰기 즉시 지원, 확장 가능한 옵션 등)에 대해 SMC 개발자 회의에서 기본적으로 논의되었습니다.
  • The virtio-net: support the virtqueue coalescing moderation ( https://lists.oasis-open.org/archives/virtio-dev/202303/msg00415.html ) 제안은 SIG 그룹에 의해 제안되고 virtio 커뮤니티 에서 이 제안을 통해 virtio-net은 동적 인터럽트 조정을 지원하고 virtio-net의 성능을 향상시킬 수 있습니다.

02 아놀리스 OS

수리하다

Anolis OS ANCK 5.10은 다음 수정 사항을 추가합니다.

  • [Anck 5.10 aarch64][nightly] net.tls 사용 사례는 kernel_selftests 테스트 스위트에서 실패합니다. ->get_port() 전에 오류 코드를 수정하도록 err을 설정합니다. ( https://bugzilla.openanolis.cn/show_bug.cgi?id=2394 )
  • [Anck 5.10 nightly][ANCK-5.10-14][x86_64]kernel-selftests: net 디렉토리에서 reuseaddr_ports_exhausted.sh를 실행합니다. 사용 사례 실패: 커널이 ktls ULP를 설정되지 않은 소켓에 연결할 때 올바른 오류 코드를 복구합니다. ( https://bugzilla.openanolis.cn/show_bug.cgi?id=4510 )
  • 안전

ulp/wifi/sched/ipv6/sctp/mpls/usb/nfc/netfilter/bluetooth, CVE 목록: CVE-2022-4129, CVE-2023과 같은 모듈을 포함하여 이번 달 네트워크 방향에서 총 17개의 CVE가 복구되었습니다. -0461, CVE-2023-23455, CVE-2023-23559, CVE-2022-47929, CVE-2023-0394, CVE-2023-1074, CVE-2023-26545, CVE-2022-2964, CVE-2023-23454 , CVE-2023-1281, CVE-2020-25672, CVE-2023-0590, CVE-2020-25670, CVE-2023-1095, CVE-2022-20566, CVE-2020-25671.

03 고성능 네트워크 프로토콜 스택 SMC

이번 달 Dragon Lizard Community High-Performance Network SIG의 SMC 분야 작업은 주로 표준화된 프로토콜의 확장, 기본 고성능 통신 솔루션 및 eBPF 정책 대체 기능에 중점을 둡니다 .

네이티브 고성능 커뮤니케이션 솔루션

네이티브 루프백 및 컨테이너 간(cross-netns) 통신은 이미 데이터 처리 및 클라우드 네이티브 시나리오에서 널리 사용되는 공통 데이터 경로입니다. 예를 들어 클라우드 네이티브 시나리오에서 서비스 메시는 프록시 프로세스를 통해 비즈니스 프로세스 및 사이드카와 통신합니다. SMC는 네이티브(루프백 및 컨테이너 간) 고성능 통신 솔루션을 제공하며 기존 사용자 모드 IPC, 커널 TCP 루프백 또는 UNIX 도메인 소켓 및 기타 솔루션과 비교하여 성능면에서 큰 이점이 있습니다(상세 데이터, LWN 링크를 참조하십시오: https://lwn.net/Articles/927410/ ), 침입이나 수정 없이 애플리케이션에 투명합니다. 이번 달에 우리는 Linux 커뮤니티에 푸시된 RFC 제안을 계속 수정하고 v4 버전(LWN 링크)을 발송했습니다. 현재 피드백으로 볼 때 Linux 커뮤니티는 적용 가능한 시나리오와 솔루션의 실행 가능성에 대한 합의에 도달했습니다. 현재 초점은 SMC 프로토콜이 로컬 루프백 장치를 고유하게 식별하는 방법에 있습니다. 현재 솔루션은 여러 개의 ID를 통해 서로 다른 루프백 장치를 구분하는 것이며 충돌 확률은 1/2^(64*3)입니다. SMC 루프백에 대한 추가 주제와 관련하여 SMC 개발자 회의에서 Linux 커뮤니티의 메인테이너와 추가로 소통할 예정입니다.

프로토콜 확장

SMC 프로토콜은 IETF RFC 7609 및 IBM SMC PDF 매뉴얼에 정의되어 있으며, 이 프로토콜은 두 당사자가 연결이 설정되고 정상적으로 통신할 때까지 악수하는 방법을 규정합니다. 현재 프로토콜에는 SMC v2 프로토콜이 아직 표준화되지 않았고 프로토콜에 대해 예상되는 시나리오를 넘어서는 확장이 없는 것과 같은 몇 가지 문제가 있습니다. 이번 달 Dragon Lizard 커뮤니티와 Linux 커뮤니티는 프로토콜 확장에 대한 합의에 도달했습니다.지금까지 우리가 추진한 몇 가지 주요 프로토콜 확장은 SMC 개발자 정기 회의에서 논의되었으며 일련의 검토 및 의견을 거쳐 입력되었습니다. 정식 계약으로 업데이트 및 릴리스 프로세스. 이번에 합의된 프로토콜 확장에는 주로 단일 연결 기능 지원, LGR에서 협상 가능한 최대 연결 수 지원, 즉시 RDMA 쓰기 지원 및 확장 가능한 옵션이 포함됩니다 .

eBPF 정책 교체

SMC는 동적으로 TCP로 대체할 수 있는 기능을 제공합니다. 현재 대체 전략의 결정 요소는 주로 RDMA/ISM 연결이 성공적으로 설정되었는지 여부입니다. SMC의 짧은 링크 성능은 TCP보다 좋지 않기 때문에 SMC를 보다 일반화하기 위해 SMC에 정책 기반 폴백 TCP 기능을 추가하여 SMC가 다양한 애플리케이션 모델 및 시나리오에 더 잘 적응할 수 있도록 할 계획입니다. 위의 배경을 바탕으로 eBPF struct ops 기능을 기반으로 하는 SMC 정책 폴백 패치를 Linux BPF 커뮤니티에 푸시하고 BPF 유지 관리자 및 struct ops 작성자와 구현 세부 사항을 논의했습니다. 논의된 세부 사항을 기반으로 업데이트된 패치 버전을 보냈습니다. eBPF 정책 대체 솔루션이 커뮤니티에서 승인되면 eBPF 정책 대체의 사용자 모드 구현을 SMC 도구(smc-tools)에 제출하여 사용자 사용을 단순화하고 SMC ULP 솔루션도 폐기합니다.

04

virtio 사양 支持 virtqueue 알림 통합

배경: Net DIM(Generic Network Dynamic Interrupt Moderation) https://www.kernel.org/doc/html/next/networking/net_dim.html 알고리즘은 현재 네트워크에서 단일 대기열의 트래픽 정보 및 중단 수를 계산합니다. , 적응 컴퓨팅 인터럽트는 방향과 단계 크기를 조정하고 결과 구성을 장치로 보내 네트워크 처리량을 향상시키는 목적을 달성합니다. 현재 virtio 사양은 단일 대기열로의 인터럽트 매개변수 전송을 지원하지 않기 때문에 아직 netdim을 지원할 수 없습니다.

virtio-net: 고성능 네트워크 그룹이 추진하는 virtqueue 병합 조정 제안을 지원하면 virtio-net이 동적 인터럽트 조정을 지원하고 각 큐에 인터럽트 조정 매개변수를 발행할 수 있습니다. 현재 이 작업은 virtio 커뮤니티에서 투표를 받았습니다. ( https://lists.oasis-open.org/archives/virtio-dev/202303/msg00415.html ) .

virtio-net 내부 헤더 해시

VXLAN, GENEVE 및 GRE와 같은 터널링 프로토콜을 지원하여 내부 헤더를 기반으로 해시를 계산하고 RSS 및 모니터링 시나리오의 패킷 수신 성능을 개선하기 위해 High Performance Network SIG 팀은 virtio_net: support inner header hash ( https://lists.oasis-open.org/archives/virtio-dev/202303/msg00415.html ) 제안.

이번 달의 v9->v12 토론은 주로 내부 헤더 해시가 대칭적 해싱을 더 잘 지원할 수 있는 방법에 중점을 둡니다.

레거시 GRE와 같은 터널링 프로토콜은 IP 헤더를 기반으로 전송하는데, 여기에는 외부 포트 번호도 없고 흐름별 식별에 사용할 수 있는 필드도 없으므로 내부 헤더를 기반으로 해시를 계산해야 합니다. 또한 VXLAN 및 GENEVE와 같은 최신 터널링 프로토콜은 전송 헤더, 즉 외부 포트 번호를 사용하여 엔트로피를 높일 수 있지만 일부 모니터링 시나리오에서는 동일한 흐름의 패킷이 필요할 수 있습니다. 동일한 수신 대기열로 해시되지만 동일한 흐름이 다른 터널을 통해 캡슐화될 수 있으므로 이 목적을 달성하려면 내부 헤더를 사용하여 대칭 해시를 계산해야 합니다.

현재로서는 ipv4/ipv6 패킷을 동시에 대칭적으로 해싱할 수 있는 키 또는 해시 알고리즘을 찾는 방법에 대한 합의가 없으며 커뮤니티와 추가로 소통하여 내부 헤더 해시를 보다 일반화할 것입니다.

virtio-net 지원 AF_XDP 제로카피

배경: AF_XDP는 바이패스 커널을 위한 새로운 패킷 송수신 프레임워크입니다. 드라이버의 수신 패킷을 사용자 상태로 직접 전송할 수 있으며 사용자 상태는 사용자 상태에서 드라이버로 패킷을 직접 전송하여 직접 보낼 수 있습니다. 커널의 UDP PPS에 비해 성능을 3~7배 향상시킬 수 있습니다. 하지만 제로카피를 지원하기 위해서는 추진이 필요하다.

이 시리즈의 많은 수의 패치 세트로 인해 두 부분으로 나눌 계획입니다.

  • virtio 코어는 미리 매핑된 DMA를 지원합니다. 이 부분은 virtio 코어 프레임워크가 DMA 주소 작업 제출을 지원하도록 하는 것입니다. 현재 구현에서는 모든 DMA 작업이 virito 코어에서 완료됩니다. virtio 코어가 virtio로 DMA 주소를 전송하는 것을 지원하도록 허용해야 합니다. 핵심. AF_XDP는 모든 주소 DMA 작업과 일부 virtqueue 재설정 관련 작업을 미리 완료하기 때문입니다.
  • 이 부분은 기본적으로 커뮤니티에서 검토를 통과했습니다.
  • virtio-net은 AF_XDP를 지원합니다. 후속 작업은 이전 패치 세트를 기반으로 net-next 브랜치에 제출됩니다.
  • 패치의 이 부분도 분할되어 현재 virtio-net의 xdp의 코드 리팩토링이 추진되고 있습니다. 이 구현은 기본적으로 커뮤니티와 합의에 도달했습니다.
  • 후속 패치는 다음 버전이 출시된 후 제출되며 net 부분에는 virtio core의 코드 업데이트가 포함됩니다.

위는 3월 고성능 네트워크 SIG의 월별 역학입니다.공동 구축에 참여하는 모든 사람을 환영합니다(그룹에 참여하는 방법은 기사 끝 부분 참조). 더 많은 SIG 뉴스를 보려면 Dragon Lizard 공식 웹 사이트로 이동하십시오.

Dragon Lizard SIG 홈페이지 링크:https: //openanolis.cn/sig

고성능 네트워크 SIG 홈페이지: https://openanolis.cn/sig/high-perf-network

-- 위에--

Supongo que te gusta

Origin blog.csdn.net/weixin_60347558/article/details/130129822
Recomendado
Clasificación