KR100956730B1 - 낮은 오버헤드 저장 클러스터 구성 록킹 - Google Patents

낮은 오버헤드 저장 클러스터 구성 록킹 Download PDF

Info

Publication number
KR100956730B1
KR100956730B1 KR1020057017268A KR20057017268A KR100956730B1 KR 100956730 B1 KR100956730 B1 KR 100956730B1 KR 1020057017268 A KR1020057017268 A KR 1020057017268A KR 20057017268 A KR20057017268 A KR 20057017268A KR 100956730 B1 KR100956730 B1 KR 100956730B1
Authority
KR
South Korea
Prior art keywords
lock
cluster
component
configuration
cln
Prior art date
Application number
KR1020057017268A
Other languages
English (en)
Other versions
KR20060002822A (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 KR20060002822A publication Critical patent/KR20060002822A/ko
Application granted granted Critical
Publication of KR100956730B1 publication Critical patent/KR100956730B1/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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
    • G06F2003/0697Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

복수의 관리 시스템을 구비한 저장 네트워크에서 저장 장치의 클러스터와 통신하는 저장 제어 장치를 제공하는데, 이 장치는 클러스터 록 요청기 컴포넌트와, 클러스터 록 수신기 컴포넌트, 및 구성 컴포넌트를 포함하며, 상기 클러스터 록 수신기 컴포넌트에 의한 클러스터 록의 수신에 응답하여, 상기 구성 컴포넌트는 상기 클러스터 내에 논리적 리소스 객체를 구성한다. 이 장치는 바람직하게 상기 클러스터 록 요청기 컴포넌트에 응답하여 클러스터 록을 상기 클러스터 록 수신기 컴포넌트에 승인하는 동작을 하는 클러스터 록 승인기도 포함한다. 저장 제어 장치를 동작시키는 방법은 장치의 기능적 컴포넌트에 대응하는 방법 단계를 포함하고 컴퓨터 프로그램 코드로 구현될 수 있다.

Description

낮은 오버헤드 저장 클러스터 구성 록킹{LOW-OVERHEAD STORAGE CLUSTER CONFIGURATION LOCKING}
본 발명은 데이터 저장 시스템에 관한 것으로, 특히 네트워크 저장 시스템에 사용되는 제어기, 및 그들의 동작 방법에 관한 것이다.
본 발명의 분야에서, 강화된 기능의 저장 시스템(예를 들어 하나 이상의 디스크 드라이브의 시스템에 대한)은 다수의 논리적 리소스를 포함한다. 이들 리소스는 저장 어댑터 또는 제어기에 의해 관리될 수 있다. 이 문맥에서, 논리적 리소스는 디스크식 행동양식을 나타내나, 보통 개개의 디스크 드라이브와 연관되지 않은 특성을 가질 수 있는 개체(entity)이다. 이들 특성은 강화된 성능, 신뢰성, 이용가능성 및 타임 카피에서의 포인트와 같은 데이터 변형 작업을 포함한다. 논리적 리소스와 다른 논리적 리소스 또는 물리적 리소스 사이에 복잡한 다자간 관계가 있을 수 있다. 예를 들어, RAID-5(Redundant Array of Independent Disk) 구성은 보통 4 내지 16개의 컴포넌트 디스크를 포함한다. 데이터는 이 컴포넌트를 가로질러 판독되고 패리티 체크가 계산되고 저장된다. 이들 논리적 리소스의 속성 및 이들 간의 관계는 사용자가 그들의 시스템을 유지하도록 수집 및 조작되어야 한다. 이러한 시스템이 함께 더 밀집되어 저장 네트워크에 사용되는 경우, 시스템이 논리적 리소스 구성을 제어하는 것의 어려움 및 리소스 비용은 여전히 더 악화된다.
따라서, 저장 네트워크에서 어댑터 또는 제어기에 시스템 구성 제어 임무를 분배할 필요가 있다. 분배되는 관리 임무는 그의 특성에 따라 임의의 지원 클라이언트로부터 요청될 수 있다. 이를 통해 두 사용자는 예상치 못한 결과를 야기하는 상이한 위치로부터의 충돌 동작을 수행할 수 있도록 해준다. RAID 서브시스템의 경우에 있어서, 예를 들어 두 사용자는 동일한 디스크 드라이브 또는 리소스를 구성할 수 있다. 원격 액세스를 하지 않는 경우에도, 시스템이 클러스터 모드로 구성되는 경우, 이것은 다수의 로컬 호스트로부터 액세스될 수 있고 동일한 문제에 봉착할 수 있다.
어댑터에 의해 유지되는 논리적 리소스 객체는 다수의 필터 층을 스택으로 소유한다. 구성 컴포넌트는 각 필터 리소스를 리소스 객체 인스턴스와 연관시킨다. 리소스 객체가 생성되는 경우, 필터 층은 구성 컴포넌트에 의해 다른 것의 상단에 하나씩 부가되어야 한다. 이러한 프로세스 동안, 클러스터는 안정적이어야 하며, 다른 구성 임무가 동시에 수행되지 않도록 보장하는 것이 중요하다. 사용가능하지 않은 또는 절반 구성된 리소스 객체를 야기할 수 있는, 이들 각각의 단계 사이에서의 잘못된 사용자 상호작용에 대한 범위가 존재한다.
저장 설비의 크기는 증가하고 있어서, 단일 지점의 제어만을 의존하게 되면, 네트워크에서 리소스를 구성하는 것은 불리하게도 어려운 일이 되고 있고 또한 실 행할 수 없는 일이 되어 가고 있다. 그러나, 논리적 및 물리적 리소스의 구성이 복잡하기 때문에, 전적으로 구성 소프트웨어 층 내에서 분배된 시스템 관리를 제어하는, 예를 들어 구성 유틸리티 프로그램에 대한 액세스의 직렬화를 강요하여 대립을 방지하는 종래의 방법은 사용될 수 없다. 동시에, 어댑터-레벨 리소스의 사용은 가능하면 입/출력 동작에 대한 "실제(real)" 작업 요청의 만족에 제한되어야 한다. 이러한 어댑터 또는 제어기는 가능한 그들의 오버헤드 리소스 사용으로 경제적이도록 설계되어야 한다는 것은 당업자에게는 잘 알려져 있다.
따라서, 낮은-오버헤드 시스템과, 저장 네트워크에서 분배되는 저장 구성 제어를 위한 방법을 제공하여 상술한 문제점을 완화하는 것이 바람직하다.
따라서, 본 발명은 제 1 측면에서, 복수의 관리자 시스템을 구비한 저장 네트워크에서 저장 장치의 클러스터와 통신하는 저장 제어 장치를 제공하는데, 이 장치는 클러스터 록 요청기 컴포넌트(a cluster lock requester component)와, 클러스터 록 수신기 컴포넌트, 및 구성 컴포넌트를 포함하며, 상기 클러스터 록 수신기 컴포넌트에 의한 클러스터 록의 수신에 응답하여, 상기 구성 컴포넌트는 상기 클러스터 내에 논리적 리소스 객체를 구성한다.
이 장치는 바람직하게 상기 클러스터 록 요청기 컴포넌트에 응답하여 클러스터 록을 상기 클러스터 록 수신기 컴포넌트에 승인하는 클러스터 록 승인기(granter)를 더 포함한다.
바람직하게, 상기 클러스터 록 승인기 컴포넌트는 제 1 저장 어댑터 컴포넌트이다. 바람직하게, 상기 클러스터 록 승인기 컴포넌트는 상기 클러스터 내의 제 2 저장 어댑터 컴포넌트에게 록이 승인되었다는 것을 알려준다.
바람직하게, 상기 클러스터 록 승인기 컴포넌트는 상기 클러스터 내의 상기 제 2 저장 어댑터 컴포넌트에게 록이 해제(release)되었다는 것을 알려준다.
바람직하게, 상기 클러스터 록 승인기 컴포넌트는 타임아웃 기간의 종료시 상기 클러스터 록을 취소(revoke)한다.
바람직하게, 상기 클러스터 승인기 컴포넌트는 어댑터 리셋 동작에 응답하여 상기 클러스터 록을 취소한다.
바람직하게, 상기 클러스터 승인기 컴포넌트는 전력 싸이클에 응답하여 상기 클러스터 록을 취소한다.
바람직하게, 상기 클러스터 록 승인기 컴포넌트는 클러스터 록 번호(cluster lock number)를 비휘발성 메모리에 저장한다.
본 발명은 제 2 측면에서, 복수의 관리자 시스템을 구비한 저장 네트워크에서 저장 장치의 클러스터와 통신하는 저장 제어 장치를 동작시키는 방법을 제공하는데, 이 방법은 클러스터 록을 요청하는 단계와, 클러스터 록을 수신하는 단계, 및 상기 클러스터 록 수신 단계에 응답하여, 상기 클러스터 내에 논리적 리소스 객체를 구성하는 단계를 포함한다.
제 3 측면에서, 본 발명은 컴퓨터 시스템 내로 로딩되고 실행되는 경우 제 2 측면의 방법 단계를 수행하도록 하는 컴퓨터 프로그램 코드를 포함하는 컴퓨터 프로그램을 제공한다.
제 2 및 제 3 측면의 바람직한 특징들은 제각각 제 1 측면의 바람직한 특징의 하드웨어 컴포넌트에 대응하는 방법 단계 및 컴퓨터 코드 요소를 포함한다.
본 발명의 바람직한 실시예에 대하여 첨부한 도면을 참조하여 예시적으로만 설명할 것이다.
도 1은 본 발명의 바람직한 실시예에 따른 장치를 도시하는 도면,
도 2는 본 발명의 또 다른 바람직한 실시예의 제 1 측면에 따라 수행되는 방법의 단계를 도시하는 도면,
도 3은 본 발명의 또 다른 바람직한 실시예의 제 2 측면에 따라 수행되는 방법의 단계를 도시하는 도면.
도 1에는, 관리자 시스템으로서 동작할 수 있는 다수의 시스템(108,108')을 구비한 저장 네트워크(도시되어 있지 않음)에서 동작가능하는 유형의 저장 장치(104,104',120)의 클러스터(102) 내의 저장 제어 장치(100)가 도시되어 있다. 저장 제어 장치(100)는 록 요청 트랜잭션을 발행함으로써 클러스터 록을 요청하는 클러스터 록 요청기 컴포넌트(100)를 갖는다. 저장 제어 장치(100)는 클러스터 록을 수신하는 클러스터 록 수신기 컴포넌트(102)를 갖는다. 클러스터 록 수신기 컴포 넌트(112)에 의한 클러스터 록의 수신에 응답하여, 구성 컴포넌트(114)는 클러스터(102) 내에 논리적 리소스 객체(115)를 구성한다.
저장 제어 장치(100)는 또한 클러스터 록 요청기 컴포넌트(110)로부터의 클러스터 록 요청의 수신에 응답하여 클러스터 록 수신기 컴포넌트(112)에 클러스터 록을 승인하는 클러스터 록 승인기 컴포넌트(116)를 포함할 수 있다.
예시적인 실시에에서, 저장 제어 장치(100)는 클러스터 록 승인기 컴포넌트(116)가 제 1 저장 어댑터 컴포넌트인 장치일 수 있다. 또 다른 실시예에서, 저장 제어 장치는 제 1 저장 제어 컴포넌트 또는 저장 가상화 기구와 같은 기구일 수 있다.
예시적인 실시예에서, 저장 제어 장치(100)는 클러스터 록 승인기 컴포넌트(116)가 상기 클러스터(102) 내의 제 2 저장 어댑터 컴포넌트(120)에게 록이 승인되었다는 것을, 또는 록이 해제되었다는 것을, 또는 록이 취소되었다는 것을 알려주는 장치일 수 있다. 바람직한 실시예에서, 록은 타임아웃 기간의 종료시 취소될 수 있다. 또 다른 실시예에서, 록은 어댑터 리셋 동작에 응답하여 취소될 수 있다. 또 다른 실시예에서, 록은 전력 싸이클에 응답하여 취소될 수 있다.
예시적인 실시예의 저장 제어 장치(100)에서, 클러스터 록 승인기 컴포넌트(116)는 클러스터 록 번호를 비휘발성 메모리(122)에 저장한다.
본 발명의 바람직한 실시예는, 리소스를 수정할 가능성을 가진 임의의 작업이 오로지 주어진 클러스터에 부착된 리소스를 능동적으로 구성하는 작업만이도록보장하는 시스템 및 방법을 제공한다. 이러한 방침은 클러스터 전체 록의 사용에 의해 달성된다. 록은 트랜잭션이 논리적 리소스 객체(115)를 수정하는 경우에만 요구된다. 클러스터 록 동안 보기 동작은 방해를 받지 않은 상태로 유지될 수 있다. 예시적인 실시예의 록킹 메카니즘은 구성 록 번호(Configuration Lock Number; CLN)의 사용에 기반을 두며, 그 동작은 이하에서 보다 자세히 설명될 것이다.
바람직한 실시예에 따라 복수의 관리자 시스템을 구비한 저장 네트워크에서 저장 장치의 클러스터와 통신하는 저장 제어 장치(100)의 동작에 대한 방법의 제 1 측면이 도 2에 도시되어 있다. 단계(202)에서, 어댑터는 자신의 CLN을 저장한다. 단계(204)에서, 클러스터 록이 요청된다. 단계(206)에서, 클러스터 록이 수신된다. 단계(208)에서, 클러스터 록의 수신 단계(206)에 응답하여, 클러스터 내에 논리적 리소스 객체가 구성된다.
타임아웃(210), 어댑터 리셋(212), 또는 전력 싸이클(214)이 발생하는 경우, 클러스터 록은 취소되고(216), CLN은 증가한다(218).
바람직한 실시예에 따라 복수의 관리자 시스템을 구비한 저장 네트워크에서 저장 장치의 클러스터와 통신하는 저장 제어 장치(100)의 동작에 대한 방법의 제 2 측면이 도 3에 도시되어 있다. 단계(304)에서, 클러스터 록 요청이 수신된다. 단계(306)에서, 록이 승인된다.
타임아웃(308), 어댑터 리셋(310), 또는 전력 싸이클(312)이 검출되는 경우, 어댑터는 클러스터 록을 취소하고(314), 자신의 CLN을 증가시킨다(316).
따라서, 구성 데이터는 리소스 객체를 수정할 가능성을 갖는 모든 태스크의 시작 시에 록킹된다. 구성 컴포넌트(114)는 요청의 수신 시, 록 요청 메시지를 클러스터에 전송함으로써 클러스터 록을 요청한다. 클러스터가 이미 록킹되어 있지 않은 경우, 요청은 성공적일 것이며 유효 CLN은 반환된다.
바람직한 실시예에서, 서브시스템은 필터 기반 구성 트랜잭션을 사용하여 구성을 수행한다. 각각의 구성 트랜잭션은 CLN에 대한 필드를 포함하도록 수정된다. 0인 CLN은 구성 트랜잭션이 록을 필요로 하지 않고 다른 구성 트랜잭션과 동시에 처리될 수 있다는 것을 나타낸다. 예를 들어 모든 보기 트랜잭션은 CLN없이 동작할 수 있다. 리소스를 수정하는 구성 트랜잭션의 경우에 있어서, 구성 트랜잭션이 올바른 CLN을 포함하고 있지 않은 경우, 펌웨어 기반 구성 에이전트는 유효하지 않은 CLN 표시자로 인해 트랜잭션을 실패한다.
바람직한 실시예의 구성 컴포넌트(114)는 임의의 "구성 변경" 동작을 시작하기 전에 록 요청 트랜잭션을 이용하여 CLN을 요청한다. 록을 수행하는 다른 프로그램이 없는 경우, 트랜잭션은 "성공" 표시자를 반환한다. 어댑터는 록이 승인되었다는 것을 나타내는 표시를 저장하고 클러스터 내의 모든 다른 어댑터에 알린다. 록이 승인된 경우, 이 록이 해제될 때까지 이 어댑터 또는 클러스터 내의 임의의 다른 어댑터에 의해 더 이상 록이 승인되지 않을 것이다.
구성 컴포넌트(114)는 구성 활동 동안 어댑터에 발행하는 반환된 CLN 값을 각 트랜잭션의 CLN 필드에 공급한다. 현재의 록을 승인한 어댑터만이 0이 아닌 CLN을 포함하는 구성 트랜잭션을 수용할 것이다. 구성 컴포넌트가 구성 활동을 완료하는 경우, 록을 승인한 어댑터에 해제 록 인스트럭션을 발행함으로써 록이 해제된다. 수신 어댑터는 클러스터 내의 모든 다른 어댑터에게 록이 해제되었다는 것 을 알려준다. CLN은 록이 이러한 방식으로 해제되는 경우에는 증가되지 않는다. CLN은 이하에서 자세히 더 설명되는 바와 같이 록이 취소되는 경우에만 증가된다.
록이 승인되는 동안 록 요청 트랜잭션이 클러스터 내의 임의의 어댑터에 발행되는 경우, 트랜잭션은 CLN이 이미 보유되어 있다는 것을 나타내는 표시로 거절될 것이다. 구성 컴포넌트(114)가 이러한 결과 코드를 수신하는 경우, 록이 보유 프로그램에 의해 해제되거나 또는 록이 타임아웃될 때까지 이 컴포넌트는 대기해야 한다. 타임아웃 메카니즘은 이하에서 더 자세히 설명될 것이다.
가장 바람직한 실시예에서, 어댑터는 그의 현재의 CLN을 비휘발성 메모리(예를 들어, NVRAM, 또는 비휘발성 랜덤 액세스 메모리)에 저장한다. 어댑터 리셋 또는 전력 싸이클 이후에, 어댑터는 NVRM에 저장된 값을 증가시킨다. (이것은 어댑터 리셋 또는 전력 싸이클에 앞서 활동적인 임의의 구성 프로그램에 대해 내재적인 타임아웃을 야기한다.) CLN이 NVRAM에 발견되지 않은 경우, 그것은 1로 설정된다. 클러스터 내에서, 각 어댑터는 독립적인 CLN을 유지한다. 즉, 어댑터는 그들의 CLN을 동조시키지 않는다. 록 자체만이 공유된다. 두 개의 별개의 어댑터가 함께 접속되고 각각이 미해결의 록을 승인한 경우, 양 록은 취소된다. 하나의 록만이 미해결인 경우, 그것은 유지된다.
바람직한 실시예에 따른 록킹 시스템에 대한 규칙은 다음과 같다.
1. 록이 승인되고(도 3의 단계(306)에서) CLN이 록 요청 트랜잭션에 의해 제공된 경우, 록이 해제될 때까지 이 어댑터 또는 클러스터 내의 임의의 다른 어댑터로부터 더 이상의 록은 승인되지 않을 것이다.
2. 두 개의 구성 유틸리티가 록을 동시에 요청하고 승인받을 수 있다.
3. 0으로 설정된 CLN 필드를 갖는 어댑터에 의해 수신된 트랜잭션 요청은 록을 필요로 하지 않는다.
4. 0아 아닌 CLN 필드를 갖는 어댑터에 의해 수신된 트랜잭션은 록을 필요로 하며, 록을 승인한 어댑터만이 트랜잭션을 수용할 수 있으며, 트랜잭션에서 제공된 CLN은 록이 승인된 경우 어댑터에 의해 제공된 CLN과 매칭되어야 한다. 이들 조건이 만족되지 않는 경우, 트랜잭션은 무효 CLN 표시기로 인해 실패한다.
5. 록을 요청하는 후속하는 요구(call)(록 해제와는 별개임)는 동일한 CLN을 수신한다.
6. 록 요청 트랜잭션에 의해 반환된 CLN은 어댑터의 NVRAM에 저장된다. CLN은 어댑터의 NVRAM에 저장되는데 그 이유는 구성 유틸리티 'A'가 어댑터 'X'를 1의 CLN으로 록킹할 수 있기 때문이다. 어댑터가 리셋되고(또한 그의 CLN을 1로 리셋함) 그런 다음 구성 유틸리티 'B'가 어댑터 X(동일한 CLN을 가짐)에 대해 록을 승인한 경우, 양 구성 유틸리티는 우연하게도 동일한 록을 사용할 수 있다. 리셋 이후, 어댑터는 앞서 승인된 임의의 록에 대해 잊어버리고 CLN을 1만큼 증가시킨다. 록 요청 트랜잭션에 의해 반환될 CLN은 1-255의 임의의 값을 가질 수 있고 255에서 1로 래핑(wrapp)된다(즉, 0이 될 수 없다).
7. 2개의 어댑터가 서로 접속되어 있는 경우, 하나만이 록을 승인하면, 이 록은 승인된 채로 유지된다.
8. 2개의 어댑터가 서로 접속되어 있는 경우, 모두가 록을 승인한 경우, 하 나만이 그의 록을 취소할 것이다.
9. 예를 들어 2분의 타임아웃 기간 이후에 록은 취소될 것이다. 록을 사용하는 트랜잭션이 제출된 이후 타이머는 재개된다.
10. 록이 취소된 후, 다음 록 요청 트랜잭션에 공급될 CLN은 증가된다.
11. CLN은 어댑터에 걸쳐 동조되지 않는다(즉, 그들은 상이하다).
12. 록이 또 다른 어댑터에 의해 보유되고 이 어댑터가 클러스터로부터 분리되는 경우, 록은 잊혀진다.
록 요청 트랜잭션에 응답하여 록이 승인된 경우, 바람직한 실시예에 따라 어댑터는 사전결정된 타임아웃 기간을 시작한다. 이 타임아웃은 0이 아닌 CLN을 갖는 구성 트랜잭션이 완료되는 경우 재개된다. 타임아웃은 보통 해제 록 트랜잭션에 의해 정지된다. 타임아웃이 종료되기 전에 현재의 CLN을 포함하는 또 다른 구성 트랜잭션이 수신되지 않는 경우, 어댑터는 록을 취소하고, CLN을 증가시키며 클러스터 내의 모든 다른 어댑터에 알려준다.
CLN이 증가되는 것은 록이 취소되는 경우(도 3의 단계(316))에 국한된다. 성공적인 해제 록 트랜잭션은 CLN을 증가시키지 않고 임의의 후속하는 록 요청 트랜잭션은 동일한 CLN이 주어질 수 있다. 록이 취소된 이후에 임의의 부분적 객체가 남겨지는 경우, 구성 컴포넌트 체크는 그들을 식별하고 정리 동작을 수행한다. 어댑터 리셋 이후, 임의의 이전 록 또는 타임아웃은 잊혀진다.
위에서 설명한 방법은 전형적으로 하나 이상의 프로세서(도시되어 있지 않음) 상에서 실행되는 소프트웨어로 수행될 수 있고, 이 소프트웨어는 자기 또는 광 학 컴퓨터 디스크와 같은 임의의 적절한 데이터 캐리어(또한 도시되어 있지 않음) 상에 수행되는 컴퓨터 프로그램 요소로서 제공될 수 있다는 것을 이해할 것이다. 마찬가지로 데이터의 전송을 위한 채널은 모든 종류의 저장 매체 및 신호 반송 매체, 예를 들어 유선 또는 무선 신호 매체를 포함할 수 있다.
본 발명은 컴퓨터 시스템에 사용되는 컴퓨터 프로그램 제품으로서 적절히 구현될 수 있다. 이러한 구현은 일련의 컴퓨터 판독가능 인스트럭션을 포함할 수 있는데, 이들 인스트럭션은 예를 들어 CD-ROM, ROM 또는 하드 디스크와 같은 컴퓨터 판독가능 매체와 같이 유형의 매체 상에 고정될 수 있고, 또는 광학 또는 아날로그 통신 라인을 포함하나 여기에 제한되지 않은 유형의 매체를 통해 또는 마이크로웨이브, 적외선 또는 다른 전송 기법을 포함하나 여기에 제한되지 않는 무선 기법을 사용하여 무형적으로, 모뎀 또는 다른 인터페이스 장치를 거쳐 컴퓨터에 전송가능하다. 이들 일련의 컴퓨터 판독가능 인스트럭션은 앞서 기술한 기능들 모두 또는 부분적으로 구현한다.
당업자라면, 이러한 컴퓨터 판독가능 인스트럭션은 다수의 컴퓨터 아키텍쳐 또는 운영 시스템에 사용되는 다수의 프로그래밍 언어로 기록될 수 있다는 것을 알 것이다. 또한, 이러한 인스트럭션은 반도체, 자기 또는 광학 메모리를 포함하나 여기에 제한되지 않는 임의의 메모리 기술, 현재 또는 미래의 메모리 기술을 사용하여 저장될 수 있고, 또는 광학, 적외선 또는 마이크로웨이브를 포함하나 여기에 제한되지 않은 임의의 통신 기술, 현재 또는 미래의 통신 기술을 통해 전송될 수 있다. 이러한 컴퓨터 프로그램 제품은 첨부되는 인쇄 또는 전자적 문서화를 갖는 제거가능한 매체, 예를 들어 컴퓨터 시스템에 사전 로딩된 포장된 소프트웨어로서 예를 들어 시스템 ROM 또는 고정된 디스크 상에 분배될 수 있고, 또는 예를 들어 인터넷 또는 월드 와이드 웹과 같은 네트워크를 통해 서버로부터 전자 게시판으로부터 분배될 수 있다.
당업자라면, 위에서 설명한 실시예에 대해 다양한 수정을 할 수 있을 것이다.

Claims (20)

  1. 복수의 관리자 시스템과, 복수의 어댑터 컴포넌트와, 서로 연결되는 로직 리소스 객체를 포함하는 저장 네트워크에서 저장 장치의 클러스터 내에 분산형 저장 구성 제어를 제공하는 컴퓨터 구현 방법에 있어서,
    제 1 어댑터 컴포넌트에 구성 록 번호(Configuration Lock Number; CLN)를 저장하는 단계와,
    상기 제 1 어댑터 컴포넌트에 의해, CLN 필드에 값을 갖는 제 1 구성 트랜잭션 요청을 상기 관리자 시스템 중 하나로부터 수신하는 단계와,
    상기 값이 상기 제 1 구성 트랜잭션이 상기 로직 리소스 객체를 수정한다고 표시하는지를 판단하는 단계와,
    상기 제 1 구성 트랜잭션이 상기 로직 리소스 객체를 수정하는 경우에 클러스터 록의 승인을 요청하는 단계와,
    상기 제 1 구성 트랜잭션이 상기 로직 리소스 객체를 수정하고 상기 클러스터 록이 승인되는 경우에 상기 제 1 구성 트랜잭션을 수행하는 단계와,
    상기 제 1 구성 트랜잭션이 상기 로직 리소스 객체를 수정하지 않는 경우에 상기 클러스터 록 없이 상기 제 1 구성 트랜잭션을 수행하는 단계를 포함하는
    컴퓨터 구현 방법.
  2. 제 1 항에 있어서,
    타임아웃, 상기 제 1 어댑터 컴포넌트의 리셋 또는 전력 사이클의 발생에 응답하여 상기 제 1 어댑터 컴포넌트로부터 상기 클러스터 록을 취소하는 단계를 더 포함하는
    컴퓨터 구현 방법.
  3. 제 2 항에 있어서,
    상기 취소하는 단계는, 상기 CLN을 증가시키는 단계를 더 포함하는
    컴퓨터 구현 방법.
  4. 제 1 항에 있어서,
    상기 클러스트 록이 승인되었음을 제 2 어댑터 컴포넌트에 통보하는 단계와,
    상기 클러스터 록이 해제되기 이전에 상기 제 2 어댑터 컴포넌트가 상기 로직 리소스 객체를 수정하는 것을 방지하는 단계를 더 포함하는
    컴퓨터 구현 방법.
  5. 제 4 항에 있어서,
    상기 제 1 구성 트랜잭션이 완료되면 상기 클러스터 록을 해제하는 단계와,
    상기 클러스터 록이 해제되었음을 상기 제 2 어댑터 컴포넌트에 통보하는 단계를 더 포함하는
    컴퓨터 구현 방법.
  6. 제 1 항에 있어서,
    상기 록 요청이 승인되면 상기 저장 네트워크 내의 임의의 어댑터 컴포넌트에 대한 어떠한 록 요청도 거부하는 단계를 더 포함하는
    컴퓨터 구현 방법.
  7. 제 1 항에 있어서,
    상기 저장하는 단계는, 비휘발성 메모리 디바이스 내에 상기 CLN을 저장하는 단계를 더 포함하는
    컴퓨터 구현 방법.
  8. 제 1 항에 있어서,
    상기 구성 트랜잭션을 수행하는 단계는, 상기 제 1 어댑터 컴포넌트 내의 클러스터 록 수신기 컴포넌트에 의한 상기 클러스터 록의 수신에 응답하여 상기 제 1 어댑터 컴포넌트 내의 구성 컴포넌트를 통해 상기 로직 리소스 객체를 구성하는 단계를 포함하는
    컴퓨터 구현 방법.
  9. 삭제
  10. 컴퓨터 시스템에 로딩되고 실행되는 경우 청구항 제 1 항 내지 제 8 항 중 어느 한 항의 방법의 단계를 수행하는 컴퓨터 프로그램 코드를 포함하는 컴퓨터 판독가능 저장 매체.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020057017268A 2003-04-17 2004-03-29 낮은 오버헤드 저장 클러스터 구성 록킹 KR100956730B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0308923.2 2003-04-17
GBGB0308923.2A GB0308923D0 (en) 2003-04-17 2003-04-17 Low-overhead storage cluster configuration locking

Publications (2)

Publication Number Publication Date
KR20060002822A KR20060002822A (ko) 2006-01-09
KR100956730B1 true KR100956730B1 (ko) 2010-05-06

Family

ID=9956966

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057017268A KR100956730B1 (ko) 2003-04-17 2004-03-29 낮은 오버헤드 저장 클러스터 구성 록킹

Country Status (9)

Country Link
US (1) US7885946B2 (ko)
EP (1) EP1614036A2 (ko)
JP (1) JP4906503B2 (ko)
KR (1) KR100956730B1 (ko)
CN (1) CN100390742C (ko)
CA (1) CA2521947C (ko)
GB (1) GB0308923D0 (ko)
TW (1) TWI334981B (ko)
WO (1) WO2004095157A2 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0308923D0 (en) * 2003-04-17 2003-05-28 Ibm Low-overhead storage cluster configuration locking
US20080270770A1 (en) * 2005-01-24 2008-10-30 Marc Vertes Method for Optimising the Logging and Replay of Mulit-Task Applications in a Mono-Processor or Multi-Processor Computer System
US8381308B2 (en) * 2009-05-27 2013-02-19 International Business Corporation Computer-implemented multi-resource shared lock
US10540508B2 (en) * 2009-09-17 2020-01-21 Oracle International Corporation Method and apparatus for securing a database configuration
US8984507B2 (en) 2010-04-26 2015-03-17 International Business Machines Corporation Cross architecture virtual machine migration
TWI420333B (zh) * 2011-08-10 2013-12-21 Inventec Corp 分散式的重複數據刪除系統及其處理方法
US9678801B2 (en) 2012-08-09 2017-06-13 International Business Machines Corporation Service management modes of operation in distributed node service management
US9071631B2 (en) 2012-08-09 2015-06-30 International Business Machines Corporation Service management roles of processor nodes in distributed node service management
TWI511037B (zh) * 2014-05-09 2015-12-01 Wistron Corp 儲存叢集化系統與提供對叢集式儲存的存取的方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020133675A1 (en) 2001-03-14 2002-09-19 Kabushiki Kaisha Toshiba Cluster system, memory access control method, and recording medium

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2511588B2 (ja) * 1990-09-03 1996-06-26 インターナショナル・ビジネス・マシーンズ・コーポレイション デ―タ処理ネットワ―ク、ロックを獲得させる方法及び直列化装置
JP2834036B2 (ja) * 1995-07-13 1998-12-09 日本電気ソフトウェア株式会社 ロック制御器
JPH10223392A (ja) 1997-02-10 1998-08-21 Sony Corp アース用接続部材
US6014669A (en) * 1997-10-01 2000-01-11 Sun Microsystems, Inc. Highly-available distributed cluster configuration database
US6529906B1 (en) * 2000-01-28 2003-03-04 Oracle Corporation Techniques for DLM optimization with re-mastering events
US7640315B1 (en) * 2000-08-04 2009-12-29 Advanced Micro Devices, Inc. Implementing locks in a distributed processing system
US7788335B2 (en) * 2001-01-11 2010-08-31 F5 Networks, Inc. Aggregated opportunistic lock and aggregated implicit lock management for locking aggregated files in a switched file system
US6779063B2 (en) * 2001-04-09 2004-08-17 Hitachi, Ltd. Direct access storage system having plural interfaces which permit receipt of block and file I/O requests
AU2002341784A1 (en) * 2001-09-21 2003-04-01 Polyserve, Inc. A system and method for efficient lock recovery
US7313557B1 (en) * 2002-03-15 2007-12-25 Network Appliance, Inc. Multi-protocol lock manager
US7239605B2 (en) * 2002-09-23 2007-07-03 Sun Microsystems, Inc. Item and method for performing a cluster topology self-healing process in a distributed data system cluster
US20040085908A1 (en) * 2002-10-31 2004-05-06 Brocade Communications Systems, Inc. Method and apparatus for managing locking of resources in a cluster by use of a network fabric
US7155638B1 (en) * 2003-01-17 2006-12-26 Unisys Corporation Clustered computer system utilizing separate servers for redundancy in which the host computers are unaware of the usage of separate servers
JP2004235987A (ja) 2003-01-30 2004-08-19 Matsushita Electric Ind Co Ltd 運転支援装置
US7337290B2 (en) * 2003-04-03 2008-02-26 Oracle International Corporation Deadlock resolution through lock requeing
CA2425033A1 (en) * 2003-04-08 2004-10-08 Ibm Canada Limited - Ibm Canada Limitee Multi-level locking hierarchy in a database with multi-dimensional clustering
GB0308923D0 (en) * 2003-04-17 2003-05-28 Ibm Low-overhead storage cluster configuration locking
US7739252B2 (en) * 2003-07-14 2010-06-15 Oracle America, Inc. Read/write lock transaction manager freezing
JP2005165702A (ja) * 2003-12-03 2005-06-23 Hitachi Ltd クラスタストレージのデバイス連結方法
US7168001B2 (en) * 2004-02-06 2007-01-23 Hewlett-Packard Development Company, L.P. Transaction processing apparatus and method
US7991753B2 (en) * 2004-05-21 2011-08-02 International Business Machines Corporation Lock acquisition among nodes of divided cluster
US8028002B2 (en) * 2004-05-27 2011-09-27 Sap Ag Naming service implementation in a clustered environment
US7707195B2 (en) * 2004-06-29 2010-04-27 Microsoft Corporation Allocation locks and their use
US7403945B2 (en) * 2004-11-01 2008-07-22 Sybase, Inc. Distributed database system providing data and space management methodology

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020133675A1 (en) 2001-03-14 2002-09-19 Kabushiki Kaisha Toshiba Cluster system, memory access control method, and recording medium
US6961828B2 (en) * 2001-03-14 2005-11-01 Kabushiki Kaisha Toshiba Cluster system, memory access control method, and recording medium

Also Published As

Publication number Publication date
CA2521947A1 (en) 2004-11-04
US7885946B2 (en) 2011-02-08
CA2521947C (en) 2013-09-10
JP2006523877A (ja) 2006-10-19
WO2004095157A2 (en) 2004-11-04
EP1614036A2 (en) 2006-01-11
WO2004095157A3 (en) 2005-09-29
TWI334981B (en) 2010-12-21
CN100390742C (zh) 2008-05-28
CN1774698A (zh) 2006-05-17
JP4906503B2 (ja) 2012-03-28
US20060069703A1 (en) 2006-03-30
KR20060002822A (ko) 2006-01-09
TW200502764A (en) 2005-01-16
GB0308923D0 (en) 2003-05-28

Similar Documents

Publication Publication Date Title
US8495266B2 (en) Distributed lock
US6865549B1 (en) Method and apparatus for concurrency control in a policy-based management system
US7885946B2 (en) Low-overhead storage cluster configuration locking
US8286182B2 (en) Method and system for deadlock detection in a distributed environment
EP0735475B1 (en) Method and apparatus for managing objects in a distributed object operating environment
US20070028068A1 (en) System and method for managing resources in a distributed storage system
US20040002974A1 (en) Thread based lock manager
KR20060009828A (ko) 로크 및 트랜잭션 관리 방법 및 시스템
KR20010005570A (ko) 에이전트로 구현되는 로킹 메커니즘
JP2007122664A (ja) 情報処理方法および情報処理装置
JP4407956B2 (ja) 情報処理方法および情報処理装置
JPH06223040A (ja) ソフトウェアライセンス管理システム
JPH02195453A (ja) ファイルアクセス制御方式
US20030110232A1 (en) Distributing messages between local queues representative of a common shared queue
US20090235031A1 (en) Sharing Resources Within a Robotic Media Library Amongst a Plurality of Connected Servers
US11263061B2 (en) Efficient and scalable use of shared resources
US20050071281A1 (en) Software license optimization
Thain et al. Building reliable clients and services
KR100915533B1 (ko) 미복귀 대기 리소스 이용량 결정 방법, 장치 및 컴퓨터 판독 가능한 기록 매체
JP3752193B2 (ja) ホスト・オペレーティング・システムとゲスト・オペレーティング・システムとの間でアクセス装置の使用を割り振る方法
US8327378B1 (en) Method for gracefully stopping a multi-threaded application
US11537387B1 (en) Lock database code for online patching
CN109302377B (zh) 一种应用功能实现方法、装置、设备和存储介质
JP3114739B2 (ja) バッファ管理方式
JP3036468B2 (ja) 排他制御処理装置及び排他制御処理方法並びに排他制御処理プログラムを記憶した記憶媒体

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
LAPS Lapse due to unpaid annual fee