KR101107899B1 - 동적인 물리적 및 가상 다중경로 i/o - Google Patents

동적인 물리적 및 가상 다중경로 i/o Download PDF

Info

Publication number
KR101107899B1
KR101107899B1 KR1020090077109A KR20090077109A KR101107899B1 KR 101107899 B1 KR101107899 B1 KR 101107899B1 KR 1020090077109 A KR1020090077109 A KR 1020090077109A KR 20090077109 A KR20090077109 A KR 20090077109A KR 101107899 B1 KR101107899 B1 KR 101107899B1
Authority
KR
South Korea
Prior art keywords
virtual
hba
physical
client
fiber channel
Prior art date
Application number
KR1020090077109A
Other languages
English (en)
Other versions
KR20100052397A (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 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20100052397A publication Critical patent/KR20100052397A/ko
Application granted granted Critical
Publication of KR101107899B1 publication Critical patent/KR101107899B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2005Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

물리적 및 가상 다중경로 I/O를 동적으로 관리하는 실시예가 고려된다. 다양한 실시예는 적어도 두 개의 HBA를 가지는 하나 이상의 서버와 같은 하나 이상의 컴퓨팅 장치를 포함한다. 적어도 하나의 HBA는 복수의 가상 클라이언트와 저장 영역 네트워크의 하나 이상의 저장 장치 간에 데이터를 전송하기 위해 HBA를 사용하는 가상 I/O 서버와 연관될 수 있다. 이 실시예는 HBA의 장애 또는 HBA에 연결된 장치의 장애를 찾기 위해 HBA를 모니터링하는 것과 같이, HBA의 사용 가능성을 모니터링할 수 있다. HBA들 중 하나의 사용 불가능성을 검출하면, 이 실시예는 사용 불가능한 HBA에 연관된 I/O 경로로부터 다른 HBA로 동적으로 전환할 수 있다.
다중경로 I/O, 가상 경로, 물리적 경로, 파이버 채널 스위치

Description

동적인 물리적 및 가상 다중경로 I/O{DYNAMIC PHYSICAL AND VIRTUAL MULTIPATH I/O}
본 발명은 일반적으로 컴퓨팅 및 정보 저장 장치에 관한 것으로, 보다 구체적으로는 컴퓨팅 및 정보 저장 장치의 동적인 물리적 및 가상 다중경로 입/출력(I/O)에 관한 것이다.
컴퓨팅 장치의 일반적인 유형은 데스크톱 컴퓨터 및 서버 시스템이다. 정보 저장소로 말할 것 같으면, 점점 일반화되어 가는 기술이 저장 영역 네트워킹 또는 간단히 저장 영역 네트워크(Storage Area Network: SAN)로 지칭된다. SAN 기술은, 저장 장치가 그 저장 장치를 공유하는 컴퓨팅 장치 및 운영체제에 근거리에 연결된 장치로 보이도록 디스크 어레이 및 광학 저장 어레이와 같은 원격 컴퓨터 저장 장치를 서버 및 기타 컴퓨팅 장치에 연결하는 것을 포함한다.
파이버 채널 스위치(fibre channel switch)는 종종 서버 및 기타 컴퓨팅 장치를 SAN에 연결한다. 종래의 파이버 채널 SAN에 있어서, 입/출력 컨트롤러(Input/Output Controller: IOC) 또는 호스트 버스 어댑터(Host Bus Adapter: HBA)는 파이버 채널 링크를 통해 파이버 채널 스위치 또는 JBOD(Just a Bunch Of Disks)에 연결된 N_Port를 포함한다. 초기화하는 동안, 호스트 운영체제(OS)의 드라이버는 파이버 채널 시퀀스를 초기화하고, HBA가 N_Port에 대한 WWPN(World-Wide Port Name)을 포함하는 FLOGI(Fabric Login command)를 파이버 채널 스위치로 보내도록 해 준다. 파이버 채널 스위치는, N_Port에 대한 WWPN에 연관된 파이버 채널 주소 또는 가상 ID(virtual ID)를 포함하는 FLOGI 응답을 N_Port로 반환한다.
또한, 드라이버는, HBA를 통해 파이버 채널 스위치와 통신하고 패브릭(fabric)에 있는 모든 장치의 주소의 리스트를 구하는 디스커버리 함수(discovery function)를 수행한다. 이후에, 디스커버리 함수는 모든 주소로 나가는 것(going out), 그 주소와 연관된 장치로 로그인하는 것 그리고 장치가 파이버 채널/SCSI(Small Computer System Interface) 타깃인지를 결정하는 것을 포함한다. 장치가 파이버 채널/SCSI 타깃인 경우, 디스커버리 함수는 타깃과 HBA 간의 연결을 설정한다. 또한, 물리적 파이버 채널 링크는 SCSI 버스로서 OS에 익스포팅(export)되고, 발견된 FC/SCSI 장치에 연관된 원격 포트는 그 후에 종래의 SCSI 방식의 SCSI 버스 상의 타깃으로 나타난다.
단지 하나의 WWPN 및 파이버 채널 주소만이 단일 파이버 채널 링크상에서 N_Port에 할당될 수 있기 때문에 종래의 파이버 채널 SAN은 제한적이다. 즉, 종래의 컴퓨팅 모델은 컴퓨팅 장치당 단일 OS를 상정하고, 따라서 OS는 명시적으로 파이버 채널 포트를 소유한다. 결과적으로, 지역제(zoning) 및 선택적인 저장소 프리젠테이션(storage presentation)/LUN(Logical Unit Number) 마스킹과 같은 시스템 관리 도구가 파이버 채널 포트에 기초하여 정의되었다.
그러나, 파이버 채널 SAN 기술은 NPIV(N_Port ID Virtualization)를 포함하도록 확장되어 왔다. NPIV는 물리적 파이버 채널 포트를 가상화하는 표준화된 방법이다. NPIV는 패브릭이 부가된(fabric-attached) N_Port가 복수의 파이버 채널 주소를 요청하도록 한다. 각각의 주소는 파이버 채널 패브릭 상의 고유한 엔티티로 나타난다. NPIV를 사용함으로써, 파이버 채널 스위치에 의해 인식가능한 파이버 채널 주소 및 복수의 WWPN가 단일 물리적 파이버 채널 링크 및 N_Port에 할당될 수 있다. 따라서, 물리적 파이버 채널 포트가 패브릭에 대해 복수의 엔티티로서 나타나도록 함으로써 종래의 컴퓨팅 모델을 확장 또는 확대할 수 있게 된다.
엔지니어는 컴퓨팅 장치의 물리적 프로세서와 SAN 간에 복수의 물리적 경로를 생성함으로써 SAN의 장애 허용성(fault tolerance) 및 성능을 향상시켜 왔다. 복수의 물리적 경로는 복수의 버스, 복수의 컨트롤러, 복수의 스위치 및 복수의 브리지 장치와 같은 장치를 통해 I/O 경로를 생성하는 것을 일반적으로 포함한다. 복수의 경로를 생성하는 기술은 일반적으로 다중경로 I/O라 지칭된다. 기존의 다중경로 I/O의 구현은 전용 물리적 리소스(예를 들어, 전용 파이버 채널 호스트 버스 어댑터, 스위치 포트, 케이블 및 기타 물리적 리소스 요소)를 사용한다.
단지 하나의 WWPN 및 파이버 채널 주소만이 단일 파이버 채널 링크에 할당될 수 있기 때문에 종래의 파이버 채널 SAN은 제한적이다. 즉, 종래의 컴퓨팅 모델은 컴퓨팅 장치당 단일 OS를 상정한다. 따라서, 시스템 관리 도구가 파이버 채널 포트에 기초하여 정의되었다.
다음은 부가된 도면에 도시된 실시예의 상세한 설명이다. 상세한 설명은 실시예의 다양한 특징을 명확하게 전달하기 위해 매우 상세하다. 그러나, 제공되는 상세한 정도가 실시예의 예상되는 변형을 한정하는 것은 아니다. 반대로, 첨부되는 특허청구범위에 의해 정의되는 다양한 실시예의 모든 변형, 균등물 및 대체물을 포함하기 위함이다. 이하의 상세한 설명은 이러한 실시예가 본 기술분야의 당업자에게 명백하도록 디자인되었다.
일반적으로, 물리적 및 가상 다중경로 I/O를 동적으로 관리하기 위한 방법, 장치 시스템 및 컴퓨터 프로그램 제품이 고려된다. 다양한 실시예는 적어도 두 개의 HBA를 가지는 하나 이상의 컴퓨팅 장치(예를 들어, 하나 이상의 서버)를 포함한다. 적어도 하나의 HBA는 복수의 가상 클라이언트와 저장 영역 네트워크의 하나 이상의 저장 장치 간에 데이터를 전송하기 위해 HBA를 사용하는 가상 I/O 서버와 연관될 수 있다. 이 실시예는, HBA의 장애 또는 HBA에 연결된 장치의 장애를 찾기 위해 HBA를 모니터링하는 것과 같이 HBA의 사용 가능성을 모니터링할 수 있다. HBA들 중 하나의 사용 불가능성을 검출하면, 이 실시예는 사용 불가능한 HBA에 연관되는 I/O 경로로부터 다른 HBA로 동적으로 전환할 수 있다.
일부 실시예는 가상 클라이언트가 제1 물리적 HBA를 통해 저장소 네트워크의 저장 장치와 가상 클라이언트 간에 데이터를 전송하고, 가상 I/O 서버가 제2 물리적 HBA를 통해 저장 장치와 가상 I/O 서버 간에 데이터를 전송하고, 가상 클라이언트가 가상 I/O 서버 및 제2 물리적 HBA를 통해 저장 장치와 가상 클라이언트 간에 데이터를 전송하는 것을 동적으로 가능하게 해 주도록 하는 단계를 포함하는 방법을 포함한다.
다른 실시예는 제1 물리적 HBA를 통해 네트워크로 데이터를 전송하는 가상 클라이언트 모듈 및 제2 물리적 HBA를 통해 네트워크로 데이터를 전송하는 가상 I/O 서버 모듈를 가지는 장치를 포함한다. 실시예는 또한 가상 클라이언트 모듈을 가상 I/O 서버 모듈에 연결하는 가상 머신 모니터도 가진다. 이러한 실시예에 있어서, 가상 I/O 서버는 가상 클라이언트가 가상 HBA로서 제2 물리적 HBA를 액세스할 수 있게 해 주도록 구성될 수 있다. 또한, 가상 클라이언트 모듈, 가상 I/O 서버 또는 가상 머신 모니터는 가상 클라이언트 모듈이 제2 물리적 HBA를 통해 네트워크로 데이터를 전송하는 것을 동적으로 가능하게 해 주도록 구성될 수 있다.
또한, 실시예는 제1 파이버 채널 HBA를 통해 SAN로 데이터를 전송하는 가상 클라이언트 모듈, 제2 파이버 채널 HBA를 통해 SAN로 데이터를 전송하는 가상 I/O 서버 모듈 및 가상 클라이언트 모듈을 가상 I/O 서버 모듈에 연결하는 가상 머신 모듈을 가지는 시스템을 포함할 수 있다. 이러한 시스템 실시예에 있어서, 가상 I/O 서버는 가상 클라이언트가 가상 파이버 채널로서 제1 파이버 채널 HBA를 액세스하도록 한다. 시스템 실시예는 제2 파이버 채널 HBA에 장애가 있는 경우, 가상 클라이언트가 제1 파이버 채널 HBA를 통해 SAN로 데이터를 전송하는 것을 동적으로 가능하게 해 주도록 하는 가상 클라이언트 모듈의 다중경로 I/O 모듈을 더 포함한다.
또한, 명령어를 포함하는 컴퓨터 판독가능 저장 매체가 적어도 하나의 프로세서에 의해 실행되는 경우, 제1 물리적 HBA를 통해 저장 장치의 네트워크로 데이터를 전송하고, 제2 물리적 HBA를 통해 네트워크로 데이터를 전송하는 명령어를 포함하는 컴퓨터 판독가능 저장 매체를 가지는 컴퓨터 사용가능 매체를 포함하는 컴퓨터 프로그램 제품을 포함한다. 이러한 명령어는 복수의 가상 클라이언트를 위해, 가상 HBA로 구성되는 제2 물리적 HBA를 통해 네트워크로 데이터를 전송할 수 있다. 명령어는 또한, 제1 물리적 HBA 및 제2 물리적 HBA 중 하나에 장애가 있는 경우, 그 하나를 통해 상기 복수의 가상 클라이언트가 상기 네트워크에 액세스하는 것을 동적으로 가능하게 할 수도 있다.
다양한 실시예는 적어도 두 개의 HBA를 가지는 하나 이상의 서버와 같은 하나 이상의 컴퓨팅 장치를 포함한다. 적어도 하나의 HBA는 복수의 가상 클라이언트와 저장 영역 네트워크의 하나 이상의 저장 장치 간에 데이터를 전송하기 위해 HBA를 사용하는 가상 I/O 서버와 연관될 수 있다. 실시예는 HBA의 장애 또는 HBA에 연결된 장치의 장애를 찾기 위해 HBA를 모니터링하는 것과 같이, HBA의 사용 가능 성을 모니터링할 수 있다. HBA들 중 하나의 사용 불가능성을 검출하면, 실시예는 사용 불가능한 HBA에 연관된 I/O 경로로부터 다른 HBA로 동적으로 전환할 수 있다.
다음은 부가된 도면에 도시된 신규한 실시예의 상세한 설명이다. 실시예들은 청구 대상을 명확하게 전달하기 위해 매우 상세하다. 그러나, 제공되는 상세의 정도가 기술된 실시예의 예상되는 변형을 한정하는 것은 아니다. 반대로, 특허청구범위 및 상세한 설명은 부가된 특허청구범위에 의해 정의되는 본 발명의 사상 및 범위 내에 포함되는 모든 변형, 균등물 및 대체물을 포함한다. 이하의 상세한 설명은 본 기술분야의 당업자에게 이해가능한 이러한 실시예들을 구성하도록 디자인되었다.
다음 문단들의 많은 곳에서, 수많은 실시예가 "서버"라는 용어를 사용하여 논의된다. 또한, "컴퓨팅 장치"라는 용어도 사용된다. 그러나, 이러한 용어의 사용은 본 기술분야의 당업자에게 설명을 하기 위함이다. 본 명세서의 교시 내용은 SAN을 포함하는 네트워크에 연결된 컴퓨팅 장치의 수많은 유형에 일반적으로 사용될 수 있다.
도면을 참조하면, 도 1은 두 개의 프로세서(140, 150), 메모리 컨트롤러 허브(Memory Controller Heb: MCH; 116), 메모리(104) 및 I/O 컨트롤러 허브(ICH; 120)를 구비한 시스템(100)을 도시한다. 수많은 실시예에 있어서, 시스템(100)은 서버를 포함할 수 있다. 다른 실시예에 있어서, 시스템(100)은 메인프레임 컴퓨터 또는 메인프레임 컴퓨터 시스템의 일부, 데스크톱 컴퓨터 또는 노트북 컴퓨터와 같 은 다양한 유형의 컴퓨팅 장치를 포함할 수 있다.
프로세서(140, 150)는 코어(142, 143, 152, 153)와 같은 수많은 코어를 가지는데, 이들 코어는 프로세서(140, 150)의 캐시 메모리 요소와 연결될 수 있다. 예를 들어, 프로세서(150)는 내부 프로세서 캐시 메모리와 연결된 코어(152, 153)를 가질 수 있다. 프로세서의 수 및 코어의 수는 실시예에 따라 다양할 수 있다. 예를 들어, 시스템(100)이 두 개의 프로세서(140, 150)를 가지는 반면, 다른 실시예는 다른 수(예를 들어, 1, 4, 8 또는 기타 다른 수)의 프로세서를 가질 수 있다. 또한, 프로세서의 코어의 수도 상이한 실시예에 따라 다양할 수 있다(예를 들어, 1개의 코어, 4개의 코어, 5개의 코어 또는 기타 다른 수의 코어).
도 1에 도시된 바와 같이, 시스템(100)은 메모리(104)의 하나 이상의 가상 클라이언트(예를 들어, 가상 클라이언트(110))에서 수많은 애플리케이션(예를 들어, 애플리케이션(111))을 실행할 수 있다. 예를 들어, 시스템(100)은 랙마운트(rack-mount) 서버에 대규모 서버 시스템(예를 들어, 컴퓨팅 보드 또는 블래드 서버)의 일부를 포함할 수 있다. 프로세서(140, 150)는 시스템(100)의 사용자에 의해 실행되는 프로그램 및 애플리케이션(111)을 위한 동작 명령어를 실행할 수 있다. 애플리케이션(111)은, 예를 들어 네트워크 메일 프로그램 및 여러 개의 업무용 애플리케이션(productivity application)(예를 들어, 워드 프로세싱 애플리케이션 및 CAD(Computer Aided Design) 애플리케이션)을 포함할 수 있다.
프로세서(140, 150)는 MCH(116)와 상호작용함으로써 메모리(104)에 있는 명령어를 실행할 수 있다. 메모리(104)를 포함하는 메모리 장치의 유형은 상이한 실 시예에서 다양할 수 있다. 일부 실시예에 있어서, 메모리(104)는 네 개의 4GB DRAM(dynamic random access memory) 스틱과 같은 휘발성 메모리 요소를 포함할 수 있다. 일부 실시예는 더 작거나 더 큰 양의 메모리를 포함할 수 있다. 예를 들어, 일부 실시예는 128GB의 RAM을 포함할 수 있는 반면, 다른 실시예는 512GB와 같은 훨씬 더 큰 메모리를 포함할 수 있다. 다른 실시예에 있어서, 메모리(104)는 비휘발성 메모리를 포함할 수 있다. 예를 들어, 일부 실시예에 있어서, 메모리(104)는 64GB 플래시 메모리 모듈과 같은 플래시 메모리 모듈을 포함할 수 있다.
또한, 도 1에 도시된 바와 같이, 시스템(100)은 하나 이상의 가상 머신(예를 들어, 가상 클라이언트(110) 및 가상 I/O 서버(108))을 관리하는 가상 머신 모니터(114)(예를 들어, 하이퍼바이저(hypervisor))를 포함할 수 있다. 즉, 가상 머신 모니터(114)는 복수의 운영체제가 동시에 시스템(100)상에서 실행되도록 할 수 있다. 도 1의 실시예에 있어서, 가상 머신 모니터(114)는 임의의 운영체제와는 별도로 메모리(104)에 로딩되는 애플리케이션을 포함할 수 있다.
다른 실시예에 있어서, 가상 머신 모니터(114)는 다른 형태로 존재할 수 있다. 예를 들어, 일 실시예에 있어서, 가상 머신 모니터(114)는 프로세서(140 또는 150)에 연결된 펌웨어를 포함할 수 있다. 다른 실시예에 있어서, 가상 머신 모니터(114)는 운영체제의 일부로 로딩되거나 운영체제 후에 로딩되는 소프트웨어 애플리케이션을 포함할 수 있다. 즉, 가상 머신 모니터(114)는 운영체제에 의해 실행되는 애플리케이션을 포함할 수 있다. 일부 실시예는 별도의 가상 머신 모니터를 가지지 않을 수 있으며, 이러한 경우에 있어서 운영체제가 가상 머신 모니터 또는 하아퍼바이저의 기능을 수행할 수 있다. 또한, 가상 머신들의 수도 실시예에 따라 다양할 수 있다.
가상 클라이언트(110) 및 가상 I/O 서버(108)는 자립식(self-contained) 동작 환경을 형성하는 소프트웨어 프로그램의 컬렉션을 각각 포함할 수 있다. 가상 클라이언트(110) 및 가상 I/O 서버(108)는 가상 머신 모니터(114)와 독집적이지만 연동되는 방식으로 동작할 수 있다. 예를 들어, 가상 클라이언트(110) 및 기타 가상 클라이언트가 다양한 물리적 I/O 하드웨어 요소들과 상호작용할 수 있도록 하기 위해 가상 I/O 서버(108)는 가상 머신 모니터(114)와 연동하여 작동한다.
ICH(120)는 프로세서(140, 150)가 키보드, 스캐너 및 데이터 저장 장치와 같은 외부 주변장치와 상호작용하도록 할 수 있다. 프로세서(140, 150)에 의해 실행되고 있는 프로그램 및 애플리케이션은 외부 주변장치와 상호작용할 수 있다. 예를 들어, 프로세서(140, 150)는, 예를 들어 AGP(Advanced Graphics Port) 비디오 카드에 연결된 디스플레이(160)를 통해 사용자에게 정보를 보여줄 수 있다. 콘솔 또는 디스플레이스 장치의 유형은 CRT(Cathode-Ray Tube) 모니터, LCD(Liquid Crystal Display) 스크린 또는 박막 트랜지스터 평판 모니터(thin film transistor flat panel monitor) 등 일 수 있다.
디스플레이(160)는 사용자가 애플리케이션(111)을 보고 상호작용하도록 할 수 있다. 예를 들어, 디스플레이(160)는 사용자가 애플리케이션(111)의 CAD 프로그램을 실행하게 할 수 있고, 파이버 채널 어댑터(170)를 통해 시스템(100)에 연결된 저장 영역 네트워크에 드로잉 정보(drawing information)를 저장하도록 할 수 있다. 시스템(100)의 다른 예는 수많은 파이버 채널 어댑터(170)를 포함할 수 있다. 또한, 일부 실시예에 있어서, 사용자 또는 시스템 관리자는 가상 머신 모니터(114), 가상 I/O 서버(108) 및 가상 클라이언트(110)의 구성 정보를 보고 변경하기 위해 디스플레이(160)를 사용할 수도 있다. 예를 들어, 시스템 관리자는 수많은 가상 머신이 가상 머신 모니터(114)에 의해 관리되도록 파티셔닝 정보(partitioning information)를 설정할 수 있다.
다양한 실시예에 있어서, ICH(120)는 프로세서(140, 150)가 하나 이상의 파이버 채널 장치를 통해 저장 영역 네트워크의 저장 장치에 데이터를 저장하고, 이로부터 데이터를 검색하도록 할 수 있다. 예를 들어, 시스템(100)은 애플리케이션(111)이 파이버 채널 어댑터(170)에 연결된 SAN 스위치를 통해 SAN에 데이터를 저장할 수 있도록 할 수 있다. 가상 클라이언트(110)는 파이버 채널 어댑터(170)에 연결된 전용 저장 장치를 가지도록 구성될 수 있다. 파이버 채널 어댑터(170)에 연결된 요소(예를 들어, SAN 스위치)의 장애가 발생해도, 가상 클라이언트(110)는 가상 I/O 서버(108), 가상 머신 모니터(114) 및, ICH(120)을 통해 다른 파이버 채널 어댑터에 연결된 다른 SAN 스위치와 같은 다른 저장 장치를 통해 데이터를 저장하고 및/또는 검색할 수 있다.
다른 실시예에 있어서, ICH(120)는 프로세서(140, 150)가 PCI(Peripheral Comoponent Interconnect) 컨트롤러(162) 및 USB 어댑터(164)에 연결된 USB 장치를 통해 하나 이상의 USB(Universal Serial Bus) 장치에 데이터를 저장하고, 그로부터 데이터를 탐색하도록 할 수 있다. 일 실시예에 있어서, 가상 클라이언트(110)는 가상 I/O 서버(108), 가상 머신 모니터(114) 및 USB 어댑터(164)에 연결된 제1 USB 하드 드라이브를 통해 정보를 저장하고 및/또는 검색하도록 구성될 수 있다. 제1 USB 하드 드라이브의 요소의 장애 이벤트의 경우에도, 가상 클라이언트(110)는 USB 어댑터(164)에 연결된 전용 제2 USB 하드 드라이브 또는 제2 USB 어댑터를 통해 정보를 저장하고 및/또는 탐색할 수 있다.
프로세서(140, 150)는 또한 PCI 컨트롤러(162) 및 통신 어댑터(166)를 통해 데이터를 보내고 수신할 수도 있다. 통신 어댑터(166)는, 예를 들어 네트워크 인터페이스 카드(Network Interface Card: NIC)를 포함할 수 있다. 시스템(100)은 하나 이상의 실행 애플리케이션(111)이 가상 클라이언트(110)와 iSCSI(Internet Small Computer Systems Interface) SAN의 하드 디스크 간에 데이터를 전송하도록 할 수 있다. 예를 들어, 시스템(100)은 하나 이상의 논리적 파티션(logical partitions: LPAR)에 위치된 여러 개의 가상 클라이언트를 가질 수 있다. 가상 클라이언트(110)는 하나의 논리적 파티션에 상주할 수 있으며, 가상 I/O 서버(108)는 제2 논리적 파티션에 상주할 수 있다. 시스템(100)은 가상 클라이언트(110)가 연관된 NIC를 통해 통신 어댑터(166)를 사용하여 제1 iSCSI 하드 디스크와 통신하고 정보를 전송하도록 할 수 있다. 제1 iSCSI 하드 디스크 또는 iSCSI 하드 디스크와 통신 어댑터(166) 간의 인터커넥팅 네트워크 장치의 장애 또는 보수관리(maintenance) 이벤트에 있어, 시스템(100)의 실시예는 가상 클라이언트(110)가 제2 통신 어댑터 및 가상 I/O 서버(108)에 연결된 제2 NIC를 사용하여 제2 iSCSI로/로부터 정보를 전송할 수 있도록 할 수 있다.
다른 실시예는 통신 어댑터(166)를 위한 다른 기술을 다르게 사용할 수 있다. 예를 들어, 일 실시예는 가상 광섬유 버스(virtual fiber-optic bus)를 사용할 수 있는 반면, 다른 실시예는 통신 어댑터(166)를 위해 HSL(high-speed link) 광 연결을 사용할 수 있다.
USB 어댑터(164) 및 통신 어댑터(166) 외에, ICH(120)도 또한 시스템(100)의 애플리케이션(111)이 ATA(Advanced Technology Attachment) 장치(예를 들어, ATA 하드 드라이브, DVD 드라이브, CD 드라이브, CD-ROM 드라이브(128))와 상호작용하도록 할 수 있다. 도 1에 도시된 바와 같이, 시스템(100)은 SATA 하드 드라이브(130)와 같은 SATA(Serial ATA)를 가질 수 있다. SATA 하드 드라이브(130)는, 예를 들어 시스템(100)의 가상 클라이언트를 위한 다양한 파티션, 장치 드라이브 및 애플리케이션 소프트웨어를 위한 수많은 운영체제를 저장하는데 사용될 수 있다. 예를 들어, SATA 하드 드라이브(130)는 AIX®, Linux®, Macintosh® OS X, Windows® 또는 시스템(100)이 하나 이상의 LPAR에 로딩하는 기타 다른 운영체제를 저장할 수 있다.
다양한 실시예에 있어서, ICH(120)는 가상 머신 모니터(114)에 의해 관리되는 파티션에서의 애플리케이션들이 비휘발성 메모리(118)에 정보를 저장하고 검색하도록 할 수 있으며, 애플리케이션 특정 집적 회로(Application Specific Integrated Circuit: ASIC: 124)와 상호작용하도록 할 수 있다. 예를 들어, 비휘발성 메모리(118)는 일부 실시예에서 플래시 메모리를 포함할 수 있는 반면, 다른 실시예에서는 프로그램가능 ROM(PROM) 또는 기타 유형의 메모리를 포함할 수 있다. 비휘발성 메모리는, 예를 들어 제1 및 제2 가상/물리적 I/O 경로 정보(예를 들어, 어떤 특정 물리적 및 가상 파이버 채널 어댑터를 가상 클라이언트가 사용하도록 구성됨)를 저장하는데 사용될 수 있다. ICH(120)는 또한 가상 머신 모니터(114)에 의해 관리되는 파티션에 있는 애플리케이션이 SCSI 어댑터(132)에 연결된 SCSI 장치를 사용하여 데이터를 저장하고 검색하도록 할 수도 있다.
다른 실시예는 또한 도 1에 도시되지 않은 다른 유형의 하드웨어(예를 들어, 사운트 카드, 스캐너, 프린터 등)를 가지는 시스템(100)의 물리적 및 가상 다중경로 I/O를 동적으로 관리할 수도 있다. 예를 들어, 시스템(100)은 스캐너로부터 데이터를 전송하고 파이버 채널(170)에 연결된 SAN 스위치를 통해 연결된 SAN 네트워크에 데이터를 저장하는 프로세스 중이거나, SAN 스위치의 문제점을 마주하거나, 가상 I/O 서버(108)를 통해 SAN 네트워크에 연결된 다른 SAN 스위치로 장애극복(failover)을 하도록 할 수 있다. 반대로, 다른 실시예에 있어서, 시스템(100)은 도 1에 도시된 실시예를 위해 도시된 모든 요소를 포함하지 않을 수 있다. 예를 들어, 일부 실시예의 시스템(100)은 하나 이상의 SCSI 어댑터(132), PCI 컨트롤러(162), USB 어댑터(164), CD-ROM 드라이브(128) 및 ASIC(124)를 포함하지 않을 수 있다.
시스템 또는 장치(200)가 물리적 및 가상 다중경로 I/O를 동적으로 관리할 수 있는 방법에 대한 보다 상세한 설명을 제공하기 위해, 도 2를 참조한다. 도 2는 일 실시예가 SAN(270)에 연결된 물리적 및 가상 파이버 채널을 위한 I/O를 동적으로 관리할 수 있는 방법을 도시한다. 예를 들어, 가상 머신 모니터(250) 및 프 로세서(262)는 도 1의 장치 또는 시스템의 각 요소(예를 들어, 가상 머신 모니터(114) 및 프로세서(140, 150))를 포함할 수 있다.
가상 머신 모니터(250)는 하드웨어 층(266)의 하나 이상의 요소가 복수의 논리적 파티션으로 분리되도록 할 수 있으며, 파티션들 간의 고립(isolation)을 보장할 수 있다. 예를 들어, 가상 머신 모니터(250)는 장치(200)가 동작할 때마다, 프로세서(262)의 공유 물리적 프로세서들(shared physical processors) 상의 가상 I/O 서버 및 가상 머신 클라이언트의 논리적 파티션 워크로드를 디스패칭하면서 항상 동작할 수 있다. 도 2는 두 개의 가상 클라이언트(Linux® 클라이언트(230) 및 AIX® 클라이언트(235))를 도시하며, 각 클라이언트는 분리된 논리적 파티션에 위치한다. 가상 머신 모니터(250)는 또한 파티션 보안을 실시(enforce)할 수 있고, 가상 I/O 서버(210)를 위한 가상 SCSI 및 가상 이더넷 기능을 할 수 있게 하는 파티션들 간의(inter-partition) 통신을 제공할 수 있다.
가상 머신 모니터(250)는 하드웨어 층(266)의 물리적 하드웨어 리소스와 물리적 하드웨어 리소스를 사용하는 논리적 파티션 간에 추상화 층(abstraction layer)를 제공할 수 있다. 가상 머신 모니터(250)는 물리적 프로세서(262)에 대한 가상 프로세서들의 디스패치를 제어하고, 가상 프로세서 컨텍스트가 변경되는 동안 프로세서 상태 정보를 저장/복구하며, I/O 인터럽트를 제어하고 파티션을 위한 하드웨어 설비를 관리할 수 있다. 또한, 가상 머신 모니터(250)는 장치(200)의 논리적 파티션을 위한 RDMA(Remote Direct Memory Access) 서비스를 제공할 수 있다. 예를 들어, 가상 머신 모니터(250)는, 메모리 모듈(264)의 메모리 섹션을 포함할 수 있는 데이터가 가상 층(205)의 클라이언트로부터 I/O 슬롯(252, 256) 및 파이버 채널 카드(254, 258)로, 파티션을 위한 운영체제의 데이터 버퍼를 위한 파티션들의 메모리 간에 데이터를 복사할 필요 없이 직접 이동하도록 할 수 있다.
장치(200)는 가상 층(205)에 표현된 두 개의 가상 머신 클라이언트(Linux® 클라이언트(230) 및 AIX® 클라이언트(235))를 포함한다. 예를 들어, Linux® 클라이언트(230)는 일 LPAR에 상주할 수 있는 반면, AIX® 클라이언트(235)는 다른 LPAR에 상주할 수 있다. 장치(200)의 LPAR은 마이크로프로세서 리소스, 메모리 리소스 및 I/O 리소스의 논리적 그룹핑(logical grouping) (또는 파티셔닝)이라 지칭될 수 있다.
리소스의 양은 상이한 실시예 및 단일 실시예에 내에서도 장치내에서 필요한 리소스 수요 및 리소스 사용 가능성에 따라 다양할 수 있다. 예를 들어, 하나 이상의 LPAR는 공유 프로세서 파티션(또는, 마이크로 파티션으로 지칭됨)을 포함할 수 있으며, 따라서 장치(200)는 물리적 프로세서의 단일 풀(pool)로부터 LPAR로 프로세서 리소스를 할당한다. 실시예에 따라, 장치(200)가 마이크로 파티션을 할당하는 프로세서 기억용량(processor capacity)의 양은, 예를 들어 물리적 프로세서의 10 퍼센트(10%)부터 물리적 공유 프로세서 풀의 전체 용량까지일 수 있다. 많은 실시예에 있어서, 각각의 가상 머신(예를 들어, 가상 I/O 서버(210) 또는 AIX® 클라이언트(235))은 전용 프로세서 파티션 또는 마이크로 파티션에서 실행될 수 있다.
도 2에 도시된 바와 같이, 장치는 수많은 I/O 슬롯(예를 들어, I/O 슬 롯(252, 256, 280)을 가질 수 있다. 하나 이상의 I/O 슬롯(252, 256, 280)은, 예를 들어 8 Gb의 PCIe 호스트 버스 어댑터 I/O 슬롯을 포함할 수 있다. 도 2가 단지 세 개의 I/O 슬롯을 가지는 장치(200)를 도시하나, 다른 실시예는 더 많거나 더 적은 I/O 슬롯을 가질 수 있다. 예를 들어, 일 실시예는 8, 16, 32 또는 더 많은 I/O 슬롯을 포함할 수 있다. 장치(200)의 각 I/O 슬롯은 파이버 채널 인터페이스 카드를 가진다. I/O 슬롯(252)은 파이버 채널 카드(254)에 연결되고, I/O 슬롯(256, 280)은 파이버 채널 카드(258, 282)에 각각 연결된다.
실시예에 따라, 가상 I/O 서버는 장치 또는 호스트 시스템을 기타 네트워크 및 저장 장치에 연결하기 위해 하나 이상의 파이버 채널 카드, 호스트 컨트롤러, 호스트 어댑터 및 호스트 버스 어댑터(HBA)를 사용할 수 있다. 상기 사용된 카드/어댑터라는 용어는 SCSI, 파이버 채널 및 eSATA 장치를 연결하는 장치를 지칭할 수 있다. 또한, 본 기술 분야의 당업자는 IDE, 이더넷, 파이어웨어(FireWire), USB 및 기타 시스템에 호스트 시스템을 연결하는 장치를 지칭하는데 "호스트 어댑터"라는 용어를 종종 사용할 수 있다. 또한, 일부 실시예는 iSCSI의 도입으로 이더넷 HBA(이더넷 HBA는 이더넷 NICs와 다름)로서 이러한 요소를 사용할 수 있으며, 즉 이더넷 HBA는 하드웨어 iSCSI-전용 TCP 오프로드 엔진(Offload Engines)을 포함할 수 있다. 상이한 실시예는, 물리적 및 가상 다중경로 I/O를 동적으로 관리하는 경우, 네트워크 및 저장 장치 연결을 위한 상이한 유형의 각 장치를 하나 이상 사용할 수 있다.
장치(200)의 관리자는 AIX® 클라이언트(235) 및/또는 AIX® 클라이언 트(235)에 I/O 슬롯(280) 및 파이버 채널 카드(282)를 제공하는 가상 머신 모니터(250)를 구성할 수 있다. 예를 들어, Linux® 클라이언트(230)와 같은 기타 가상 클라이언트가 I/O 슬롯(280) 및 파이버 채널 카드(282)를 액세스하거나 이용하는 것을 방지하며, 가상 머신 모니터는 단지 AIX® 클라이언트(235)만이 I/O 슬롯(280) 및 파이버 채널 카드(282)를 통해 SAN 스위치(290)와 통신할 수 있도록 구성될 수 있다.
수많은 실시예에 있어서, 가상 I/O 서버(210)와 같은 가상 I/O 서버는, Linux® 클라이언트(230) 및 AIX® 클라이언트(235)가 SCSI 장치 및 이더넷 어댑터를 공유하도록, Linux® 클라이언트(230) 및 AIX® 클라이언트(235)에 대해 가상 SCSI 타깃 및 공유 이더넷 캐퍼빌리티(capability)를 제공할 수 있다. 예를 들어, 장치(200)의 관리자는, 파이버 채널 카드(254)가 있는 I/O 슬롯(252) 및 파이버 채널 카드(258)가 있는 I/O 슬롯(256)을 가상 I/O 서버(210)에 제공하는 방식으로 가상 I/O 서버(210) 및/또는 가상 머신 모니터(250)를 구성할 수 있다. 도 2에 도시된 방식으로 배치되어, 가상 I/O 서버(210)는 SAN(270)의 물리적 저장 리소스의 가상화를 가능하게 할 수 있다. 장치(200)의 클라이언트 파티션은 가상 I/O 서버(210)에 의해 클라이언트 파티션에 대한 가상화된 저장 장치로 표현되는 SAN(270)의 물리적 저장 장치에 액세스할 수 있다. 즉, 장치(200)는 클라이언트 파티션(예를 들어, Linux® 클라이언트(230) 및 AIX® 클라이언트(235))이 표준 SCSI 컴플라이언트(compliant) 논리적 유닛(Logical units: LUNs)으로 가상 SCSI 장치를 액세스하도록 할 수 있다.
가상 I/O 서버(210)의 캐퍼빌러티를 공유하는 어댑터 NPIV를 연결하면서, 장치(200)는 물리적 파이버 채널 호스트 버스 어댑터(예를 들어, 파이버 채널 카드(254, 258))가 복수의 게스트(guest) 또는 클라이언트 운영체제(예를 들어, Linux® 클라이언트(230) 및 AIX® 클라이언트(235)) 상에서 공유될 수 있도록 할 수 있다. 즉, 장치(200)는, 각 LPAR가 전용 WWPN으로된 가상 파이버 채널 HBA을 가지도록 하며 파이버 채널 카드(254, 258)를 위한 NPIV를 구현할 수 있다. 각각의 가상 파이버 채널 HBA은 전용 물리적 HBA의 SAN ID와 비교될 수 있는 고유한 SAN ID를 가질 수 있다.
장치(200)는 또한 공유 리소스의 중복(reduandancy)을 가능하게 하며 물리적 및 가상 다중경로 I/O를 동적으로 관리하기 위해 NPIV를 사용할 수도 있다. 장치(200)는 LPAR에서 저장장치로의 다중경로를 제공함으로써 데이터 사용 가능성을 향상시키기 위해 동적인 물리적 및 가상 다중경로 I/O를 사용할 수 있다. 예를 들어, 도 2에 도시된 장치(200)의 실시예는 가상 I/O 서버(210)로부터 SAN(270)으로의 두 개의 상이한 경로 제공한다. 예를 들어, 파이버 채널 카드(254)에 장애가 있는 경우에도, 가상 I/O 서버(210)는 I/O 슬롯(256), 파이버 채널 카드(258) 및 SAN 스위치(260)를 통해 SAN(270)로 데이터를 계속 보낼 수 있다.
또한, 가상 I/O 서버(210)는 경로 상에서 I/O 워크로드를 분산하고 균형을 맞추기 위해 I/O 슬롯(252, 256)의 양 경로를 활성화하고, 장치(200)의 성능을 향상시킬 수 있다. 예를 들어, 가상 I/O 서버(210)로부터 SAN(270)으로의 데이터 전송은 I/O 슬롯(256) 및 파이버 채널 카드(258)만을 사용하여 평균 7.5 Gb/s로 제한 될 수 있다. 그러나, 가상 클라이언트 액세스 I/O 슬롯(252)을 제공하지 않으면, 가상 I/O 서버(210)는 동시에 I/O 슬롯(252, 256)을 동작함으로써, 전송 속도를 평균 15Gb/s로 증가시킬 수 있다.
장치(200)는 AIX® 클라이언트(235) 및 Linux® 클라이언트(230)가 물리적 및 가상 I/O를 모두 지원할 수 있게 하며, 이는 차례로 장치(200)가 동적인 물리적 및 가상 다중경로 I/O를 구현하도록 할 수 있다. 즉, 물리적 및 가상 다중경로 I/O를 동적으로 관리하면서, 장치(200)는 LPAR로부터 저장 장치로의 물리적 및 가상 경로 모두를 생성할 수 있다. 예를 들어, 물리적 경로는 전용 파이버 채널 어댑터를 포함할 수 있다. 도 2에 있어서, AIX® 클라이언트(235)로부터의 물리적 경로는 가상 머신 모니터(250)를 통한 물리적 파이버 채널 HBA 드라이버(244)로부터 I/O 슬롯(280) 및 파이버 채널 카드(282)로, 스위치(290)로 그리고 SAN(270)으로의 경로를 포함할 수 있다. AIX® 클라이언트(235)로부터의 가상 경로는 가상 머신 모니터(250)를 통한 NPIV 어댑터 드라이버(242)로부터 NPIV 어댑터 드라이버(225), 물리적 파이버 채널 HBA 드라이버(215), 가상 머신 모니터(250)를 통한 I/O 슬롯(252) 및 파이버 채널 카드(254), SAN 스위치(260) 그리고 SAN(270)으로의 경로를 포함할 수 있다.
물리적 및 가상 다중경로 I/O의 동적 관리를 위해, 초기화하는 동안, 물리적 파이버 채널 HBA 드라이버(215)는 파이버 채널 초기화 시퀀스(initialization sequence)를 초기화하고 파이버 채널 카드(254)가 SAN 스위치(260)에, 파이버 채널 카드(254)의 N_Port를 위한 WWPN(World-Wide Port Name)를 포함하여 페이브릭 로그 인 명령어(Fabric Login command: FLOGI)를 보내도록 야기할 수 있다. SAN 스위치(260)는 N_Port를 위한 WWPN과 연관된 FC 주소를 포함하여, FLOGI 응답을 파이버 채널 카드(254)의 N_Port에 반환할 수 있다.
물리적 파이버 채널 HBA 드라이버(215)는 파이버 채널 카드(254)를 통해 SAN 스위치(260)와 통신하고 SAN 스위치(260)와 연관된 페이브릭의 모든 장치의 주소의 리스트를 구하는 물리적 파이버 채널 HBA 드라이버(215)의 디스커버리 기능(discovery function)을 수행할 수도 있다. 이후에 물리적 파이버 채널 HBA 드라이버(215)는 모든 주소에 쿼리를 하고, 각 주소에 연관된 각 장치에 로그인 을 하고, 장치가 파이버 채널/SCSI 타깃인지를 결정할 수 있다. 장치가 파이버 채널/SCSI 타깃인 경우, 물리적 파이버 채널 HBA 드라이버(215)는 타깃과 파이버 채널 카드(254) 간의 연결을 개설할 수 있다. 또한, SCSI 버스 상의 타깃으로서 나타나는 발견된 파이버 채널/SCSI 장치와 연관된 원격 포트와 함께 물리적 파이버 채널 HBA 드라이버(215)는 가상 클라이언트에 대한 SCSI 버스로서, 파이버 채널 카드(254)와 SAN 스위치(260) 간의 연관된 물리적 파이버 채널 링크를 나타낼 수 있다.
장치(200)는 파이버 채널 카드(254)의 N_Port가 복수의 파이버 채널 주소를 요구하기 위해 NPIV를 사용할 수 있다. 예를 들어, 물리적 파이버 채널 HBA 드라이버(215)는 AIX® 클라이언트(235)를 위한 일 파이버 채널 주소 및 Linux® 클라이언트(230)를 위한 제2 파이버 채널 주소를 요구할 수 있다. 각 주소는 파이버 채널 페브릭을 위한 고유한 엔티티로 나타날 수 있다. 즉, NPIV를 사용함으로써, SAN 스위치(260)에 의해 인식가능한 복수의 WWPN 및 파이버 채널 주소가 단일 물리적 FC 링크 및 N_Port에 할당될 수 있다. 또한, 가상 I/O 서버(210) 및 AIX® 클라이언트(235)는 각각 가상 장치 드라이버(예를 들어, NPIV 어댑터 드라이버(225) 및 NPIV 어댑터 드라이버(242))를 포함할 수 있고, 여기서 가상 장치 드라이버는 NPIV를 지원하는 능력이 있다.
복수의 WWPN 및 파이버 채널 주소를 단일 물리적 N_Port에 할당하는 것은 장치(200)가 운영체제에 독립적으로 복수의 가상 클라이언트를 실행하도록 할 수 있다. 파이버 채널 카드(254)의 포트를 단일 가상 클라이언트에 제공하는 것 대신에, 가상 클라이언트의 각각의 운영체제는, 각 파이버 채널 주소에 대해 연관된 고유한 WWPN에 따라 하나 이상의 고유하고 전용인 파이버 채널 주소를 고유하게 가질 수 있다. NPIV를 사용하여, 장치(200)는 또한 기타 파이버 채널 카드(예를 들어, 파이버 채널 카드(258))의 포트가 복수의 파이버 채널 주소를 요구하도록 할 수 있다.
장치(200)는 더 적은 물리적 리소스를 사용함으로써 I/O 중복성을 증가시키기 위해 동적인 물리적 및 가상 다중경로 I/O를 사용할 수 있다. 예를 들어, 중복된 I/O를 위한 두 개의 전용 물리적 I/O 슬롯을 요청하는 AIX® 클라이언트(235) 대신에, AIX® 클라이언트(235)는 하나의 전용 물리적 I/O 슬롯 및 연관된 HBA를 사용할 수 있고, VIOS(210)와 연관된 가상 HBA에 대한 장애극복 경로를 제공할 수 있다. 보다 상세한 예시가 동적인 물리적 및 가상 다중경로 I/O의 개념을 설명하는데 도움이 될 수 있다.
도 2에 도시된 바와 같이, 장치(200)는 물리적 파이버 채널 HBA 드라이버(244)와 연결된 파이버 채널 카드(282)를 포함하며 단일 전용 물리적 파이버 채널 HBA로 구성된 AIX® 클라이언트(235)를 가질 수 있다. 파이버 채널 카드(282) 및 물리적 파이버 채널 HBA 드라이버(244)는 AIX® 클라이언트(235)가 SAM(270)에 데이터를 저장하고 SAN(270)으로부터 데이터를 탐색하는데 사용하는 제1 I/O 채널을 포함할 수 있다.
AIX® 클라이언트(235)는 또한 NPIV 어댑터 드라이버(242, 243)를 포함하는 두 개의 가상 파이버 채널 HBA로 구성될 수도 있다. 예를 들어, AIX® 클라이언트(235)와 가상 I/O 서버(210) 간의 일 가상 파이버 채널 I/O 경로는 NPIV 어댑터 드라이버들(242, 225) 간의 가상 머신 모니터(250)에 의해 제공되는 가상 경로를 포함할 수 있다. 제2 가상 파이버 채널 I/O 경로는 NPIV 어댑터 드라이버들(243, 223) 간의 가상 머신 모니터(250)에 의해 제공되는 가상 경로를 포함할 수 있다.
NPIV 어댑터 드라이버(225)는, 가상 I/O 서버(210)가 I/O 슬롯(252), 파이버 채널 카드(254) 및 SAN 스위치(260)를 통해 장치(200)와 SAN(270) 간에 데이터를 전송할 수 있도록 하며 물리적 파이버 채널 HBA 드라이버(215)와 연결될 수 있다. NPIV 어댑터 드라이버(223)는 I/O 슬롯(256), 파이버 채널 카드(258) 및 SAN 스위치(260)를 통해 장치(200)와 SAN(270) 간에 데이터를 전송할 수 있도록 하며 물리적 파이버 채널 HBA 드라이버(220)에 연결될 수 있다. NPIV 어댑터 드라이버(225, 223), 물리적 파이버 채널 HBA 드라이버(215, 220) 및 파이버 채널 카드(254, 258)는, AIX® 클라이언트(235)가 SAN(270)에 데이터를 저장하고 SAN(270)로부터 데이 터를 검색하는데 사용하는 제2 및 제3 I/O 채널을 포함할 수 있다.
다중경로 I/O 모듈(240)은 AIX® 클라이언트(235)가 사용하도록 구성되는 다양한 물리적 파이버 채널 HBA 및 가상 파이버 채널 HBA I/O 데이터 경로를 식별할 수 있다. 또한, 다중경로 I/O 모듈(240)은 각각의 물리적 및 가상 I/O 데이터 경로의 장애를 동적으로 검출하고, AIX® 클라이언트(235)가 I/O 데이터 경로를 교체해서 동적으로 장애를 극복하도록 할 수 있다. 예를 들어, 일 모드에서 동작 동안, AIX® 클라이언트(235)는 AIX® 클라이언트(235)와 SAN(270) 간에 데이터를 전송하기 위해, 물리적 파이버 채널 HBA 드라이버(244)에 의해 표현되는 제1 I/O 채널을 사용할 수 있다.
장애 또는 유지보수의 이벤트에 있어서, 하드웨어 문제를 겪는 SAN 스위치(290)와 같은, 다중경로 I/O 모듈(240)은 물리적 파이버 채널 HBA 드라이버(244) 와 연관된 장애를 검출할 수 있고, AIX® 클라이언트(235)를 위한 제1 채널을 물리적 파이버 채널 HBA 드라이버(244)로부터 NPIV 어댑터 드라이버(242)와 연관된 제2 I/O 채널로 바꿀 수 있다. 또한, 제2 I/O 채널의 장애 이벤트의 경우에 있어서, 다중경로 I/O 모듈(240)은 또한 장애를 검출하고, AIX® 클라이언트(235)를 위한 현재 활성화 I/O 채널을 NPIV 어댑터 드라이버(242)에서 NPIV 어댑터 드라이버(244)와 연관된 제3 I/O 채널로 바꿀 수 있다.
제1 I/O 채널로 단일 전용 물리적 파이버 채널 HBA를 가지고, 제2 제3 장애 극복 I/O 채널 또는 경로로 두 개의 가상 파이버 채널 HBA를 가지는 예시적인 실시예가 기술되었지만, 다른 실시예는 상이한 유형의 제1 HBA 및 다양한 수의 장애극 복 HBA로 구성될 수 있다. 예를 들어, 다른 실시예는 제1 I/O 채널 및 연관된 경로로 단일 가상 파이버 채널 HBA 및 제2 I/O 채널 및 연관된 경로로, iSCSI 저장 장치에 연결된 단일 물리적 이더넷 HBA를 가질 수 있다.
동적인 물리적 및 가상 다중경로 I/O의 도움으로 인해서, 장치(200)는 클라이언트와 연관된 I/O의 중단 없이 AIX® 클라이언트(235) 또는 Linux 클라이언트(230)를 일 물리적 서버에서 다른 것으로 동적으로 이동할 수 있다. 파티션의 움직임은 클라이언트 파티션이 실행하는 모든 것, 즉 모든 호스팅된 애플리케이션을 포함할 수 있다. 다른 서버들 간에 논리적 파티션을 움직이는 것은 가상 클라이언트에 의해 제공되는 서비스에 대한 중단없이 서버 하드웨어의 계획된 유지보수가 가능하게 할 수 있다. 예를 들어, 시스템 관리자는 자주 사용되는 논리적 파티션을, 파티션에 의해 제공되는 서비스에 대한 인터럽션 없이 보다 큰 머신으로 이동시킬 수 있다. 또한, 시스템 관리자는, 워크로드 수요에 따라 더 많이 사용가능한 프로세싱 전력을 가진 서버로 파티션을 이동할 수 있거나, 사용자에 대한 특정 수준의 서비스를 유지하기 위해 서버 하드웨어의 사용을 조정할 수 있다.
보다 상세한 예는 어떻게 동적인 물리적 및 가상 다중경로 I/O가 논리적 파티션의 재배치를 가능하게 할 수 있는지에 대해 훨씬 더 상세하게 기술할 수 있다. 가상 머신 모니터(250)는 AIX® 클라이언트(235) 및 Linux® 클라이언트(230)와 같은 다양한 논리적 파티션들 간에 프로세스 전력을 분배하도록 구성될 수 있다. 예를 들어, AIX® 클라이언트(235)는 할당된 2 개의 프로세싱 유닛 및 2 개의 가상 프로세서를 가질 수 있고, Linux® 클라이언트(230)는 또한 할당된 2 개의 프로세 싱 유닛 및 2 가상 프로세서를 가질 수 있다. 또한 이 예에서, AIX® 클라이언트(235) 및 Linux® 클라이언트(230)는 모두 동일한 서버에 상주할 수 있으며, 이 서버는 총 4개의 물리적 프로세서를 가진다.
AIX® 클라이언트(235)에 대한 수요 또는 총 로드는 시간의 흐름에 따라 증가할 수 있다. 예를 들어, AIX® 클라이언트(235)와 연관된 일 프로세서가 프로세서의 실행 능력에 비해 많은 수의 명령어를 실행하여 매우 로드가 걸릴 수 있다. 시스템 관리자가 현재 서버(예를 들어 여분의 초과 프로세싱 전력이 없는 Linux® 클라이언트(230))상의 AIX® 클라이언트(235)를 위한 사용가능한 컴퓨팅 전력의 양을 증가시킬 수 없는 경우, 시스템 관리자는 AIX® 클라이언트(235)의 논리적 파티션을 사용가능한 더 많은 프로세싱 전력을 가지는 다른 서버로 이동시킬 필요가 있을 수 있다.
AIX® 클라이언트(235)를 다른 서버로 이동시킴에 있어서, 시스템 관리자는 장치(200)가 목적지 또는 타깃 서버에 현재 AIX® 클라이언트(235)의 복사본을 만들도록 할 수 있다. 일단, 복사본이 생성되면, 장치(200)는 소스 이미지를 비활성화하고, 목적지 또는 타깃 이미지를 활성화하며, 소스 서버의 메모리에서 비활성화된 이미지를 제거할 수 있다. AIX® 클라이언트(235)가 이동하면, 전용 물리적 HBA는 재배치하는 동안 사용가능하지 않게 될 수 있다. 예를 들어, I/O 슬롯(280) 및 파이버 채널 카드(282)가 소스 서버에 상주하기 때문에, 타깃 서버의 새롭게 생성된 논리적 파티션에 있는 AIX® 클라이언트(235)는 I/O 슬롯(280) 및 파이버 채널 카드(282)로부터 물리적으로 고립될 수 있다.
다중경로 I/O 모듈(240)은 물리적 파이버 채널 HBA 드라이버(244)를 통해 파이버 채널 카드(282)의 사용 불가능성을 검출할 수 있다. 검출하는 경우, 다중경로 I/O 모듈(240)은 AIX® 클라이언트(235)가 NPIV 어댑터 드라이버(244 또는 243)에 의해 제공되는 가상 I/O 경로들 중 하나로 동적으로 바꾸거나 장애극복하도록 야기할 수 있다. 장애극복 경로를 사용하면서, 시스템 관리자는 타깃 서버를 위한 HMC(Hardware Management Console)에 로그인하고, 전용 I/O 슬롯(280) 및 파이버 채널 카드(282)를 다른 I/O 슬롯 및 타깃 서버의 HDA로 교체하면서 AIX® 클라이언트(235)를 재구성할 수 있다.
도 3은 물리적 및 가상 다중경로 I/O의 동적 관리를 수행할 수 있는 장치(300)의 일 실시예를 도시한다. 장치(300)의 하나 이상의 요소는 하드웨어, 소프트웨어 또는 하드웨어 및 소프트웨어 양자의 조합의 형태일 수 있다. 예를 들어, 도 3에 도시된 실시예에 있어서, 메모리(310)에 있는, 장치(300)의 모듈은 하나 이상의 프로세서에 의해 실행되는 애플리케이션의 소프트웨어 명령어를 포함할 수 있다. 즉, 장치(300)는 네트워크(370)에 연결된 컴퓨팅 장치의 요소를 포함할 수 있다.
다른 실시예에 있어서, 장치(300)의 하나 이상의 모듈은 하드웨어로만 된 모듈을 포함할 수 있다. 예를 들어, 가상 I/O 서버(330)는, 도 3에 도시된 것과 다른 배치로, 컴퓨팅 장치의 프로세서에 연결된 집적 회로 칩의 일부를 포함할 수 있다. 이러한 실시예에 있어서, 가상 I/O 서버(330)는, 메모리(310)에 있는 가상 클라이언트가 I/O 장치(예를 들어, 물리적 HBA(350, 360))에 액세스하도록 하며 가상 머신 모니터(340)와 연동하여 작동할 수 있다.
또 다른 실시예에 있어서, 장치(300)의 하나 이상의 모듈은 하드웨어 및 소프트웨어 모듈의 조합을 포함할 수 있다. 예를 들어, 가상 머신 모니터(340)는, 가상 클라이언트 및 파티션이 I/O 하드웨어에 액세스할 수 있도록, 메모리의 가상 클라이언트 및 논리적 파티션의 모니터링 및 유지보수를 수행하는 독립형 프로세싱 회로 및 팜웨어를 포함할 수 있다.
하나 이상의 실시예에 있어서, 가상 머신 모니터(340)는 동적 리소스 공유를 가능하게 하는 소프트웨어 또는 팜웨어에서의 코드의 얇은 층을 포함할 수 있다. 도 3에 도시된 실시예에 있어서, 가상 머신 모니터(340)는 가상화를 가능하게 하며, 가상 리소스라 불리는 실제 리소스를 위한 대체물을 생성할 수 있다. 예를 들어, 가상 머신 모니터(340)는 단일 물리적 시스템 내의 많은 가상 시스템의 생성을 가능하게 할 수 있다. 두 개의 가상 시스템은, 예를 들어 가상 클라이언트(320) 및 가상 I/O 서버(330)를 포함할 수 있다. 가상 머신 모니터(340)는 물리적 HBA(350, 360)을 위한 가상 대체물을 생성할 수 있고, 가상 클라이언트(320) 및 가상 I/O 서버(330)가, 실제 물리적 리소스에 대한 연속적인 액세스의 시도의 충돌을 방지하며 독립적인 방식으로 이 가상 대체물과 상호작용하도록 할 수 있다.
가상 클라이언트(320)는 데스크톱 컴퓨터의 이미지를 포함할 수 있는데, 이는 가상 데스크톱이라 지칭될 수 있으며, 메모리(310)의 논리적 파티션에 저장될 수 있다. 예를 들어, 가상 클라이언트(320)는 운영체제의 이미지 및 운영체제와 호환가능한 수많은 애플리케이션을 포함할 수 있다. 보다 상세한 예에 있어서, 가 상 클라이언트(320)는 CAD 프로그램, 메일 서버 프로그램 및 데이터베이스 프로그램을 실행하는 AIX®, Windows®, Unix® 및 기타 다른 운영체제를 포함할 수 있다.
가상 I/O 서버(330)는 논리적 파티션에 또한 위치한 소프트웨어를 포함할 수 있다. 가상 I/O 서버(330)는 가상 머신 모니터(340)와 연동하여 동작할 수 있으며, 메모리(310)의 다양한 가상 클라이언트들(예를 들어, 가상 클라이언트(320)) 간의 물리적 I/O 리소스(예를 들어, 물리적 HBA(350, 360))의 공유를 가능하게 할 수 있다. 예를 들어, 수많은 실시예에 있어서, 가상 I/O 서버(330)는, 클라이언트 논리적 페티션(petition)이 SCSI 장치 및 이더넷 어댑터를 공유하도록 하는, 가상 SCSI 타깃 및 공유 이더넷 어댑터 능력을 장치(300) 내의 클라이언트 논리적 파티션들에 제공할 수 있다.
물리적 HBA(350, 360)는 하나 이상의 다양하고 상이한 어댑터를 포함한다. 수많은 실시예에 있어서, HBA는 파이버 채널 네트워크를 통해 SCSI 명령어를 전송하기 위해 파이버 채널 프로토콜(FCP)을 사용하여 통신하는 파이버 채널 HBA를 포함할 수 있다. 일부 실시예에 있어서, HBA는 인터넷 SCSI 호환가능(iSCSI) HBA를 포함할 수 있다. iSCSI HBA는 IP 네트워크를 통해 SCSI 명령어의 교환을 가능하게하기 위해 TCP/IP를 사용할 수 있다. 즉, iSCSI HBA는 SAN을 생성하기 위해 광역 통신망(WAN : Wide Area Network)을 통해 로컬 저장 버스를 에뮬레이팅(emulate)할 수 있다. 파이버 채널 및 iSCSI HBA는 단지 몇 가지 예시일 뿐이다. 다른 실시예는 하나 이상의 다른 유형의 HBA를 사용할 수 있다.
네트워크(370)는 수많은 네트워킹 장치 및 하나 이상의 저장 장치를 포함할수 있다. 예를 들어, 네트워크(370)는 단지 몇 가지 예로, 수많은 iSCSI 디스크, iSCSI 테이프 드라이브, iSCSI 광학 저장 장치, 파이버 채널 RAID, 파이버 채널 디스크, 파이버 채널 테이프 드라이브, 파이버 채널 광학 드라이브 및/또는 iSCSI RAID 저장소를 서로 연결하는 라우터, 허브, 스위치 및 케이블링의 어레이을 포함할 수 있다. 네트워크(370)는 저장 장치가 근거리에 연결되어 나타나도록 하는 이러한 방식으로 저장 장치를 연결하고 표현할 수 있다. 네트워크(37)는 네트워크(370)의 서버와 저장 장치들 간의 통신을 위한 하나 이상의 로우 레벨(low-level) 프로토콜을 사용할 수 있다. 예를 들어, 상이한 실시예는 이러한 프로토콜로 이더넷 상의 ATA, 파이버 채널 상의 FICON 맵핑, 이더넷 상의 파이버 채널, HyperSCSI, RDMA (iSER)를 위한 ISCSI 확장, iFCP 및/또는 iSCSI를 사용할 수 있다.
장치(300)가 가상 클라이언트(320)의 운영체제 및 애플리케이션을 실행하는 동안, 가상 머신 모니터(340)는 가상 클라이언트(320)가 전용 물리적 HBA(350)를 통해 네트워크(370)의 하나 이상의 저장 장치에 정보를 저장하고, 이로부터 정보를 수신하도록 할 수 있다. 즉, 가상 머신 모니터(340)는 다른 모든 가상 클라이언트가 물리적 HBA(350)를 사용하는 것을 방지할 수 있다.
가상 머신 모니터(340)는 또한 가상 I/O 서버(330)가 물리적 HBA(360)을 통해 네트워크(370)의 하나 이상의 저장 장치로부터 정보를 보내고 정보를 수신하도록 할 수도 있다. 가상 I/O 서버(330)는 장치(300)의 복수의 가상 클라이언트가 네트워크(370)에/로부터 정보를 전송하도록 할 수 있다.
동작하는 동안, 물리적 HBA(350)는 가상 클라이언트(320)로부터 네트워크(370)로의 전용 물리적 경로를 사용 불가능하게 만드는 하드웨어 문제를 마주할 수 있다. 그러나, 가상 클라이언트(320)는 장애 또는 사용 불가능함을 검출하여, 제1 물리적 경로에서 하나 이상의 가상 경로로 바꾸도록 구성될 수 있다. 장치(300)의 실시예에 있어서, 가상 클라이언트(320)는 동적으로 장애를 극복할 수 있거나, 가상 I/O 서버(330) 및 물리적 HBA(360)에 의해 제공되는 네트워크(37)를 위한 가상 경로로 바꿀 수 있다. 사용 불가능한 경로로부터 다른 사용가능한 경로로 동적으로 바꾸는 것은 장치(300)의 서비스 가동시간 및 신뢰성을 증가시킬 수 있다.
다른 배치 또는 구성 시나리오에 있어서, 가상 클라이언트(320)는 제1 경로로 가상 I/O 서버(330) 및 물리적 HBA(360)을 통해 가상 경로를 사용할 수 있다. 가상 경로가 사용 불가능하게 될 때마다(예를 들어, 장치(300)의 다른 가상 클라이언트로부터의 결과), 가상 클라이언트(320)는 물리적 HBA(350)에 대해 장애를 극복할 수 있으며 네트워크(370)의 저장 장치(들)로 데이터를 교환하는 것을 계속할 수 있다.
상기 논의된 예시적인 실시예에 있어서, 가상 클라이언트(320)는 제1 I/O 경로의 사용 불가능성을 결정했고 제2 I/O 경로로 바꾸었다. 많은 실시예에 있어서, 이러한 결정 및 전환은 다중 I/O 경로 모듈과 같은 가상 클라이언트(320)의 모듈에 의해 수행될 수 있다. 다른 실시예에 있어서, 사용 불가능성의 결정 및/또는 전환 은 장치(300)의 다른 요소에 의해 수행될 수 있다. 예를 들어, 적어도 하나의 다른 실시예에 있어서, 가상 머신 모니터(340)는 네트워크(370)에 대한 제1, 제2 및 다른 I/O 경로를 포함하는 정보로 구성될 수 있다. 즉, 가상 머신 모니터(340)는 물리적 HBA(350)를 통해 가상 클라이언트(320)를 위한 I/O 트랜잭션(transactions)을 일반적으로 라우팅할 수 있다. 가상 머신 모니터(340)가 물리적 HBA(350)과 연관된 오류를 검출해야 하는 경우, 가상 머신 모니터(340)는 가상 I/O 서버(330) 및 물리적 HBA(360)를 통해 I/O 트랜잭션을 자동으로 재라우팅할 수 있다.
장치(300)의 일 실시예에 있는 모듈의 수는 다양할 수 있다. 일부 실시예는 도 3에 도시된 모듈보다 더 적은 모듈을 가질 수 있다. 예를 들어, 일 실시예는 가상 I/O 서버(330)에 의해 도시되거나 및/또는 수행되는 기능과 가상 머신 모니터(340)의 기능을 단일 모듈로 통합할 수 있다. 즉, 다른 실시예는 다른 가상 클라이언트로부터의 I/O 요청을 수신하고 적절한 I/O 하드웨어 리소스에 대한 요청을 라우팅할 수 있는 가상 머신 모니터를 가질 수 있다.
다른 실시예는 도 3에 도시된 것들보다 더 많은 모듈 또는 요소를 포함할 수 있다. 예를 들어, 다른 실시예는 하나 이상의 다중 I/O 경로 모듈, 두 개 이상의 가상 I/O 서버 및 추가의 물리적 HBA를 포함할 수 있다. 또한, 다른 많은 실시예에 있어서, 메모리(310)는 수많은 메모리 모듈을 포함할 수 있다. 예를 들어, 메모리(310)는 서버 시스템에서의 복수의 서버들로 분포될 수 있다. 시스템의 여러 서버들은 하나 이상의 가상 클라이언트 및/또는 가상 I/O 서버를 포함할 수 있다. 가상 머신 모니터(340)는 단일 서버 또는 복수의 서버상에 상주할 수 있다.
도 4는 시스템이 물리적 및 가상 다중경로 I/O의 동적 관리를 어떻게 수행할 수 있는지를 도시하는 프로세스의 순서도(400)를 도시한다. 예를 들어, 하나 이상의 실시예는 명령어를 포함하는 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품으로 구현될 수 있으며, 이 명령어는 프로세서에 의해 실행되는 경우 I/O 요청을 가상 클라이언트로부터 직접적으로 물리적 HBA로 라우팅하거나, 가상 I/O 서버를 통해 간접적으로 물리적 HBA로 라우팅한다. 또한, 순서도(400)의 프로세스는 도 1에 도시된 ASIC(124)와 같은 ASIC의 상태 머신처럼 하드웨어로 구현될 수 있다. 예를 들어, ASIC(124)는 물리적 및 가상 I/O 리소스의 다중경로를 동적으로 관리하기 위해 시스템(100)의 다른 하드웨어와 연동하여 동작하는 동적 물리적 또는 가상 다중경로 I/O 모듈을 포함할 수 있다.
도 4에 도시된 바에 따라, 프로세스는 가상 머신 모니터를 초기화하고, 하나 이상의 가상 I/O 서버를 로딩하고, HBA를 위한 식별자 수를 요청하는 것을 포함할 수 있다(요소(410)). 예를 들어, 장치(200)는 가상 머신 모니터(250)를 메모리 모듈(264)에 로딩하고, 가상 모신 모니터(250)를 초기화하며, 가상 I/O 서버(210)를 메모리 모듈(264)에 로딩하고, 파이버 채널 카드(254, 258, 282)에 대한 NPIV 및WWPN 수를 SAN 스위치(260, 290)로부터 요청할 수 있다.
이후에, 장치(200)는 하나 이상의 가상 클라이언트를 로딩하고, 전용 HBA를 연관시키거나 할당하고, 로딩된 모듈의 구성에 기초하여 가상 HBA를 할당할 수 있다(요소(420)). 예를 들어, 장치(200)는 Linux® 클라이언트(230) 및 AIX® 클라이언트(235)를 메모리 모듈(264)의 논리적 파티션에 로딩하고, 파이버 채널 카 드(282)를 물리적 파이버 채널 HBA 드라이버(244)에 제공하고, 파이버 채널 카드(254, 258)를 가상 파이버 채널 카드로 각각 NPIV 어댑터 드라이버(225, 223)를 통해 AIX® 클라이언트(235)에 할당할 수 있다. 이후에, 장치(200)는 Linux® 클라이언트(230) 및 AIX® 클라이언트(235)의 운영체제를 실행하는 것을 시작할 수 있으며, 개별적인 논리적 파티션의 각각으로 로딩된 다양한 애플리케이션을 실행하는 것을 시작할 수 있다(요소(430)).
장치(200)가 AIX® 클라이언트(235)를 실행함에 따라, 다중경로 I/O 모듈(240)은 물리적 파이버 채널 HBA 드라이버(244)와 NPIV 어댑터 드라이버(243) 간의 I/O 로드를 분배하도록 구성될 수 있다(요소(440)). 동작하는 동안, 다중경로 모듈(240)은 파이버 채널 카드(258), 물리적 파이버 채널 HBA 드라이버(220), NPIV 드라이버(223, 244)에 영향을 주는 SAN 스위치(260)의 장애를 검출할 수 있고(요소(450)), NPIV 어댑터 드라이버(242, 225), 물리적 파이버 채널 HBA드라이버(215) 및 파이버 채널 카드(254)에 의해 정의되는 가상 I/O 경로를 전환할 수 있다(요소(470)).
기술자가 파이버 채널 카드(258)에 연관된 SAN 스위치(260)의 문제점을 개선한 후에, 다중경로 I/O 모듈(240)은 파이버 채널 카드(258)의 가상 경로가 다시 온라인이거나 시동된다는 것을 검출하고(요소(460)), 새롭게 사용가능한 파이버 채널 카드(258)가 AIX® 클라이언트(235)를 위한 제2 경로가 되도록 구성된다는 것을 검출하고(요소(480)), NPIV 어댑터 드라이버(243, 223), 물리적 파이버 채널 HBA 드라이버(220) 및 파이버 채널 카드(258)에 의해 정의되는 가상 I/O 경로로 다시 전 환할 수 있다(요소(490)).
도 4의 순서도(400)는 일 프로세스만을 도시한다. 다른 실시예는 순서도(400)의 무수한 변종을 구현할 수 있다. 예를 들어, 파이버 채널 카드(258)에 연관된 단일 장애를 검출하는 것 외에, 다중경로 I/O 모듈(240)은, 사용 불가능한 NPIV 어댑터 드라이버(242)에 연관된 장애극복 가상 I/O 경로를 구성하며 SAN 스위치(260)의 장애가 또한 파이버 채널 카드(254)에 연관된 장애를 야기했다는 것도 또한 검출할 수 있다(요소(450)). 따라서, 다중경로 I/O 모듈(240)은 다음 사용가능한 가상 I/O 경로 또는 전환하도록 구성될 수 있고, 이는 가상 I/O 서버(210)의 다른 가상 포트 또는 다른 가상 I/O 서버에 연관된 다른 물리적 파이버 채널 카드를 위한 상이한 가상 포트일 수 있다(요소(470)).
도 5는 물리적 및 가상 다중경로 I/O를 동적으로 관리하는 방법의 순서도(500)를 도시한다. 예를 들어, 도 2에 도시된 장치(200)의 다른 실시예는 가상 I/O 서버(210) 및 상이한 가상 I/O 서버에 대해 iSCSI HBA에 연관된 다른 가상 I/O 경로 파이버 채널 카드(또는 HBA)에 연관된 하나의 가상 I/O 경로를 가질 수 있다. 즉, 장치(200)의 다른 실시예는 두 개의 가상 I/O 서버를 가질 수 있으며, 하나는 파이버 채널 HBA에 연결되고 하나는 iSCSI HBA에 연결된다.
장치(200)의 다른 실시예에 동작하는 동안, 가상 머신 모니터(250)는 AIX® 클라이언트(235)가 iSCSI HBA에 의해 정의되는 가상 I/O 경로를 통해 SAN(270)의 하나 이상의 저장 장치들 간에 데이터를 전송하도록 할 수 있다(요소(510)). 또한, 장치(200)가 동작함에 따라, 가상 머신 모니터(250)는 Linux® 클라이언 트(230) 및 장치(200)의 다른 임의의 가상 클라이언트가 가상 I/O 서버(210)를 통해 SAN(270)으로/으로부터 데이터를 전송하도록 할 수 있다(요소(520)).
장치(200)가 동작하는 동안, 다중경로 I/O 모듈(240)은 AIX® 클라이언트(235)에 연관된 물리적 및 가상 I/O 데이터 경로들의 상태를 모니터링할 수 있으며, 예를 들어, HBA, 네트워크 스위치 또는 파이버 채널 카드(282)에 연결된 저장 영역 네트워크의 저장 장치, 가상 I/O 서버(210)에 연결된 파이버 채널 HBA 및 다른 가상 I/O 서버에 연결된 iSCSI HBA에 의해 보고되는 임의의 오류들을 모니터링할 수 있다(요소(530)). 예를 들어, iSCSI 카드 또는 HBA에 연결된 저장 장치는 AIX® 클라이언트(235)의 I/O 트랜잭션 시도에 연관된 I/O 오류를 반환할 수 있다. 오류 또는 장애를 검출하는 것에 대한 응답으로(요소(540)), 다중경로 I/O 모듈(240)은 장애가 있는 iSCSI HBA에 연관된 가상 데이터 경로 및 가상 I/O 서버를 제2 가상 I/O 서버 및 파이버 채널 HBA로 전환할 수 있다(요소(550)).
순서도(500)의 실시예는 다중경로 I/O 모듈(240)에 의해 파이버 채널 HBA에 연관된 가상 데이터 경로에서 전용 물리적 HBA(다른 HBA로 구성된)로 전환하는 것을 계속할 수 있다(요소(560)). 다중경로 I/O 모듈(240)은 AIX® 클라이언트(235)를 위해 구성된 물리적 및 가상 I/O 데이터 경로(예를 들어, iSCSI HBA 및파이버 채널 HBA)의 상태를 모니터링하는 것을 계속할 수 있다. 이전에 장애가 있었던 장치(들)가 온라인으로 돌아온 경우, 다중경로 I/O 모듈(240)은 사용 가능성의 변경을 검출하고 AIX® 클라이언트(235)를 위한 연관된 I/O 데이터 경로를 새롭게 사용가능한 HBA로 다시 전환할 수 있다. 예를 들어, 여전에 I/O 오류를 반환했던, iSCSI에 연관된 저장 장치는 장치가 정상 동작을 되찾았다는 신호를 보낼 수 있으며, 여기서 다중경로 I/O 모듈(240)은 다른 전용 물리적 HBA로부터 iSCSI HBA에 연관된 가상 I/O 경로로 다시 전환할 수 있다.
다른 실시예는 도 1 내지 5를 참조로 기술된 시스템, 방법 및 장치를 구현하기 위한 프로그램 제품으로 구현된다. 실시예는 하드웨어 및 소프트웨어 요소를 모두 포함할 수 있다. 일 실시예는 소프트웨어로 구현될 수 있으나 펌웨어, 상주 소프트웨어, 마이크로코드등에 한정되는 것은 아니다.
또한, 실시예는 컴퓨터 또는 임의의 명령어 실행 시스템에 연결되거나 이에 의해 사용되기 위한 프로그램 코드를 제공하는 컴퓨터 사용가능 또는 컴퓨터 판독가능 매체로부터 액세스가능한 컴퓨터 프로그램 제품의 형태를 취할 수 있다. 다양한 실시예를 설명하기 위한 목적을 위해, 컴퓨터 사용가능 또는 컴퓨터 판독가능 매체는 명령어 실행 시스템 또는 장치에 연결되거나 이에 의해 사용되기 위한 프로그램을 포함하고, 저장하고, 통신하고, 전파하고, 전송할 수 있는 임의의 장치를 포함할 수 있다.
매체는 전자적, 전기적, 광학적, 전자기적, 적외선 또는 반도체 시스템(또는 장치) 매체일 수 있다. 컴퓨터 판독가능 매체의 예는 반도체, 고상 메모리, 자기 테이프, 착탈식 컴퓨터 디스켓, RAM, ROM, 강성 자기 디스크 및 광학 디스크를 포함한다. 광학 디스크의 현재의 예는 CD-ROM, CD-R/W 및 DVD를 포함한다.
프로그램 코드를 저장하고 및/또는 실행하는데 적절한 데이터 처리 시스템은 시스템 버스를 통해 메모리 요소에 직접적으로 또는 간접적으로 연결된 적어도 하 나의 프로세서를 포함할 수 있다. 메모리 요소는 프로그램 코드를 실제 실행하는 동안 사용되는 로컬 메모리, 벌크 저장소 및 캐시 메모리를 포함할 수 있으며, 이는 실행하는 동안 코드가 벌크 저장소로부터 검색되는 횟수를 줄이기 위해 적어도 일부 프로그램 코드의 임시 저장소를 제공한다. (이에 한정되는 것은 아니나 키보드, 디스플레이, 포인팅 장치등을 포함하는) 입/출력 또는 I/O 장치는 직접적으로 또는 중계 I/O 컨트롤러를 통해 시스템에 연결될 수 있다.
본 공개의 장점을 가지는 본 기술분야의 당업자는 본 공개가 물리적 및 가상 다중경로 I/O의 동적 관리를 고려한다는 것을 알 것이다. 발명의 상세한 설명 및 도면에 도시되고 기술된 실시예의 형태는 단지 예시일 수 있다. 다음의 특허청구범위는 공개된 예시적인 실시예의 모든 변형을 포함하여 넓게 해석되어야 한다.
본 공개 및 그 장점의 일부가 일부 실시예에서 상세하게 기술되었으나, 본 기술분야의 당업자는 다양한 변경, 대체물이 부가된 특허청구범위에 의해 정의되는 본 공개의 사상과 범위를 벗어나지 않고 만들어질 수 있다는 것을 알 것이다. 비록 특정 실시예가 복수의 목적을 행할 수 있으나, 부가된 특허청구범위의 범위에 포함되는 모든 실시예가 모든 목적을 행하는 것은 아니다. 또한, 본 출원서의 범위는 특정 실시예의, 명세서에 기술된 프로세스, 머신, 제조품, 사건의 구성, 수단, 방법 및 단계에 한정되는 것은 아니다. 본 기술분야의 당업자가 본 공개로부터 쉽게 인식할 수 있는 바와 같이, 본 명세서에 기술된 대응하는 실시예의 실질적으로 동일한 기능을 수행하거나 실질적으로 동일한 결과를 이루는, 현재 존재하거나 나중에 개발될 프로세스, 머신, 제조품, 사건의 구성, 수단, 방법 또는 단계 가 사용될 수 있다. 따라서, 부가된 특허청구범위는 이러한 프로세스, 머신, 제조품, 사건의 구성, 수단, 방법 또는 단계의 그 범위 내에 포함하도록 해석된다.
다음의 상세한 설명을 읽으면 다양한 실시예의 특징을 명확하게 이해할 수 있을 것이며, 첨부된 도면에서 동일한 참조번호는 유사한 구성 요소를 가리킨다.
도 1은 두 개의 프로세서, 가상 머신 모니터, 디스플레이 및 다양한 입력 출력 장치를 포함하는, 물리적 및 가상 다중경로 I/O의 동적 관리를 수행할 수 있는 시스템의 일 실시예를 도시하는 도면.
도 2는 가상 I/O 서버를 통해 연결된 하나 이상의 물리적 파이버 채널 카드와 가상 클라이언트에 직접 연결된 물리적 파이버 채널 카드 사이에서 다중경로 I/O를 동적으로 관리하는 일 실시예를 도시하는 도면.
도 3은 가상 I/O 경로와 물리적 I/O 경로 사이에서 다중경로 I/O를 동적으로 관리할 수 있는 장치의 일 실시예를 도시하는 도면.
도 4는 가상 클라이언트, 가상 I/O 서버, 가상 머신 모니터를 로드하고 사용 불가능한 HBA로부터 사용가능한 HBA로 동적으로 전환하는 일 실시예를 도시하는 순서도.
도 5는 물리적 및 가상 다중경로 I/O를 동적으로 관리하는 방법의 순서도.
<도면의 주요 부분에 대한 부호의 설명>
205: 가상 층
230: 리눅스 클라이언트
235: AIX 클라이언트
250: 가상 머신 모니터
266: 하드웨어 층
252: I/O 슬롯
254: FC 카드

Claims (10)

  1. 컴퓨터가 가상 클라이언트로 하여금 제1 물리적 호스트 버스 어댑터(Host Bus Adapter: HBA)를 통해 저장소 네트워크와 상기 가상 클라이언트 간에 데이터를 전송하도록 하는 단계 - 상기 가상 클라이언트는 제1 논리적 파티션(logical partitions: LPAR)에 상주함 - ;
    상기 컴퓨터가 가상 I/O 서버로 하여금 제2 물리적 HBA를 통해 상기 저장소 네트워크와 상기 가상 I/O 서버 간에 데이터를 전송하도록 하는 단계 - 상기 가상 I/O 서버는 제2 논리적 파티션에 상주함 - ;
    상기 컴퓨터가 가상 머신 모니터로 하여금 상기 제1 논리적 파티션 및 상기 제2 논리적 파티션 사이에 파티션들 간의 통신(inter-partition communication)을 제공하도록 하는 단계 - 상기 파티션들 간의 통신은 상기 가상 클라이언트에 대한 상기 제2 물리적 HBA의 가상화 기능(virtualization functionality)을 가능하게 하고, 상기 가상화 기능은 상기 가상 머신 모니터의 RDMA(Remote Direct Memory Access) 서비스를 통하여 이루어지는 것임 - ; 및
    상기 컴퓨터가, 동적으로, 상기 가상 클라이언트로 하여금 상기 가상 I/O 서버 및 상기 제2 물리적 HBA를 통해 상기 저장소 네트워크와 상기 가상 클라이언트 간에 데이터를 전송하도록 하는 단계
    를 포함하는 방법.
  2. 제1 물리적 호스트 버스 어댑터(HBA)를 통해 네트워크로 데이터를 전송하는 가상 클라이언트 모듈 - 상기 가상 클라이언트 모듈은 제1 논리적 파티션에 상주함 - ;
    제2 물리적 HBA를 통해 상기 네트워크로 데이터를 전송하는 가상 I/O 서버 모듈 - 상기 가상 I/O 서버 모듈은 제2 논리적 파티션에 상주함 - ;
    상기 가상 클라이언트 모듈을 상기 가상 I/O 서버 모듈에 연결하도록 구성된 가상 머신 모니터 - 상기 가상 머신 모니터는 상기 제1 논리적 파티션 및 상기 제2 논리적 파티션 사이에 파티션들 간의 통신을 제공하고 상기 제1 논리적 파티션 및 상기 제2 논리적 파티션에 대해 RDMA 서비스를 제공하도록 구성됨 -
    를 포함하며,
    상기 가상 I/O 서버는 상기 가상 클라이언트 모듈이 가상 HBA로서 상기 제2 물리적 HBA를 상기 파티션들 간의 통신을 통해 액세스할 수 있게 해 주도록 구성되고, 상기 가상 I/O 서버 모듈 및 상기 가상 머신 모니터 중 적어도 하나는, 동적으로, 상기 가상 클라이언트 모듈이 상기 제2 물리적 HBA를 통해 상기 네트워크로 데이터를 전송하게 해 주도록 구성되는 장치.
  3. 제2항에 있어서,
    상기 제1 물리적 HBA 및 상기 제2 물리적 HBA의 사용 가능성을 검출하도록 구성되는 다중경로 I/O 모듈을 더 포함하고, 상기 가상 클라이언트 모듈은 NPIV(N_Port ID Virtualization)를 지원하는 제1 드라이버를 포함하고, 상기 가상 I/O 서버 모듈은 NPIV를 지원하는 제2 드라이버를 포함하는 장치.
  4. 제3항에 있어서,
    상기 가상 클라이언트 모듈은 상기 다중경로 I/O 모듈을 포함하고, 상기 다중경로 I/O 모듈은 상기 검출된 사용 가능성에 기초하여 상기 제1 물리적 HBA와 상기 제2 물리적 HBA 사이에서 선택하도록 구성되는 장치.
  5. 제3항에 있어서,
    상기 다중경로 I/O 모듈은 상기 제1 물리적 HBA와 상기 제2 물리적 HBA 사이에 상기 가상 클라이언트 모듈의 I/O 워크로드(workload)를 분배하도록 구성되고, 상기 가상 머신 모니터는 호스팅된 가상 머신 모니터를 포함하는 장치.
  6. 제2항에 있어서,
    제3 물리적 HBA를 통해 상기 네트워크로 데이터를 전송하는 제2 가상 I/O 서 버 모듈을 더 포함하며,
    상기 가상 클라이언트 모듈은 상기 제1 물리적 HBA 및 상기 제2 물리적 HBA가 사용 불가능할 때, 상기 제2 가상 I/O 서버 모듈 및 상기 제3 물리적 HBA를 통해 상기 네트워크로 데이터를 동적으로 전송하도록 구성되는 장치.
  7. 제2항에 있어서,
    상기 가상 머신 모니터는 상기 가상 클라이언트 모듈이 상기 제1 물리적 HBA와 연관된 장애의 검출에 대한 응답으로 상기 제2 물리적 HBA를 통해 상기 네트워크로 데이터를 전송하는 것을 동적으로 가능하게 하도록 구성되는 장치.
  8. 제2항에 있어서,
    상기 제2 물리적 HBA는 NPIV를 지원할 수 있는 파이버 채널 HBA를 포함하는 장치.
  9. 하나 이상의 프로세서;
    하나 이상의 컴퓨터 판독가능 메모리;
    하나 이상의 컴퓨터 판독가능한 유형의(tangible) 저장 장치;
    상기 하나 이상의 메모리 중 적어도 하나를 통해 상기 하나 이상의 프로세서 중 적어도 하나에 의해 실행되기 위한 상기 하나 이상의 저장 장치 중 적어도 하나에 저장된 프로그램 명령어 - 상기 명령어는 제1 파이버 채널 호스트 버스 어댑터(HBA)를 통해 저장 영역 네트워크(Storage Area Network: SAN)에 데이터를 전송하도록 구성되는 가상 클라이언트 모듈을 포함하고, 상기 가상 클라이언트 모듈은 제1 논리적 파티션에 상주함 - ;
    상기 하나 이상의 메모리 중 적어도 하나를 통해 상기 하나 이상의 프로세서 중 적어도 하나에 의해 실행되기 위한 상기 하나 이상의 저장 장치 중 적어도 하나에 저장된 프로그램 명령어 - 상기 명령어는 제2 파이버 채널 HBA를 통해 상기 SAN으로 데이터를 전송하기 위한 가상 I/O 서버 모듈을 포함하고, 상기 가상 I/O 서버 모듈은 제2 논리적 파티션에 상주함 - ; 및
    상기 하나 이상의 메모리 중 적어도 하나를 통해 상기 하나 이상의 프로세서 중 적어도 하나에 의해 실행되기 위한 상기 하나 이상의 저장 장치 중 적어도 하나에 저장된 프로그램 명령어 - 상기 명령어는 상기 가상 클라이언트 모듈을 상기 가상 I/O 서버 모듈에 연결하도록 구성된 가상 머신 모니터를 포함하고, 상기 가상 머신 모니터는 상기 제1 논리적 파티션 및 상기 제2 논리적 파티션 사이에 파티션들 간의 통신을 제공하고 상기 제1 논리적 파티션 및 상기 제2 논리적 파티션에 대해 RDMA 서비스를 제공하도록 구성되며, 상기 가상 I/O 서버 모듈은 상기 가상 클라이언트 모듈이 가상 파이버 채널 HBA로서 상기 제2 파이버 채널 HBA를 상기 파티션들 간의 통신을 통해 액세스할 수 있게 해 주도록 구성되고, 상기 가상 클라이언트 모듈은, 상기 제2 파이버 채널 HBA에 장애가 있는 경우, 상기 가상 클라이언트 모듈이 상기 제1 파이버 채널 HBA를 통해 상기 SAN으로 데이터를 전송하는 것을 동적으로 가능하게 해주는 다중경로 I/O 모듈을 포함함 -
    를 포함하는 컴퓨터 시스템.
  10. 하나 이상의 컴퓨터 판독가능한 유형의 저장 장치로서,
    상기 하나 이상의 저장 장치 중 적어도 하나에 저장되고, 제1 물리적 호스트 버스 어댑터(HBA)를 통해 저장 장치의 네트워크(network of storage devices)로 데이터를 전송하도록 하는 프로그램 명령어 - 상기 제1 물리적 HBA를 통해 상기 저장 장치의 네트워크로 데이터를 전송하도록 하는 상기 프로그램 명령어는 제1 논리적 파티션에 상주함 -;
    상기 하나 이상의 저장 장치 중 적어도 하나에 저장되고, 제2 물리적 HBA를 통해 상기 네트워크로 데이터를 전송하도록 하는 프로그램 명령어 - 상기 제2 물리적 HBA를 통해 상기 네트워크로 데이터를 전송하도록 하는 상기 프로그램 명령어는 제2 논리적 파티션에 상주하고, 복수의 가상 클라이언트에 대하여 상기 제2 물리적 HBA를 통해 상기 네트워크로 데이터를 전송하도록 구성된 가상 HBA를 포함하며, 상기 복수의 가상 클라이언트의 각각의 클라이언트는 별개의(separate) 논리적 파티션에 상주함 -;
    상기 하나 이상의 저장 장치 중 적어도 하나에 저장되고, 상기 제1 물리적 HBA 및 상기 제2 물리적 HBA 중 하나에 장애가 있는 경우, 상기 제1 물리적 HBA 및 상기 제2 물리적 HBA 중 하나를 통해 상기 복수의 가상 클라이언트 중 하나의 가상 클라이언트가 상기 네트워크에 액세스하는 것을 동적으로 가능하게 하는 프로그램 명령어 - 상기 복수의 가상 클라이언트 중 상기 하나의 가상 클라이언트가 상기 네트워크에 액세스하는 것을 가능하게 하는 프로그램 명령어는 상기 제1 논리적 파티션 및 상기 제2 논리적 파티션 사이에 파티션들 간의 통신을 제공하고 상기 제1 논리적 파티션 및 상기 제2 논리적 파티션에 대해 RDMA 서비스를 제공하는 프로그램 명령어를 포함하며, 상기 가상 HBA의 데이터 전송은 상기 파티션들 간의 통신 및 상기 RDMA 서비스를 통해 이루어짐 -
    를 포함하는, 하나 이상의 컴퓨터 판독가능한 유형의 저장 장치.
KR1020090077109A 2008-11-10 2009-08-20 동적인 물리적 및 가상 다중경로 i/o KR101107899B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/268,238 2008-11-10
US12/268,238 US8041987B2 (en) 2008-11-10 2008-11-10 Dynamic physical and virtual multipath I/O

Publications (2)

Publication Number Publication Date
KR20100052397A KR20100052397A (ko) 2010-05-19
KR101107899B1 true KR101107899B1 (ko) 2012-01-25

Family

ID=42166274

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090077109A KR101107899B1 (ko) 2008-11-10 2009-08-20 동적인 물리적 및 가상 다중경로 i/o

Country Status (5)

Country Link
US (1) US8041987B2 (ko)
JP (1) JP5489601B2 (ko)
KR (1) KR101107899B1 (ko)
CN (1) CN101741831B (ko)
TW (1) TWI439867B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101471879B1 (ko) * 2012-10-31 2014-12-11 삼성에스디에스 주식회사 하이퍼바이저 기반 서버 이중화 시스템, 그 방법 및 서버 이중화 컴퓨터 프로그램이 기록된 기록매체

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7257811B2 (en) * 2004-05-11 2007-08-14 International Business Machines Corporation System, method and program to migrate a virtual machine
US8990800B2 (en) * 2009-01-14 2015-03-24 Dell Products L.P. System and method for increased system availability to network storage in virtualized environments
JP5477047B2 (ja) * 2010-02-25 2014-04-23 富士通株式会社 情報処理装置、仮想計算機接続方法、プログラム及び記録媒体
US8719817B2 (en) * 2010-03-25 2014-05-06 Vmware, Inc. Virtualization intermediary/virtual machine guest operating system collaborative SCSI path management
US8244924B2 (en) * 2010-06-24 2012-08-14 International Business Machines Corporation Discovery and configuration of device configurations
US8726274B2 (en) 2010-09-10 2014-05-13 International Business Machines Corporation Registration and initialization of cluster-aware virtual input/output server nodes
US8495412B2 (en) * 2010-09-10 2013-07-23 International Business Machines Corporation Autonomous propagation of virtual input/output (VIO) operation(s) to second VIO server (VIOS) due to a detected error condition at a first VIOS
US20120096462A1 (en) * 2010-10-18 2012-04-19 Electronics And Telecommunications Research Institute Dynamic virtualization technique for multicore processor system
US20120110297A1 (en) * 2010-10-29 2012-05-03 Unisys Corp. Secure partitioning with shared input/output
US8930620B2 (en) * 2010-11-12 2015-01-06 Symantec Corporation Host discovery and handling of ALUA preferences and state transitions
US8627136B2 (en) * 2010-12-27 2014-01-07 Netapp Inc. Non-disruptive failover of RDMA connection
US8402191B2 (en) * 2010-12-30 2013-03-19 Stmicroelectronics, Inc. Computing element virtualization
WO2012157038A1 (ja) * 2011-05-13 2012-11-22 株式会社日立製作所 接続経路管理方法、i/o仮想化装置及び接続経路管理プログラム
EP2725496A1 (en) * 2011-06-21 2014-04-30 Fujitsu Limited Information processing device, virtual machine control method and program
JPWO2012176278A1 (ja) * 2011-06-21 2015-02-23 富士通株式会社 情報処理装置、仮想マシン制御方法およびプログラム
JP5422611B2 (ja) * 2011-06-24 2014-02-19 株式会社日立製作所 計算機システム、ホストバスアダプタ制御方法及びそのプログラム
WO2012149714A1 (zh) * 2011-08-25 2012-11-08 华为技术有限公司 一种节点控制器链路的切换方法、处理器系统和节点
US9530156B2 (en) * 2011-09-29 2016-12-27 Amazon Technologies, Inc. Customizable uniform control user interface for hosted service images
JP6007547B2 (ja) * 2012-03-30 2016-10-12 日本電気株式会社 仮想化システム、スイッチコントローラ、ファイバチャネルスイッチ、マイグレーション方法、マイグレーションプログラム
US8880934B2 (en) * 2012-04-04 2014-11-04 Symantec Corporation Method and system for co-existence of live migration protocols and cluster server failover protocols
US20130346532A1 (en) * 2012-06-21 2013-12-26 Microsoft Corporation Virtual shared storage in a cluster
US8750311B2 (en) 2012-07-25 2014-06-10 Hewlett-Packard Development Company, L.P. Fibre channel host virtualization
TW201416852A (zh) * 2012-10-23 2014-05-01 Hon Hai Prec Ind Co Ltd 磁碟陣列卡自動修護方法及系統
US9641614B2 (en) 2013-05-29 2017-05-02 Microsoft Technology Licensing, Llc Distributed storage defense in a cluster
US10404520B2 (en) 2013-05-29 2019-09-03 Microsoft Technology Licensing, Llc Efficient programmatic memory access over network file access protocols
CN103559155B (zh) * 2013-10-25 2016-09-14 华为技术有限公司 一种数据传输方法、相关装置及数据传输系统
US9710410B2 (en) * 2013-10-31 2017-07-18 Qualcomm Incorporated Camera control slave devices with multiple slave device identifiers
CN103577149B (zh) * 2013-11-20 2017-02-08 华为技术有限公司 Hba兼容处理方法、装置及系统
US9571585B2 (en) 2013-11-26 2017-02-14 International Business Machines Corporation Using alternate port name for uninterrupted communication
US9172600B1 (en) * 2013-12-31 2015-10-27 Symantec Corporation Efficient I/O error analysis and proactive I/O failover to alternate paths for InfiniBand channel
US9374324B2 (en) * 2014-03-14 2016-06-21 International Business Machines Corporation Determining virtual adapter access controls in a computing environment
US9424216B2 (en) * 2014-03-14 2016-08-23 International Business Machines Corporation Ascertaining configuration of a virtual adapter in a computing environment
US9262351B2 (en) 2014-03-27 2016-02-16 International Business Machines Corporation Inter-adapter cooperation for multipath input/output systems
US9569316B2 (en) * 2014-09-11 2017-02-14 International Business Machines Corporation Managing VIOS failover in a single storage adapter environment
CN104461951A (zh) * 2014-11-19 2015-03-25 浪潮(北京)电子信息产业有限公司 动态管理物理和虚拟多路径i/o的方法及系统
US10223159B2 (en) * 2015-02-18 2019-03-05 Red Hat Israel, Ltd. Configuring virtual machine interfaces to provide access to a requested logical network based on virtual function availability and a virtual function capability option
US10257273B2 (en) 2015-07-31 2019-04-09 Netapp, Inc. Systems, methods and devices for RDMA read/write operations
US9952797B2 (en) 2015-07-31 2018-04-24 Netapp, Inc. Systems, methods and devices for addressing data blocks in mass storage filing systems
CN105630715A (zh) * 2015-12-18 2016-06-01 国云科技股份有限公司 一种基于Multipath的存储预警方法
US10057153B1 (en) * 2016-06-02 2018-08-21 Cisco Technology, Inc. Detecting slow virtual devices
US20180143932A1 (en) * 2016-11-21 2018-05-24 Intel Corporation Apparatuses and methods to spawn multiple virtual serial bus hub instances on a same physical serial bus hub
US20180181421A1 (en) * 2016-12-27 2018-06-28 Intel Corporation Transferring packets between virtual machines via a direct memory access device
US10275327B2 (en) * 2017-01-05 2019-04-30 Hewlett Packard Enterprises Development LP Virtual fibre channel port migration
US11070512B2 (en) * 2017-02-10 2021-07-20 International Business Machines Corporation Server port virtualization for guest logical unit number (LUN) masking in a host direct attach configuration
DE102017103554B3 (de) * 2017-02-21 2018-05-09 Phoenix Contact Gmbh & Co. Kg Frontadapter zum Verbinden mit einer Steuerungseinrichtung und Automatisierungssystem
US10338829B2 (en) 2017-05-05 2019-07-02 Dell Products, L.P. Managing multipath configuraton in data center using remote access controller
CN107612777B (zh) * 2017-09-25 2020-09-22 苏州浪潮智能科技有限公司 一种光纤交换机检测工具及方法
US11204792B2 (en) 2018-04-04 2021-12-21 International Business Machines Corporation Attaching storage resources to virtual machine instances
US10592155B2 (en) * 2018-04-10 2020-03-17 International Business Machines Corporation Live partition migration of virtual machines across storage ports
US11048556B2 (en) * 2018-04-12 2021-06-29 International Business Machines Corporation Multi-channel, multi-control logical partition migration
US10496486B1 (en) * 2018-06-29 2019-12-03 International Business Machines Corporation Protecting data integrity in a multiple path input/output environment
US11050660B2 (en) * 2018-09-28 2021-06-29 EMC IP Holding Company LLC Host device with multi-path layer implementing path selection based at least in part on fabric identifiers
US11336509B2 (en) * 2018-10-31 2022-05-17 EMC IP Holding Company LLC Detecting single points of failure on a storage system
CN109358990A (zh) * 2018-11-01 2019-02-19 郑州云海信息技术有限公司 一种多控系统中的信息传输方法、装置及存储介质
US10545785B1 (en) * 2018-11-12 2020-01-28 Hewlett Packard Enterprise Development Lp Virtual host bus adapter logins
US10833982B2 (en) * 2018-11-29 2020-11-10 International Business Machines Corporation Server-side path selection in multi virtual server environment
US10963416B2 (en) * 2019-05-29 2021-03-30 Mastercard International Incorporated Systems, computer-readable media and computer-implemented methods for network adapter activation in connection with fibre channel uplink mapping
CN111522692B (zh) * 2020-04-20 2023-05-30 浙江大学 一种基于虚拟机的多操作系统输入及输出设备冗余保障系统
CN111522760A (zh) * 2020-04-22 2020-08-11 北京思特奇信息技术股份有限公司 一种基于总线模式的应用接口通信方法和系统
CN114257541A (zh) * 2020-09-10 2022-03-29 华为技术有限公司 一种故障链路的切换方法、系统及相关设备
US11392459B2 (en) * 2020-09-14 2022-07-19 EMC IP Holding Company LLC Virtualization server aware multi-pathing failover policy
US11522814B2 (en) 2020-11-24 2022-12-06 International Business Machines Corporation Virtualized fabric login server for storage area network
US11709699B2 (en) 2020-11-24 2023-07-25 International Business Machines Corporation Virtualized fabric name server for storage area network
US11683372B2 (en) * 2020-11-24 2023-06-20 International Business Machines Corporation Virtualized fabric management server for storage area network
CN117591037B (zh) * 2024-01-18 2024-05-03 山东云海国创云计算装备产业创新中心有限公司 一种虚拟化数据访问系统、方法、装置及服务器

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030030148A (ko) * 2001-10-08 2003-04-18 주식회사 엑사큐브시스템 시스템 소프트웨어 및 지유아이(gui) 기반 관리소프트웨어를 이용한 네트워크 연결형 가상 저장방법 및그 시스템

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001155420A (ja) * 1999-11-25 2001-06-08 Tomcat Computer Kk Cdシステム
JP4039794B2 (ja) * 2000-08-18 2008-01-30 富士通株式会社 マルチパス計算機システム
KR100372915B1 (ko) * 2001-01-02 2003-02-19 김한규 네트워크에 직접 부착 가능한 디스크 시스템
JP3957065B2 (ja) * 2002-08-28 2007-08-08 富士通株式会社 ネットワーク計算機システムおよび管理装置
US7307948B2 (en) * 2002-10-21 2007-12-11 Emulex Design & Manufacturing Corporation System with multiple path fail over, fail back and load balancing
US7783779B1 (en) * 2003-09-19 2010-08-24 Vmware, Inc Storage multipath management in a virtual computer system
JP4430710B2 (ja) * 2004-03-19 2010-03-10 ザクリトエ・アクツィオネルノエ・オブシェストヴォ インテル エー/オー フェイルオーバおよび負荷分散
JP2006079495A (ja) * 2004-09-13 2006-03-23 Hitachi Ltd ストレージシステム及び論理区画の設定方法
JP2006094313A (ja) * 2004-09-27 2006-04-06 Fujitsu Ltd ルーティングリカバリシステム
US7711978B1 (en) * 2004-12-30 2010-05-04 Symantec Operating Corporation Proactive utilization of fabric events in a network virtualization environment
US20060195663A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation Virtualized I/O adapter for a multi-processor data processing system
US7496790B2 (en) * 2005-02-25 2009-02-24 International Business Machines Corporation Method, apparatus, and computer program product for coordinating error reporting and reset utilizing an I/O adapter that supports virtualization
CN100485630C (zh) * 2005-11-21 2009-05-06 国际商业机器公司 具有中央控制的数据备份的方法和系统
JP4486921B2 (ja) * 2005-12-09 2010-06-23 富士通株式会社 ストレージ仮想化装置およびそれを用いたコンピュータシステム
US7599397B2 (en) * 2005-12-27 2009-10-06 International Business Machines Corporation Obtaining multiple port addresses by a fibre channel switch from a network fabric
US7921431B2 (en) * 2006-01-20 2011-04-05 Emulex Design & Manufacturing Corporation N-port virtualization driver-based application programming interface and split driver implementation
US7543081B2 (en) * 2006-08-08 2009-06-02 International Business Machines Corporation Use of N—Port ID virtualization to extend the virtualization capabilities of the FC-SB-3 protocol and other protocols
JP4847272B2 (ja) * 2006-10-18 2011-12-28 株式会社日立製作所 論理区画ごとに電源を管理する計算機システム、ストレージ装置及びそれらの制御方法
JP5057366B2 (ja) * 2006-10-30 2012-10-24 株式会社日立製作所 情報システム及び情報システムのデータ転送方法
US7793139B2 (en) * 2006-12-12 2010-09-07 International Business Machines Corporation Partial link-down status for virtual Ethernet adapters
JP2008186211A (ja) * 2007-01-30 2008-08-14 Hitachi Ltd 計算機システム
US7711979B2 (en) * 2007-02-16 2010-05-04 Symantec Corporation Method and apparatus for flexible access to storage facilities
US7778157B1 (en) * 2007-03-30 2010-08-17 Symantec Operating Corporation Port identifier management for path failover in cluster environments
US8341308B2 (en) * 2008-06-09 2012-12-25 International Business Machines Corporation Method and apparatus for a fibre channel N-port ID virtualization protocol

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030030148A (ko) * 2001-10-08 2003-04-18 주식회사 엑사큐브시스템 시스템 소프트웨어 및 지유아이(gui) 기반 관리소프트웨어를 이용한 네트워크 연결형 가상 저장방법 및그 시스템

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101471879B1 (ko) * 2012-10-31 2014-12-11 삼성에스디에스 주식회사 하이퍼바이저 기반 서버 이중화 시스템, 그 방법 및 서버 이중화 컴퓨터 프로그램이 기록된 기록매체
US8997098B2 (en) 2012-10-31 2015-03-31 Samsung Sds Co., Ltd. Hypervisor-based server duplication system and method and storage medium storing server duplication computer program
US9317320B2 (en) 2012-10-31 2016-04-19 Samsung Sds Co., Ltd. Hypervisor-based server duplication system and method and storage medium storing server duplication computer program

Also Published As

Publication number Publication date
US20100122111A1 (en) 2010-05-13
JP5489601B2 (ja) 2014-05-14
CN101741831B (zh) 2013-11-27
KR20100052397A (ko) 2010-05-19
US8041987B2 (en) 2011-10-18
TW201027354A (en) 2010-07-16
TWI439867B (zh) 2014-06-01
JP2010113707A (ja) 2010-05-20
CN101741831A (zh) 2010-06-16

Similar Documents

Publication Publication Date Title
KR101107899B1 (ko) 동적인 물리적 및 가상 다중경로 i/o
US11314543B2 (en) Architecture for implementing a virtualization environment and appliance
US7930511B2 (en) Method and apparatus for management between virtualized machines and virtualized storage systems
US8516294B2 (en) Virtual computer system and control method thereof
US10423332B2 (en) Fibre channel storage array having standby controller with ALUA standby mode for forwarding SCSI commands
US20050240932A1 (en) Facilitating access to input/output resources via an I/O partition shared by multiple consumer partitions
US10394466B2 (en) Supporting MPIO for logical volume backed virtual disks
US9378103B2 (en) Coordination techniques for redundant array of independent disks storage controllers
US20140047441A1 (en) Information processing apparatus, virtual machine control method, and program
US20140157046A1 (en) Techniques for dynamically tracking logical units moving between input/output ports of a storage area network target
US8812707B2 (en) Transmitting internet protocol over SCSI in a high availability cluster
US10782989B2 (en) Method and device for virtual machine to access storage device in cloud computing management platform
US9027019B2 (en) Storage drive virtualization
US7464019B1 (en) Method of resolving conflicts of virtualized disks between two operating environments
US9143410B1 (en) Techniques for monitoring guest domains configured with alternate I/O domains
CN104461951A (zh) 动态管理物理和虚拟多路径i/o的方法及系统
US11809268B1 (en) Discovering host-switch link and ISL issues from the storage array
US11392459B2 (en) Virtualization server aware multi-pathing failover policy

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
FPAY Annual fee payment

Payment date: 20141215

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151228

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161228

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171227

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181227

Year of fee payment: 8