Section | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
정의
스카시예약 에이전트는 SCSI3-PR(Persistent Reservation) 이라는 스토리지가 지원하는 SAN 프로토콜을 사용합니다.
SCSI3-PR은 다수의 시스템 혹은 단일 시스템에서 스토리지 접근을 지원함과 동시에, 다른 시스템에서 스토리지 접근을 차단합니다.
스카시예약 에이전트로 생성한 디스크는 하나의 노드에서만 접근 할 수 있습니다.
동작 방법
스카시예약 에이전트에 의해 생성된 리소스는 각 노드 별로 등록 키가 만들어 지고, 이를 속성으로 확인 할 수 있습니다. 온라인 하는 노드는 자신의 등록 키(Registered-keys)를 예약 키(Reserved-Key)로 설정합니다.
설정된 예약 키로 디스크의 접근할 수 있는 노드를 구별하여 디스크의 접근 허용 여부를 결정합니다.
스카시예약 리소스를 공유디스크 리소스와의 의존성을 설정함으로써, Split-Brain 상황에서도 데이터에 대한 배타적인 접근을 보장하여 시스템간 공유된 데이터를 보다 안전하게 관리할 수 있습니다.
요구 사항
스카시예약 리소스를 이용하기 위해서는 스토리지에서 SCSI3-PR을 지원하는지 확인합니다.
LUN(Logical Unit Number) 단위로 스토리지가 구성되어야 합니다. 파티션 단위로 생성한 디스크는 지원하지 않습니다.
PrType 이 3인 옵션을 사용하게 되면, 하나의 LUN에 1GByte 정도의 디스크 크기가 스카시예약 에이전트 전용으로 할당되어 있어야 합니다.
구성 형태
MCCS는 공유 스토리지 환경을 구성 하기 위해, 공유디스크 에이전트와 스카시예약 에이전트를 제공합니다.
사용자는 환경에 따라 공유 디스크 에이전트만을 사용하거나, 스카시예약 에이전트와 함께 사용할 수 있습니다.
스카시예약 에이전트를 사용하는 목적은 OS의 Hang과 같은 외부 요소에 의해 발생되는 Split-Brain 상황에 대비하여, 데이타 디스크를 보다 안전하게 관리하기 위함입니다.
Info |
---|
공유 디스크 에이전트만 사용해야 하는 환경
|
공유디스크 에이전트와 스카시예약 에이전트의 차이
1. 공유디스크 에이전트는 로컬 노드에서 디스크 접근을 관리하고, SCSI Lock 에이전트는 스토리지에서 노드의 접근을 관리 합니다.
Info |
---|
SW적인 디스크 관리 기능(공유디스크 에이전트)
HW적인 디스크 관리 기능(스카시예약 에이전트)
|
2. 공유디스크 에이전트는 데이터를 읽고 쓰가가 가능하지만, 스카시예약 에이전트는 옵션에 따라 데이터를 읽고 쓰가가 가능합니다.그러나 스카시예약 에이전트는 공유스토리지 리소스의 보호가 목적이기 때문에, 단독 사용하여 데이터를 읽고 쓰는 방법을 권장하지 않습니다.
그래서 스카시예약 에이전트는 공유스토리지 에이전트와 함께 사용하거나, 공유 스토리지와 별개의 LUN 을 사용하는 옵션(PrType)을 지원합니다.
Info |
---|
PrType (Persist Type) =1 (Write Exclusive) 은 LUN 에 대한 Write만을 제어 합니다. 이 옵션은 공유스토리지 에이전트에 의해 구성된 LUN과 함께 사용할 수 있습니다. PrType (Persist Type) =3 (Exclusive Access) 은 LUN에 대한 Access를 제어 합니다. 이 옵션은 공유스토리지 에이전트가 구성된 LUN이 아닌, 별도의 LUN을 지정하여 사용해야 합니다. 디스크는 작은 용량(약 1G)으로도 가능하며 내용은 보호하지 않습니다. |
구성 방법
스카시예약 에이전트 리소스는 공유디스크 에이전트와 2가지 형태로 구성할 수 있습니다. 스카시예약 에이전트 리소스의 속성값에 따라 구성 방법이 나눠집니다.
첫번째, PrType = 1 일 경우(공유디스크 리소스와 스카시예약 리소스를 동일한 LUN으로 구성되어 있고, 동일한 드라이브 문자에 적용하여 구성)
두번째, PrType = 3 일 경우(공유디스크 리소스와 S스카시예약 리소스를 서로 다른 LUN으로 구성되어 있고, 다른 드라이브 문자에 적용하여 구성)
1. 공유디스크와 스카시예약 리소스를 동일한 LUN에 적용하여 구성 (PrType=1)
스카시예약 에이전트의 리소스에서 속성이 PrType 이 1 인 옵션을 사용하면, 하나의 LUN을 이용하여 공유디스크 리소스와 스카시예약 리소스를 구성합니다.
노드1, 노드2의 스카시예약 에이전트는 DATA-DISK(공유디스크 에이전트)에서 사용하는 Vollock 드라이버를 이용하여 관리하고, LOCK-DISK(스카시예약 에이전트) 는 SCSI3-PR 기능을 이용하여 관리 합니다.
스카시예약 리소스와 공유디스크 리소스 간의 의존관계를 설정함으로써, Split-Brain 과 같은 상황에 발생하는 DATA-DISK의 손상을 방지 할 수 있습니다.
[그림] 공유디스크와 스카시예약 리소스를 동일한 LUN으로 구성 (PrType 이 1일 경우 구성)
2. 공유디스크와 스카시예약 리소스를 서로 다른 LUN으로 구성 (PrType=3)
공유디스크 에이전트는 단일 드라이브 문자 단위로 처리하고, 스카시예약 에이전트는 LOCK-DISK 전용으로 사용하는 독립된 단일 LUN을 이용합니다. 이 구성을 위해서는 최소 공유디스크의 LUN 분할이 2개 이상이어야 합니다.
아래 그림과 같이 공유디스크 에이전트와 1:1로 의존시킬 LOCK-DISK 볼륨을 생성합니다. (공유디스크 에이전트 다수와 스카시예약 에이전트 1개를 이용해, 의존성을 구성해서 사용할 수도 있습니다)
이 디스크는 크기가 작아도 상관 없습니다. 데이터를 읽고 쓰기 위함이 아니고, 스토리지에 접근할 수 있는 노드를 확인 하기 위해 이용하기 때문입니다.
스카시예약 리소스와 공유디스크 리소스 간의 의존관계를 설정함으로써, Split-Brain 과 같은 상황에 발생하는 DATA-DISK의 손상을 방지 할 수 있습니다.
[그림] 공유디스크와 스카시예약 리소스를 서로 다른 LUN으로 구성 (PrType 이 3일 경우 구성)
Info |
---|
DATA-DISK 의미
LOCK-DISK 의미
|
추가
그룹에서 추가 할 경우
...
리소스 타입에서 추가 할 경우
...
...
삭제
리소스타입 - 마우스 우 클릭 - 리소스 삭제를 선택합니다.
삭제 메뉴를 선택합니다.
[그림] 스카시예약 리소스 삭제 화면
상태
온라인
온라인 된 노드에서 디스크의 키가 베타적으로 예약된 상태입니다. 다른 노드에서는 키를 등록 할 수 없습니다.
오프라인
오프라인은 2가지로 구분합니다.
첫째, 디스크가 예약은 되어 있지만 리소스 상태는 오프라인 상태입니다.
둘째, 상대 노드가 예약을 가져간 실질적인 오프라인 상태입니다.
장애
온라인 중 예약을 빼앗긴 경우에 발생합니다.
속성
스카시예약 리소스 기본 속성 에서 언급된 것 이외에 다음과 같은 상세 속성을 제공합니다.
설정은 리소스 속성 탭의 "리소스 고유속성" 에서 설정합니다. 각 속성값들의 의미는 다음과 같습니다.
속성 명 | 설명 | 데이터 타입 | 필수여부 |
DiskDUID | 디스크의 DUID(Device Unique ID, Hex값으로 16바이트 크기)를 식별자로 사용합니다. 예약할 디스크의 DUID를 지정합니다. 이 값은 DriveLetter 속성을 지정하면 자동으로 확보되어 집니다. 사용자는 가능한 이 값을 직접 입력하면 안됩니다. DUID정보는 scsicmd.cmd 명령으로 확인 가능하며, 양 노드가 동일한 값을 가져야 합니다. | STRING | |
DriveLetter | 예약에 사용할 디스크를 드라이브 문자로 지정합니다. 드라이브 문자를 등록하면 자동으로 해당 드라이브 문자에 연결된 디스크의 DUID가 구해집니다. | STRING | 필수 |
PreemptWaitCount | 예약을 하기 전에 상대 노드의 허락을 기다리는 시간입니다. 기다리는 시간은 (PreemptWaitCount * MonitorInterval) 초 입니다. 기본=2회 | INTEGER | |
PrType | SCSI3-PR 스펙에서 정의하는 Persist Type 으로 예약 디스크의 접근 권한을 어떻게 부여할 것인지 설정하는 속성입니다. 6가지 타입이 있지만 MCCS는 1번(Write Exclusive) 혹은 3번(Exclusive Access) 을 사용합니다. 기본=1 1번(Write Exclusive)는 공유디스크와 동일한 LUN을 사용할 때 이용하고, Disk Letter를 탐색기에서 확인할수 있습니다. 3번(Exclusive Access)는 오직 Lock_Disk 용으로 사용할때만 이용합니다. 이 경우 스카시예약 에이전트 전용 LUN이 필요합니다. Disk의 mount 상태가 un-mount로 변경됩니다. 따라서 Disk Letter는 탐색기에서 사라집니다. | INTEGER | |
Key | MAC 주소를 예약 키로 사용합니다. 이 키는 에이전트가 자동으로 설정합니다. | STRING |
scsicmd.cmd 명령
...
How to work
The resource created by a SCSI reservation agent will have a registered key for each node. You can check it in the attributes.
For an online node, set its own registration key as the reservation key.
SCSI reservation agent uses the reservation keys to differentiate nodes that can be accessed and determine whether disk access should be granted.
To be able to safely protect the systems shared data against the Split-Brain situations, you should define the dependency between the SCSI reservation resource and the shared disk resource.
Requirement
External storage must support SCSI-3 PR.
Volume should be configured by LUN(Logical Unit Number) unit. Partitioned volume in a LUN is not supported.
Types of Shared disk resource
To configure HA with shared storage environment, MCCS provides shared disk agent and SCSI Lock agent.
You can use only shared disk resource, or use with SCSI Lock resource. Shared disk resource depends on SCSI Lock resource and multiple shared disk resource can depends on a SCSI Lock resource.
Info |
---|
An environment where only shared disk agent is used
|
Difference between shared disk agent and SCSI Lock agent
1. Shared disk agent manage disk access in local node, but SCSI Lock agent manage node access in storage.
Info |
---|
Disk management function in software perspective (shared disk agent)
Disk management function in hardware perspective (SCSI Lock agent)
|
2. Both the shared disk agent and the SCSI reservation agent can read and write data.
However, a SCSI reservation agent intends to protect the shared storage resource, so you are not recommended to use it alone to read and write data.
Configuration
There are two different ways to configure the SCSI reservation agent resource and the shared disk agents resource. It depends on the attribute of the SCSI reservation agent resource.
1. When shared disk and SCSI Lock resource is configured with the same LUN
A shared disk agent uses the MVL driver to manage DATA-DISK and a SCSI reservation agent uses the SCSI3-PR function to manage LOCK-DISK.
By setting the dependency between the SCSI reservation resource and the shared disk resource, you can prevent damages to DATA-DISK caused by Split-Brains and so on.
[Figure] Shared disk and SCSI Lock resource configured in same LUN
Info |
---|
Meaning of DATA-DISK
Meaning of LOCK-DISK
|
Configuration Sample
1. Shared disk and SCSI Lock resource is configured in same LUN.
[Figure] Shared disk and SCSI Lock resource configured in same LUN
First, register shared disk agent according to the procedure and after check if it works normally, check disk of SCSI Lock agent.
Registration Procedures
- Install MCCS on both nodes
- Set group
- Add shared disk resource
- Enable shared disk resource and check offline on both nodes
- Add SCSI Lock resource (Select drive letter that created shared disk resource)
- Enable SCSI Lock resource and check key in resource attribute of MCCS console.
- Configure dependency of resources (SCSI Lock resource must go online first)
- Test failover from node 2 to 1
- Test failover from node 1 to 2
- Set application that customer uses
Adding
Add the SCSI reservation application resource to a group.
Before configuring the SCSI reservation resource, you must configure the volume in advance by using the SCSI3 supporting storage.
- Select a group → right click → 'Add Resource'.
- Select 'SCSILock' from Resource Type lists and click 'Next' button.
- Enter resource name. If you skip enter resource name, this will be given 'SLock_value' which value is selected driver letter.
[Figure] SCSI Reservation Resource Added - Click the 'Finish' button to add the SCSI reservation resource.
You can immediately check the result in the management web console.
Deleting
Select resource type → right click → delete resource.
The deleted resource will immediately disappear from the management web console.
Status
The following table explains the status switching of the MCCS resource caused by a user's command and the status.
The command assumes that it is generated by a user.
SCSI reservation agent: Manages the SCSI reservation disk.
Status | Agent command | Description | Note |
---|---|---|---|
Online Disk key is exclusively reserved at an online node. | Offline | It switches to offline while maintaining the reservation. | |
Monitoring | Check if there is a reservation made on the disk. | ||
Offline 1. Disk is reserved but the resource is still offline. | Online | Register a key for a disk reservation and wait for a response from the other node. | |
Monitoring | Check if there is a reservation made on the disk. | ||
Trouble It occurs when a reservation is stolen while going online. | Online | Register a key for a disk reservation and wait for a response from the other node. | |
Offline | It switches to offline while maintaining the reservation. |
Attribute
Display the unique attribute of SCSI reservation resource.
Attribute | Description | Type | Default | Edit | Note |
DiskDUID | DUID(Device Unique ID, 16 byte as Hex value) of disk is used as identifier. Specify DUID of reserve disk. | STRING | X | ||
DriveLetter | Disk to be used for reservation is specified by drive letter. | STRING | X | ||
Key | MAC address is used as Reserved-Key. This key is automatically set by agent. | STRING | |||
PreemptWaitCount | Time waiting for permission of other node before reservation | INTEGER | 2 times | O | |
PrType | This attribute decides on how to give the permission of reserve disk access as Persist Type specified in SCSI3-PR spec. | INTEGER | Prtype=5 | O |
scsicmd.cmd Command
Syntax
Code Block |
---|
scsicmd [option] [diskID] |
옵션
SCSI3 PR 명령을 손쉽게 사용하도록 지원하는 유틸리티이고 다음과 같은 옵션을 제공합니다.
...
옵션
...
설명
...
-c diskId
...
시스템에 등록된 디스크 중에서 로컬 노드의 예약 키와 등록 키 삭제합니다
...
-cf diskId
...
Option
This is the utility to use SCSI 3 PR command more easily. Following is the provided options
Option | Description |
-c diskId | It deletes Reserved-Key and Registered-Key of local node of disk. |
-cf diskId | It forcely deletes Reserved-Key and Registered-Key of local node of disk. |
-r diskId | diskId로 지정된 디스크를 등록합니다Registers diskld-specified disk. |
-l diskId | 어떤 노드로 예약되지 않았다면, 지정된 디스크를 잠그고 예약을 합니다. If node is yet to reserve, close the specified disk and reserve. |
-lf diskId | 어떤 노드로 예약이 되어 있어도, 지정된 디스크를 강제로 잠그고 예약을 합니다. |
-h | scsicmd 의 도움말을 보여줍니다It shows help of scsicmd. |
no option | 옵션이 없는 경우 시스템의 디스크 예약 관련 상태정보를 보여줍니다. |
샘플출력
...
It shows the state information regarding disk reservation when there is no other option. |
Print Sample
Panel | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
The output of 'scsicmd' command from source node (C29043F13 is MAC Address of NIC from source node.)
타겟노드의 The output of 'scsicmd' 명령어 출력결과 (C29043F13는 소스노드의 MAC Address 입니다command from target node (C29043F13 is MAC Address of NIC from source node.)
|
Disk 0번0 (C:)은 PR이 's PR is set to "No" 로 설정되었기 때문에 SCSI3-PR을 지원하는 디스크가 아닌 것을 확인 할 수 있습니다. (보통 드라이브 문자가 "C"로 잡힌 것은 시스템의 Booting 디스크이고, SCSI를 지원하지 않습니다.)
또한 Disk 1번(D:)은 PR이 "No"로 설정되어 있습니다. SCSI3-PR을 지원하는 디스크가 아닌 것을 확인 할 수 있습니다.(Internal Disk는 SCSI3-PR을 지원하지 않습니다.)
Disk 2번(E:)과 Disk 4번(G:)은 SCSI3-PR이 "Yes"로 설정되어 있어 SCSI3- PR을 지원하는 Storage 장치를 이용하고 있으며, Reserved-Key 와 Registered-Keys가 "none"으로 되어 있어 아직 등록되지 않는 상태를 의미 합니다.
Disk 3번(F:)은 Reserved-Key와 Registered-Keys가 소스노드에서는 C29043F13*, C29043F13*로 타겟노드에서는 C29043F13, C29043F13로 등록되어 있고 이것은 스카시예약 에이전트를 이용해 리소스를 생성 한 상태입니다.
두 노드 중 (*)표시가 포함 된 Reserved-Key와 Registered-Keys가 디스크 예약을 하고 있음을 나타냅니다. 또 Reserved-Key에 값을 가지고 있고 (*)표시가 되어있는(예: C29043F13*) 노드만 디스크 접근을 할 수 있습니다.
구성 예제
1. 공유디스크와 SCSI Lock 리소스를 동일한 LUN에 적용하여 구성 (PrType=1)
[그림] 공유디스크와 스카시예약 리소스를 동일한 LUN으로 구성
우선 공유디스크 에이전트 설정 절차에 따라 등록하고 정상적으로 동작이 되는지 확인한 후에 스카시예약 에이전트용 디스크를 설정합니다.
등록 절차
- 양 노드 MCCS 설치
- 그룹 설정
- 공유 디스크 리소스 추가
- 공유 디스크 리소스 활성화 및 양 노드 Offline 확인
- 스카시예약 리소스 추가 (공유 디스크 리소스를 생성했던 드라이브 문자로 선택합니다.)
- 스카시예약 리소스 활성화 및 MCCS Console의 리소스 속성에서 Key 확인
- 리소스 의존성 구성(스카시예약 리소스가 공유디스크보다 먼저 Online 되게 구성이 되어야 합니다.)
- 노드2에서 노드1로 페일오버 시험
- 노드1에서 노드2로 페일오버 시험
- 해당 볼륨을 사용하는 고객 응용프로그램 설정
2. 공유디스크와 스카시예약 리소스를 서로 다른 LUN으로 구성 (PrType=3)
[그림] 공유디스크와 스카시예약 리소스를 서로 다른 LUN으로 구성
등록절차
우선 공유디스크 에이전트 설정 절차에 따라 등록하고 정상적으로 동작이 되는지 확인한 후에 스카시예약 에이전트용 디스크를 설정합니다.
- 양 노드 MCCS 설치
- 그룹 설정
- 공유 디스크 리소스 추가
- 공유 디스크 리소스 활성화 및 양 노드 Offline 확인
- 스카시예약 리소스 추가 (공유 디스크 리소스에서 선택하지 않은 새로운 드라이브 문자를 선택합니다.)
- 스카시예약 리소스 활성화 및 MCCS Console의 리소스 속성에서 Key 확인
- 스카시예약 리소스의 속성에서 PrType 1을 3으로 변경 (SCSI Lock 리소스로 추가 된 Disk Letter가 양 서버의 윈도우 탐색기에서 사라진 것을 확인합니다.)
- 리소스 의존성 구성(SCSI Lock 리소스가 공유디스크보다 먼저 Online 되게 구성이 되어야 합니다.)
- 노드2에서 노드1로 페일오버 시험
- 노드1에서 노드2로 페일오버 시험
- 해당 볼륨을 사용하는 고객 응용프로그램 설정
스카시예약 에이전트
스카시 예약 디스크를 관리합니다.
기능
online
디스크 예약을 위해 키를 등록하고 상대 노드의 응답을 대기합니다.
offline
예약을 유지한 상태로 오프라인으로 전환합니다.
monitor
디스크에 예약이 걸려있는지 확인합니다.. So, you can see that the disk does not support SCSI3-PR. (In general, the "C" drive is the system booting disk and it does not support SCSI.)
Besides, Disk 1 (D:)'s PR is set to "No". You can see that the disk does not support SCSI3-PR.(Internal Disk does not support SCSI3-PR.)
Disk 2 (E:) and Disk 4 (G:)'s SCSI3-PR is set to "Yes". So, it means that the storage used supports SCSI3- PR. Their Reserved-Key and Registered-Keys are set to "none". It means that they are not yet to be registered.
Disk 3 (F:)'s Reserved-Key and Registered-Keys at the source node are set to C29043F13* and C29043F13* and at the target node to C29043F13 and C29043F13. This means that a SCSI reservation agent was used to create the resource.
The (*) marked node with the Reserved-Key and Registered-Keys indicates that a disk is reserved. In addition, only the * marked node with the Reserved-Key value (ex: C29043F13*) can access the disk.