상세 컨텐츠

본문 제목

VMware 환경에서의 Docker Swarm 네트워킹: 체크섬 오프로딩 이슈 해결하기

Docker

by toa-lee 2023. 9. 14. 19:43

본문

1. VMware와 Docker Swarm의 만남에서 문제는?

VMware는 가상화 플랫폼으로, 전세계 IT 전문가들이 선호하는 도구 중 하나입니다. 반면, Docker Swarm은 여러 컨테이너를 쉽게 관리할 수 있게 도와주는 툴입니다. 두 기술을 결합하면 강력한 시너지를 발휘합니다. 그러나 때때로 이 조합은 네트워킹 문제를 유발하기도 합니다. 이 문제점의 근원을 찾아보겠습니다.

2. '체크섬 오프로딩'이라는 키워드

데이터를 전송할 때, 그 데이터의 '진위'를 확인하기 위해 체크섬이라는 값을 사용합니다. 이 값은 데이터의 정확성을 검증하는 역할을 합니다.

체크섬 오프로딩은 이러한 체크섬의 계산 업무를 메인 컴퓨터(CPU)에서 네트워크 카드(NIC)로 넘겨주는 것을 의미합니다. 이렇게 되면 CPU의 부담이 줄어들게 됩니다.

3. VMware 환경에서의 주요 문제점들

  • 패킷의 변형: 가상화된 환경인 VMware에서는 가상 NIC와 물리 NIC 사이에 데이터 패킷이 오갈 때, 해당 패킷이 변형될 가능성이 있습니다. 패킷의 변형은 체크섬의 값에 문제를 발생시킬 수 있습니다.
  • 근거: VMware와 같은 가상화 환경에서는 패킷을 조작하거나 변형하기 때문에 이러한 이슈가 발생할 수 있습니다.
  • 체크섬 처리 불일치: 가상화된 환경에서는 가상 NIC와 물리 NIC의 체크섬 처리 방법이 다를 수 있습니다. 이로 인해 데이터 전송 중 오류가 발생하게 됩니다.
  • 근거: 가상 NIC와 물리 NIC가 체크섬을 다르게 처리하기 때문에 이런 현상이 발생합니다.
  • VXLAN 프로토콜의 문제점: Docker Swarm에서 사용되는 VXLAN은 UDP 프로토콜을 기반으로 합니다. UDP는 속도면에서는 유리하지만, 체크섬 오류에 더 취약합니다.
  • 근거: VXLAN이 UDP 기반으로 작동하기 때문에 체크섬 오류에 민감하게 반응합니다.

4. 문제의 해결 방안은?

첫 번째로 간단하게 적용할 수 있는 해결책은 체크섬 오프로딩을 비활성화하는 것입니다. 이 방법은 CPU에 약간의 부담을 주겠지만, 대신 체크섬 관련 문제를 대폭 줄일 수 있습니다.

 

명령어 예시:

ethtool -K [network] tx-checksum-ip-generic off

 

마무리

VMware 환경에서 Docker Swarm을 사용할 때, 네트워킹 문제가 발생한다면 체크섬 오프로딩 이슈를 먼저 확인해보는 것이 좋습니다. 이러한 문제를 인지하고 적절한 해결책을 적용하면, 가상화 환경에서도 안정적인 네트워크 성능을 기대할 수 있습니다.

 

출처: https://portal.portainer.io/knowledge/known-issues-with-vmware