KR20100043006A - 원격 저장 어레이 리소스 취합 방법 및 시스템과, 컴퓨터 독출 가능 매체 - Google Patents

원격 저장 어레이 리소스 취합 방법 및 시스템과, 컴퓨터 독출 가능 매체 Download PDF

Info

Publication number
KR20100043006A
KR20100043006A KR1020090067089A KR20090067089A KR20100043006A KR 20100043006 A KR20100043006 A KR 20100043006A KR 1020090067089 A KR1020090067089 A KR 1020090067089A KR 20090067089 A KR20090067089 A KR 20090067089A KR 20100043006 A KR20100043006 A KR 20100043006A
Authority
KR
South Korea
Prior art keywords
remote
remote storage
storage array
bvl
elements
Prior art date
Application number
KR1020090067089A
Other languages
English (en)
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 KR20100043006A publication Critical patent/KR20100043006A/ko

Links

Images

Classifications

    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • 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/0667Virtualisation aspects at data level, e.g. file, record or object virtualisation
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/263Network storage, e.g. SAN or NAS

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Abstract

동적 저장 티어링(tiering)을 위한 방법 및 시스템은 하나 이상의 원격 저장 어레이들과 연관된 하나 이상의 원격 가상 드라이브를 발견하고, 국부 저장 어레이와 연관된 하나 이상의 원격 가상 드라이브를 공시하고, 하나 이상의 원격 저장 어레이와 연관된 하나 이상의 원격 가상 드라이브로 어드레스 지정된 클라이언트로부터 하나 이상의 IO 요청을 수신하고, 국부 캐쉬 공간을 할당하기 위해 하나 이상의 가상 드라이브와 연관된 하나 이상의 원격 저장 어레이에 하나 이상의 명령 기술자 블럭(command descriptor block : CDB) 요청을 전송하는 것을 포함한다.

Description

원격 저장 어레이 리소스 취합 방법 및 시스템과, 컴퓨터 독출 가능 매체{EMBEDDED SCALE-OUT AGGREGATOR FOR STORAGE ARRAY CONTROLLERS}
저장 장치 취합(storge device aggregation)을 둘러싼 오늘날의 기술은 통상적으로 저장 가상화 관리자와 같은 응용(Storage Virtualization Manager-like appliance)을 이용한 블럭 레벨 가상화 기술(Block level virtualization technique)에 기반한다. 현재, 다수의 어레이 전반에 걸쳐서의 클러스터링은, 클러스터 환경에서 다수의 어레이들로부터 취합 리소스들을 도출하기 위해, IO 경로상의 전용의 특정 하드웨어 및/또는 독점 소프트웨어 솔루션(proprietary software solution)을 필요로 한다.
그러한 솔루션은 단지 IO 경로들의 전반에 걸쳐 공통 프로토콜을 가진 저장 어레이들 전반에 대해서만 작용한다. 또한, 현재의 기술은 가상화된 환경에서 IO 경로 관리를 제공하는 DPM(Data Path Module) 및/또는 클라이언트 에이전트를 필요로 한다. 그 경우, 다이버스 프로토콜(diverse protocol)을 가진 취합 리소스는 종단 사용자에 의한 복잡한 셋업 및 관리 운영을 필요로 한다.
본 명세서에서는 클러스터내에 구성된 다수의 저장 시스템들의 전반에 걸쳐 확산되어 있는 다이버스 저장 리소스들이, 저장 어레이 제어기들내에 상주하는 내장형 스케일 아웃 취합기 메카니즘(embedded scale out aggregrator mechanism)에 의해 하나의 이상의 장치로서 취합되어 종단 사용자에게 제시되는 시스템 및 방법이 설명된다.
본 명세서에서는 다수의 클러스터 저장 어레이 전반에 걸쳐서의 발견에 기반하여 SMI-S(Storage Management Initiative Specification)를 이용함으로써 DPL(Data Protection Layer)로부터 장치를 취합하는 시스템이 설명된다. 사용자에게 공동 태스크(task)를 제시하기 위해 추상 계층(abstraction layer)을 가진 SMI 기반 사용자 인터페이스가 제공될 수 있다.
이하의 상세한 설명은 첨부된 도면을 참조하여 이루어진다. 별도의 설명이 없다면 도면에서 유사한 기호는 유사한 구성 요소를 나타낸다. 상세한 설명에 기술된 예시적인 실시 예, 도면 및 청구항은 제한을 위한 것이 아니다. 본 명세서에서 제시된 본원의 사상 또는 범주를 벗어나지 않는 다른 실시 예가 이용될 수 있으며, 다른 변경이 이루어질 수 있다.
도 1을 참조하면, 스케일 취합을 위한 시스템(100)의 예시적 도면이 제시된 다. 시스템(100)은 SMI-S(Storage Management Initiative-Specification) 프로토콜을 채용한 적어도 하나의 클라이언트(101)를 포함한다. 그러한 프로토콜은 SNIA(Storage Networking Industry Association)에 의해 구현되고 유지된다. SMI-S는 분산형 관리 작업 단체(Distributed Management Task Force)에 의해 정의된 공통 정보 모델 및 웹 기반 기업 관리 표준(Common Information Model and Web-Based Enterprise Management standard), 즉 TCP/IP를 통한 관리에 기반한다.
시스템(100)은 2 이상의 RAID 저장 장치(102)를 포함한다. RAID 저장 장치(102)(예를 들어, 이질 배열(heterogeneous array)의 저장 장치들 중 제 1 저장 장치)는 RAID 제어기(104)를 포함하는 다른 RAID 저장 장치(102)(이질 배열의 저장 장치들 중 제 2 저장 장치)와 협력하여 취합 기능을 제공하도록 구성된 RAID 제어기(104)를 포함한다.
RAID 제어기(104)에 의해 채용된 내장형 스케일 아웃 취합기 구조는 DPL(Data Protection Layer) 제공자 인터페이스(107)의 최상부상에 적재된다. DPL(107)은 RAID(Redundant Array of Independent Disk) 기술을 이용하여 저장된 데이터의 손실을 방지하는 역할을 하는 저장 어레이 제어기 펌웨어와, 개시자와, 타겟 드라이버 및 관리 인터페이스를 포함한다.
RAID 제어기(104)에 의해 채용된 내장형 스케일 아웃 취합기 구조는 코어 기능을 제공하고 SVM(Storage Virtualization Manager)(104-1-1)과 연관된 사용자 인터페이스를 지원하는 BVL(Block Virtualization Layer)(104-1)을 포함한다. BVL 모듈(104A-1)은 가상 볼륨 및 복제 객체(virtual volumns and replication objects) 에 대한 IO 경로 액세스의 관리를 담당한다.
도 2-3을 참조하면, 스케일 아웃 구조를 형성하는 코어 블럭들간의 상위 레벨 상호 작용이 제시된다. 코어 블럭은 RAID 제어기(104) 펌웨어내에 구현될 수 있는 하나 이상의 모듈을 포함한다. RAID 제어기(104A)는 하나 이상의 입력/출력 드라이버(IOD)(104-6-1, 104-8-1)를 포함한다. IOD는 개시자(예를 들어, IOD(Init)) 및/또는 타겟(예를 들어, IOD(target)) 동작 모드를 제공하며, 멀티-프로토콜 기반(multi-protocol capable)(FC, SAS, iSCSI등)일 수 있다.
RAID 제어기(104)는 하나 이상의 내부 RAID 엔진(104-7-1)을 포함한다. RAID 엔진은 하나 이상의 RAID 드라이브(103)를 포함하는 하나 이상의 RAID 볼륨(즉, 가상 드라이브)을 노출시킨다. RAID 볼륨은 IOD를 통해 노출된다.
RAID 제어기(104)는 하나 이상의 SVM(Storage Virtualization Manager) 모듈(104-1-1)을 포함한다. SVM(104-1-1)은 가상화 정의(예를 들어, 풀(pool), 볼륨등)를 가상화 에이전트(Virtualzation Agent : VA) 모듈(104-2-1)로 밀어낸다. VA 모듈(104-2-1)은 RAID 제어기(104A)와 연관된 RAID 드라이브(103A)를 포함하는 가상 저장 풀 및 다른 원격 저장 장치에 대응하는 맵핑 메타데이터(mapping metadata)를 판독 및/또는 갱신한다. VA 모듈(104-2-1)은 FP(Fast Path) 모듈(104-3-1)에 맵을 제공한다.
FP 모듈(104-3-1)은 여러 백엔드(back-end) 장치(예를 들어, RAID 드라이브(103))로 지향되는 IO 요청을 직접 서비스 제공하기 위한 직접 맵핑을 유지하는 신속-액세스 맵핑 캐쉬를 유지한다. 이에 따라, IO 요청 서비스에서의 VA(104-2-1) 관여 필요성이 줄어들게 된다.
RAID 제어기(104)는 내장형 SMI-S 에이전트(104-4-1)를 통해 스케일-아웃 엔티티(scale-out entities)(예를 들어, SMI-S를 통해 RAID 저장 장치(102B))를 관리한다. 내장형 SMI-S 에이전트(104-4-1)는 SVM(104-1-1)(예를 들어, 경로 B를 통해) 및 RAID 엔진(예를 들어, 경로 A를 통해)과 상호 작용하여 논리 및 물리적 속성을 포함하는 모든 구성 요소 정보를 수집한다.
RAID 제어기(104)는 여러 스케일-아웃 구조 블럭을 이용하여 국부 및/또는 원격 장치 발견을 실행한다. RAID 제어기(104)는 BVL 모듈(104A-1) 구성 요소의 기능을 이용하여 백-엔드 리소스를 취합한다. 이러한 개념을 확장하면, 저장 풀이 다수의 저장 어레이 전반으로 확산될 수 있을 것이다.
그러한 스케일 아웃 취합은 시스템(100)에게 다수의 저장 어레이를 조합할 수 있는 능력을 제공하며, 그에 따라 보다 크고 유능한 취합 시스템(예를 들어, "저장 클러스터")이 형성된다. 임의 어레이에 대한 IO 경로 액세스는 클러스터내의 모든 저장 리소스에 대한 액세스를 허용한다. 운영자(administrator)는 클러스터를 독자적인 구성 요소의 집합이 아닌 통합된 단일-시스템으로서 관리한다. 그 다음 다수의 어레이로부터의 가상 드라이브를 이용하여 저장 풀이 구축된다.
국부 BVL에서 원격 저장 어레이로의 스케일-아웃 접속 경로를 구성하는데 있어서 여러 방법들이 채용될 수 있다.
도 2를 참조하면, 제 1 방법에서는, PSON(Private Scale-Out Network)(105)이 이용된다. PSON(105)은 PCI-e(Peripheral Component Interconnect Express) 접 속을 이용하여 고속 취합기 간 링크(high speed inter-aggregator link)를 제공하다.
도 3을 참조하면, 제 2 방법에서는, 클라이언트측 IO 네트워크 페브릭(client-side IO network fabric : HNC)(106)이 이용된다. HNC(106)는 IO를 구동하는 클라이언트(101)를 저장 어레이에 접속시키고 취합기 간 링크를 제공하는데 이용되는 스위치-기반 접속(예를 들어, 파이버채널(Fibre Channel), 인피니밴드(infiniband), iSCSI등)을 채용한다.
이하의 설명은 다양한 예시적인 구현을 나타낸 일련의 흐름도와 관련된다. 이해를 도모하기 위해, 그 흐름도들에 있어서, 초기 흐름도는 예시적인 구현을 제시하고, 이후의 흐름도는 초기 흐름도의 대안적인 구현 및/또는 확장을, 하나 이상의 이전에 제시된 흐름도를 토대로 한 서브 구성 요소 동작 또는 추가적인 구성 요소의 동작으로서 제시하도록 구성된다. 당업자라면, 본 명세서에서 이용되는 제시 유형(예를 들어, 예시적인 구현을 나타낸 흐름도의 제시와 함께 시작하고, 이후 후속 흐름도에 추가적인 것을 제공하거나/하고 추가적인 세부 설명을 제공함)이 전반적으로 여러 프로세스 구현의 신속하고 용이한 이해를 위한 것임을 알 것이다. 또한 당업자라면, 본 명세서에서 이용된 제시 유형이 모듈러 및/또는 객체 지향 프로그램 고안 패러다임에 알맞은 것임을 알 것이다.
도 4에는, 저장 네트워크의 구성과 관련된 예시적인 동작을 나타내는 동작 흐름도(400)가 도시된다. 도 4 및 여러가지의 예시적인 동작 흐름을 포함하는 이후의 도면들에는, 도 1 및 도 2의 상술한 예시 및/또는 다른 예시와 정황에 대한 설 명이 제공된다. 그러나, 다수의 다른 환경이나 정황 및/또는 도 1 및 도 2의 수정 버전에서 동작 흐름이 실행될 수 있음을 알아야 한다. 또한, 여러 동작 흐름이 도시된 순서로 제시되지만, 여러 동작들이 예시된 것과 다른 순서로 실행되거나 동시에 실행될 수 있음을 알아야 한다.
시작 동작이후, 동작 흐름(400)은 동작(410)으로 이동한다. 동작(410)은 하나 이상의 원격 저장 어레이와 관련된 하나 이상의 원격 가상 드라이브의 발견을 나타낸다. 예를 들어, 도 2에 도시된 바와 같이, 국부 RAID 저장 장치(102A)의 BVL 모듈(104A-1)의 FP(104-3-1)는 관련 PSON IOD(Init)(104-6-1)가 원격 RAID 저장 장치(102B)의 BVL(104B-1)에 질의를 전송할 수 있게 한다. 그 질의는 PSON(105)을 통해 전송된다. PSON(105)은 PCI-e 접속을 채용한다. 원격 RAID 저장 장치(102B)의 BVL 모듈(104B-1)은 국부 BVL 모듈(104A-1)의 BVL 모듈(104A-1)에 의한 질의에 응답하여 BVL 모듈(104A-1)에 의해 유지된 가상 볼륨과 연관된 상태 데이터를 전송한다.
대안적으로, 도 3에 도시된 바와 같이, 국부 RAID 저장 장치(102A)의 BVL 모듈(104A-1)의 FP(104-3-1)는 관련 PSON IOD(Init)(104-6-1)가 원격 RAID 저장 장치(102B)의 BVL(104B-1)에 질의를 전송할 수 있게 한다. 그 질의는 HNF(106)를 통해 전송된다. HNF(106)는 IO를 구동하는 클라이언트와 저장 어레이를 접속시키고 취합기 간 링크를 제공하는데 이용되는 파이브 채널 절환 기반 접속(fibre channel switch based connectivity)을 채용한다. 원격 RAID 저장 장치(102B)의 BVL 모듈(104B-1)은 국부 RAID 저장 장치(102A)의 BVL 모듈(104A-1)에 의한 질의에 응답 하여 BVL 모듈(104B-1)에 의해 유지된 가상 볼륨과 연관된 상태 데이터를 전송한다.
동작(420)은 국부 저장 어레이와 연관된 하나 이상의 원격 가상 드라이브의 공시(advertising)를 나타낸다. 예를 들어, 도 2에 도시된 바와 같이, 국부 RAID 저장 장치(102A)의 BVL 모듈(104A-1)의 FP 모듈(104-3-1)은 관련 IOD(Init)(104-6-1)가 BVL 모듈(104A-1)과 연관된 가상 볼륨의 상태를 PSON(105)을 통해 원격 RAID 저장 장치(102B)의 BVL 모듈(104B-1)에 공시할 수 있게 함으로써, BVL 모듈(104B-1)이 관련 가상 볼륨을 발견할 수 있게 한다.
대안적으로, 도 3에 도시된 바와 같이, 국부 RAID 저장 장치(102A)의 BVL 모듈(104A-1)의 FP(104-3-1)는 관련 IOD(Init)(104-6-1)가 BVL 모듈(104A-1)과 연관된 가상 볼륨의 상태를 HNF(106)를 통해 원격 RAID 저장 장치(102B)의 BVL 모듈(104B-1)에 공시할 수 있게 함으로써, BVL 모듈(104B-1)이 이와 연관된 가상 보륨을 발견할 수 있게 한다.
동작(430)은 하나 이상의 원격 저장 장치와 연관된 하나 이상의 원격 가상 드라이브로 어드레스 지정된 클라이언트로부터 하나 이상의 IO 요청을 수신하는 것을 나타낸다. 예를 들어, 도 2에 도시된 바와 같이, 국부 RAID 저장 장치(102A)의 BVL 모듈(104A-1)의 IOD(Target)(104-8-1)는 원격 RAID 저장 장치(102B)와 연관된 BVL 모듈(104B-1)에 의해 유지되는 하나 이상의 가상 드라이브내에 유지되는 데이터를 액세스하기 위해(예를 들어, 판독 및/또는 기록하기 위해) 클라이언트(101)로부터 IO 요청을 수신한다.
대안적으로, 도 3에 도시된 바와 같이, 국부 RAID 저장 장치(102A)의 BVL 모듈(104A-1)의 IOD(Target)(104-8-1)는 원격 RAID 저장 장치(102B)와 연관된 BVL 모듈(104B-1)에 의해 유지되는 하나 이상의 가상 드라이브내에 유지되는 데이터를 액세스하기 위해(예를 들어, 판독 및/또는 기록하기 위해) 클라이언트(101)로부터 HNF(106)를 통해 IO 요청을 수신한다.
동작(440)은 국부 캐쉬 공간을 할당하기 위해 하나 이상의 가상 드라이브와 연관된 하나 이상의 원격 저장 어레이에 하나 이상의 명령 기술자 블럭(command descriptor block : CDB) 요청을 전송하는 것을 나타낸다. 예를 들어, 도 2를 참조하면, BVL 모듈(104B-1) 로직내에 캐쉬 공간을 할당하기 위해, 국부 RAID 저장 장치(102A)의 BVL 모듈(104A-1)의 FP(104-3-1)는 관련 PSON IOD(Init)(104-6-1)가 PSON(105)을 통해 원격 RAID 저장 장치(102B)와 연관된 BVL 모듈(104B-1)로 하나 이상의 CDB 요청을 전송할 수 있게 한다.
대안적으로, 도 3에 도시된 바와 같이, BVL 모듈(104-1) 로직내에 캐쉬 공간을 할당하기 위해 국부 RAID 저장 장치(102A)의 BVL 모듈(104A-1)의 FP(104-3-1)는 관련 IOD(Init)(104-6-1)가 HNF(106)를 통해 원격 RAID 저장 장치(102B)와 연관된 BVL 모듈(104B-1)에 하나 이상의 CDB 요청을 전송할 수 있게 한다. 또한, 국부 RAID 저장 장치(102A)의 BVL 모듈(104A-1)은, 원격 RAID 저장 장치(102B)로부터의 데이터 전송을 독립적으로 구동하도록 클라이언트(101)로부터 IO 요청을 수신하면 캐쉬 공간을 할당한다.
도 5에는, 도 4의 예시적인 동작 흐름(400)의 대안적인 구현이 도시된다. 도 5에는 동작 흐름(400)이 적어도 하나의 추가적인 동작을 포함하는 예시적인 구현이 도시된다. 추가적인 동작은 동작(502)을 포함한다.
동작(502)은 RDMA(Remote Direct Memory Access)를 통해 하나 이상의 원격 저장 어레이로 하나 이상의 IO 요청을 전송하는 것을 나타낸다. 예를 들어, 도 2에 도시된 바와 같이, 원격 RAID 저장 장치(102B)와 연관된 가상 볼륨내에 유지되는 데이터를 어드레스 지정한 클라이언트(101)로부터 IO 요청을 수신한 BVL 모듈(104A-1)은, PSON(105)상의 RDMA를 통해 IO 요청을 처리하기 위해 원격 RAID 저장 장치(102B)와 연관된 BVL 모듈(104B-1)로 IO 요청을 전송한다.
도 6에는 도 4의 예시적인 동작 흐름(400)의 대안적인 실시 예가 도시된다. 도 6에는 동작 흐름(400)이 적어도 하나의 추가적인 동작을 포함하는 예시적인 실시 예가 도시된다. 추가적인 동작은 동작(602)을 포함한다.
동작(602)은 능동 저장 가상화 관리기 모듈과 하나 이상의 수동 저장 가상화 관리기 모듈을 지정하는 것을 나타낸다. 예를 들어, 도 3에 도시된 바와 같이, 국부 RAID 저장 장치(102A)의 SVM(104-1-1)은 HNF(106) 네트워크를 통해 원격 RAID 저장 장치(102B)의 SVM(104-1-1)과 통신한다. SVM(104-1-1)은 SVM(104-1-1)과 SVM(104-1-2)를 동작 가능하게 결합시키는 HNC(106) 네트워크와 IOD(Init)(104-6-1)를 통해 국부 VA 모듈(104-2)과 FP 모듈(104-3-1) 및 원격 RAID 저장 장치(102B)와 연관된 원격 VA 모듈(도시되지 않음)과 원격 FP 모듈(도시되지 않음)을 인식한다. 이러한 접속에 의해 SVM(104-1-1)과 SVM(104-1-2)는 하나의 SVM(104-1)을 클러스터에 대한 능동 SVM으로 지정하고 모든 다른 SVM은 수동 부재로서 지정한다. 예 를 들어, SVM(104-1-1)과 SVM(104-1-2)은 HNF(106) 네트워크를 통해 일정한 통신 상태를 유지한다. 클러스터에 대한 리소스 및 응용은 리소스 그룹이라고 하는 기능 유닛들로 구성될 수 있다. 각 리소스 그룹은 임의 시점에 특정 SVM(104-1)으로 할당되어 그 SVM(104-1)에 의해서만 소유될 수 있다. (SMI-S 클라이언트를 통한)클러스터 운영자는 특정 SVM(104-1)을 활성화(예를 들어, SVM(104-1-1))시키는 기능을 가지며, 나머지 SVM(104-1)(예를 들어, SVM(104-1-2))은 특정 리소스나 응용에 대해 수동으로서 설정된다. 클러스터 관리 프로세스는 SVM(104-1)의 장애 조치(failover) 기능을 포함한다. 장애 조치는 소정 클러스터내의 능동 SVM(104-1)(예를 들어, SVM(104-1-1))이 고장의 결과로서 이용할 수 없을 경우에 행해진다. 그러한 고장이 발생하면, 다른 SVM(104-1)(예를 들어, SVM(104-1-2))이 능동 SVM(104-1)으로서 서비스를 제공하기 시작한다.
도 7에는 도 4의 예시적인 동작 흐름(400)의 대안적인 실시 예가 도시된다. 도 7에는 동작 흐름(400)이 적어도 하나의 추가적인 동작을 포함하는 예시적인 실시 예가 도시된다. 추가적인 동작은 동작(702)을 포함한다.
동작(702)은 SMI-S 클라이언트로 이출(export)하기 위한 RAID 장치 데이터를 취합하는 것을 나타낸다. 예를 들어, 도 2에 도시된 바와 같이, 단일 시스템 이미지(Single-System Image : SSI) 취합기(104-5-1)는 SMI-S 클라이언트(104-4) 위에 적재되어 SVM(104-1-1)과 연관된 논리 속성(예를 들어, 논리 구성 요소, LUN 맵, 풀(Pool), 볼륨)과 RAID 엔진(104-7-1)과 연관된 물리 속성(예를 들어, 물리 구성 요소, 가상 드라이브등)을 포함하는 구성 요소 데이터를 이출한다. SMI-S 에이전 트(104-4-1)에 의해 수집된 구성 요소 데이터는 BVL 모듈(104B)로 제공되며, 그에 따라 각 BVL 모듈(104)은 모든 원격 RAID 저장 장치(102)의 SVM 및 RAID 엔진 상태의 총체적 뷰(aggregated view)를 유지한다. SVM(104-1-1) 및 RAID 엔진(104-7-1)과 연관된 상태 데이터는 PSON IOD(Init)(104)와 관련 PSON (105) 네트워크를 통해 피어 장치(peer device)로 이출된다. 국부 BVL 모듈(104A)이 모든 원격 RAID 저장 장치(102)의 모든 SVM 및 RAID 엔진의 상태 데이터의 총체적 뷰를 가지면, 단일 클러스 이미지를 SMI-S 클라이언트(101)로 제공하기 위해 이 데이터는 SMI-S 클라이언트(101)로 이출된다.
도 8에는 도 4의 예시적인 동작 흐름(400)의 대안적이 실시 예가 도시된다. 도 8에는 동작 흐름(400)이 적어도 하나의 추가적인 동작을 포함하는 예시적인 실시 예가 도시된다. 추가적인 동작은 동작(802), 동작(804) 및 동작(806)을 포함한다.
동작(802)은 하나 이상의 블럭 가상화 계층(Block Virtualization Layer : BVL) 요소를 데이터 보호 계층(Data Protection Layer : DPL)으로 제공하는 것을 나타낸다. 예를 들어, 도 1-3에 도시된 바와 같이, RAID 제어기(104)의 BVL 모듈(104A-1)(예를 들어, SVM을 구현한 CORBA 서버)은 취합된 장치 데이터(예를 들어, 동작(504)에 의해 취합된 데이터)를 DPL(107)(예를 들어, SYMbol 서버)로 전송한다.
동작(804)은 하나 이상의 BVL 요소를 하나 이상의 DPL 요소로 전환하는 것을 나타낸다. 도 1-3에 도시된 바와 같이, RAID 제어기(104)의 DPL 스케일-아웃 취합 기(108)(예를 들어, SMI-S 클러스터 서버)는 BVL 모듈(104A-1)에 의해 취합된 하나 이상의 BVL 요소(예를 들어, 논리적 구성 요소, 예를 들어, LUN 맵, 저장 풀, 개인 분산형 가상 볼륨등)를 SMI-S 클라이언트(101)가 직접 관리하는 하나 이상의 DPL 요소(예를 들어, 물리적 구성 요소, 가상 드라이브등)로 전환한다. 예를 들어, BVL에 의해 유지되는 다수의 저장 어레이들의 전체에 걸쳐있는 가상 볼륨은 하나의 단일 DPL 가상 드라이브로서 표시될 수 있으며, 그에 따라 SMI-S 클라이언트를 통해 시스템을 액세스하는 사용자로부터 기본적인 세부사항이 마스킹된다.
동작(806)은 하나 이상의 DPL 요소를 하나 이상의 SMI-S 클라이언트로 전송하는 것을 나타낸다. 예를 들어, 도 1-3에 도시된 바와 같이, DPL 스케일 아웃 취합기(108)는 클러스터 RAID 저장 장치(102)의 단일 취합 이미지로서 전환된 BVL 요소를 SMI-S 클라이언트(101)로 전송한다.
당업자라면, 최신 기술이 시스템 측면들의 하드웨어, 소프트웨어 및/또는 펌웨어 구현들간에 거의 차이가 없는 지점까지 진전되었음을 알 것이다. 즉, 하드웨어, 소프트웨어 및/또는 펌웨어의 이용은 (항상은 아니지만, 특정 상황에서는 하드웨어와 소프트웨어간의 선택이 중요할 수 있다는 점에 있어서) 일반적으로 비용과 효율간 상충 관계를 나타내는 고안 선택 사항이다. 당업자라면 본 명세서에서 설명한 프로세스 및/또는 시스템 및/또는 다른 기술을 실행하는 여러 매체(vehicle)가 있으며(예를 들어, 하드웨어, 소프트웨어 및/또는 펌웨어) 프로세스 및/또는 시스템 및/또는 다른 기술이 전개되는 상황에 따라 바람직한 매체로 변경될 수 있음을 알 것이다. 예를 들어, 소정 구현자가 속도 및 정확성이 가장 중요하다고 판단하 면, 그 구현자는 주로 하드웨어 및/또는 소프트웨어 매체를 선택할 것이다. 대안적으로, 가요성이 가장 중요하면, 구현자는 주로 소프트웨어 구현을 선택하거나, 또 다른 대안으로서 하드웨어, 소프트웨어 및/또는 펌웨어의 조합을 선택할 것이다. 따라서, 본 명세서에서 설명한 프로세스 및/또는 장치 및/또는 다른 기술을 실행하는 여러가지 가능한 매체가 있지만, 매체가 전개될 상황 및 구현자의 특정 관심(예를 들어, 속도, 가요성 또는 예측 가능성)에 의거하여 이용될 매체가 선택된다는 점에서 가능한 매체들의 어느것도 다른 것보다 본질적으로 우위에 있는 것은 없으며, 변경될 수 있다. 당업자라면, 그 구현의 광학적 측면이 전형적으로 광학 지향(opticallly-oriented) 하드웨어, 소프트웨어 및/또는 펌웨어를 채용할 것임을 알 것이다.
본 명세서에서 설명한 일부 구현에서는, 논리 및 유사한 구현이 소프트웨어 또는 다른 제어 구조를 포함한다. 예를 들어, 전자 회로는 본 명세서에서 설명한 여러 기능을 구현하도록 구성되고 배열된 하나 이상의 전류 경로를 가진다. 일부 구현에서는, 매체가 본 명세서에서 설명한 바와 같이 실행되도록 동작시킬 수 있는 장치 검출 가능 명령을 홀드(hold)하거나 전송할 경우에 장치 전송 가능 구현이 가능하도록 하나 이상의 매체가 구성될 수 있다. 일부 변형에 있어서, 예를 들어, 구현은, 본 명세서에서 설명한 하나 이상의 동작과 관련된 하나 이상의 명령들의 수신 또는 전송을 실행함에 의해, 기존의 소프트웨어나 펌웨어, 또는 게이트 어레이나 프로그램 가능 하드웨어의 갱신 또는 정정을 포함한다. 대안적으로 또는 추가적으로, 일부 변형에 있어서, 구현은 전용 하드웨어, 소프트웨어, 펌웨어 구성 요소 및/또는 전용 구성 요소를 실행하거나 실시하는 범용 구성 요소를 포함한다. 본 명세서에서 설명한 하나 이상의 예시적인 실재 전송 매체(tangible transmission media)에 의한 패킷 전송 또는 분산형 매체를 통한 여러 차례의 전송에 의해 선택적으로 스펙(specifications)이나 다른 구현이 전송될 수 있다.
대안적으로 또는 추가적으로, 구현은 전용 명령어 시퀀스를 실행하거나, 본 명세서에서 설명한 임의의 기능 동작을 가상적으로 일회 이상 발생시키거나, 인에이블하거나, 트리거(trigger)하거나, 조정하거나, 요청하는 회로를 실행시키는 것을 포함한다. 일부 변형에 있어서, 본 명세서에서의 동작 또는 다른 논리적 기술(description)은 소스 코드(source code)로서 표현되거나, 컴파일링되거나 또는 실행 가능 명령어 시퀀스로서 실행될 수 있다. 일부 상황에서는, 예를 들어, 구현이 C++ 와 같은 소스 코드 또는 다른 코드 시퀀스에 의해 전체적으로 또는 부분적으로 제공될 수 있다. 다른 구현에서는, 상업적으로 입수 가능한 기술적 기법을 이용하여 소스 또는 다른 코드 구현이 상위 레벨 기술자 언어로 컴파일/구현/전환/변환될 수 있다(예를 들어, 초기에 C 또는 C++ 프로그래밍 언어로 기술될 기법을 구현하고, 이후 프로그래밍 언어 구현을 논리 합성 가능 언어 구현, 하드웨어 기술 언어 구현, 하드웨어 고안 시뮬레이션 구현 및/또는 그와 유사한 다른 모드의 표현으로 변환함). 예를 들어, 논리적 표현(예를 들어, 컴퓨터 프로그래밍 언어 구현)의 일부 또는 전부는 베릴로그형 하드웨어 기술(Verilog-type hardware description)(예를 들어, HDL(Hardward Description Language) 및/또는 VHDL(Very High Speed Intergrated Circuit Hardware Descriptor Language)을 통해) 또는 하 드웨어를 가진 물리적 구현을 생성하는데 이용되는 다른 회로 모델(예를 들어, ASIC(Application Specific Integrated Circuit))로서 표시될 수 있다. 당업자라면, 이러한 교시의 견지에서 계산 요소, 소재 공급, 액츄에이터 또는 다른 구성이나 적정한 전송을 획득하고 구성하고 최적화하는 방법을 알 것이다.
상술한 상세한 설명에서는 블럭도, 흐름도 및/또는 예시가 하나 이상의 기능 및 동작을 포함하는 범위에서 그 블럭도, 흐름도 및/또는 예시를 이용하여 장치 및/또는 프로세스의 여러 실시 예가 설명되었으며, 당업자라면 그러한 블럭도, 흐름도 또는 예시내의 각 기능 및 동작이 광범위한 하드웨어, 소프트웨어, 펌웨어 또는 그들의 가상적인 임의 조합에 의해 개별적으로 또는 통합적으로 구현될 수 있음을 알 것이다. 일 실시 예에 있어서, 본 명세서에서 설명한 것들의 여러 부분들은 ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array), DSP(Digital Signal Processor) 또는 다른 집적 포맷을 통해 구현될 수 있다. 그러나, 당업자라면, 본 명세서에서 설명한 여러 측면의 실시 예들의 전체 또는 일부가 집적 회로내에, 하나 이상의 컴퓨터상에서 구동되는 하나 이상의 컴퓨터 프로그램(예를 들어, 하나 이상의 컴퓨터 시스템상에서 구동되는 하나 이상의 프로그램), 하나 이상의 프로세서상에서 구동되는 하나 이상의 프로그램(예를 들어, 하나 이상의 마이크로프로세서상에서 구동되는 하나 이상의 프로그램), 펌웨어, 또는 가상적인 그들의 조합으로서 등가적으로 구현될 수 있으며, 회로를 고안하고/하거나 소프트웨어 및/또는 펌웨어에 대한 코드를 기록하는 것은 본 명세서의 개시에 비추어 당업자에게 명백함을 알 것이다. 또한, 당업자라면 본 명세서에서 설명한 것들의 메카니즘이 프로그램 제품으로서 다양한 형태로 분산될 수 있으며, 본 명세에서 설명한 것들의 예시적인 실시 예는 분산을 실질적으로 실행하는데 이용되는 특정 유형의 신호 함유 매체와는 무관하게 적용될 수 있음을 알 것이다. 신호 함유 매체는, 예를 들어, 플로피 디스크, 하드 디스크 드라이브, CD(Compact Disc), DVD(Digital Video Disk), 디지털 테이프, 컴퓨터 메모리등과 같은 기록 가능 유형 매체와, 디지털 및/또는 아날로그 통신 매체(예를 들어, 파이버 광학 케이블, 도파관, 유선 통신 링크, 무선 통신 링크(예를 들어, 전송기, 송수신기, 전송 로직, 수신 로직등))와 같은 전송 유형 매체를 포함하지만, 그에 국한되는 것은 아니다.
일반적인 의미에서, 당업자라면, 본 명세서에서 설명한 여러 측면들이 광범위한 하드웨어, 소프트웨어, 펌웨어 및/또는 그들의 임의 조합에 의해 개별적으로 또는 총괄적으로 구현될 수 있으며, 여러 유형의 "전기 회로"로 구성될 수 있음을 알 것이다. 결론적으로, 본 명세서에서 이용된 "전기 회로"는 적어도 하나의 이산 전기 회로를 가진 전기 회로, 적어도 하나의 집적 회로를 가진 전기 회로, 적어도 하나의 주문형 집적 회로를 가진 전기 회로, 컴퓨터 프로그램에 의해 구성된 범용 계산 장치를 형성하는 전기 회로(예를 들어, 본 명세서에서 설명한 프로세스 및/또는 장치를 적어도 부분적으로 실행하는 컴퓨터 프로그램에 의해 구성된 범용 컴퓨터, 또는 본 명세서에서 설명한 프로세스 및/또는 장치를 적어도 부분적으로 실행하는 컴퓨터 프로그램에 의해 구성된 마이크로프로세서), 메모리 장치를 형성하는 전기 회로(예를 들어, 랜덤 액세스, 플래쉬(flash), 판독 전용등과 같은 메모리 형태), 및 또는 통신 장치를 형성하는 전기 회로(예를 들어, 모뎀, 통신 스위치, 광 학적-전기적 장비등)를 포함하지만, 이에 국한되는 것은 아니다. 당업자라면, 본 명세서에서 설명한 것은 아날로그 또는 디지털 방식으로 구현되거나 또는 그들의 일부를 조합한 방식으로 구현될 수 있음을 알 것이다.
본 명세서에서 단수형 및/또는 복수형 용어를 이용하였지만, 당업자라면 상황 및 응용에 적합하게 단수형이 복수형으로 및/또는 복수형이 단수형으로 전환될 수 있음을 알 것이다. 명확성을 위해, 본 명세서에서는 여러 단수/복수 변경을 명확하게 설명하지 않았다.
본 명세서에서 설명된 것들은 다른 구성 요소내에 포함되거나 다른 구성 요소와 접속된 다른 구성 요소를 나타내는 경우도 있다. 그와 같이 설명된 구조는 단지 예시적인 것이며, 사실은 동일한 기능을 달성하는 많은 다른 구조가 구현될 수 있음을 알 것이다. 개념적으로, 동일 기능을 달성하기 위한 구성 요소의 임의 배열은 원하는 기능이 달성되도록 유효하게 연관된다. 따라서, 본 명세서에서 특정의 기능을 달성하도록 조합된 임의의 2개의 구성 요소는, 원하는 기능이 구조 및 매체간 구성 요소(intermedial components)와 무관하게 달성되도록 서로 관련되어 있는 것으로 간주될 수 있다. 유사하게, 그와 같이 연관된 2개의 구성 요소는 원하는 기능을 달성하도록 서로 동작 가능하게 접속(operably connect)되거나 동작 가능하게 결합(operably couple)된 것으로 간주될 수 있으며, 그와 같이 연관될 수 있는 2개의 구성 요소는 원하는 기능을 달성하도록 동작 가능하게 결합될 수 있는 것(operably couplable)으로 간주될 수 있다. 동작 가능하게 결합될 수 있는 특정의 예시로서, 물리적으로 짝을 이룰 수 있거나/있고 물리적으로 상호 작용하는 구 성 요소 및/또는 무선으로 상호 작용 가능하고/하거나 무선으로 상호 작용하는 구성 요소 및/또는 논리적으로 상호 작용하고/하거나 논리적으로 상호 작용 가능한 구성 요소를 포함할 수 있지만 그에 국한되는 것은 아니다.
몇가지 예시에 있어서, 본 명세서에서 하나 이상의 구성 요소는 "구성되는", "구성 가능한", "동작 가능한", "채용되는/채용가능한", "가능한", "적합한/적합화된"것을 나타낸다. 당업자라면, 다르게 언급하지 않는다면, 그러한 용어가 활성 상태 구성 요소 및/또는 불활성 상태 구성 요소 및/또는 대기 상태 구성 요소를 전반적으로 포함함을 알 것이다.
본 명세서에서는 특정 측면들이 도시되고 설명되었지만, 당업자라면 본 명세서에서 설명된 교시에 기초하여, 본 명세서에서 설명된 주제 및 그의 보다 광범위한 측면들을 벗어나지 않고서 변경 및 정정이 이루어질 수 있고, 그에 따라 첨부된 특허청구범위는 모든 그러한 변경 및 정정이 본 명세서에서 설명된 주제의 진실한 사상 및 범주내에 포함될 수 있음을 알 것이다. 당업자라면, 전반적으로 본 명세서에서 이용된 용어, 특히 특허청구범위에 이용된 용어(예를 들어, 특허청구범위의 주요부)는 "무제한적" 용어를 의도한 것이다(예를 들어, 용어 "포함하는"은 "제한없이 포함하는"으로 해석되어야 하고, 용어 "가진"은 "적어도 가진"으로 해석되어야 하며, 용어 "포함하다"는 "제한없이 포함하다"로 해석되어야 한다). 당업자라면, 청구범위에 기재된 특정 숫자가 의도적으로 기재되면, 그 의도가 청구범위에 명확하게 기재될 것이며, 그러한 기재가 없다면, 특정의 의도가 없음을 이해할 수 있을 것이다. 예를 들어, 이해를 돕기 위하여, 이하의 청구범위에서는 청구항 기재 를 위해 "적어도 하나" 및 "하나 이상"이라는 문구를 이용할 것이다. 그러나, 그러한 문구의 이용 때문에, "하나" 또는 "소정"으로 표현된 청구항 기재부분이 그러한 청구항 기재를 포함하는 특정 청구항을 단지 하나의 그러한 기재를 포함하는 청구항으로 국한되는 것으로 이해되어서는 안되며, 이는 동일 청구항이 "하나 이상" 또는 "적어도 하나"와 "하나" 또는 "소정"이란 표현을 포함하는 경우에도 마찬가지이다(예를 들어, "하나" 및/또는 "소정"은 전형적으로 "적어도 하나" 또는 "하나 이상"을 의미하는 것으로 해석되어야 한다). 즉, 청구항 기재를 위해 "하나" 또는 "소정"이란 표현을 이용하는 경우에도 상술한 바와 동일하게 적용된다. 또한, 특정 숫자의 청구항 기재가 명확하게 서술되었으면, 그러한 서술은 전형적으로 적어도 하나의 서술된 숫자를 의미하는 것으로 해석되어야 함을 당업자라면 잘 알 것이다(예를 들어, 다른 수식어없이 "두개의"이란 표현은 적어도 두개의 또는 2개 이상을 의미한다). 또한, "A, B 및 C 중 적어도 하나"와 같은 관례적 표현을 사용하는 경우, 일반적으로 그 구성은 당업자가 그러한 관례적 표현을 이해하고 있다는 관점에서 의도된 것이다(예를 들어, "A, B 및 C 중 적어도 하나를 가진 시스템"은 A 단독, B 단독, C 단독, A와 B, A와 C, B와 C 및/또는 A와 B와 C 모두를 가진 시스템을 포함하지만, 그에 국한되는 것은 아니다). 또한, "A, B 또는 C 중 적어도 하나"와 같은 관례적 표현을 사용하는 경우, 일반적으로 그 구성은 당업자가 그러한 관례적 표현을 이해하고 있다는 관점에서 의도된 것이다(예를 들어, "A, B 또는 C 중 적어도 하나를 가진 시스템"은 A 단독, B 단독, C 단독, A와 B, A와 C, B와 C 및/또는 A와 B와 C 모두를 가진 시스템을 포함하지만, 그에 국한되는 것은 아니다). 당업자라면, 상세한 설명, 청구범위 또는 도면에서 2 이상의 대안적인 용어에 존재하는 이접적(disjunctive) 단어 및/또는 구는 그러한 용어 중 어느 하나 또는 둘 다를 포함할 수 있음을 나타내기 위한 것임을 이해할 수 있을 것이다. 예를 들어, 구 "A 또는 B"는 "A" 또는 "B" 또는 "A와 B"를 나타낼 수 있음을 이해할 것이다.
청구범위에 있어서, 당업자라면, 청구범위에 서술된 동작이 임의 순서로 실행될 수 있음을 알 것이다. 또한, 여러 동작 흐름이 순서적으로 기술되었지만, 여러 동작들이 기술된 순서와는 다른 순서로 실행되거나 동시에 실행될 수 있음을 알것이다. 예를 들어, 그러한 대안적인 순서는, 다른 설명이 없다면, 오버랩된(overlap), 인터리브된(interleaved), 인터럽트된(interrupted), 재정렬된(reordered), 점증적인, 예비적인, 추가적인, 동시적인, 반전된 또는 다른 가변적인 순서를 포함할 수 있다. 또한, "-에 응답하여", "-에 관련된", 또는 다른 과거 시제형 표현과 같은 용어는, 다른 설명이 없다면, 그의 변형을 배제하기 위한 것이 아니다.
청구범위에 특정의 종속성이 관련되어 있지만, 본 출원에서는 청구항의 특징들의 모든 조합이 가능함을 알 수 있을 것이며, 따라서 청구범위는 모든 가능한 다수의 종속성을 포함하는 것으로 해석되어야 한다.
당업자라면 첨부된 도면을 참조하여 본원의 여러 장점들은 보다 잘 이해할 수 있을 것이다.
도 1은 저장 네트워크를 구성하는 시스템의 상위-레벨 블럭도,
도 2는 프로세스의 상위-레벨 논리 흐름도,
도 3은 프로세스의 상위-레벨 논리 흐름도,
도 4는 프로세스의 상위-레벨 논리 흐름도,
도 5는 프로세스의 상위-레벨 논리 흐름도,
도 6은 프로세스의 상위-레벨 논리 흐름도,
도 7은 프로세스의 상위-레벨 논리 흐름도,
도 8은 프로세스의 상위-레벨 논리 흐름도.

Claims (21)

  1. 원격 저장 어레이 리소스를 취합하는 방법으로서,
    하나 이상의 원격 저장 어레이들과 연관된 하나 이상의 원격 가상 드라이브를 발견하는 단계와,
    국부 저장 어레이와 연관된 하나 이상의 원격 가상 드라이브를 공시하는 단계와,
    하나 이상의 원격 저장 어레이와 연관된 하나 이상의 원격 가상 드라이브로 어드레스 지정된 클라이언트로부터 하나 이상의 IO 요청을 수신하는 단계와,
    국부 캐쉬 공간을 할당하기 위해 하나 이상의 가상 드라이브와 연관된 하나 이상의 원격 저장 어레이에 하나 이상의 명령 기술자 블럭(command descriptor block : CDB) 요청을 전송하는 단계를 포함하는
    원격 저장 어레이 리소스 취합 방법.
  2. 제 1 항에 있어서,
    RDMA(Remote Direct Memory Access)를 통해 상기 하나 이상의 원격 저장 어레이로 상기 하나 이상의 IO 요청을 전송하는 단계를 더 포함하는
    원격 저장 어레이 리소스 취합 방법.
  3. 제 1 항에 있어서,
    능동 저장 가상화 관리기 모듈과 하나 이상의 수동 저장 가상화 관리기 모듈을 지정하는 단계를 더 포함하는
    원격 저장 어레이 리소스 취합 방법.
  4. 제 1 항에 있어서,
    SMI-S 클라이언트로 이출(export)하기 위한 RAID 장치 데이터를 취합하는 단계를 더 포함하는
    원격 저장 어레이 리소스 취합 방법.
  5. 제 1 항에 있어서,
    하나 이상의 블럭 가상화 계층(Block Virtualization Layer : BVL) 요소를 데이터 보호 계층(Data Protection Layer : DPL)로 제공하는 단계를 더 포함하는
    원격 저장 어레이 리소스 취합 방법.
  6. 제 5 항에 있어서,
    하나 이상의 BVL 요소를 하나 이상의 DPL 요소로 전환하는 단계를 더 포함하는
    원격 저장 어레이 리소스 취합 방법.
  7. 제 6 항에 있어서,
    상기 하나 이상의 DPL 요소를 하나 이상의 SMI-S 클라이언트로 전송하는 단계를 더 포함하는
    원격 저장 어레이 리소스 취합 방법.
  8. 원격 저장 어레이 리소스를 취합하는 시스템으로서,
    하나 이상의 원격 저장 어레이들과 연관된 하나 이상의 원격 가상 드라이브를 발견하는 수단과,
    국부 저장 어레이와 연관된 하나 이상의 원격 가상 드라이브를 공시하는 수단과,
    하나 이상의 원격 저장 어레이와 연관된 하나 이상의 원격 가상 드라이브로 어드레스 지정된 클라이언트로부터 하나 이상의 IO 요청을 수신하는 수단과,
    국부 캐쉬 공간을 할당하기 위해 하나 이상의 가상 드라이브와 연관된 하나 이상의 원격 저장 어레이에 하나 이상의 명령 기술자 블럭(command descriptor block : CDB) 요청을 전송하는 수단을 포함하는
    원격 저장 어레이 리소스 취합 시스템.
  9. 제 8 항에 있어서,
    RDMA(Remote Direct Memory Access)를 통해 상기 하나 이상의 원격 저장 어레이로 상기 하나 이상의 IO 요청을 전송하는 수단을 더 포함하는
    원격 저장 어레이 리소스 취합 시스템.
  10. 제 8 항에 있어서,
    능동 저장 가상화 관리기 모듈과 하나 이상의 수동 저장 가상화 관리기 모듈을 지정하는 수단을 더 포함하는
    원격 저장 어레이 리소스 취합 시스템.
  11. 제 8 항에 있어서,
    SMI-S 클라이언트로 이출(export)하기 위한 RAID 장치 데이터를 취합하는 수단을 더 포함하는
    원격 저장 어레이 리소스 취합 시스템.
  12. 제 8 항에 있어서,
    하나 이상의 블럭 가상화 계층(Block Virtualization Layer : BVL) 요소를 데이터 보호 계층(Data Protection Layer : DPL)로 제공하는 수단을 더 포함하는
    원격 저장 어레이 리소스 취합 시스템.
  13. 제 12 항에 있어서,
    하나 이상의 BVL 요소를 하나 이상의 DPL 요소로 전환하는 수단을 더 포함하는
    원격 저장 어레이 리소스 취합 시스템.
  14. 제 13 항에 있어서,
    상기 하나 이상의 DPL 요소를 하나 이상의 SMI-S 클라이언트로 전송하는 수단을 더 포함하는
    원격 저장 어레이 리소스 취합 시스템.
  15. 프로세서상에서 실행될 때, 상기 프로세서가,
    하나 이상의 원격 저장 어레이들과 연관된 하나 이상의 원격 가상 드라이브를 발견하는 단계와,
    국부 저장 어레이와 연관된 하나 이상의 원격 가상 드라이브를 공시하는 단계와,
    하나 이상의 원격 저장 어레이와 연관된 하나 이상의 원격 가상 드라이브로 어드레스 지정된 클라이언트로부터 하나 이상의 IO 요청을 수신하는 단계와,
    국부 캐쉬 공간을 할당하기 위해 하나 이상의 가상 드라이브와 연관된 하나 이상의 원격 저장 어레이에 하나 이상의 명령 기술자 블럭(command descriptor block : CDB) 요청을 전송하는 단계를 포함하는
    프로세스를 실행하도록 하는 컴퓨터 독출 가능 명령을 포함하는
    컴퓨터 독출 가능 매체.
  16. 제 15 항에 있어서,
    상기 프로세스가 RDMA(Remote Direct Memory Access)를 통해 상기 하나 이상의 원격 저장 어레이로 상기 하나 이상의 IO 요청을 전송하는 단계를 더 포함하는
    컴퓨터 독출 가능 매체.
  17. 제 15 항에 있어서,
    상기 프로세스가 능동 저장 가상화 관리기 모듈과 하나 이상의 수동 저장 가상화 관리기 모듈을 지정하는 단계를 더 포함하는
    컴퓨터 독출 가능 매체.
  18. 제 15 항에 있어서,
    상기 프로세스가 SMI-S 클라이언트로 이출(export)하기 위한 RAID 장치 데이터를 취합하는 단계를 더 포함하는
    컴퓨터 독출 가능 매체.
  19. 제 15 항에 있어서,
    상기 프로세스가 하나 이상의 블럭 가상화 계층(Block Virtualization Layer : BVL) 요소를 데이터 보호 계층(Data Protection Layer : DPL)로 제공하는 단계를 더 포함하는
    컴퓨터 독출 가능 매체.
  20. 제 19 항에 있어서,
    상기 프로세스가 하나 이상의 BVL 요소를 하나 이상의 DPL 요소로 전환하는 단계를 더 포함하는
    컴퓨터 독출 가능 매체.
  21. 제 20 항에 있어서,
    상기 프로세스가 상기 하나 이상의 DPL 요소를 하나 이상의 SMI-S 클라이언트로 전송하는 단계를 더 포함하는
    컴퓨터 독출 가능 매체.
KR1020090067089A 2008-10-17 2009-07-23 원격 저장 어레이 리소스 취합 방법 및 시스템과, 컴퓨터 독출 가능 매체 KR20100043006A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US10630908P 2008-10-17 2008-10-17
US61/106,309 2008-10-17
US12/387,610 US8190816B2 (en) 2008-10-17 2009-05-05 Embedded scale-out aggregator for storage array controllers
US12/387,610 2009-05-05

Publications (1)

Publication Number Publication Date
KR20100043006A true KR20100043006A (ko) 2010-04-27

Family

ID=41528631

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090067089A KR20100043006A (ko) 2008-10-17 2009-07-23 원격 저장 어레이 리소스 취합 방법 및 시스템과, 컴퓨터 독출 가능 매체

Country Status (6)

Country Link
US (1) US8190816B2 (ko)
EP (1) EP2177985B1 (ko)
JP (1) JP2010097614A (ko)
KR (1) KR20100043006A (ko)
CN (1) CN101923443B (ko)
TW (1) TW201017419A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013066572A2 (en) * 2011-10-31 2013-05-10 Intel Corporation Remote direct memory access adapter state migration in a virtual environment

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100121828A1 (en) * 2008-11-11 2010-05-13 You Wang Resource constraint aware network file system
US8756338B1 (en) * 2010-04-29 2014-06-17 Netapp, Inc. Storage server with embedded communication agent
US8694700B1 (en) * 2010-09-29 2014-04-08 Emc Corporation Using I/O track information for continuous push with splitter for storage device
US8621603B2 (en) 2011-09-09 2013-12-31 Lsi Corporation Methods and structure for managing visibility of devices in a clustered storage system
US8583840B1 (en) * 2012-04-25 2013-11-12 Lsi Corporation Methods and structure for determining mapping information inconsistencies in I/O requests generated for fast path circuits of a storage controller
CN103257832B (zh) * 2013-04-23 2016-03-23 深圳市京华科讯科技有限公司 桌面一体机存储架构
WO2015065436A1 (en) 2013-10-31 2015-05-07 Hewlett-Packard Development Company, L.P. Target port processing of a data transfer
US9977760B1 (en) 2013-12-23 2018-05-22 Google Llc Accessing data on distributed storage systems
WO2015126429A1 (en) 2014-02-24 2015-08-27 Hewlett-Packard Development Company, L.P. Repurposable buffers for target port processing of a data transfer
JP6361390B2 (ja) * 2014-09-10 2018-07-25 富士通株式会社 ストレージ制御装置および制御プログラム
US9892071B2 (en) * 2015-08-03 2018-02-13 Pure Storage, Inc. Emulating a remote direct memory access (‘RDMA’) link between controllers in a storage array
CN106020731B (zh) * 2016-05-23 2019-07-02 中国科学技术大学 存储设备、存储设备阵列和网络适配器
JP2019174875A (ja) * 2018-03-26 2019-10-10 株式会社日立製作所 記憶システム及び記憶制御方法
US11128578B2 (en) 2018-05-21 2021-09-21 Pure Storage, Inc. Switching between mediator services for a storage system
CN113168293A (zh) * 2019-01-31 2021-07-23 华为技术有限公司 用于访问集群存储系统中的缓存的方法和装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991813A (en) * 1997-05-16 1999-11-23 Icon Cmt Corp. Network enabled SCSI interface
US6983303B2 (en) * 2002-01-31 2006-01-03 Hewlett-Packard Development Company, Lp. Storage aggregator for enhancing virtualization in data storage networks
JP4704659B2 (ja) * 2002-04-26 2011-06-15 株式会社日立製作所 記憶装置システムの制御方法および記憶制御装置
US7380082B2 (en) * 2003-03-25 2008-05-27 Emc Corporation Reading virtual ordered writes at local storage device
US7165145B2 (en) * 2003-07-02 2007-01-16 Falconstor Software, Inc. System and method to protect data stored in a storage system
JP4384470B2 (ja) * 2003-10-21 2009-12-16 株式会社日立製作所 記憶装置の管理方法
JP2005165702A (ja) * 2003-12-03 2005-06-23 Hitachi Ltd クラスタストレージのデバイス連結方法
JP2005301560A (ja) * 2004-04-09 2005-10-27 Nec Corp クラスタファイルサーバ
JP4258482B2 (ja) * 2005-03-17 2009-04-30 日本電気株式会社 iSCSIストレージシステムおよびそのシステムにおけるパス多重化方法
US7554976B2 (en) * 2005-05-13 2009-06-30 Microsoft Corporation Method and system for transferring a packet stream to RDMA
US20060271656A1 (en) * 2005-05-24 2006-11-30 Yuichi Yagawa System and method for auditing storage systems remotely
GB0523293D0 (en) * 2005-11-16 2005-12-21 Ibm Apparatus and method for controlling data copy services
US8631150B2 (en) * 2006-06-21 2014-01-14 Intel Corporation Method and apparatus for in-band management of storage devices
US20080077650A1 (en) * 2006-08-29 2008-03-27 Jared Matthew A Method and apparatus for transferring data between a home networked device and a storage system
JP4643543B2 (ja) * 2006-11-10 2011-03-02 株式会社東芝 キャッシュ一貫性保証機能を有するストレージクラスタシステム
JP5410025B2 (ja) * 2008-03-07 2014-02-05 株式会社日立製作所 ストレージシステム及びその管理方法
US20100030960A1 (en) * 2008-07-31 2010-02-04 Hariharan Kamalavannan Raid across virtual drives

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013066572A2 (en) * 2011-10-31 2013-05-10 Intel Corporation Remote direct memory access adapter state migration in a virtual environment
WO2013066572A3 (en) * 2011-10-31 2013-07-11 Intel Corporation Remote direct memory access adapter state migration in a virtual environment
US9354933B2 (en) 2011-10-31 2016-05-31 Intel Corporation Remote direct memory access adapter state migration in a virtual environment
US10467182B2 (en) 2011-10-31 2019-11-05 Intel Corporation Remote direct memory access adapter state migration in a virtual environment

Also Published As

Publication number Publication date
JP2010097614A (ja) 2010-04-30
CN101923443A (zh) 2010-12-22
TW201017419A (en) 2010-05-01
EP2177985B1 (en) 2018-09-05
US8190816B2 (en) 2012-05-29
EP2177985A2 (en) 2010-04-21
CN101923443B (zh) 2015-06-10
US20100100679A1 (en) 2010-04-22
EP2177985A3 (en) 2012-02-01

Similar Documents

Publication Publication Date Title
KR20100043006A (ko) 원격 저장 어레이 리소스 취합 방법 및 시스템과, 컴퓨터 독출 가능 매체
US11249857B2 (en) Methods for managing clusters of a storage system using a cloud resident orchestrator and devices thereof
JP5026283B2 (ja) 協調的共用ストレージアーキテクチャ
US9311001B1 (en) System and method for managing provisioning of storage resources in a network with virtualization of resources in such a network
US20160162371A1 (en) Supporting multi-tenancy through service catalog
JP4800059B2 (ja) 仮想ストレージシステム及びその制御方法
US7315914B1 (en) Systems and methods for managing virtualized logical units using vendor specific storage array commands
US9836345B2 (en) Forensics collection for failed storage controllers
US9479585B1 (en) Policy based service management in a clustered network storage system
US9146780B1 (en) System and method for preventing resource over-commitment due to remote management in a clustered network storage system
US20130138764A1 (en) Method and system for virtual machine data migration
US10855556B2 (en) Methods for facilitating adaptive quality of service in storage networks and devices thereof
US10938730B2 (en) Data transmission techniques between systems having different communication speeds
US8719534B1 (en) Method and system for generating a migration plan
US9417812B1 (en) Methods and apparatus for minimally disruptive data migration
US10782889B2 (en) Fibre channel scale-out with physical path discovery and volume move
US8880952B1 (en) Generic and extensible provider debug interface
JP5439435B2 (ja) 計算機システムおよびその計算機システムにおけるディスク共有方法
US10798159B2 (en) Methods for managing workload throughput in a storage system and devices thereof
US10768834B2 (en) Methods for managing group objects with different service level objectives for an application and devices thereof
US9614911B2 (en) Methods and systems for storage access management
US11258877B2 (en) Methods for managing workloads in a storage system and devices thereof
US11016694B1 (en) Storage drivers for remote replication management
US10209923B2 (en) Coalescing configuration engine, coalescing configuration tool and file system for storage system
Gerasimov et al. Design and implementation of a block storage multi-protocol converter

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E902 Notification of reason for refusal
E601 Decision to refuse application