8.4. 네트워크 티밍 데몬과 "실행자" 이해
teamd 팀 데몬인
teamd 는 libteam 을 사용하여 팀 드라이버의 인스턴스 하나를 제어합니다. 이 팀 드라이버 인스턴스는 하드웨어 장치 드라이버의 인스턴스를 추가하여 네트워크 링크 “팀을” 구성합니다. 팀 드라이버에서 네트워크 인터페이스를 제공합니다. team0 예를 들어 커널의 다른 부분에 대해 다음을 수행합니다. 팀 드라이버 인스턴스에서 만든 인터페이스에는 다음과 같은 이름이 지정됩니다. team0, team1, 설명서에 나와 있습니다. 이 방법은 이해하기 쉽고 다른 이름을 사용할 수 있습니다. 티밍의 모든 메서드에 공통된 논리는 teamd 에 의해 구현됩니다. 라운드 로빈과 같이 다양한 부하 공유 및 백업 방법에 고유한 해당 함수는 “러너” 라고 하는 별도의 코드 단위로 구현됩니다. “모듈” 및 “모드” 와 같은 단어는 이미 커널과 관련하여 특정 의미를 가지고 있기 때문에 “runner” 라는 단어가 이러한 코드 단위를 참조하도록 선택되었습니다. 사용자는 JSON 형식 구성 파일의 러너를 지정하고, 인스턴스가 생성될 때 코드는 teamd 의 인스턴스로 컴파일됩니다. 러너의 코드가 생성될 때 teamd 의 인스턴스로 컴파일되므로 러너가 플러그인이 아닙니다. 필요성이 발생할 경우 teamd 용 플러그인으로 코드를 만들 수 있습니다.
다음 러너는 쓰기 시 사용할 수 있습니다.
- 브로드캐스트(데이터는 모든 포트로 전송됨)
- 라운드 로빈 (데이터는 모든 포트에서 차례로 전송됨)
- active-backup (한 개의 포트 또는 링크가 사용되고 다른 포트는 백업으로 유지됨)
- 부하 분산(활성 Tx 부하 분산 및 BPF 기반 Tx 포트 선택기 사용)
- LACP(802.3ad 링크 집계 제어 프로토콜 구현)
다음 링크-감사도 사용할 수 있습니다.
특정 link-watcher가 특정 러너와 함께 사용되지 않도록 하는 코드에는 제한이 없지만 lacp 러너를 사용할 때 ethtool 은 권장되는 유일한 링크-감사자입니다.
- ethtool (Libteam lib는 ethtool 을 사용하여 링크 상태 변경 사항을 감시). 구성 파일에 다른 link-watcher가 지정되지 않은 경우 기본값입니다.
- arp_ping ( Arp_ping 유틸리티는 ARP 패킷을 사용하여 far-end 하드웨어 주소의 존재를 모니터링하는 데 사용됩니다.)
- nsna_ping (
IPv6Neighbor Discovery 프로토콜의 Neighbor Advertisements 및 Neighbor Solicitation)을 사용하여 인접 인터페이스의 존재를 모니터링합니다.