KR20220147620A - 멀티-네트워크 인터페이스- 가능 처리 시스템에서 인바운드 트래픽의 동적 밸런싱 - Google Patents
멀티-네트워크 인터페이스- 가능 처리 시스템에서 인바운드 트래픽의 동적 밸런싱 Download PDFInfo
- Publication number
- KR20220147620A KR20220147620A KR1020227032701A KR20227032701A KR20220147620A KR 20220147620 A KR20220147620 A KR 20220147620A KR 1020227032701 A KR1020227032701 A KR 1020227032701A KR 20227032701 A KR20227032701 A KR 20227032701A KR 20220147620 A KR20220147620 A KR 20220147620A
- Authority
- KR
- South Korea
- Prior art keywords
- vipas
- network adapters
- network
- inbound
- registering
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/20—Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/622—Layer-2 addresses, e.g. medium access control [MAC] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
- H04L61/103—Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
멀티-네트워크 인터페이스- 지원 처리 시스템에서 인바운드 트래픽의 동적 밸런싱(DYNAMICALLY BALANCING INBOUND TRAFFIC IN A MULTI-NETWORK INTERFACE-ENABLED PROCESSING SYSTEM)
여기에 설명된 예들은 복수의 가상 인터넷 프로토콜 주소들(VIPA들) 중 적어도 하나를 복수의 네트워크 어댑터들 각각에 등록하는 단계를 포함하는 컴퓨터 구현 방법을 제공한다. 상기 방법은 주소 결정 프로토콜을 사용하여 상기 복수의 네트워크 어댑터들 각각 사이에 인바운드 데이터를, 상기 복수의 네트워크 어댑터들 각각에 의해, 분배하는 단계를 더 포함한다.
여기에 설명된 예들은 복수의 가상 인터넷 프로토콜 주소들(VIPA들) 중 적어도 하나를 복수의 네트워크 어댑터들 각각에 등록하는 단계를 포함하는 컴퓨터 구현 방법을 제공한다. 상기 방법은 주소 결정 프로토콜을 사용하여 상기 복수의 네트워크 어댑터들 각각 사이에 인바운드 데이터를, 상기 복수의 네트워크 어댑터들 각각에 의해, 분배하는 단계를 더 포함한다.
Description
[0001] 여기에 설명된 실시예들는 일반적으로 처리 시스템들에 관한 것으로, 보다 구체적으로 멀티-네트워크 인터페이스 가능 처리 시스템(a multi-network interface-enabled processing system)에서 인바운드 트래픽(inbound traffic)을 동적으로 밸런싱하는 것에 관한 것이다.
[0002] 처리 시스템(예를 들어, 랩탑 컴퓨팅 시스템, 데스크탑 컴퓨팅 시스템, 서버 컴퓨팅 시스템, 태블릿 컴퓨팅 시스템 등)은 하나 또는 그 이상의 네트워크 인터페이스 카드들(NIC들)을 포함할 수 있고, 상기 하나 또는 그 이상의 NIC들은 상기 처리 시스템이 다른 처리 시스템들과 통신할 수 있게 한다. 일부 경우들에서, 상기 하나 또는 그 이상의 NIC들은 상기 처리 시스템이 네트워크(예를 들어, 인터넷, 근거리 네트워크, 광역 네트워크 등)에 연결할 수 있게 한다.
[0003] 본 발명의 실시예들은 멀티-네트워크 인터페이스 가능 처리 시스템에서 인바운드 트래픽을 동적으로 밸런싱하는 것에 관한 것이다.
[0004] 비제한적인 예시적인 컴퓨터 구현 방법은 복수의 가상 인터넷 프로토콜 주소들(VIPA들) 중 적어도 하나를 복수의 네트워크 어댑터들 각각에 등록하는 단계를 포함한다. 상기 방법은 주소 결정 프로토콜(an address resolution protocol)을 사용하여 상기 복수의 네트워크 어댑터들 각각 사이에 인바운드 데이터를, 상기 복수의 네트워크 어댑터들 각각에 의해, 분배하는 단계(distributing)를 더 포함한다.
[0005] 본 발명의 다른 실시예들은 컴퓨터 시스템들 및 컴퓨터 프로그램 제품들에서 전술한 방법의 특징들을 구현한다.
[0006] 추가적인 기술적 특징들 및 이점들은 본 발명의 기술들을 통해 실현된다. 본 발명의 실시예들 및 특징들은 본 명세서에 상세하게 설명되어 있고 청구된 주제의 일부로 간주된다. 더 나은 이해를 위해 상세한 설명과 도면을 참조한다.
[0007] 특정 엘리멘트나 동작에 대한 논의를 쉽게 식별하기 위해 참조 번호에서 가장 중요한 숫자는 해당 엘리멘트가 처음 도입된 도면 번호를 나타낸다.
[0008] 도 1은 여기에 설명된 하나 또는 그 이상의 실시 예들에 따른 처리 시스템의 블록도를 도시한다.
[0009] 도 2는 일 실시예에 따른 인바운드 로드 밸런싱을 수행하기 위한 방법을 예시한다.
[0010] 도 3은 본 명세서에 설명된 하나 또는 그 이상의 실시 예들에 따른 라운드 로빈 기술에 따라 할당된 가상 인터넷 프로토콜 주소를 갖는 다수의 개방형 시스템 어댑터들을 갖는 처리 시스템의 블록도를 도시한다.
[0011] 도 4는 본 명세서에 기술된 하나 또는 그 이상의 실시 예들에 따른 라운드 로빈 기술에 따라 할당된 가상 인터넷 프로토콜 주소를 갖는 다수의 개방형 시스템 어댑터들을 갖는 처리 시스템의 블록도를 도시한다.
[0012] 도 5는, 여기에 설명된 하나 또는 그 이상의 실시 예들에 따른 로드 밸런싱 기술에 따라 가상 인터넷 프로토콜 주소가 재할당된 개방형 시스템 어댑터들을 갖는, 도 4의 처리 시스템의 블록도를 도시한다.
[0013] 도 6은 여기에 설명된 하나 또는 그 이상의 실시 예들에 따라 현재 설명된 기술을 구현하기 위한 처리 시스템의 블록도를 도시한다.
[0014] 여기에 묘사된 도면들은 예시이다. 본 발명의 범위를 벗어남이 없이 도면들 또는 거기에 설명된 동작들에 대한 많은 변형들이 있을 수 있다. 예를 들어 작업들을 다른 순서로 수행하거나 작업들을 추가, 삭제 또는 수정할 수 있다. 또한, "결합된"이라는 용어 및 그 변형은 2개의 엘리멘트들 사이에 통신 경로를 갖는 것을 설명하며, 엘리멘트들 사이에 개재 엘리멘트들/연결들이 없는 엘리멘트들 사이의 직접적인 연결을 의미하지 않다. 이러한 모든 변형들은 사양의 일부로 간주된다.
[0008] 도 1은 여기에 설명된 하나 또는 그 이상의 실시 예들에 따른 처리 시스템의 블록도를 도시한다.
[0009] 도 2는 일 실시예에 따른 인바운드 로드 밸런싱을 수행하기 위한 방법을 예시한다.
[0010] 도 3은 본 명세서에 설명된 하나 또는 그 이상의 실시 예들에 따른 라운드 로빈 기술에 따라 할당된 가상 인터넷 프로토콜 주소를 갖는 다수의 개방형 시스템 어댑터들을 갖는 처리 시스템의 블록도를 도시한다.
[0011] 도 4는 본 명세서에 기술된 하나 또는 그 이상의 실시 예들에 따른 라운드 로빈 기술에 따라 할당된 가상 인터넷 프로토콜 주소를 갖는 다수의 개방형 시스템 어댑터들을 갖는 처리 시스템의 블록도를 도시한다.
[0012] 도 5는, 여기에 설명된 하나 또는 그 이상의 실시 예들에 따른 로드 밸런싱 기술에 따라 가상 인터넷 프로토콜 주소가 재할당된 개방형 시스템 어댑터들을 갖는, 도 4의 처리 시스템의 블록도를 도시한다.
[0013] 도 6은 여기에 설명된 하나 또는 그 이상의 실시 예들에 따라 현재 설명된 기술을 구현하기 위한 처리 시스템의 블록도를 도시한다.
[0014] 여기에 묘사된 도면들은 예시이다. 본 발명의 범위를 벗어남이 없이 도면들 또는 거기에 설명된 동작들에 대한 많은 변형들이 있을 수 있다. 예를 들어 작업들을 다른 순서로 수행하거나 작업들을 추가, 삭제 또는 수정할 수 있다. 또한, "결합된"이라는 용어 및 그 변형은 2개의 엘리멘트들 사이에 통신 경로를 갖는 것을 설명하며, 엘리멘트들 사이에 개재 엘리멘트들/연결들이 없는 엘리멘트들 사이의 직접적인 연결을 의미하지 않다. 이러한 모든 변형들은 사양의 일부로 간주된다.
[0015] 본 발명의 하나 또는 그 이상의 실시 예들은 멀티-네트워크 인터페이스 가능 처리 시스템(a multi-network interface-enabled processing system)에서 인바운드 트래픽을 동적으로 밸런싱하기 위해 제공된다. 일부 환경들에서, 처리 시스템들은 중복성을 위해 가상 근거리 네트워크(VLAN)에서, 네트워크 어댑터들이라고도 하는, 다수의 네트워크 인터페이스 카드들(NIC들)로 구성된다. 여기에 설명된 것들과 같은, 네트워크 어댑터들은 주소 결정 프로토콜(Address Resolution Protocol: ARP) 오프로드 지원을 이용할 수 있다. 그러한 예로, IBM의 z/OS 네트워크 환경은 개방형 시스템 어댑터들(OSA들)을 네트워크 어댑터들로 이용한다. 일부 환경들에서, 다수의 가상 인터넷 프로토콜 주소들(VIPA들)은 다수의 애플리케이션들(예: 네트워크 어댑터)을 나타내며 네트워크 어댑터 고장 발생 시 연결 손실을 방지한다.
[0016] 도 1은 본 발명의 실시 예들에 따른 처리 시스템(102)의 블록도를 도시한다. 이 예의 처리 시스템(102)은 처리 디바이스(104) 및 메모리(106)를 포함한다. 본 발명의 실시 예들에 따르면, 여기에 설명된 기술들은 하드웨어와 프로그래밍의 조합으로 구현될 수 있다. 상기 프로그래밍은 유형의 메모리에 저장된 프로세서 실행 가능 명령들일 수 있고, 상기 하드웨어는 이들 명령들을 실행하기 위한 처리 디바이스(104)를 포함할 수 있다. 따라서, 시스템 메모리(예를 들어, 메모리(106))는 처리 디바이스(104)에 의해 실행될 때 여기서 설명된 기술을 구현하는 프로그램 명령들을 저장할 수 있다.
[0017] 처리 시스템(102)은 또한 하나 또는 그 이상의 네트워크 어댑터들(예를 들어, 도 6의 네트워크 어댑터(616))를 포함할 수 있다. 도 1의 예에서, 처리 시스템(102)은 다음과 같은 개방형 시스템 어댑터들(OSA들)로 지칭되는 2개의 네트워크 어댑터들을 포함한다: 네트워크 어댑터(108), 네트워크 어댑터(110). 네트워크 어댑터(108), 네트워크 어댑터(110) 각각은 도 1의 화살표에 의해 도시된 바와 같이 네트워크(112)를 통해 네트워크 디바이스(116)에 통신 가능하게 연결되며, 네트워크(112)는 유선 및/또는 무선 링크들을 나타낼 수 있다. 본 기술은 다양한 수들 및/또는 유형들의 네트워크 어댑터들과 함께 사용될 수 있고, 예를 들어 3개의 OSA들, 4개의 OSA들, 5개의 OSA들, 6개의 OSA들 등을 포함하는, 추가 OSA들이 사용될 수 있음을 이해해야 한다. 예를 들어, 중복성을 위해 둘 이상의 네트워크 어댑터들을 이용하는 것이 유용할 수 있는데, 이는 로드 밸런싱, 탄력성(load balancing, resilience), 등을 제공한다. 로드 밸런싱을 위해, 네트워크 트래픽은 다수의 인터페이스들에 걸쳐 분할될 수 있고, 탄력성 때문에, 네트워크 어댑터의 고장이 처리 시스템 네트워크 액세스를 차단하지 않는데, 이는 다른 네트워크 어댑터가 네트워크 통신을 지원할 수 있기 때문이 다.
[0018] 네트워크(112)는, 예를 들어, 케이블 네트워크, 공중 네트워크(예를 들어, 인터넷), 사설 네트워크, 무선 네트워크, 셀룰러 네트워크, 또는 모든 다른 적절한 사설 및/ 또는 공중 네트워크들과 같은, 다양한 유형들의 적절한 통신 네트워크들을 나타낸다. 또한, 네트워크(112)는 그와 연관된 모든 적절한 통신 범위를 가질 수 있고, 예를 들어 글로벌 네트워크(예를 들어, 인터넷), 대도시 지역 네트워크(MAN), 광역 네트워크(WAN), 근거리 네트워크(LAN), 또는 개인 영역 네트워크(PAN)를 포함할 수 있다. 또한, 네트워크(112)는 네트워크 트래픽이 운반될 수 있는 모든 유형의 매체들을 포함할 수 있고, 이들 매체들은 동축 케이블, 트위스트 페어 와이어, 광섬유, 하이브리드 광섬유 동축(HFC) 매체, 마이크로파 지상파 트랜시버, 무선 주파수 통신 매체, 위성 통신 매체, 또는 이들의 모든 조합을 포함하나, 에들에 국한되지는 않는다. 일부 예들에서, 네트워크(112)는 스위치 패브릭(114)을 포함하며, 스위치 패브릭(114)은, 처리 시스템(102)과 네트워크 디바이스(116) 사이와 같이, 디바이스들 사이에서 네트워크 트래픽/데이터를 스위칭 한다.
[0019] 도 1의 예에서, 도시된 바와 같이 구성되고 배열된 처리 시스템(102)은 동일한 서브넷 상의 네트워크 어댑터(108) 및 네트워크 어댑터(110)를 이용한다. 그러한 구성은 정적 라우팅(즉, 동적 라우팅이 사용되지 않는 경우)에 유용하다. 이를 통해 평면 층-2 네트워크를 사용할 수 있다. 처리 시스템(102)은 멀티-홈 호스트 접근 방식(a multi-homed host approach)을 이용할 수 있는데, 멀티-홈 호스트 접근 방식에서 인터페이스들 각각(즉, 네트워크 어댑터(108), 네트워크 어댑터(110))은 처리 시스템(102)에서 실행되는 스택 및 네트워크(112)에 개별 인터넷 프로토콜(IP) 인터페이스들로서 제공된다. 그러한 예들에서, 각 스택의 네트워크 층은, 개별적으로 액세스될 수 있고 제어될 수 있는, 다수의 IP 인터페이스들을 본다(see). 네트워크(112)도 또한, 개별적으로 라우팅 될 수 있는, 다수의 IP 인터페이스들을 본다. 상기 IP 인터페이스들 각각은 자신의 IP 주소를 사용한다. 다른 예들에서, 처리 시스템(102)은 다른 서브넷들 상의 네트워크 어댑터(108), 네트워크 어댑터(110)를 이용할 수 있다. 이 접근 방식은 동적 라우팅이 사용되는 상황에서도 유용할 수 있다.
[0020] IBM의 z/OS 네트워크 환경에서는, 중복성을 위해 단일 VLAN(가상 근거리 네트워크)에서 다수의 네트워크 어댑터들(예: 네트워크 어댑터(108), 네트워크 어댑터(110))를 구성하는 것이 바람직할 수 있다. 또한 다수의 VIPA들(가상 IP 주소들)을 사용하여 다수의 애플리케이션들을 나타내고 네트워크 어댑터 고장 발생 시 연결 손실을 방지하는 것이 바람직할 수 있다. 이것은 스택 상의 각 VIPA가 모든 네트워크 어댑터(예를 들어, 네트워크 어댑터(108), 네트워크 어댑터(110) 중 어느 하나)로부터 도달될 수 있기 때문에 작동한다(work). 상기 VIPA들이 네트워크 어댑터(108), 네트워크 어댑터(110)과 동일 서브넷에 정의된 경우, 네트워크 어댑터(108), 네트워크 어댑터(110) 중 하나는 ARP(Address Resolution Protocol) 요청들에 응답하는 단계 및 상기 VIPA들을 위해 무상 ARP들(gratuitous ARPs)을 전송하는 단계를 책임진다. 이 네트워크 어댑터(예: 네트워크 어댑터(108), 네트워크 어댑터(110) 중 하나)는 "VIPA 소유자"라고 하며, VIPA 소유자이기 때문에, 그 것의 MAC 주소(가상 또는 실제)는 네트워크(112)에 등록된 VIPA들 각각에 대한 MAC 주소로서 네트워크(112)의 나머지 사용자가 볼 수 있다.
[0021] 단일 네트워크 어댑터는 VIPA 소유자로서 역할을 하기 때문에, 어느 하나의 (any) VIPA로 향하는 모든(all) 인바운드 패킷들은, 인바운드 트래픽에 달리 이용 가능 할 수 있는 동일 서브넷 상의 모든 다른 OSA들은 제외하고, VIPA 소유자 역할을 하는 하나의 네트워크 어댑터를 통과한다(traverse through). 이로 인해 상기 단일 네트워크 어댑터가 과부하 되어, 상기 네트워크 어댑터 어댑터의 패킷 상실, 성능 문제 및 불균형 사용 가능성이 발생할 수 있다.
[0022] 일부 기존 접근 방식은 링크 집합(link aggregation)을 이용한다. 그러나 링크 집합은 IBM에서 z/OS에서 지원하는 기능이 아니다. 일부 다른 기존 접근 방식은 OSPF(Open Shortest Path First)와 같은 층 3 동적 라우팅 프로토콜을 사용하여 OSA들 각각을 통해 VIPA 주소를 광고한다. 그러나 동적 라우팅을 구현함으로써 z/OS에 부과되는 처리 및 관리 부담들으로 인해 이 솔루션은 더 작고 덜 복잡한 네트워크와 같은 솔루션에는 바람직하지 않다.
[0023] 따라서, 본 기술은 z/환경의 OSA들에 걸쳐 인바운드 트래픽의 밸런싱을 위한 기술을 제공함으로써 기존 접근 방식의 이들 단점들과 다른 단점들을 해결한다. 보다 구체적으로, VIPA 소유자 기능은 VIPA와 동일 서브넷에 존재하는 단일 적격 네트워크 어댑터에 각 VIPA를 등록(TCP/IP(Transmission Control Protocol/Internet Protocol) 사용)함으로써 구현된다. 본 명세서에 기술된 하나 또는 그 이상의 실시 예들에 따르면, 인바운드 트래픽은 적격 네트워크 어댑터들에 걸쳐 적용 가능한 VIPA들을 등록함으로써 이용 가능 네트워크 어댑터들에 걸쳐 확산된다. 예를 들어, 적용 가능 VIPA들이 적격 네트워크 어댑터들에 걸쳐 균등하게 등록될 수 있다(예: 동일 서브넷에 있는 100개의 VIPA들 및 4개의 OSA 어댑터들이 있는 경우, 25개의 VIPA들이 각 네트워크 어댑터에 등록/할당된다). 일부 예들에서, 각 VIPA에 대한 인바운드 패킷 카운트 또는 데이터 카운트는, 예를 들어, 설정 시간 간격(a set time interval) 동안 모니터링된다. 개별 VIPA들은 상기 네트워크 어댑터들에 걸쳐 패킷/데이터 카운트들을 더 잘 밸런싱 하기 위해 다른 OSA에 다시 등록할 수 있다. 일부 경우들에서, 밸런싱은 바이트 카운트들, 서비스 클래스들, 다양한 인터페이스들의 보안 분류들, 등에 기초할 수 있다.
[0024] 도 2는 일 실시예에 따른 인바운드 로드 밸런싱을 수행하기 위한 방법(200)을 예시한다. 방법(200)은 모든 적절한 처리 시스템(예를 들어, 처리 시스템(102), 처리 시스템(600) 등), 모든 적절한 처리 디바이스(예를 들어, 처리 디바이스(104), 처리 디바이스(602) 등) 및/또는 이들의 조합에 의해 수행될 수 있다. 방법(200)은 도 1, 도 3, 도 4 및 도 5를 참조하여 설명되지만, 이들에 의해 제한되지는 않다. 특히, 도 3, 도 4 및 도 5는 4개의 네트워크 어댑터들 사이에 등록된 7개의 VIPA를 갖는 4개의 네트워크 어댑터들의 다양한 실시예들을 도시한다. 이들 3개의 도면들을 참조하면, 엘리멘트 번호의 선행 숫자가 도면 번호와 관련하여 다르지만, 그 외에는 3개의 도면들은 동일 네트워크 어댑터들/VIPA들을 묘사하고 참조한다. 예를 들어, VIPA(310), VIPA(410) 및 VIPA(510)는 다른 실시예들에서 동일 VIPA이다. 유사하게, 네트워크 어댑터(302), 네트워크 어댑터(402), 및 네트워크 어댑터(502)도 다른 실시예들에서 동일 OSA이다.
[0025] 블록(202)에서, 방법(200)은 복수의 가상 인터넷 프로토콜 주소들(VIPA들) 중 적어도 하나를 복수의 개방형 시스템 어댑터들(OSA들) 각각에 등록하는 처리 시스템(102)을 포함한다. 등록은 네트워크 어댑터의 OSA 인터페이스가 무상 ARP 패킷들(gratuitous ARP packets)을 전송하고 등록된 VIPA 주소들에 대한 ARP 요청들에 응답함을 의미한다. 블록(204)에서, 방법(200)은 주소 결정 프로토콜(무상 및 응답들)을 사용하여 상기 복수의 네트워크 어댑터들 각각 사이에 인바운드 데이터를, 복수의 네트워크 어댑터들 각각에 의해, 분배하는 단계(distributing)를 포함한다. 블록(202) 및 블록(204)의 특징들 및 기능들은 이제 도 도 3, 도 4 및 도 5를 참조하여 설명된다.
[0026] 도 3을 예로서 참조하면, 4개의 개방형 시스템 어댑터들(즉, 네트워크 어댑터(302), 네트워크 어댑터(304), 네트워크 어댑터(306), 네트워크 어댑터(308))를 갖는 처리 시스템(300)의 블록도가 도시되어 있다. 처리 시스템(300)은 또한 도시된 바와 같이 네트워크 어댑터(302), 네트워크 어댑터(304), 네트워크 어댑터(306), 네트워크 어댑터(308)에 등록된 7개의 가상 IP 주소들(즉, VIPA 310, VIPA 312, VIPA 314, VIPA 316, VIPA 318, VIPA 320, VIPA 322)를 포함한다. 이 예에서, 상기 VIPA들은 여기에 설명된 하나 또는 그 이상의 실시 예들에 따른 라운드 로빈 등록(round-robin registration)에 기초하여 등록된다. 즉, VIPA(310)는 네트워크 어댑터(302)에 할당되고, 그 다음 VIPA(312)가 네트워크 어댑터(304)에 등록되며, VIPA(314)가 네트워크 어댑터(306)에 등록되고, VIPA(316)가 네트워크 어댑터(308)에 등록된다. 일단 네트워크 어댑터들 각각에 VIPA가 등록되면, 추가 VIPA들에 대해 라운드 로빈 등록이 반복된다. VIPA(318)는 네트워크 어댑터(302)에 등록되고, VIPA(320)는 네트워크 어댑터(304)에 등록되며, 그리고 VIPA(322)는 네트워크 어댑터(306)에 등록된다.
[0027] 다른 실시예에 따르면, 바이트-카운트 등록(byte-count registration)이 수행된다. 바이트 카운트 등록은 라운드 로빈 등록으로 시작하고(도 3 참조), 그 다음 인바운드 바이트 카운트가 설정 시간 간격(a set time interval) 동안 측정된다. 상기 설정 시간 간격이 지나면, 상기 OSA별 인-바운드 바이트 카운트는 비교된다. 예를 들어, 만일 합계들 간의 차이가 임계값을 초과하면, 재-밸런싱이 다시 시작된다. 재-밸런싱 중에, 하나 또는 그 이상의 VIPA들이 그들의 등록을 다른 네트워크 어댑터로 이동할 수 있으므로 상기 VIPA들의 인-바이트 카운트들은 네트워크 어댑터들 간에 보다 균등하게 균형을 이룰 수 있다. 일부 예들에서, 상기 인-바운드 바이트 카운트는 비-VIPA 패킷들을 고려할 수 있다. 일부 예들에서, 상기 VIPA를 이동하면 이동한 네트워크 어댑터가 무상 ARP를 수행하여 상기 VIPA에 대한 인바운드 트래픽이 이전 소유자 대신 해당 어댑터로 이동하기 시작한다.
[0028] 도 4 및 도 5는 4개의 개방형 시스템 어댑터들(즉, 네트워크 어댑터 402/네트워크 어댑터 502, 네트워크 어댑터 404/네트워크 어댑터 504, 네트워크 어댑터 406/네트워크 어댑터 506, 네트워크 어댑터 408/네트워크 어댑터 508)를 갖는 처리 시스템(400)의 블록도를 함께 도시한다. 도 3의 예와 같이, 도 4의 네트워크 어댑터들은 여기서 기술된 바와 같은 라운드 로빈 등록 방식을 사용하여 먼저 등록된다. 그러나, 이 예에서, VIPA(410), VIPA(412), VIPA(414), VIPA(416), VIPA(418), VIPA(420), VIPA(422) 각각에 대해 설정 시간 간격(예: 20초, 45초, 1분, 2분, 5분 등) 동안 인바운드 데이터가 모니터링된다.
[0029] 즉, 도 2의 블록 204에 도시된 바와 같이, 방법(200)은 복수의 OSA들(즉, 네트워크 어댑터(402)/네트워크 어댑터(502), 네트워크 어댑터(404)/네트워크 어댑터(504), 네트워크 어댑터(406)/네트워크 어댑터(506), 네트워크 어댑터(408)/네트워크 어댑터 508)) 각각 사이에 인바운드 데이터를 분배하는 처리 시스템(102)을 포함한다. 인바운드 데이터가 복수의 OSA 각각에 분배됨에 따라, 처리 시스템(102)은 얼마나 많은 인바운드 데이터가 각 VIPA(예를 들어, VIPA 410, VIPA 412, VIPA 414, VIPA 416, VIPA 418, VIPA 420, VIPA 22)에서 수신되는지를 모니터링한다. 인바운드 데이터의 양(즉, 인바운드 바이트 카운트)이 도 4 및 도 5의 각 VIPA에 대해 결정되고 도시된다. 설정 시간 간격(조정 가능)이 지난 후, 상기 VIPA들은 각 네트워크 어댑터에 균형 잡힌 로드들을 제공하기 위해 다른 네트워크 어댑터들에 재-등록될 수 있다. 예를 들어, 도 4에 도시된 바와 같이, 네트워크 어댑터(406)는 다음과 같은 2개의 등록된 VIPA들을 갖는다: VIPA(414)(인바운드 데이터의 600MB의 인바운드 바이트 카운트를 가짐) 및 VIPA(422)(인바운드 데이터의 300MB의 인바운드 바이트 카운트를 가짐). 관찰할 수 있는 바와 같이, 이들은 가장 큰 인바운드 바이트 카운트들을 갖는 두개의 VIPA들을 나타낸다. 그 결과, 네트워크 어댑터(406)는 네트워크 어댑터(402), 네트워크 어댑터(404), 및 네트워크 어댑터(406)에 비해 과부하가 된다. 따라서, 도 4의 VIPA들은 도 5에 도시된 바와 같이 인바운드 데이터의 밸랜싱을 맞추기 위해 그들 각각의 인바운드 바이트 카운트들에 기초하여 재등록될 수 있다. 일부 예들에서, 재등록은 수신된 인바운드 데이터의 총량에 기초하여(예를 들어, 매 1GB마다), 시간에 기초하여, 네트워크 상태들, 검출된 고장 상태들 및 기타 트리거들에 기초하여 발생한다.
[0030] 본 명세서에 설명된 하나 또는 그 이상의 실시 예들에 따르면, 상기 복수의 네트워크 어댑터들 각각은 공통 인터넷 프로토콜 스택에 상주한다. 더욱이, 일부 예에서, 상기 복수의 네트워크 어댑터들 각각은 도 3, 도 4 및 도 5에 도시된 바와 같은 공통 서브넷 또는 가상 근거리 네트워크 상에 구성된다.
[0031] 여기에 설명된 하나 또는 그 이상의 실시 예들은 현재 알려져 있거나 나중에 개발될 모든 다른 유형의 컴퓨팅 환경과 함께 구현될 수 있음을 이해해야 한다. 예를 들어, 도 6은 여기에 설명된 기술을 구현하기 위한 처리 시스템(600)의 블록도를 도시한다. 예들에서, 처리 시스템(600)은, 하나 또는 그 이상의 중앙 처리 디바이스 CPU(604), CPU(606), CPU(608) 등(집단적으로 또는 일반적으로 프로세서, 처리 디바이스, 및/또는 처리 디바이스(들)이라 함)을 포함할 수 있는, 처리 디바이스(602)를 갖는다. 본 발명의 실시 예들에서, 처리 디바이스(602)는 감소된 명령 세트 컴퓨터(RISC) 마이크로프로세서를 포함할 수 있다. 일부 예들에서, 처리 디바이스(602) 및/또는 CPU(604), CPU(606), 및/또는 CPU(608)는 명령을 동시에/한번에 실행하기 위한 다수의 처리 코어들을 포함할 수 있다. 처리 디바이스(602)는 시스템 버스(620)를 통해 시스템 메모리(예를 들어, 랜덤 액세스 메모리 RAM(612)) 및 다양한 다른 컴포넌트들에 연결된다. 읽기 전용 메모리 ROM(610)은 시스템 버스(620)에 연결되고 기본 입/출력 시스템(BIOS)을 포함할 수 있으며, 기본 입/출력 시스템(BIOS)은 처리 시스템(600)의 특정 기본 기능들을 제어한다.
[0032] 시스템 버스(620)에 연결된 입력/출력 I/O 어댑터(614) 및 네트워크 어댑터(616)가 추가로 도시되어 있다. 네트워크 어댑터(616)는 하드 디스크(636) 및/또는 스토리지와 통신하는 SCSI(Small Computer System Interface) 어댑터일 수 있다. 장치(638) 또는 기타 유사한 컴포넌트. I/O 어댑터(614), 하드 디스크(636), 및 스토리지 디바이스(638)는 여기서 집합적으로 매스 스토리지 디바이스(640)로 지칭된다. 처리 시스템(600) 상에서 실행하기 위한 운영 체제(642)는 매스 스토리지 디바이스(640)에 저장될 수 있다. 네트워크 어댑터(616)는 시스템 버스(620)를 외부 네트워크(618)에 상호 연결하고, 이는 처리 시스템(600)이 다른 그러한 시스템과 통신할 수 있게 한다.
[0033] 디스플레이(632)(예를 들어, 디스플레이 모니터)는 디스플레이 어댑터(630)에 의해 시스템 버스(620)에 연결되며, 디스플레이 어댑터는 그래픽 집약적 애플리케이션 및 비디오 컨트롤러의 성능을 개선하기 위한 그래픽 어댑터를 포함할 수 있다. 본 발명의 일 실시 예에서, I/O 어댑터(614), 네트워크 어댑터(616), 및/또는 디스플레이 어댑터(630)는 중간 버스 브리지(도시되지 않음)를 통해 시스템 버스(620)에 연결되는 하나 또는 그 이상의 I/O 버스들에 연결될 수 있다. 하드 디스크 컨트롤러, 네트워크 어댑터 및 그래픽 어댑터와 같은, 주변 장치들을 연결하는 데 적합한 I/O 버스들에는, 일반적으로 PCI(Peripheral Component Interconnect)와 같은, 공통 프로토콜이 포함된다. 추가 입력/출력 장치들은 사용자 인터페이스 어댑터(622) 및 디스플레이 어댑터(630)를 통해 시스템 버스(620)에 연결되어 있는 것으로 도시되어 있다. 키보드(624), 마우스(626) 및 스피커(628)는 사용자 인터페이스 어댑터(622)를 통해 시스템 버스(620)에 상호 연결될 수 있고, 사용자 인터페이스 어댑터(622)는, 예를 들어, 여러 장치 어댑터들을 단일 집적 회로에 통합하는 Super I/O 칩을 포함할 수 있다.
[0034] 본 발명의 일부 실시 예들에서, 처리 시스템(600)은 그래픽 처리 유닛(634)을 포함한다. 그래픽 처리 유닛(634)은 메모리를 조작하고 변경하여 디스플레이에 출력하도록 의도된 프레임 버퍼에서 이미지들의 생성을 가속화하도록 설계된 특수 전자 회로이다. 일반적으로, 그래픽 처리 유닛(634)은 컴퓨터 그래픽 및 이미지 처리를 조작하는데 매우 효율적이며, 대용량 데이터 블록의 처리가 병렬로 수행되는 알고리즘들을 위해 범용 CPU들 보다 더 효과적이 되게 하는 고도의 병렬 구조를 갖는다.
[0035] 따라서, 여기서 구성된 바와 같이, 처리 시스템(600)은 처리 디바이스(602) 형태의 처리 능력, 시스템 메모리(예를 들어, RAM(612)) 및 매스 스토리지 디바이스(640)를 포함하는 저장 능력, 키보드(624) 및 마우스(626)와 같은 입력 수단, 그리고 스피커(628) 및 디스플레이(632)를 포함하는 출력 능력을 포함한다. 본 발명의 일부 실시 예들에서, 시스템 메모리(예를 들어, RAM(612)) 및 매스 스토리지 디바이스(640)의 일부는 처리 시스템(600)에 도시된 다양한 컴포넌트의 기능들 통합하기 위해 IBM Corporation의 AIX® 운영 체제와 같은 운영 체제(642)를 저장한다.
[0036] 본 발명의 다양한 실시예들이 관련 도면들을 참조하여 본 명세서에서 설명된다. 본 발명의 범위를 벗어나지 않으면서 본 발명의 대안적인 실시예들이 고안될 수 있다. 다양한 연결들 및 위치 관계들(예를 들어, 위, 아래, 인접 등)은 다음 설명 및 도면들에서 엘리멘트들 사이에 설명된다. 이들 연결들 및/또는 위치 관계들은 달리 명시되지 않는 한 직접적이거나 간접적일 수 있으며, 본 발명은 이와 관련하여 제한하려는 의도가 아니다. 따라서, 주체들의 결합은 직접적 또는 간접적인 결합을 의미할 수 있으며, 주체들 간의 위치 관계는 직접적 또는 간접적인 위치 관계일 수 있다. 또한, 여기에 설명된 다양한 작업 및 프로세스 단계는 여기에 자세히 설명되지 않은 추가 단계 또는 기능을 갖는 보다 포괄적인 절차 또는 프로세스에 통합될 수 있다.
[0037] 청구범위 및 명세서의 해석을 위해 다음 정의 및 약어가 사용된다. 본 명세서에서 사용된 용어 "포함하다", "포함하는", "갖는다", 또는 이들의 다른 변형들은 비-배타적 포함을 커버하기 위한 것이다. 예를 들어, 엘리멘트들의 목록을 포함하는 구성, 혼합물, 공정, 방법, 물품 또는 장치는 반드시 해당 엘리멘트들에만 제한되지 않으며, 그러한 구성, 혼합물, 공정, 방법, 물품 또는 장치에 명시적으로 나열되지 않거나 고유하지 않은 다른 엘리멘트들을 포함할 수 있다.
[0038] 또한, "예시적인"이라는 용어는 "예시, 사례 또는 예시로 제공되는"을 의미하기 위해 본 명세서에서 사용된다. 본 명세서에서 "예시적인" 것으로 설명된 모든 실시예 또는 설계는 반드시 다른 실시예 또는 설계에 비해 선호되거나 유리한 것으로 해석되어서는 안 된다. 용어 "적어도 하나" 및 "하나 또는 그 이상"은 1 이상, 즉 1, 2, 3, 4 등의 임의의 정수를 포함하는 것으로 이해될 수 있다. 용어 "복수"는 2 이상의 정수, 즉 2, 3, 4, 5 등을 포함하는 것으로 이해될 수 있다. 용어 "연결"은 간접적인 "연결" 및 직접 "연결"을 모두 포함할 수 있다.
[0039] 용어 "약", "실질적으로", "대략" 및 그 변형은 출원 당시 이용 가능한 장비에 기초한 특정 양의 측정과 관련된 오류의 정도를 포함하도록 의도되었다. 예를 들어, "약"은 주어진 값의 ± 8% 또는 5% 또는 2%의 범위를 포함할 수 있다.
[0040] 간결함을 위해, 본 발명의 실시 예들을 만들고 사용하는 것과 관련된 통상적인 기술은 본 명세서에서 상세하게 설명될 수도 있고 설명되지 않을 수도 있다. 특히, 여기에 설명된 다양한 기술적 특징을 구현하기 위한 컴퓨팅 시스템 및 특정 컴퓨터 프로그램의 다양한 실시 예들은 잘 알려져 있다. 따라서, 간결함을 위해, 많은 종래의 구현 세부사항은 여기에서 간략하게만 언급되거나 잘 알려진 시스템 및/또는 프로세스 세부사항을 제공하지 않고 완전히 생략된다.
[0041] 본 발명은 통합의 가능한 기술 세부 수준에서 시스템, 방법 및/또는 컴퓨터 프로그램 제품일 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독 가능 스토리지 매체(또는 매체)를 포함할 수 있으며, 이 매체 상에 프로세서가 본 발명의 실시 예들을 수행하도록 하는 컴퓨터 판독 가능 프로그램 명령들을 갖는다.
[0042] 상기 컴퓨터 판독 가능 스토리지 매체는 명령 실행 장치에 의해 사용될 명령들을 유지 및 저장할 수 있는 유형의(tangible) 디바이스일 수 있다. 상기 컴퓨터 판독 가능 스토리지 매체는, 예를 들면, 전자 스토리지 디바이스, 자기 스토리지 디바이스, 광 스토리지 디바이스, 전자기 스토리지 디바이스, 반도체 스토리지 디바이스, 또는 전술한 것들의 모든 적절한 조합일 수 있으며, 그러나 이에 한정되지는 않는다. 컴퓨터 판독 가능 스토리지 매체의 더 구체적인 예들의 비포괄적인 목록에는 다음이 포함될 수 있다: 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(RAM), 판독-전용 메모리(ROM), 소거 및 프로그램가능 판독-전용 메모리(EPROM 또는 플래시 메모리), 정적 랜덤 액세스 메모리(SRAM), 휴대용 컴팩트 디스크 판독-전용 메모리(CD-ROM), 디지털 다용도 디스크(DVD), 메모리 스틱, 플로피 디스크, 천공-카드들 또는 명령들이 기록된 홈에 있는 융기된 구조들 같이 머신적으로 인코드 된 장치, 및 전술한 것들의 모든 적절한 조합. 본 명세서에서 사용될 때, 컴퓨터 판독 가능 스토리지 매체는 무선 전파들이나 다른 자유롭게 전파되는 전자기파들, 도파 관이나 기타 전송 매체(예를 들어, 광섬유 케이블을 통해 전달되는 광 펄스들)를 통해 전파되는 전자기파들, 또는 선(wire)을 통해 전송되는 전기 신호들 같이 그 자체로 일시적인(transitory) 신호들로 해석되지는 않는다.
[0043] 본 명세서에 기술되는 컴퓨터 판독 가능 명령들은, 예를 들어, 인터넷, 근거리 네트워크, 광역 네트워크 및/또는 무선 네트워크 등의 네트워크(네트워크)을 통해 컴퓨터 판독 가능 스토리지 매체로부터 각각 컴퓨팅/처리 디바이스들로 또는 외부 스토리지 디바이스로부터 외부 컴퓨터로 다운로드 될 수 있다. 상기 네트워크는 구리 전송 케이블들, 광 전송 섬유들, 무선 전송, 라우터들, 방화벽들, 스위치들, 게이트웨이 컴퓨터들 및/또는 엣지 서버들을 포함할 수 있다. 각 컴퓨팅/처리 유닛 내 네트워크 어댑터 카드 또는 네트워크 인터페이스는 상기 네트워크로부터 컴퓨터 판독 가능 프로그램 명령들을 수신하고 그 컴퓨터 판독 가능 프로그램 명령들을 각각의 컴퓨팅/처리 디바이스 내의 컴퓨터 판독 가능 스토리지 매체에 저장하기 위해 전송한다.
[0044] 본 발명의 연산들을 실행하기 위한 컴퓨터 판독 가능 프로그램 명령들은 Smalltalk, C++ 또는 그와 유사 언어 등의 객체 지향 프로그래밍 언어와 "C" 프로그래밍 언어 또는 그와 유사한 프로그래밍 언어 등의 종래의 절차적 프로그래밍 언어들을 포함하여, 하나 또는 그 이상의 프로그래밍 언어들을 조합하여 작성된(written) 어셈블러 명령들, 명령-세트-아키텍처(ISA) 명령들, 머신 명령들, 머신 종속 명령들, 마이크로코드, 펌웨어 명령들, 상태-셋팅 데이터, 집적회로를 위한 구성 데이터, 또는 소스 코드나 목적 코드일 수 있다. 상기 컴퓨터 판독 가능 프로그램 명령들은 전적으로 사용자의 컴퓨터상에서, 부분적으로 사용자의 컴퓨터상에서, 독립형(stand-alone) 소프트웨어 패키지로서, 부분적으로 사용자의 컴퓨터상에서 그리고 부분적으로 원격 컴퓨터상에서 또는 전적으로 원격 컴퓨터나 서버상에서 실행될 수 있다. 위에서 마지막의 경우에, 원격 컴퓨터는 근거리 네트워크(LAN) 또는 광역 네트워크(WAN)을 포함한 모든 종류의 네트워크를 통해서 사용자의 컴퓨터에 접속될 수 있고, 또는 이 접속은 (예를 들어, 인터넷 서비스 제공자를 이용한 인터넷을 통해서) 외부 컴퓨터에 이루어질 수도 있다. 일부 실시 예들에서, 예를 들어 프로그램 가능 로직 회로, 필드-프로그램 가능 게이트 어레이들(FPGA), 또는 프로그램 가능 로직 어레이들(PLA)을 포함한 전자 회로는 본 발명의 실시 예들을 수행하기 위해 전자 회로를 맞춤화하도록 상기 컴퓨터 판독 가능 프로그램 명령들의 상태 정보를 활용하여 상기 컴퓨터 판독 가능 프로그램 명령들을 실행할 수 있다.
[0045] 본 발명의 특징들이 본 발명의 실시 예들에 따른 방법들, 장치들(시스템들), 및 컴퓨터 프로그램 제품들의 플로 차트 예시도들 및/또는 블록도들을 참조하여 기술된다. 플로 차트 예시도들 및/또는 블록도들의 각 블록과 플로 차트 예시도들 및/또는 블록도들 내 블록들의 조합들은 컴퓨터 판독 가능 프로그램 명령들에 의해 구현될 수 있다는 것을 이해할 수 있을 것이다.
[0046] 이들 컴퓨터 판독 가능 프로그램 명령들은 범용 컴퓨터, 특수목적용 컴퓨터, 또는 기타 프로그램가능 데이터 처리 유닛의 프로세서에 제공되어 머신(machine)을 생성하고, 그렇게 하여 그 명령들이 상기 컴퓨터 또는 기타 프로그램가능 데이터 처리 유닛의 프로세서를 통해서 실행되어, 상기 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능들/동작들을 구현하기 위한 수단을 생성할 수 있다. 이들 컴퓨터 판독 가능 프로그램 명령들은 또한 컴퓨터 판독 가능 스토리지 매체에 저장될 수 있으며, 컴퓨터, 프로그램가능 데이터 처리 유닛 및/또는 기타 디바이스들에 지시하여 명령들이 저장된 상기 컴퓨터 판독 가능 스토리지 매체가 상기 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능/동작의 특징들을 구현하는 명령들을 포함하는 제조품(an article of manufacture)을 포함하도록 특정한 방식으로 기능하게 할 수 있다.
[0047] 상기 컴퓨터 판독 가능 프로그램 명령들은 또한 컴퓨터, 기타 프로그램가능 데이터 처리 유닛, 또는 다른 디바이스에 로드 되어, 상기 컴퓨터, 기타 프로그램가능 장치 또는 다른 디바이스에서 일련의 동작 단계들이 수행되게 하여 컴퓨터 구현 프로세스를 생성하며, 그렇게 하여 상기 컴퓨터, 기타 프로그램가능 장치, 또는 다른 디바이스 상에서 실행되는 명령들이 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능들/동작들을 구현할 수 있다.
[0048] 도면들 내 플로 차트 및 블록도들은 본 발명의 여러 실시 예들에 따른 시스템들, 방법들 및 컴퓨터 프로그램 제품들의 가능한 구현들의 아키텍처, 기능(functionality), 및 연산(operation)을 예시한다. 이와 관련하여, 상기 플로 차트 또는 블록도들 내 각 블록은 상기 명시된 로직 기능(들)을 구현하기 위한 하나 또는 그 이상의 실행 가능한 명령들을 포함한 모듈, 세그먼트 또는 명령들의 일부분을 나타낼 수 있다. 일부 다른 실시 예들에서, 상기 블록에 언급되는 기능들은 도면들에 언급된 순서와 다르게 일어날 수도 있다. 예를 들면, 연속으로 도시된 두 개의 블록들은 실제로는 사실상 동시에 실행될 수도 있고, 또는 이 두 블록들은 때때로 관련된 기능에 따라서는 역순으로 실행될 수도 있다. 블록도들 및/또는 플로 차트 예시도의 각 블록, 및 블록도들 및/또는 플로 차트 예시도 내 블록들의 조합들은 특수목적용 하드웨어 및 컴퓨터 명령들의 명시된 기능들 또는 동작들, 또는 이들의 조합들을 수행하는 특수목적용 하드웨어-기반 시스템들에 의해 구현될 수 있다는 것에 또한 주목해야 한다.
[0049] 본 발명의 다양한 실시예들에 대한 설명은 예시의 목적으로 제시되었지만, 개시된 실시예들이 전부라거나, 이들로 제한하려는 것은 아니다. 기술된 실시예들의 범위를 벗어나지 않으면서 많은 수정들 및 변형들이 당업자에게 명백할 것이다. 본 명세서에 사용된 용어는 실시예들의 원리, 시장에서 발견되는 기술에 대한 실질적인 응용 또는 기술적 개선을 가장 잘 설명하기 위해 선택되거나, 또는 당업자가 본 명세서에서 설명된 실시예를 이해할 수 있게 하기 위해 선택되었다.
Claims (20)
- 인바운드 로드 밸런싱(inbound load balancing)을 수행하는 방법에 있어서, 상기 방법은:
복수의 가상 인터넷 프로토콜 주소들(VIPA들) 중 적어도 하나를 복수의 네트워크 어댑터들 각각에 등록하는 단계; 및
주소 결정 프로토콜(an address resolution protocol)을 사용하여 상기 복수의 네트워크 어댑터들 각각 사이에 인바운드 데이터(inbound data)를, 상기 복수의 네트워크 어댑터들 각각에 의해, 분배하는 단계(distributing)를 포함하는
방법. - 제1항에 있어서, 상기 복수의 VIPA들 중 적어도 하나를 상기 복수의 네트워크 어댑터들 각각에 등록하는 단계는 라운드 로빈 등록(round-robin registration)에 적어도 부분적으로 기초하는
방법. - 제1항에 있어서, 상기 복수의 VIPA들 중 적어도 하나를 상기 복수의 네트워크 어댑터들 각각에 등록하는 단계는 데이터 사용 등록(data usage registration)에 적어도 부분적으로 기초하는
방법. - 제3항에 있어서, 상기 데이터 사용 등록은:
상기 복수의 VIPA들 각각에 대한 인바운드 바이트 카운트(an in-bound byte count)를 결정하기 위해 상기 인바운드 데이터를 모니터링하는 단계를 포함하고; 그리고
상기 복수의 VIPA들 중 적어도 하나를 상기 복수의 네트워크 어댑터들 각각에 등록하는 단계는 상기 복수의 VIPA들 각각에 대한 인바운드 바이트 카운트에 적어도 부분적으로 기초하는
방법. - 제4항에 있어서, 상기 모니터링 하는 단계는 설정 시간 간격 동안(for a set time interval) 발생하는 것을 특징으로 하는
방법. - 제1항에 있어서, 상기 방법은:
상기 복수의 VIPA들 각각에 대한 인바운드 바이트 카운트를 결정하기 위해 상기 인바운드 데이터를 모니터링하는 단계를 더 포함하고; 그리고
상기 복수의 VIPA들 중 적어도 하나를 상기 복수의 네트워크 어댑터들 각각에 재-등록하는 단계는 상기 복수의 VIPA들 각각에 대한 인바운드 바이트 카운트에 적어도 부분적으로 기초하는
방법. - 제1항에 있어서, 상기 복수의 네트워크 어댑터들 각각은 공통 인터넷 프로토콜 스택(a common internet protocol stack)에 상주하고, 상기 복수의 네트워크 어댑터들 각각은 공통 서브넷 또는 가상 근거리 네트워크(a common subnet or virtual local area network) 상에 구성되는
방법. - 제1항에 있어서, 상기 복수의 네트워크 어댑터들은 적어도 하나의 개방형 시스템 어댑터(open systems adapter)를 포함하는
방법. - 시스템에 있어서, 상기 시스템은:
컴퓨터 판독가능 명령들을 포함하는 메모리; 및
상기 컴퓨터 판독 가능 명령들을 실행하기 위한 처리 디바이스를 포함하고, 상기 컴퓨터 판독 가능 명령들은 동작들(operations)을 수행하도록 상기 처리 디바이스를 제어하며, 상기 동작들은:
복수의 가상 인터넷 프로토콜 주소들(VIPA들) 중 적어도 하나를 복수의 네트워크 어댑터들 각각에 등록하는 단계; 및
주소 결정 프로토콜(an address resolution protocol)을 사용하여 상기 복수의 네트워크 어댑터들 각각 사이에 인바운드 데이터(inbound data)를, 상기 복수의 네트워크 어댑터들 각각에 의해, 분배하는 단계(distributing)를 포함하는
시스템. - 제9항에 있어서, 상기 복수의 VIPA들 중 적어도 하나를 상기 복수의 네트워크 어댑터들 각각에 등록하는 단계는 라운드 로빈 등록(round-robin registration)에 적어도 부분적으로 기초하는
시스템. - 제9항에 있어서, 상기 복수의 VIPA들 중 적어도 하나를 상기 복수의 네트워크 어댑터들 각각에 등록하는 단계는 데이터 사용 등록(data usage registration)에 적어도 부분적으로 기초하는
시스템. - 제11항에 있어서, 상기 데이터 사용 등록은:
상기 복수의 VIPA들 각각에 대한 인바운드 바이트 카운트(an in-bound byte count)를 결정하기 위해 상기 인바운드 데이터를 모니터링하는 단계를 포함하고; 그리고
상기 복수의 VIPA들 중 적어도 하나를 상기 복수의 네트워크 어댑터들 각각에 등록하는 단계는 상기 복수의 VIPA들 각각에 대한 인바운드 바이트 카운트에 적어도 부분적으로 기초하는
시스템. - 제12항에 있어서, 상기 모니터링 하는 단계는 설정 시간 간격 동안(for a set time interval) 발생하는
시스템. - 제9항에 있어서, 상기 동작들은:
상기 복수의 VIPA들 각각에 대한 인바운드 바이트 카운트를 결정하기 위해 상기 인바운드 데이터를 모니터링하는 단계를 더 포함하고; 그리고
상기 복수의 VIPA들 중 적어도 하나를 상기 복수의 네트워크 어댑터들 각각에 재-등록하는 단계는 상기 복수의 VIPA들 각각에 대한 인바운드 바이트 카운트에 적어도 부분적으로 기초하는
시스템. - 제9항에 있어서, 상기 복수의 네트워크 어댑터들 각각은 공통 인터넷 프로토콜 스택(a common internet protocol stack)에 상주하고, 상기 복수의 네트워크 어댑터들 각각은 공통 서브넷 또는 가상 근거리 네트워크(a common subnet or virtual local area network) 상에 구성되는
시스템. - 제9항에 있어서, 상기 복수의 네트워크 어댑터들은 적어도 하나의 개방형 시스템 어댑터(open systems adapter)를 포함하는
시스템. - 컴퓨터 프로그램 제품에 있어서, 상기 컴퓨터 프로그램 제품은 구현된 프로그램 명령들을 갖는 컴퓨터 판독 가능 스토리지 매체를 포함하고, 상기 프로그램 명령들은 프로세서에 의해 실행 가능하며, 상기 프로세서가 동작들을 수행하게 하고, 상기 동작들은:
복수의 가상 인터넷 프로토콜 주소들(VIPA들) 중 적어도 하나를 복수의 네트워크 어댑터들 각각에 등록하는 단계; 및
주소 결정 프로토콜(an address resolution protocol)을 사용하여 상기 복수의 네트워크 어댑터들 각각 사이에 인바운드 데이터(inbound data)를, 상기 복수의 네트워크 어댑터들 각각에 의해, 분배하는 단계(distributing)를 포함하는
컴퓨터 프로그램 제품. - 제17항에 있어서, 상기 복수의 VIPA들 중 적어도 하나를 상기 복수의 네트워크 어댑터들 각각에 등록하는 단계는 라운드 로빈 등록(round-robin registration)에 적어도 부분적으로 기초하는
컴퓨터 프로그램 제품. - 제17항에 있어서, 상기 복수의 VIPA들 중 적어도 하나를 상기 복수의 네트워크 어댑터들 각각에 등록하는 단계는 데이터 사용 등록(data usage registration)에 적어도 부분적으로 기초하는
컴퓨터 프로그램 제품. - 제19항에 있어서, 상기 데이터 사용 등록은:
상기 복수의 VIPA들 각각에 대한 인바운드 바이트 카운트(an in-bound byte count)를 결정하기 위해 상기 인바운드 데이터를 모니터링하는 단계를 포함하고; 그리고
상기 복수의 VIPA들 중 적어도 하나를 상기 복수의 네트워크 어댑터들 각각에 등록하는 단계는 상기 복수의 VIPA들 각각에 대한 인바운드 바이트 카운트에 적어도 부분적으로 기초하는
컴퓨터 프로그램 제품.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/844,350 | 2020-04-09 | ||
US16/844,350 US11146491B1 (en) | 2020-04-09 | 2020-04-09 | Dynamically balancing inbound traffic in a multi-network interface-enabled processing system |
PCT/IB2021/051796 WO2021205249A1 (en) | 2020-04-09 | 2021-03-04 | Dynamically balancing inbound traffic in a multi-network interface-enabled processing system |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220147620A true KR20220147620A (ko) | 2022-11-03 |
Family
ID=78006739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227032701A KR20220147620A (ko) | 2020-04-09 | 2021-03-04 | 멀티-네트워크 인터페이스- 가능 처리 시스템에서 인바운드 트래픽의 동적 밸런싱 |
Country Status (10)
Country | Link |
---|---|
US (1) | US11146491B1 (ko) |
JP (1) | JP2023520777A (ko) |
KR (1) | KR20220147620A (ko) |
CN (1) | CN115380279A (ko) |
AU (1) | AU2021251464B2 (ko) |
CA (1) | CA3171984A1 (ko) |
DE (1) | DE112021000791T5 (ko) |
GB (1) | GB2609845A (ko) |
IL (1) | IL295890A (ko) |
WO (1) | WO2021205249A1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11706298B2 (en) | 2021-01-21 | 2023-07-18 | Cohesity, Inc. | Multichannel virtual internet protocol address affinity |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5864535A (en) | 1996-09-18 | 1999-01-26 | International Business Machines Corporation | Network server having dynamic load balancing of messages in both inbound and outbound directions |
US7003571B1 (en) | 2000-01-31 | 2006-02-21 | Telecommunication Systems Corporation Of Maryland | System and method for re-directing requests from browsers for communication over non-IP based networks |
US6941384B1 (en) | 2000-08-17 | 2005-09-06 | International Business Machines Corporation | Methods, systems and computer program products for failure recovery for routed virtual internet protocol addresses |
US20040111529A1 (en) | 2002-12-10 | 2004-06-10 | Intel Corporation (A Delaware Corporation) | Dynamic host based load balancing of a multihomed network |
US7648678B2 (en) * | 2002-12-20 | 2010-01-19 | Dako Denmark A/S | Method and system for pretreatment of tissue slides |
US7159034B1 (en) | 2003-03-03 | 2007-01-02 | Novell, Inc. | System broadcasting ARP request from a server using a different IP address to balance incoming traffic load from clients via different network interface cards |
US7392318B1 (en) | 2003-03-21 | 2008-06-24 | Novell, Inc. | Method and system for balancing a traffic load in a half-duplex environment |
WO2005001621A2 (en) | 2003-06-04 | 2005-01-06 | The Trustees Of The University Of Pennsylvania | Ndma scalable archive hardware/software architecture for load balancing, independent processing, and querying of records |
US20050050179A1 (en) * | 2003-08-28 | 2005-03-03 | International Business Machines Corporation | Method, apparatus and computer program product for implementing enhanced proxy ARP for virtual IP addresses |
TWI269463B (en) * | 2004-10-29 | 2006-12-21 | Epitech Technology Corp | Method for manufacturing high brightness light-emitting diode |
US7676983B2 (en) * | 2005-08-16 | 2010-03-16 | Jenkins Lloyd J | Rod and tackle carrying case |
DE102006001437A1 (de) * | 2006-01-10 | 2007-07-12 | Miele & Cie. Kg | Gehäuse für eine frontbeschickbare Wäschebehandlungsmaschine |
US8972547B2 (en) * | 2007-10-18 | 2015-03-03 | International Business Machines Corporation | Method and apparatus for dynamically configuring virtual internet protocol addresses |
US7840655B2 (en) * | 2007-11-14 | 2010-11-23 | International Business Machines Corporation | Address resolution protocol change enabling load-balancing for TCP-DCR implementations |
CN101404616A (zh) | 2008-11-04 | 2009-04-08 | 北京大学深圳研究生院 | 一种负载均衡分组交换结构及其构造方法 |
US7991859B1 (en) * | 2009-12-28 | 2011-08-02 | Amazon Technologies, Inc. | Using virtual networking devices to connect managed computer networks |
WO2015014414A1 (en) * | 2013-08-02 | 2015-02-05 | Telefonaktiebolaget L M Ericsson (Publ) | Configuration of forwarding rules using the address resolution protocol |
US10003641B2 (en) * | 2014-09-16 | 2018-06-19 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and system of session-aware load balancing |
US9882972B2 (en) * | 2015-10-30 | 2018-01-30 | International Business Machines Corporation | Packet forwarding optimization without an intervening load balancing node |
US9806911B2 (en) * | 2015-11-02 | 2017-10-31 | International Business Machines Corporation | Distributed virtual gateway appliance |
US10972437B2 (en) * | 2016-08-08 | 2021-04-06 | Talari Networks Incorporated | Applications and integrated firewall design in an adaptive private network (APN) |
US10193968B2 (en) * | 2016-10-14 | 2019-01-29 | Google Llc | Virtual router with dynamic flow offload capability |
US10681000B2 (en) * | 2017-06-30 | 2020-06-09 | Nicira, Inc. | Assignment of unique physical network addresses for logical network addresses |
US10728145B2 (en) * | 2018-08-30 | 2020-07-28 | Juniper Networks, Inc. | Multiple virtual network interface support for virtual execution elements |
-
2020
- 2020-04-09 US US16/844,350 patent/US11146491B1/en active Active
-
2021
- 2021-03-04 JP JP2022558550A patent/JP2023520777A/ja active Pending
- 2021-03-04 WO PCT/IB2021/051796 patent/WO2021205249A1/en active Application Filing
- 2021-03-04 GB GB2216530.2A patent/GB2609845A/en active Pending
- 2021-03-04 IL IL295890A patent/IL295890A/en unknown
- 2021-03-04 CN CN202180027440.4A patent/CN115380279A/zh active Pending
- 2021-03-04 KR KR1020227032701A patent/KR20220147620A/ko active Search and Examination
- 2021-03-04 CA CA3171984A patent/CA3171984A1/en active Pending
- 2021-03-04 DE DE112021000791.2T patent/DE112021000791T5/de active Granted
- 2021-03-04 AU AU2021251464A patent/AU2021251464B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2023520777A (ja) | 2023-05-19 |
CN115380279A (zh) | 2022-11-22 |
US11146491B1 (en) | 2021-10-12 |
AU2021251464A1 (en) | 2022-09-22 |
GB2609845A (en) | 2023-02-15 |
CA3171984A1 (en) | 2021-10-14 |
AU2021251464B2 (en) | 2024-01-11 |
GB202216530D0 (en) | 2022-12-21 |
IL295890A (en) | 2022-10-01 |
WO2021205249A1 (en) | 2021-10-14 |
US20210320868A1 (en) | 2021-10-14 |
DE112021000791T5 (de) | 2022-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6199514B2 (ja) | ファブリック分散リソースのスケジューリング | |
Gandhi et al. | Duet: Cloud scale load balancing with hardware and software | |
CN107078969B (zh) | 实现负载均衡的计算机设备、系统和方法 | |
US10171362B1 (en) | System and method for minimizing disruption from failed service nodes | |
CN111095880B (zh) | 用于公共云逻辑网络的方法、设备、系统和可读介质 | |
US7581021B2 (en) | System and method for providing multiple virtual host channel adapters using virtual switches | |
US7984123B2 (en) | Method and system for reconfiguring a virtual network path | |
US10511514B1 (en) | Node-specific probes in a native load balancer | |
CN108141469B (zh) | 负载均衡器中的数据平面操纵 | |
US11290378B2 (en) | Network systems and architecture with multiple load balancers and network access controllers | |
US10110668B1 (en) | System and method for monitoring service nodes | |
US20120198542A1 (en) | Shared Security Device | |
US11522814B2 (en) | Virtualized fabric login server for storage area network | |
US10181031B2 (en) | Control device, control system, control method, and control program | |
US9729454B2 (en) | Methods, systems, and computer readable media for balancing diameter message traffic received over long-lived diameter connections | |
KR20220147620A (ko) | 멀티-네트워크 인터페이스- 가능 처리 시스템에서 인바운드 트래픽의 동적 밸런싱 | |
CN114666276A (zh) | 一种发送报文的方法和装置 | |
CN114008979B (zh) | 具有隔离虚拟网络集成的无服务器分组处理服务 | |
US11296981B2 (en) | Serverless packet processing service with configurable exception paths | |
US11405333B2 (en) | Switched fabric network routing mode support | |
US20160381132A1 (en) | Sysplexport allocation across a z/os sysplex | |
US20200169527A1 (en) | Multiple link layer address resolution protocol (arp) | |
US11206226B1 (en) | Switched fabric network routing mode selection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |