KR102020049B1 - 멀티 테넌트 클라우드 서비스의 서비스 품질을 보장하기 위한 스위치, 방법 및 상기 스위치를 포함하는 시스템 - Google Patents

멀티 테넌트 클라우드 서비스의 서비스 품질을 보장하기 위한 스위치, 방법 및 상기 스위치를 포함하는 시스템 Download PDF

Info

Publication number
KR102020049B1
KR102020049B1 KR1020140000815A KR20140000815A KR102020049B1 KR 102020049 B1 KR102020049 B1 KR 102020049B1 KR 1020140000815 A KR1020140000815 A KR 1020140000815A KR 20140000815 A KR20140000815 A KR 20140000815A KR 102020049 B1 KR102020049 B1 KR 102020049B1
Authority
KR
South Korea
Prior art keywords
flow
virtual machine
virtual
information
qos
Prior art date
Application number
KR1020140000815A
Other languages
English (en)
Other versions
KR20140091470A (ko
Inventor
최강일
이범철
이정희
박영호
이상민
이승우
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to US14/152,708 priority Critical patent/US9417901B2/en
Publication of KR20140091470A publication Critical patent/KR20140091470A/ko
Application granted granted Critical
Publication of KR102020049B1 publication Critical patent/KR102020049B1/ko

Links

Images

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 플로우 단위 및 가상 머신(Virtual Machine: VM) 단위로 서비스 품질(QOS)이 보장되는 멀티 테넌트 클라우드 서비스 제공 방법, 장치 및 시스템에 관한 것이다.
본 발명에 따른 동적 가상 플로우 스위치는 가상 플로우 제어기로부터, 복수의 컴퓨터 서버에서 동작하는 복수의 가상머신 각각에 대한 가상머신 QOS 정보와, 상기 가상 머신에 의해 생성된 플로우 각각에 대한 플로우 QOS 정보를 수신하여 저장하는 스위치 플로우 에이전트; 및 상기 가상 머신에 의해 생성된 플로우가 수신되면, 상기 플로우를 생성한 가상 머신에 대해 상기 저장된 가상 머신 QOS 정보와 상기 플로우에 대해 상기 저장된 플로우 QOS 정보에 근거하여 상기 플로우의 QOS 우선 순위를 결정하는 플로우 처리부를 포함할 수 있다.

Description

멀티 테넌트 클라우드 서비스의 서비스 품질을 보장하기 위한 스위치, 방법 및 상기 스위치를 포함하는 시스템{Switch and method for supporting QOS of Multi-Tenant Cloud Service and System having the same switch}
본 발명은 서버 가상화 환경에서 멀티 테넌트(multi-tenant) 클라우드 서비스의 서비스 품질(QOS)을 보장하는 방법 및 시스템에 관한 것으로서, 구체적으로는, 플로우 단위 및 가상 머신(Virtual Machine: VM) 단위로 서비스 품질(QOS)이 보장되는 멀티 테넌트 클라우드 서비스 제공 방법 및 시스템에 관한 것이다.
최근 들어 반도체 기술이 발전하면서 컴퓨터 프로세서의 성능이 고도로 향상되고, 멀티 코어 프로세서 기술이 발전하게 되면서, 하나의 컴퓨터 서버에서 동시에 작업할 수 있는 작업 양이 현저하게 증가하였다. 기업 또는 금융 분야의 사설 데이터 센터에서는 적게는 수십 대에서 많게는 수백 대의 컴퓨터 서버를 설치하여 기업 또는 금융 분야의 서비스(기업 재무, 금융, 증권 등등)를 제공하고 있다. 또한, 인터넷 데이터 센터(IDC)에서는 수백 대 또는 수천 대의 컴퓨터 서버를 한 장소에 설치하여 다양하고 안정적인 서비스(웹 서버, 메일 서버, 파일 서버, 비디오 서버, 클라우드 서버 등등)를 서로 다른 서비스 사용자에게 제공하고 있다. 이러한 멀티 테넌트 환경에서 서버를 통합 운영하여 비용을 줄이고, 관리를 간소화 하고자 하는 요구사항이 발생하게 되었다.
이러한 요구사항들을 만족시키기 위하여 서버 가상화(Server Virtualization) 개념이 등장하였는데, 서버 가상화 환경에서는 하나의 컴퓨터 서버에 하나 이상(여러 개 또는 수십, 수백 개)의 서로 다른 가상 머신이 존재할 수 있다. 따라서, 멀티 테넌트 서비스를 지원하는 복수의 가상 머신 및 이들 가상 머신에 의해 생성되는 플로우들에 대하여 가상 머신 및 플로우 단위로 QOS를 보장해줄 수 있는 방안이 필요하다.
따라서, 본 발명의 목적은 멀티 테넌트 서비스를 지원하는 복수의 가상 머신 및 이들 가상 머신에 의해 생성되는 플로우들에 대하여 가상 머신 및 플로우 단위로 QOS를 보장해줄 수 있는 동적 가상 플로우 스위치를 제공하는 것이다.
본 발명의 또다른 목적은 멀티 테넌트 서비스를 지원하는 복수의 가상 머신 및 이들 가상 머신에 의해 생성되는 플로우들에 대하여 가상 머신 및 플로우 단위로 QOS를 보장해줄 수 있는 네트워크 시스템을 제공하는 것이다.
본 발명의 또다른 목적은 동적 가상 플로우 스위치에서 가상 머신 및 플로우 단위로 QOS를 관리하는 방법을 제공하는 것이다.
본 발명의 일실시예에 따르면, 동적 가상 플로우 스위치가 제공된다. 동적 가상 플로우 스위치는, 가상 플로우 제어기로부터, 복수의 컴퓨터 서버에서 동작하는 복수의 가상머신 각각에 대한 가상머신 QOS 정보와, 상기 가상 머신에 의해 생성된 플로우 각각에 대한 플로우 QOS 정보를 수신하여 저장하는 스위치 플로우 에이전트; 및 상기 가상 머신에 의해 생성된 플로우가 수신되면, 상기 플로우를 생성한 가상 머신에 대해 상기 저장된 가상 머신 QOS 정보와 상기 플로우에 대해 상기 저장된 플로우 QOS 정보에 근거하여 상기 플로우의 QOS 우선 순위를 결정하는 플로우 처리부를 포함할 수 있다.
일실시예에서, 동적 가상 플로우 스위치는 L2 스위치 및 L3 스위치중 적어도 하나를 포함하고, 상기 스위치를 통해 상기 복수의 컴퓨터 서버와 연결될 수 있다.
일실시예에서, 가상머신 QOS 정보는 상기 가상 머신에서 제공하는 서비스 에 대한 실시간/비실시간 속성 정보, 높은/낮은 대역폭 요구사항 정보, 지연 민감/둔감 서비스 속성 정보, 서비스 트래픽의 방향성 정보 및 가상 머신 대역폭 정보중 적어도 하나를 포함할 수 있다.
일실시예에서, 플로우 QOS 정보는, 실시간/비실시간 속성 정보, 높은/낮은 대역폭 요구사항 정보, 지연 민감/둔감 서비스 속성 정보 및 서비스 트래픽의 방향성 정보중 적어도 하나를 포함할 수 있다.
일실시예에서, 가상머신 QOS 정보는 상기 가상머신이 가상 머신 매니저에 의해 생성될 때, 상기 가상 머신 매니저에 의해 설정되고 상기 가상 플로우 제어기에 전달될 수 있다.
일실시예에서, 플로우 QOS 정보는 가상 머신에 의해 상기 플로우 트래픽이 생성될 때 상기 생성된 플로우 트래픽이 상기 가상 플로우 제어기에 전달되고 상기 플로우 제어기가 상기 플로우에 대한 QOS 정보를 설정할 수 있다.
일실시예에서, 플로우 처리부는 상기 플로우를 생성한 가상 머신에 대한 가상 머신 QOS 정보중 적어도 하나와 일치하는 플로우 QOS 정보를 갖는 플로우가 우선적으로 처리될 수 있도록 상기 플로우의 QOS 우선 순위를 결정할 수 있다.
일실시예에서, 스위치 플로우 에이전트는 상기 가상머신 QOS 정보 및 상기 플로우 QOS 정보를 상기 가상 플로우 제어기로부터 주기적으로 수신하여 갱신할 수 있다.
본 발명의 일실시예에 따른 네트워크 시스템은, 복수의 가상 머신을 생성하고 상기 생성된 복수의 가상 머신 각각에 대한 QOS 정보를 설정하는 가상 머신 매니저; 상기 가상 머신 매니저로부터 상기 복수의 가상 머신 각각에 대한 가상 머신 QOS 정보를 수신 및 저장하고, 상기 가상 머신에 의해 생성되는 플로우에 대한 플로우 QOS 정보를 설정 및 저장하는 가상 플로우 제어기; 복수의 컴퓨터 서버로서, 각각이 상기 가상 머신 매니저에 의해 생성된 복수의 가상 머신중 적어도 일부를 실행시키고, 상기 가상 머신에 의해 생성된 플로우 트래픽이 신규 플로우 트래픽인 경우에 상기 신규 플로우 트래픽을 상기 가상 플로우 제어기에 전달하는 에지 플로우 에이전트를 구비하는, 복수의 컴퓨터 서버; 및 상기 가상 플로우 제어기로부터 상기 가상 머신 QOS 정보 및 상기 플로우 QOS 정보를 수신 및 저장하고, 상기 복수의 컴퓨터 서버로부터 플로우가 수신되면, 상기 플로우를 생성한 가상 머신 QOS 정보 및 상기 플로우 QOS 정보에 근거하여 상기 플로우의 QOS 우선 순위를 결정하여 처리하는 동적 가상 플로우 스위치를 포함할 수 있다.
일실시예에서, 네트워크 시스템은 상기 동적 가상 플로우 스위치를 복수개 포함할 수 있고, 복수의 동적 가상 플로우 스위치는 인트라넷 또는 인터넷을 통해 서로 연결될 수 있다.
일실시예에서, 동적 가상 플로우 스위치는 L2 스위치 및 L3 스위치중 적어도 하나를 통해 상기 복수의 컴퓨터 서버와 연결될 수 있다.
일실시예에서, 가상머신 QOS 정보는 상기 가상 머신에서 제공하는 서비스 에 대한 실시간/비실시간 속성 정보, 높은/낮은 대역폭 요구사항 정보, 지연 민감/둔감 서비스 속성 정보, 서비스 트래픽의 방향성 정보 및 가상 머신 대역폭 정보중 적어도 하나를 포함할 수 있다.
일실시예에서, 플로우 QOS 정보는, 실시간/비실시간 속성 정보, 높은/낮은 대역폭 요구사항 정보, 지연 민감/둔감 서비스 속성 정보 및 서비스 트래픽의 방향성 정보중 적어도 하나를 포함할 수 있다.
일실시예에서, 동적 가상 플로우 스위치는 상기 플로우를 생성한 가상 머신에 대한 가상 머신 QOS 정보중 적어도 하나와 일치하는 플로우 QOS 정보를 갖는 플로우가 우선적으로 처리될 수 있도록 상기 플로우의 QOS 우선 순위를 결정할 수 있다.
본 발명의 일실실예 따르면, 동적 가상 플로우 스위치에서 상기 수신된 플로우에 대한 QOS를 관리하는 방법이 제공된다. 상기 방법은, 상기 복수의 가상머신에 의해 생성된 플로우의 대역폭 사용량 총합을 산출하는 단계; 상기 플로우 대역폭 사용량 총합과, 상기 동적 가상 플로우 스위치와 상기 서버간 네트워크 대역폭을 비교하는 단계; 상기 플로우 대역폭 사용량 총합이 상기 네트워크 대역폭보다 큰 경우에, 상기 복수의 가상 머신 각각에 대해, 상기 가상 머신에 의해 생성된 플로우 대역폭 사용량 과 상기 가상 머신의 대역폭 설정값을 비교하는 단계; 상기 가상 머신에 의해 생성된 플로우 대역폭 사용량이 상기 가상 머신의 대역폭 설정값보다 큰 경우에, 상기 가상 머신에 의해 생성된 플로우 각각에 대해, 플로우 대역폭 사용량과 상기 플로우의 대역폭 설정값을 비교하는 단계; 및 상기 플로우 대역폭 사용량이 상기 플로우의 대역폭 설정값보다 큰 경우에, 상기 플로우를 생성한 가상 머신 QOS 정보 및 상기 플로우 QOS 정보에 근거하여 상기 플로우에 대한 QOS 우선순위를 결정하는 단계를 포함할 수 있다.
일실시예에서, 플로우에 대한 QOS 우선순위를 결정하는 단계는, 상기 플로우를 생성한 가상 머신에 대한 가상 머신 QOS 정보중 적어도 하나와 일치하는 플로우 QOS 정보를 갖는 플로우가 우선적으로 처리될 수 있도록 상기 플로우의 QOS 우선 순위를 결정하는 단계를 포함할 수 있다.
본 발명의 일실시예에 따르면, 가상 머신의 서비스 특성 및 플로우의 QOS 정보에 따라 가상 머신의 플로우마다 서로 다른 QOS 우선순위를 제공함으로써, 플로우 단위 및 가상 머신 단위로 QOS를 보장할 수 있다.
이에 따라, 멀티 테넌트 클라우드 서비스 환경에서, 전체 가상 머신 내의 플로우 수가 증가하더라도 동적 가상 플로우 스위치에서 유연하게 플로우별 및/또는 가상머신별 OQS 제공이 가능하다.
도 1은 본 발명의 일실시예에 따라 멀티 테넌트 클라우드 서비스 환경에서 서비스 품질(QOS)를 보장하기 위한 네트워크 시스템 구성도를 도시한다.
도 2는 본 발명의 일실시예에 따른 동적 가상 스위치의 구성을 도시한 블록도이다.
도 3은 본 발명의 일실시예에 따라 도 1에 도시된 네트워크 시스템에서 가상 머신에서 생성되는 플로우의 처리 과정을 도시한 흐름도이다.
도 4는 본 발명의 일실시예에 따라 에지 플로우 스위치를 구비한 컴퓨터 서버와 동적 가상 플로우 스위치를 연결하는 네트워크 인터페이스의 일예를 개념적으로 도시한 것이다.
도 5는 본 발명의 일실시예에 따른 동적 가상 플로우 스위치에 의해 수행되는 QOS 관리 방법을 도시한 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
또한, 본 명세서 및 청구항에서 사용되는 단수 표현은, 달리 언급하지 않는 한 일반적으로 "하나 이상"을 의미하는 것으로 해석되어야 한다.
또한, 본 명세서에서 사용되는 용어들중 "모듈", "부", "인터페이스"등은 일반적으로 컴퓨터 관련 객체를 의미하며, 예를 들어, 하드웨어, 소프트웨어 및 이들의 조합을 의미할 수 있다.
본 발명은 멀티 테넌트 클라우드 서비스 환경에서 동적 가상 플로우 스위치(dynamic virtual flow switch)를 이용하여 플로우 단위 및 가상 머신(Virtual Machine: VM) 단위로 서비스 품질(QOS) 정책을 적용함으로써 서로 다른 서비스 사용자들에 대한 QOS를 보장할 수 있는 시스템 및 방법을 제안한다.
멀티 테넌트 클라우드 서비스 환경에서 하나의 컴퓨터 서버에 설치된 여러 개(수십 또는 수백 개)의 가상 머신들이 하나 이상의 네트워크 장치를 공유하는 경우가 일반적이다. 하나 이상의 네트워크 장치가 하나 이상의 가상 머신에 의해 공유될 때, 각각의 가상 머신에 대해 네트워크 레벨에서 가상 머신이 서로를 간섭하지 않고 네트워크를 공유할 수 있도록 제공해야 한다. 이러한 문제를 해결하기 위한 기술이 네트워크 가상화(Network Virtualization) 기술이다
네트워크 가상화 기술에서 해결해야 하는 가장 큰 문제는 하나의 가상 머신에서 발생되는 네트워크 트래픽을 다른 가상 머신에서 발생되는 다른 네트워크 트래픽과 논리적으로 구분하여 주는 것이다. 이러한 네트워크 가상화 문제를 해결하기 위해 처음 도입된 기술은 Layer 2 VLAN(Virtual Local Area Network) 기술이다. Layer 2 VLAN 기술에서는 각각의 가상 머신에서 발생되는 네트워크 트래픽에 대해 첫 번째 단의 Layer 2 스위치에서 독립적인 VLAN ID를 가지도록 하여, 하나의 가상 머신에서 발생되는 네트워크 트래픽을 다른 가상 머신에서 발생되는 다른 네트워크 트래픽과 논리적으로 구분하여 준다. 이 기술은 기존 Layer 2 스위치의 변경을 최소화하기 때문에, 현재의 거의 모든 Layer 2 스위치에 적용되어 사용되고 있다. 그러나 Layer 2 VLAN 기술은 지원할 수 있는 가상 머신의 수가 최대 4096(VLAN ID는 12비트)개 밖에 되지 않는다는 한계가 있다. 또한, Layer 2 VLAN 기술은 동일 하이퍼바이저 내의 서로 다른 가상 머신 간의 네트워크 연결에 어려움이 있다는 문제점도 존재한다.
또 다른 기술은 Layer 2 VNTAG 기술이다. Layer 2 VNTAG 기술은 첫 번째 단의 Layer 2 스위치에서 독립적인 VNTAG를 추가하여, 하나의 가상 머신에서 발생되는 네트워크 트래픽을 다른 가상 머신에서 발생되는 다른 네트워크 트래픽과 논리적으로 구분하여 준다. Layer 2 VNTAG 기술은 L2 브리지를 확장할 수 있고, 가상 네트워크를 인식할 수 있다. 또한, 가상 인터페이스를 물리적인 포트처럼 개별적으로 설정할 수 있다는 장점이 있다. 그러나, L2 레벨에서 새로 추가된 VNTAG를 처리하는 기능이 하드웨어에 신규로 추가되어야 하고, VNTAG를 사용하기 위해서는 네트워크 내의 모든 Layer 2 스위치가 VNTAG를 지원해야 하는 단점이 존재한다.
네트워크 가상화와 관련하여, 최근에 새로이 등장한 기술은 소프트웨어 가상 스위치(Software Virtual Switch 또는 vSwitch)에 기반한 기술이다. 소프트웨어 가상 스위치 기술에서는 가상 머신을 관리하는 하이퍼바이저 내에 소프트웨어 가상 스위치(vSwitch)를 설치하여 가상 머신에서 발생된 플로우를 물리 네트워크 인터페이스로 스위치한다. 모든 출발 가상 머신에서 새로이 생성되는 모든 플로우에 대해, 출발 가상 머신이 속해 있는 하이퍼바이저 내의 가상 스위치(vSwitch)가 해당 플로우를 탐지하여 오픈플로우 컨트롤러(Openflow Controller)에 보고한다. 오픈플로우 컨트롤러는 수신된 플로우 정보를 바탕으로 신규 플로우 엔트리 및 플로우 ID를 생성하고, 목적지 서버에 대해 새로운 플로우 엔트리와 플로우 ID를 설정한다. 또한, 오픈플로우 스위치의 플로우 테이블을 생성하여 상기 컨트롤러에 의해 관리되는 모든 오픈플로우 스위치들에 신규 플로우 ID를 추가하는 메시지를 전송한다. 오픈플로우 스위치들은 오픈플로우 컨트롤러로부터 수신된 플로우 추가 메시지에 근거하여 새로운 플로우 테이블을 설정한다. 이제, 출발지 가상 스위치(vSwitch)는 플로우 ID로 인캡슐레이트된(encapsulated) 네트워크 트래픽을 전송한다. 오픈플로우 스위치는 플로우 ID로 인캡슐레이트된 네트워크 트래픽을 스위칭하여 도착지 가상 스위치(vSwitch)에 전달되도록 한다. 도착지 가상 스위치(vSwitch)는 플로우 ID로 인캡슐레이트된 네트워크 트래픽을 디캡슐레이트(decapsulate)하여 원래 네트워크 트래픽을 추출한다. 이와 같은 기술을 이용하여 모든 가상 머신에서 발생되는 모든 플로우를 단대단(End-to-End) 가상화해 줄 수 있는 장점이 있다.
하지만, 수백 수천 대의 가상 머신에서 동시에 발생되는 무수히 많은 신규 플로우에 대한 동적인 설정 및 해제를 오픈플로우 컨트롤러를 통해 제어하기에는 컨트롤러의의 제어 평면 처리 속도가 적절하지 않다. 또한, 해당 가상 스위치가 하이퍼바이저에서 수행되기 때문에 네트워크 인터페이스 속도가 10Gbps 이상으로 증가하고 있는 상황에서 하이퍼바이저에서 가상 스위치를 통해 처리해줄 수 있는 플로우 트래픽의 용량이 네트워크 인터페이스 속도(10Gbps 또는 그 이상)를 따라 잡기 어려운 점이 있다.
또한, 하나의 하이퍼바이저에서 관리하는 가상 머신의 수가 급격하게 증가하는 상황에서는 하이퍼바이저 내에서 처리해야 하는 플로우 개수가 기하급수적으로 증가한다. 따라서, 가상 스위치 내에서 기하급수적으로 늘어난 플로우를 인캡슐레이션(encapsulation)/디캡슐레이션(decapsulation)하는 성능을 보장하기 어려운 점이 있다.
또한, 가상화된 서버 환경에서 하나의 컴퓨터 서버 내에서 멀티 테넌트를 효과적으로 지원하기 위해서는 플로우 단위뿐만 아니라, 가상 머신 단위로도 네트워크 QOS를 보장해 줄 수 있어야 하며, 서로 다른 테넌트에서 발생된 데이터 트래픽이 서로를 간섭하는 현상이 발생하지 않도록 보장해 주어야 한다. 그러나 기존 기술들은 VLAN 단위 또는 플로우 단위로만 QOS를 제공하기 때문에 하나의 컴퓨터 서버 내에서 멀티 테넌트를 효과적으로 지원하기 어려운 점이 있다. 또한, 인캡슐레이션/디캡슐레이션을 통한 터널링 기법이 논리적인 멀티 테넌트를 제공하지만, 실제 네트워크에서 서로 다른 테넌트에서 발생된 데이터 트래픽이 서로를 간섭하는 현상이 발생하지 않도록 보장해 줄 수 있는 방법은 제공하지 못한다.
본 발명은 이러한 종래기술의 한계를 극복하기 위하여, 가상 머신의 네트워크 정보와 QOS 정책에 따라, 플로우 단위 및 가상 머신 단위로 관리하고, 가상 머신의 서비스 특성 및 플로우의 QOS 정보에 따라 가상 머신의 플로우마다 서로 다른 QOS 우선순위를 제공함으로써, 플로우 단위 및 가상 머신 단위로 QOS가 보장되고 멀티 테넌트가 지원되는 멀티 테넌트 클라우드 서비스를 제공하는 방안을 제시한다.
이하, 도면을 참조하여 본 발명의 실시예를 설명하겠다.
도 1은 본 발명의 일실시예에 따라 멀티 테넌트 클라우드 서비스 환경에서 서비스 품질(QOS)를 보장하기 위한 네트워크 시스템 구성도를 도시한다. 도시된 바와 같이, 네트워크 시스템은, 가상머신 매니저(VMM 또는 클라우드 OS, 1100), 가상 플로우 제어기 클러스터(1200), 복수의 컴퓨터 서버(1300 내지 1600) 및 동적 가상 플로우 스위치(1700, 1800)를 포함할 수 있다.
가상머신 매니저(VMM 또는 클라우드 OS, 1100)는 서버 가상화 환경에서 멀티 테넌트 서비스(웹 서버, 메일 서버, 파일 서버, 비디오 서버, 클라우드 서버, 기업 재무, 금융, 증권 등)를 제공하기 위해 복수의 컴퓨터 서버(1300 내지 1600) 상에 가상 머신(1310-1330, 1410-1430, 1510-1530, 1610-1630) 생성, 속성 변경, 제거, 이전 등의 가상 머신 관리를 수행한다.
가상머신 매니저(1100)는 새로운 가상 머신이 생성되거나 가상 머신의 상태 변경이 있을 때마다 생성 또는 변경되는 가상 머신 네트워크 정보 및 QOS 정보를 를 가상 플로우 제어기(1210 내지 1230)에 제공할 수 있다. 또한, 가상 플로우 제어기(1210 내지 1230)로부터 수신되는 가상 머신 네트워크 정보 및 QOS 정보를 근거로 해당 가상 머신 정보를 갱신할 수 있다.
가상 플로우 제어기 클러스터(1200)는 복수의 가상 플로우 제어기(1210 내지 1230)를 포함하는 형태로서, 관리자의 명령, 시스템 정책 또는 가상 머신 매니저(1100, 또는 클라우드 OS)의 명령에 따라 컴퓨터 서버(1300 내지 1600)상에서 동작하는 가상 머신의 관리(생성, 변경, 제거, 이전 등) 명령어 및 서버 자원 관리 명령어를 컴퓨터 서버 네트워크 및 플로우 관리 및 제어 인터페이스(1370 내지 1470)를 통하여 컴퓨터 서버(1300 내지 1400)의 하이퍼바이저(1340 내지 1440)에 전달한다. 이에 응답하여, 컴퓨터 서버(1300 내지 1400)의 하이퍼바이저(1340 내지 1440)는 해당 명령어에 따라 해당 가상 머신의 관리(생성, 변경, 제거, 이전 등) 및 서버 자원 관리 기능을 직접 수행하고, 해당 명령어 대한 결과 정보와 가상 머신 정보를 가상 플로우 제어기 클러스터(1200)에 전달할 것이다.
일실시예에서, 가상 플로우 제어기(1210 내지 1230)는 가상머신 매니저(1100)로부터 가상 머신 각각에 대한 속성 정보(네트워크 정보 및 가상머신 서비스 QOS 정보)를 수신하여 가상 머신 테이블에 저장 및 관리할 수 있다.
일실시예에서, 가상 머신 테이블에는 각각의 가상 머신에 대한 네트워크 정보(예, 가상 머신의 IP 주소, 가상 머신의 MAC 주소, 가상 머신의 NAT 변환 정보, 가상 머신 대역폭 정보 등)와 가상 머신에서 제공하는 서비스의 QOS 정보(예, 상기 가상 머신에서 제공하는 서비스 에 대한 실시간/비실시간 속성 정보, 높은/낮은 대역폭 요구사항 정보, 지연 민감/둔감 서비스 속성 정보, 서비스 트래픽의 방향성 정보 및 가상 머신 대역폭 정보 등)을 포함할 수 있다.
또한, 가상 플로우 제어기 클러스터(1200)는 컴퓨터 서버(1300 내지 1600) 상에서 동작하는 에지 플로우 에이전트(1350 내지 1650)로부터 신규 플로우 트래픽을 수신되면 해당 신규 플로우에 대한 플로우 정보를 생성하고 해당 가상 머신에 대한 플로우 테이블에 상기 생성된 가상 플로우 정보를 저장 및 관리한다.
일실시예에서, 플로우 테이블에는 각 플로우에 대한 네트워크 정보, 동작 정보(포워딩, 드랍, 에지 에이전트 전달, 필드 수정, 터널링 등등), QOS 정보(실시간/비실시간 속성 정보, 높은/낮은 대역폭 요구사항 정보, 지연 민감/둔감 서비스 속성 정보, 보안/비보안 서비스 데이터 속성 정보, 트래픽 방향성 정보(예, 가입자-서버, 서버-서버) 등)을 포함할 수 있다.
일실시예에서, 가상 플로우 제어기 클러스터(1200)는 네트워크 관리 명령어, 플로우 테이블 및 가상머신 테이블 정보를 컴퓨터 서버 네트워크 및 플로우 관리 및 제어 인터페이스(1370 내지 1670)를 통하여 컴퓨터 서버(1300 내지 1400)의 에지 플로우 에이전트(1350 내지 1650)에 전달할 수 있다. 이에 응답하여, 에지 플로우 에이전트(1350 내지 1650)는 해당 명령어에 따라 에지 플로우 스위치(1342 내지 1642)에 네트워크 관리 기능을 직접 수행하여 플로우 테이블 및 가상 머신 테이블 정보를 갱신하고, 해당 명령어에 대한 결과 정보를 가상 플로우 제어기 클러스터(1200)에 전달한다.
또한, 가상 플로우 제어기 클러스터(1200)는 네트워크 관리 명령어 및 플로우 테이블 및 가상머신 테이블 정보를 동적 가상 플로우 스위치 관리 및 제어 인터페이스(1710 및 1810)를 통해 동적 가상 플로우 스위치(1700, 1800) 상의 스위치 플로우 에이전트(1720, 1820)에 전달한다. 이에 응답하여, 스위치 플로우 에이전트(1720, 1820)는 해당 명령어에 따라 동적 가상 플로우 스위치(1700, 1800)에 네트워크 관리 기능을 직접 수행하여 플로우 테이블 및 가상 머신 테이블 정보를 갱신하고, 해당 명령어 수행 결과 정보를 가상 플로우 제어기 클러스터(1200)에 전달한다.
일실시예에서, 컴퓨터 서버(1300 내지 1400)는 L2(레이어 2) 스위치, L3(레이어 3) 스위치, 또는 L2 및 L3 스위치를 통하여 각각 하나 이상의 네트워크 인터페이스(1360~1460)로 동적 가상 플로우 스위치(1500, 1600)에 연결되고, 컴퓨터 서버 네트워크 및 플로우 관리 및 제어 인터페이스(1370 내지 1470)를 통하여 가상 플로우 제어기 클러스터(1200)와 연결된다.
일실시예에서, 컴퓨터 서버(1300)는, 복수의 가상머신(1310 내지 1330), 물리적 하드웨어(CPU, 메모리, 스토리지, 네트워크 인터페이스 등)를 가상화하여 논리적인 하드웨어(가상 CPU, 가상 메모리, 가상 스토리지, 가상 네트워크 인터페이스 등)를 가상 머신(1310 내지 1330)에 제공하는 하이퍼바이저(1340) 및 가상 플로우 제어기 클러스터(1200)와 컴퓨터 서버 네트워크 및 플로우 관리 및 제어 인터페이스(1370)를 통하여 통신하는 에지 플로우 에이전트(1350)를 포함할 수 있다.
가상머신(1310 내지 1330)은 하이퍼바이저(1340)에 의해 제공되는 논리적 하드웨어(가상 CPU, 가상 메모리, 가상 스토리지, 가상 네트워크 인터페이스) 상에서 동작되는 OS(예,LINUX, NetBSD, FreeBSD, Solaris, Wondows 등)이다. 가상 머신(1310~1330)은 해당 가상 머신에서 제공하는 서비스(웹 서버, 파일 서버, 비디오 서버, 클라우드 서버, 기업 재무, 금융, 증권 등등)에 따라 플로우를 생성하고, 각각의 플로우는 서비스에 따라 서로 다른 서비스 QOS 요구사항을 갖는다.
하이퍼바이저(1340)는 가상 머신의 관리(생성, 변경, 제거, 이전 등)와 서버 자원 관리 기능을 수행한다.
일실시예에서, 하이퍼바이저(1340)는 가상 머신들(1310 내지 1330)에서 생성되는 네트워크 트래픽을 처리하는 에지 플로우 스위치(1342)를 포함할 수 있다. 에지 플로우 스위치(1342)는 가상 머신들(1310 내지 1330)에 의해 생성되는 플로우 데이터를 분석하고 플로우 테이블 및 가상 머신 테이블 정보에 근거하여 플로우를 처리한다. 분석된 플로우 데이터가 플로우 테이블에 정의되지 않은 신규 플로우 데이터이면 에지 플로우 에이전트(1350)에 전달한다.
일실시예에서, 에지 플로우 에이전트(1350)는 컴퓨터 서버 네트워크 및 플로우 관리 및 제어 인터페이스(1370)를 통하여 가상 플로우 제어기 클러스터(1200)와 주기적으로 통신하여 에지 플로우 스위치(1342)내 플로우 테이블 및 가상 머신 테이블 정보를 갱신할 수 있다.
일실시예에서, 주기적으로 갱신되는 가상 머신 테이블은 가상 머신(1310 내지 1330) 각각에 대한 네트워크 정보와 가상 머신에서 제공하는 서비스의 QOS 정보(예, 상기 가상 머신에서 제공하는 서비스 에 대한 실시간/비실시간 속성 정보, 높은/낮은 대역폭 요구사항 정보, 지연 민감/둔감 서비스 속성 정보, 서비스 트래픽의 방향성 정보 및 가상 머신 대역폭 정보 등)을 포함할 수 있다.
일실시예에서, 주기적으로 갱신되는 플로우 테이블에는 각각의 플로우에 대한 네트워크 정보, 동작 정보(예, 패킷 포워딩, 패킷 드랍, 에지 에이전트 전달, 필드 수정, 터널링 등등), 플로우 QOS 정보(예, 실시간/비실시간 속성 정보, 높은/낮은 대역폭 요구사항 정보, 지연 민감/둔감 서비스 속성 정보, 보안/비보안 서비스 데이터 속성정보, 서비스 트래픽의 방향성 정보 등)을 포함할 수 있다.
상기 설명에서 도 1에 도시된 컴퓨터 서버(1300)를 중심으로 설명하였으나, 나머지 컴퓨터 서버(1400 내지 1600) 역시 컴퓨터 서버(1300)와 동일한 구성이므로 이들에 대한 세부 설명은 생략한다. 아울러, 도 1에는 4개의 컴퓨터 서버(1300 내지 1600)만이 도시되어 있으나 이는 단지 설명을 위한 예시적인 것이며 이보다 더 적거나 많은 수의 서버들이 존재할 수 있음을 해당 기술분야의 당업자들은 충분히 이해할 수 있을 것이다.
일실시예에서, 동적 가상 플로우 스위치(1700, 1800)는 L2 스위치 및 L3 스위치중 적어도 하나를 통해 복수의 컴퓨터 서버(1300 내지 1600)와 연결될 수 있다. 네트워크 시스템 내에 복수의 동적 가상 플로우 스위치가 포함될 수 있으며, 이들은 서로 인트라넷 또는 인터넷을 통해 연결될 수 있다.
또한, 동적 가상 플로우 스위치 관리 및 제어 인터페이스(1710, 1810)을 통하여 가상 플로우 제어기 클러스터(1200)와 연결된다.
본 발명의 일실시예에 따른 동적 가상 플로우 스위치(1700, 1800)는 가상 플로우 제어기 클러스터(1200)로부터 가상 머신 QOS 정보 및 플로우 QOS 정보를 수신하여 가상 머신 테이블 및 플로우 테이블에 저장하고, 컴퓨터 서버(1300 내지 1600)로부터 플로우가 수신되면, 해당 플로우를 생성한 가상 머신 QOS 정보 및 플로우 QOS 정보에 근거하여 해당 플로우의 QOS 우선 순위를 결정하여 처리하는 역할을 수행한다. 동적 가상 플로우 스위치의 구체적인 구성에 대하여는 도 2를 참조하여 후술한다.
도 2는 본 발명의 일실시예에 따른 동적 가상 플로우 스위치의 구성을 도시한 블록도이다. 도시된 바와 같이, 동적 가상 플로우 스위치(200)는 스위치 플로우 에이전트(210) 및 플로우 처리부(220)를 포함할 수 있다.
일실시예에서, 스위치 플로우 에이전트(210)는 가상 플로우 제어기 클러스터(1200)로부터 복수의 컴퓨터 서버(1300 내지 1600)에서 동작하는 복수의 가상머신 각각에 대한 가상머신 QOS 정보와, 상기 가상 머신에 의해 생성된 플로우 각각에 대한 플로우 QOS 정보를 수신하여 가상 머신 테이블 및 플로우 테이블에 저장 및 관리한다.
일실시예에서, 스위치 플로우 에이전트(210)는 동적 가상 플로우 스위치 관리 및 제어 인터페이스(1730)을 통하여 가상 플로우 제어기 클러스터(1200)와의 통신을 통해 수신한 신규 플로우 정보 및/또는 가상머신 정보를 바탕으로 동적 가상 플로우 스위치(1200) 내 저장된 플로우 테이블 및/또는 가상머신 테이블을 갱신할 수 있다. 일실시예에서, 스위치 플로우 에이전트(1200)는 주기적으로 가상 플로우 제어기 클러스터(1200)와 연결하여 신규 플로우 정보 및/또는 가상머신 정보를 수신할 수 있다.
일실시예에서, 주기적으로 갱신되는 가상 머신 테이블은 각각의 가상 머신에 대한 네트워크 정보와 가상머신에서 제공하는 서비스에 대한 QOS정보(시간/비실시간 속성 정보, 높은/낮은 대역폭 요구사항 정보, 지연 민감/둔감 서비스 속성 정보, 서비스 트래픽의 방향성 정보 및 가상 머신 대역폭 정보 등)을 포함할 수 있다.
또한, 주기적으로 갱신되는 플로우 테이블은 각각의 플로우에 대한 네트워크 정보, 동작 정보(포워딩, 드랍, 에지 에이전트 전달, 필드 수정, 서비스 트래픽의 방향성(가입자-서버/ 서버-서버 등), QOS 정보(실시간/비실시간 속성 정보, 높은/낮은 대역폭 요구사항 정보, 지연 민감/둔감 서비스 속성 정보, 서비스 트래픽의 방향성(가입자-서버/서버-서버 등) 정보 등)을 포함할 수 있다.
플로우 처리부(220)는 L2 스위치, L3 스위치, 또는 L2 및 L3 스위치를 통하여 각각 하나 이상의 네트워크 인터페이스(13610 내지 1660)로 컴퓨터 서버(1300 내지 1600)의 가상 머신(1310-1340, ...1610-1640))에서 생성된 플로우가 수신되면, 상기 플로우를 분석하여 플로우 정보를 추출하고, 해당 플로우를 생성한 가상 머신에 대한 QOS 정보와 상기 플로우에 대한 QOS 정보에 근거하여 해당 플로우의 QOS 우선 순위를 결정할 수 있다.
일실시예에서, 플로우 처리부(220)는 상기 플로우를 생성한 가상 머신에 대한 가상 머신 QOS 정보중 적어도 하나와 일치하는 플로우 QOS 정보를 갖는 플로우가 우선적으로 처리될 수 있도록 상기 플로우의 QOS 우선 순위를 결정할 수 있다.
동적 가상 플로우 스위치(200)는 네트워크 시스템 내의 컴퓨터 서버(1300 내지 1600)에서 동작하는 모든 가상 머신들에 대한 네트워크 정보 및 QOS 정보뿐만 아니라 스위치 내의 모든 플로우에 대한 QOS 정보를 스위치 플로우 에이전트(210)를 통해 주기적으로 갱신하기 때문에, 해당 가상 머신에서 제공하는 서비스의 유형에 따라 각각의 플로우에 대해서 최적의 QOS를 제공할 수 있다.
일예로, 플로우 처리부(220)는 각각의 가상 머신의 QOS 정보 중 서비스 트래픽의 방향성(가입자-서버, 서버-서버)을 구별하여 플로우를 처리하게 할 수도 있다. 해당 가상 머신의 서비스 트래픽의 방향성 속성이 서버-서버인 경우, 해당 플로우의 트래픽 속성이 서버-서버인 플로우에 대해 높은 우선순위를 주고, 해당 가상 머신의 서비스 트래픽의 방향성 속성이 서버-사용자인 경우, 해당 플로우의 트래픽 속성이 서버-사용자인 플로우에 대해 높은 우선 순위를 주어 플로우를 처리하게 하여 멀티 테넌트 클라우드 서비스 트래픽에 대해 서비스 품질을 제공할 수 있다.
또한, 해당 가상 머신의 서비스 속성이 실시간 서비스 인 경우, 가상 머신 플로우 트래픽 중에서 실시간 QOS 속성을 가지는 플로우에 대해 높은 우선 순위를 주어 플로우를 처리하게 함으로써 멀티 테넌트 클라우드 서비스 트래픽에 대해 서비스 품질을 제공할 수 있다.
또한, 가상 머신의 서비스 속성이 지연 민감 서비스 인 경우, 가상 머신 플로우 트래픽 중에서 지연 민감 QOS 속성을 가지는 플로우에 대해 높은 우선 순위를 주어 플로우를 처리하게 함으로써 멀티 테넌트 클라우드 서비스 트래픽에 대해 서비스 품질을 제공할 수 있다.
도 3은 본 발명의 일실시예에 따라 도 1에 도시된 네트워크 시스템에서 가상 머신에서 생성되는 플로우의 처리 과정을 도시한 흐름도이다.
단계(S3010)에서, 가상 머신 매니저는 서버 가상화 환경을 구축한 복수의 컴퓨터 서버를 통해 멀티 테넌트 서비스를 제공하기 위해 가상 머신을 생성 또는 이동하고, 생성 또는 이동된 가상 머신에 대한 네트워크 정보 및 QOS 정보를 설정하여 가상 플로우 제어기에 전달한다.
단계(S3020)에서, 가상 플로우 제어기는 가상 머신 매니저로부터 수신한 해당 가상 머신 네트워크 정보 및 OQS 정보를 가상 머신 테이블에 등록 및 관리한다.
단계(S3030)에서, 복수의 컴퓨터 서버내에서 동작하는 에지 플로우 에이전트 및 동적 가상 플로우 스위치에서 동작하는 스위치 플로우 에이전트는 가상 플로우 제어기로부터 가상 머신 각각에 대한 네트워크 정보 및 OQS 정보를 수신하여 각 컴퓨터 서버 및 동적 가상 스위치의 가상 머신 테이블에 저장한다.
단계(S3040)에서, 가상 머신이 자신이 제공하는 서비스(예, 웹 서버, 메일 서버, 파일 서버, 비디오 서버, 클라우드 서버, 기업 재무, 금융, 증권 등)에 따라 플로우를 생성하고, 생성된 플로우를 에지 플로우 스위치에 전달한다.
단계(S3050)에서, 에지 플로우 스위치는 수신된 플로우를 분석하여 플로우 정보를 추출한다.
단계(S3060)에서, 에지 플로우 스위치는 분석된 플로우가 신규 플로우인지 여부를 검사한다.
단계(S3070)에서, 상기 플로우가 신규 플로우이면, 에지 플로우 스위치는 추출된 신규 플로우 정보를 에지 플로우 에이전트를 통해 가상 플로우 제어기에 전달한다. 단계(S3080)에서, 가상 플로우 제어기는 해당 신규 플로우에 대한 QOS 정보를 설정하고 플로우 테이블에 등록한다.
단계(S3090)에서, 에지 플로우 에이전트 및 스위치 플로우 에이전트는 가상 플로우 제어기의 플로우 테이블 정보에 따라 에지 플로우 스위치의 플로우 테이블 및 동적 가상 플로우 스위치의 플로우 테이블을 각각 갱신한다.
단계(S3100)에서, 에지 플로우 스위치는 가상 머신에 의해 생성된 플로우를 L2 스위치, L3 스위치, 또는 L2 및 L3 스위치를 통하여 동적 가상 플로우 스위치에 전달한다.
단계(S3110)에서, 동적 가상 플로우 스위치는 에지 플로우 스위치로부터 수신된 플로우를 분석하여 플로우 정보를 추출하고, 추출된 플로우 정보를 이용하여 해당 플로우를 생성한 가상머신의 QOS 정보 및 해당 플로우의 QOS 정보를 파악하고 이에 근거하여 해당 플로우의 QOS 우선 순위를 결정한다.
도 4는 본 발명의 일실시예에 따라 에지 플로우 스위치를 구비한 컴퓨터 서버와 동적 가상 플로우 스위치를 연결하는 네트워크 인터페이스의 일예를 개념적으로 도시한 것이다. 도시되 바와 같이, 네트워크 인터페이스(400)를 통해 에지 플로우 스위치를 구비한 컴퓨터 서버에서 동작하는 가상 머신 VM1(401) 및 VM2(402)에 의해 생성된 다수의 플로우 Flow1 내지 Flow6 (403 내지 406)가 동적 가상 플로우 스위치에 전달될 수 있다. 이 때, 각각의 가상 머신 VM1(301) 및 VM2(302) 각각은 대역폭 설정값 BW1 및 BW2을 가질 수 있다. 또한, 플로우 Flow1 내지 Flow6 (303 내지 306) 각각은 플로우별 대역폭 설정값 BW3 내지 BW8을 가질 수 있다. 일예에서, 대역폭 설정값은 평균(average)값 또는 버스트 및 평균(burst and average) 값으로 나타낼 수 있다.
도 5는 본 발명의 일실시예에 따른 동적 가상 플로우 스위치에 의해 수행되는 QOS 관리 방법을 도시한 흐름도이다.
우선, 동적 가상 플로우 스위치는 스위치 내의 모든 가상머신에서 생성된 플로우(예, 도 4의 BW3+BW4+BW5+BW6+BW7+BW8))의 대역폭 사용량 총합을 계산한다(S510). 일실시예에서, 대역폭과 대역폭 사용량은 평균값 또는 버스트 및 평균값으로 나타낼 수 있다.
다음, 모든 플로우(예, 도 3의 BW3+BW4+BW5+BW6+BW7+BW8)의 대역폭 사용량 총합이 동적 가상 플로우 스위치와 컴퓨터 서버간 네트워크 인터페이스의 대역폭(BW0) 보다 큰지 비교한다(S520). 네트워크 인터페이스의 대역폭보다 작다면, 모든 플로우에 요구되는 대역폭을 충족시키므로, 상기 과정은 종료된다.
반면에, 플로우의 대역폭 사용량 총합이 네트워크 인터페이스의 대역폭(BW0) 보다 큰 경우에, 하나의 가상 머신에 대한 대역폭 사용량을 해당 가상 머신의 대역폭 설정 값과 비교한다(S530).
가상 머신의 대역폭 사용량과 대역폭 설정값의 비교 결과, 상기 가상 머신에 대한 대역폭 사용량이 상기 가상 머신에 대한 대역폭 설정값보다 큰 것으로 판단된 경우에, 해당 가상 머신 내의 플로우별 대역폭 사용량과 대역폭 설정값을 비교한다(S540).
특정 플로우 대역폭 사용량과 대역폭 설정값을 비교한 결과, 특정 플로우에 대한 대역폭 사용량이 해당 플로우에 대한 대역폭 설정값보다 크다면, 해당 가상 머신 플로우의 QOS 우선순위를 결정한다(S550).
해당 가상머신에 의해 생성된 모든 플로우에 대해 전술한 과정(S540 내지 S550)을 반복 수행한다(S560)
또한, 해당 가상머신에 의해 생성된 모든 플로우에 대해 상기 과정(S540 내지 S550)을 수행된 후에는 모든 가상 머신에 대해 전술한 과정(S530 내지 S550)을 반복 수행한다.
일실시예에서, 플로우를 생성한 가상 머신에 대한 가상 머신 QOS 정보중 적어도 하나와 일치하는 플로우 QOS 정보를 갖는 플로우가 우선적으로 처리될 수 있도록 플로우의 QOS 우선 순위를 결정할 수 있다. 예를 들어, 가상 머신의 QOS 정보중 서비스 트래픽의 방향성(가입자-서버, 서버-서버) 정보를 이용하여, 해당 가상 머신의 서비스 속성이 서버-서버인 경우에 해당 플로우의 트래픽 속성이 서버-서버인 플로우에 대해 높은 우선 순위를 주고, 해당 가상 머신의 서비스 속성이 서버-사용자인 경우에는 해당 플로우의 트래픽 속성이 서버-사용자인 플로우에 대해 높은 우선 순위를 주어 플로우를 처리하게 함으로써 멀티 테넌트 클라우드 서비스 트래픽에 대해 서비스 품질을 제공할 수 있다.
또한, 해당 가상 머신의 QOS 정보중 서비스 속성이 실시간 서비스인 경우, 가상 머신 플로우 트래픽 중에서 실시간 QOS 속성을 갖는 플로우에 대해 높은 우선 순위를 주어 플로우를 처리하게 함으로써, 멀티 테넌트 클라우드 서비스 트래픽에 대해 서비스 품질을 제공할 수 있다.
또한, 가상 머신의 QOS 정보중 서비스 속성이 지연 민감 서비스인 경우, 가상 머신 플로우 트래픽 중에서 지연 민감 QOS 속성을 가지는 플로우에 대해 높은 우선 순위를 주어 플로우를 처리하게 함으로써 멀티 테넌트 클라우드 서비스 트래픽에 대해 서비스 품질을 제공할 수 있다.
전술한 예 이외에도 가상머신의 속성 정보와 플로우 속성 정보를 이용하여 다양한 QOS 정책을 수행할 수 있으며, 본 발명이 특정 QOS 정책에 제한되는 것은 아니다.
본 발명의 실시예에 따른 방법 및 장치는 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 또한 상술한 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이제까지 본 발명에 대하여 그 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (16)

  1. 가상 플로우 제어기로부터, 복수의 컴퓨터 서버에서 동작하는 복수의 가상머신 각각에 대한 가상머신 QOS 정보와, 상기 가상 머신에 의해 생성된 플로우 각각에 대한 플로우 QOS 정보를 수신하여 저장하는 스위치 플로우 에이전트; 및
    상기 가상 머신에 의해 생성된 플로우가 수신되면, 상기 플로우를 생성한 가상 머신에 대해 상기 저장된 가상 머신 QOS 정보와 상기 플로우에 대해 상기 저장된 플로우 QOS 정보에 근거하여 상기 플로우의 QOS 우선 순위를 결정하는 플로우 처리부
    를 포함하는 동적 가상 플로우 스위치.
  2. 제1항에 있어서, 상기 동적 가상 플로우 스위치는 L2 스위치 및 L3 스위치중 적어도 하나를 포함하고, 상기 스위치를 통해 상기 복수의 컴퓨터 서버와 연결되는 동적 가상 플로우 스위치.
  3. 제1항에 있어서, 상기 가상머신 QOS 정보는 상기 가상 머신에서 제공하는 서비스 에 대한 실시간/비실시간 속성 정보, 높은/낮은 대역폭 요구사항 정보, 지연 민감/둔감 서비스 속성 정보, 서비스 트래픽의 방향성 정보 및 가상 머신 대역폭 정보중 적어도 하나를 포함하는 동적 가상 플로우 스위치.
  4. 제1항에 있어서, 상기 플로우 QOS 정보는, 실시간/비실시간 속성 정보, 높은/낮은 대역폭 요구사항 정보, 지연 민감/둔감 서비스 속성 정보 및 서비스 트래픽의 방향성 정보중 적어도 하나를 포함하는 동적 가상 플로우 스위치.
  5. 제1항에 있어서, 상기 가상머신 QOS 정보는 상기 가상머신이 가상 머신 매니저에 의해 생성될 때, 상기 가상 머신 매니저에 의해 설정되고 상기 가상 플로우 제어기에 전달되는 동적 가상 플로우 스위치.
  6. 제1항에 있어서, 상기 플로우 QOS 정보는 상기 가상 머신에 의해 플로우 트래픽이 생성될 때, 생성된 플로우 트래픽이 상기 가상 플로우 제어기에 전달되고 상기 플로우 제어기에 의해 상기 플로우에 대한 QOS 정보가 설정되는 것인 동적 가상 플로우 스위치.
  7. 제1항에 있어서, 상기 플로우 처리부는 상기 플로우를 생성한 가상 머신에 대한 가상 머신 QOS 정보중 적어도 하나와 일치하는 플로우 QOS 정보를 갖는 플로우가 우선적으로 처리될 수 있도록 상기 플로우의 QOS 우선 순위를 결정하는 동적 가상 플로우 스위치.
  8. 제1항에 있어서, 상기 스위치 플로우 에이전트는 상기 가상머신 QOS 정보 및 상기 플로우 QOS 정보를 상기 가상 플로우 제어기로부터 주기적으로 수신하여 갱신하는 동적 가상 플로우 스위치.
  9. 복수의 가상 머신을 생성하고 상기 생성된 복수의 가상 머신 각각에 대한 QOS 정보를 설정하는 가상 머신 매니저;
    상기 가상 머신 매니저로부터 상기 복수의 가상 머신 각각에 대한 가상 머신 QOS 정보를 수신 및 저장하고, 상기 가상 머신에 의해 생성되는 플로우에 대한 플로우 QOS 정보를 설정 및 저장하는 가상 플로우 제어기;
    복수의 컴퓨터 서버로서, 각각이 상기 가상 머신 매니저에 의해 생성된 복수의 가상 머신중 적어도 일부를 실행시키고, 상기 가상 머신에 의해 생성된 플로우 트래픽이 신규 플로우 트래픽인 경우에 상기 신규 플로우 트래픽을 상기 가상 플로우 제어기에 전달하는 에지 플로우 에이전트를 구비하는, 복수의 컴퓨터 서버; 및
    상기 가상 플로우 제어기로부터 상기 가상 머신 QOS 정보 및 상기 플로우 QOS 정보를 수신 및 저장하고, 상기 복수의 컴퓨터 서버로부터 플로우가 수신되면, 상기 플로우를 생성한 가상 머신 QOS 정보 및 상기 플로우 QOS 정보에 근거하여 상기 플로우의 QOS 우선 순위를 결정하여 처리하는 동적 가상 플로우 스위치
    를 포함하는 네트워크 시스템.
  10. 제9항에 있어서, 상기 네트워크 시스템은 상기 동적 가상 플로우 스위치를 복수개 포함하고, 상기 복수의 동적 가상 플로우 스위치는 인트라넷 또는 인터넷을 통해 서로 연결되는 네트워크 시스템.
  11. 제9항에 있어서, 상기 동적 가상 플로우 스위치는 L2 스위치 및 L3 스위치중 적어도 하나를 통해 상기 복수의 컴퓨터 서버와 연결되는 네트워크 시스템.
  12. 제9항에 있어서, 상기 가상머신 QOS 정보는 상기 가상 머신에서 제공하는 서비스 에 대한 실시간/비실시간 속성 정보, 높은/낮은 대역폭 요구사항 정보, 지연 민감/둔감 서비스 속성 정보, 서비스 트래픽의 방향성 정보 및 가상 머신 대역폭 정보중 적어도 하나를 포함하는 네트워크 시스템.
  13. 제9항에 있어서, 상기 플로우 QOS 정보는, 실시간/비실시간 속성 정보, 높은/낮은 대역폭 요구사항 정보, 지연 민감/둔감 서비스 속성 정보 및 서비스 트래픽의 방향성 정보중 적어도 하나를 포함하는 네트워크 시스템.
  14. 제9항에 있어서, 상기 동적 가상 플로우 스위치는 상기 플로우를 생성한 가상 머신에 대한 가상 머신 QOS 정보중 적어도 하나와 일치하는 플로우 QOS 정보를 갖는 플로우가 우선적으로 처리될 수 있도록 상기 플로우의 QOS 우선 순위를 결정하는 네트워크 시스템.
  15. 복수의 컴퓨터 서버에 연결되어 상기 서버에서 동작하는 복수의 가상머신에 의해 생성되는 플로우를 수신하여 처리하는 동적 가상 플로우 스위치에서 상기 수신된 플로우에 대한 QOS를 관리하는 방법에 있어서, 상기 방법은,
    상기 복수의 가상머신에 의해 생성된 플로우의 대역폭 사용량 총합을 산출하는 단계;
    상기 플로우의 대역폭 사용량 총합과, 상기 동적 가상 플로우 스위치와 상기 서버간 네트워크 대역폭을 비교하는 단계;
    상기 플로우의 대역폭 사용량 총합이 상기 네트워크 대역폭보다 큰 경우에, 상기 복수의 가상 머신 각각에 대해, 상기 가상 머신에 의해 생성된 플로우 대역폭 사용량 과 상기 가상 머신의 대역폭 설정값을 비교하는 단계;
    상기 가상 머신에 의해 생성된 플로우 대역폭 사용량이 상기 가상 머신의 대역폭 설정값보다 큰 경우에, 상기 가상 머신에 의해 생성된 플로우 각각에 대해, 플로우 대역폭 사용량과 상기 플로우의 대역폭 설정값을 비교하는 단계; 및
    상기 플로우 대역폭 사용량이 상기 플로우의 대역폭 설정값보다 큰 경우에, 상기 플로우를 생성한 가상 머신에 대한 가상 머신 QOS 정보 및 상기 플로우에 대한 플로우 QOS 정보에 근거하여 상기 플로우에 대한 QOS 우선순위를 결정하는 단계
    를 포함하는 플로우의 QOS 관리 방법.
  16. 제15항에 있어서, 상기 플로우에 대한 QOS 우선순위를 결정하는 단계는, 상기 플로우를 생성한 가상 머신에 대한 가상 머신 QOS 정보중 적어도 하나와 일치하는 플로우 QOS 정보를 갖는 플로우가 우선적으로 처리될 수 있도록 상기 플로우의 QOS 우선 순위를 결정하는 단계를 포함하는 플로우의 QOS 관리 방법.
KR1020140000815A 2013-01-11 2014-01-03 멀티 테넌트 클라우드 서비스의 서비스 품질을 보장하기 위한 스위치, 방법 및 상기 스위치를 포함하는 시스템 KR102020049B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/152,708 US9417901B2 (en) 2013-01-11 2014-01-10 Switch and method for guaranteeing quality of service of multi-tenant cloud service and system having the same switch

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020130003631 2013-01-11
KR20130003631 2013-01-11

Publications (2)

Publication Number Publication Date
KR20140091470A KR20140091470A (ko) 2014-07-21
KR102020049B1 true KR102020049B1 (ko) 2019-11-04

Family

ID=51738639

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140000815A KR102020049B1 (ko) 2013-01-11 2014-01-03 멀티 테넌트 클라우드 서비스의 서비스 품질을 보장하기 위한 스위치, 방법 및 상기 스위치를 포함하는 시스템

Country Status (1)

Country Link
KR (1) KR102020049B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11966768B2 (en) 2020-04-17 2024-04-23 Electronics And Telecommunications Research Institute Apparatus and method for multi-cloud service platform

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101994118B1 (ko) 2015-09-09 2019-09-30 한국전자통신연구원 범용 vnfm 및 vnf 관리 방법
KR102167686B1 (ko) 2015-11-25 2020-10-19 에스케이텔레콤 주식회사 트래픽 분배를 제어하는 장치 및 방법
KR101953546B1 (ko) * 2015-12-30 2019-06-03 한국전자통신연구원 가상 스위칭 장치 및 방법
KR102668521B1 (ko) * 2016-12-01 2024-05-23 한국전자통신연구원 가상 코어 자동 스케일링을 지원하는 병렬 처리 방법 및 이를 위한 장치
KR102544820B1 (ko) * 2018-05-23 2023-06-16 삼성에스디에스 주식회사 마이크로 서비스 아키텍처 기반의 서비스 시스템 및 상기 시스템에서의 멀티 테넌트 설정 관리 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101033519B1 (ko) * 2007-12-18 2011-05-09 삼성전자주식회사 이동 가상 망 운영자 간 비례적인 자원 할당을 위한 스케줄링 장치 및 방법
US8417800B2 (en) * 2010-07-16 2013-04-09 Broadcom Corporation Method and system for network configuration and/or provisioning based on open virtualization format (OVF) metadata

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11966768B2 (en) 2020-04-17 2024-04-23 Electronics And Telecommunications Research Institute Apparatus and method for multi-cloud service platform

Also Published As

Publication number Publication date
KR20140091470A (ko) 2014-07-21

Similar Documents

Publication Publication Date Title
US20230362237A1 (en) Distributed network services
US9417901B2 (en) Switch and method for guaranteeing quality of service of multi-tenant cloud service and system having the same switch
US20210344692A1 (en) Providing a virtual security appliance architecture to a virtual cloud infrastructure
EP3482532B1 (en) Automatic service function validation in a virtual network environment
US11397609B2 (en) Application/context-based management of virtual networks using customizable workflows
US20220407787A1 (en) System and method of detecting whether a source of a packet flow transmits packets which bypass an operating system stack
KR102020049B1 (ko) 멀티 테넌트 클라우드 서비스의 서비스 품질을 보장하기 위한 스위치, 방법 및 상기 스위치를 포함하는 시스템
US9749402B2 (en) Workload deployment with real-time consideration of global network congestion
US10725833B2 (en) Monitoring and optimizing interhost network traffic
US10067779B2 (en) Method and apparatus for providing virtual machine information to a network interface
US10148556B2 (en) Link aggregation group (LAG) support on a software-defined network (SDN)
EP3944081B1 (en) Data center resource monitoring with managed message load balancing with reordering consideration
KR20150038323A (ko) 폴리시 기반 데이터센터 네트워크 자동화를 제공하는 시스템 및 방법
KR102153585B1 (ko) 네트워크 기능 가상화 장치 및 방법
US9621469B2 (en) Apparatus and method for managing flow in server virtualization environment, and method for applying QOS
Paul et al. Service chaining for NFV and delivery of other applications in a global multi-cloud environment

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant