Skip to main content
QUICK REVIEW

[논문 리뷰] Rama: Controller Fault Tolerance in Software-Defined Networking Made Practical

André Mantas, Fernando M. V. Ramos|arXiv (Cornell University)|2019. 02. 05.
Software-Defined Networks and 5G참고 문헌 1인용 수 8
한 줄 요약

Rama는 OpenFlow나 스위치를 수정하지 않고도 컨트롤러와 스위치 간의 이벤트 및 명령 처리를 거래적이고 정확히 한 번만 처리할 수 있도록 보장하는 장애 내성적인 SDN 컨트롤러 플랫폼을 제안한다—생산 환경에서 강력한 일致성과 정확성을 확보한다. 기존 OpenFlow 메커니즘을 활용하여 최소한의 성능 오버헤드로 장애 내성성을 달성하며 즉각적인 구현이 가능하다.

ABSTRACT

In Software-Defined Networking (SDN), network applications use the logically centralized network view provided by the controller to remotely orchestrate the network switches. To avoid the controller being a single point of failure, traditional fault-tolerance techniques are employed to guarantee availability, a fundamental requirement in production environments. Unfortunately, these techniques fall short of ensuring correct network behaviour under controller failures. The problem of these techniques is that they deal with only part of the problem: guaranteeing that application and controller state remains consistent between replicas. However, in an SDN the switches maintain hard state that must also be handled consistently. Fault-tolerant SDN must therefore include switch state into the problem. A recently proposed fault-tolerant controller platform, Ravana, solves this problem by extending fault-tolerant SDN control with mechanisms that guarantee control messages to be processed transactionally and exactly once, at both the controllers and the switches. These guarantees are given even in the face of controller and switch crashes. The elegance of this solution comes at a cost. Ravana requires switches to be modified and OpenFlow to be extended with hitherto unforeseen additions to the protocol. In face of this challenge we propose Rama, a fault-tolerant SDN controller platform that offers the same strong guarantees as Ravana without requiring modifications to switches or to the OpenFlow protocol. Experiments with our prototype implementation show the additional overhead to be modest, making Rama the first fault-tolerant SDN solution that can be immediately deployable.

연구 동기 및 목표

  • 기존 장애 내성적인 SDN 솔루션들이 컨트롤러 장애 발생 시 스위치 상태의 일致성을 확보하지 못하는 핵심적 격차를 메운다.
  • 실제 환경 적용을 저해하는 프로토콜 및 하드웨어 확장 기능이 필요한 Ravana와 같은 기존 장애 내성 SDN 플랫폼의 한계를 극복한다.
  • 장애 발생 시에도 논리적으로 중심화된 컨트롤러와 관찰적으로 구별되지 않는 상태를 유지함으로써 네트워크 행동의 정확성을 보장한다.
  • OpenFlow나 스위치 펌웨어를 수정하지 않음으로써 장애 내성적인 SDN의 즉각적인 구현을 가능하게 한다.
  • 외부 프로토콜 확장 없이도 컨트롤러 복제본과 스위치 간의 이벤트 순서, 이벤트 처리, 명령 실행에서 강력한 일致성을 달성한다.

제안 방법

  • 기존 OpenFlow 메커니즘—예를 들어 플로우 테이블 업데이트 및 패킷 인 메시지—를 활용하여 제어 이벤트 및 명령의 거래적 처리를 조율한다.
  • 모든 이벤트 처리 사이클 구성 요소가 모두 실행되거나 아예 취소되는 것을 보장하기 위해 컨트롤러 수준에서 유사한 이중 단계 커밋 프로토콜을 구현한다.
  • Paxos나 Raft와 같은 총순서 일致성 알고리즘을 통해 컨트롤러 복제본 간의 일致한 상태를 확보한다.
  • 플로우 테이블 항목과 메타데이터(예: 버전 태그)를 사용해 스위치 수준에서 명령 중복 제거 메커니즘을 도입하여 중복 규칙 설치를 방지한다.
  • OpenFlow의 기존 패킷 인 및 패킷 아웃 의미 체계를 활용해 명령 실행을 재진행 가능하게 구현함으로써 명령이 정확히 한 번만 처리되도록 보장한다.
  • 컨트롤러 및 스위치 상태가 장애 발생 시에도 원자적으로 일致하게 업데이트되도록 하는 상태 기계 모델을 설계하며, 메모리 기반 로깅과 재실행 메커니즘을 사용한다.

실험 결과

연구 질문

  • RQ1OpenFlow 프로토콜이나 스위치 펌웨어를 수정하지 않고도 SDN에서 장애 내성을 달성할 수 있는가?
  • RQ2컨트롤러 장애 발생 시 스위치 상태를 어떻게 일관되게 관리하여 명령 손실이나 중복을 방지할 수 있는가?
  • RQ3기존 OpenFlow 메커니즘에만 의존하는 장애 내성적인 SDN 컨트롤러의 성능 오버헤드는 어느 정도인가?
  • RQ4표준 OpenFlow 기능만을 사용해 논리적으로 중심화된 컨트롤러와 관찰적으로 구별되지 않는 상태를 달성할 수 있는가?
  • RQ5프로토콜 확장 없이도 분산된 컨트롤러와 스위치 간에 전체 이벤트-명령 사이클의 거래적 처리를 어떻게 강제할 수 있는가?

주요 결과

  • Rama는 Ravana와 동일한 정확성 보장을 달성한다—즉, 총 이벤트 순서 보장, 정확히 한 번만 처리되는 이벤트 처리, 정확히 한 번만 실행되는 명령 처리를 보장하지만 OpenFlow나 스위치에 대한 어떤 수정도 필요로 하지 않는다.
  • 프로토타입 구현 결과, 비장애 내성 컨트롤러 대비 다소 높은 성능 오버헤드만을 보이며 실세계 구현에 실용적이다.
  • 컨트롤러 복제본과 스위치 간에 강력한 일치성을 유지하여 컨트롤러 장애 발생 시 규칙 중복 또는 손실과 같은 네트워크 이상 현상을 방지한다.
  • 플로우 테이블 업데이트 및 패킷 인 메시지와 같은 기존 OpenFlow 기능을 활용함으로써 Rama는 기존 SDN 인fra구조와의 후행 호환성을 확보한다.
  • 네트워크 애플리케이션에 대해 완전히 투명하므로 수정되지 않은 애플리케이션이 장애 내성 환경에서 안정적으로 실행될 수 있다.
  • Rama의 오픈소스 배포(https://github.com/fvramos/rama)는 생산 수준의 장애 내성적인 SDN 분야에서의 광범위한 도입과 향후 연구를 지원한다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.