7.5 공유 디스크 리소스.
디스크 에이전트는 Mantech Volume Lock(이하 MVL) 드라이버를 이용하여 공유 디스크(shared disk)를 관리하는 에이전트입니다.
공유 디스크는 복수 개의 노드에서 쓰기 접근을 시도하면 데이터가 손상됩니다.
따라서 이런 상황을 제어하기 위해 운영 노드에서만 파일 시스템을 접근허용(un-lock)하고 대기 노드에서는 쓰기 접근을 할 수 없도록 접근금지(lock)시킵니다.
이렇게 관리할 공유 디스크는 드라이브 문자로 지정합니다.
디스크 에이전트는 MVL 드라이버와의 통신으로 디스크의 잠금 상태를 관리하고 쓰기 가능한 상태인지를 모니터링합니다.
이 페이지의 주요 내용
MVL 드라이버 소개
MVL은 Windows 운영체제에서 공유 디스크 관리 기능을 제공하는 커널 드라이버입니다.
MVL은 공유 디스크 리소스로 구성된 볼륨을 부팅 단계부터 잠금 상태로 설정하여 MVL을 통하지 않고서는 잠금을 해제할 수 없도록 합니다.
MVL은 MCCS가 복수의 노드에서 공유 디스크 접근이 불가능하도록 반드시 한 노드에서만 접근할 수 있도록 제어하는데 필요한 드라이버입니다.
MVL은 볼륨 단위로 관리하며 윈도우의 파티션 단위로 관리를 할 수는 있지만 이를 권하지는 않습니다.
GPT 디스크와 MBR 디스크 모두 지원하며, 파일 시스템은 NTFS만 지원합니다.
MVL 설치 및 제거
MVL은 동적으로 드라이버의 load / unload 가 가능하며 설치한 후에는 시스템의 재부팅 없이 동작시킬 수 있습니다.
MVL은 MCCS 설치 마지막 단계에서 자동으로 설치됩니다.
수동으로 MVL 드라이버를 설치/삭제를 할 때는 %MCCS_HOME%\bin\DiskAgent 디렉터리에서 install.bat / uninstall.bat을 한 뒤 반드시 재부팅을 해야 적용됩니다.
MVL은 Windows의 레거시 필터 드라이버 방식으로 만들어졌습니다.
따라서 Windows의 net command로도 시작 및 중지가 가능합니다.
Doc command를 이용해서 시작 및 중지하는 방법은 다음과 같습니다.
시작
net start vollock
중지
net stop vollock
이후에 MCCS를 제거 하고자 할 때에는 MCCS 제거 외에도 MVL 드라이버를 운영체제에서 따로 제거해줘야 합니다.
완전히 제거하는 방법은 설치할 때와 마찬가지로 %MCCS_HOME%\bin\DiskAgent의 uninstall.bat을 실행하면 됩니다.
MVL은 레거시 커널 필터 드라이버입니다. 따라서 MCCS에서 제공하는 install.bat / uninstall.bat로 설치/제거한 후에 시스템 재부팅해야 합니다.
공유 디스크 구성 절차 예
MCCS를 설치한 후에 MVL을 사용하여 공유 디스크를 구성하기 위해서는 아래의 순서대로 설치할 것을 권합니다.
2개의 노드로 구성된 클러스터에서 S:를 공유 디스크로 가정합니다.
- 양쪽 노드(A와 B라고 가정)가 모두 Power off된 상태에서 A 노드를 부팅시킵니다.
- A 노드에서 MCCS를 설치합니다.
- 'vollock /a s:'로 S드라이브를 MVL에 등록시킵니다.
- 'vollock /l s:'로 S드라이브를 잠금 상태로 합니다.
- 볼륨 S:가 접근이 가능한지를 살펴봅니다.
- S볼륨이 잠긴 것이 확인되면 B 노드를 부팅시킵니다.
- B 노드에서도 2,3,4번과 같은 방법으로 실행합니다.
- 두 노드에서 볼륨이 모두 잠금 상태가 되었으면 디스크 리소스를 생성합니다.
이렇게 한 쪽 노드에서만 디스크 접근이 되는 상태를 계속 유지하면서 잠금을 걸어야 디스크 손상을 방지할 수 있습니다.
MVL Command 명령
vollock.exe 명령어를 통해 MVL에 볼륨 제어 명령을 전달할 수 있습니다. vollock.exe는 %MCCS_HOME%\bin\DiskAgent\ 에 있습니다.
vollock [/옵션] [드라이브명:]
옵션 | 설명 |
L | 디스크를 잠급니다. |
U | 디스크 잠금을 해제합니다. |
A | 윈도우 레지스트리의 MVL 잠금 대상 볼륨 목록에 등록하여 시스템 재시작 후에도 잠금 상태를 유지하도록 합니다. |
D | 윈도우 레지스트리의 MVL 잠금 대상 볼륨 목록에서 해당 드라이브를 삭제 시킵니다. |
W | 지정한 디스크가 쓸 수 있는 상태인지 알려줍니다. |
M | 디스크의 마운트/디스마운트 여부를 알려줍니다. |
V | 설치 된 MVL 버전을 알려줍니다 |
status | Lock 상태 유무와 레지스트리 등록 여부를 테이블 형태로 나타냅니다. |
clear | 모든 볼륨을 잠금 해제 합니다. |
delete | 지정된 디스크를 등록 해제 합니다. |
'Status'는 아래와 같이 Device Name과 Lock 유무, Registry 등록 정보를 나타냅니다.
[그림] 볼륨 lock 정보
체크리스트
MVL 드라이버가 설치되어 있는지는 cmd 창에서 fltmc 명령어를 사용하여 Vollock 드라이버가 목록에 있는지를 확인합니다.
[그림] 볼륨 lock 드라이버 정보
vollock.sys는 레거시 커널 필터 드라이버이므로 <Legacy> 형태로 등록이 됩니다.
추가
공유 디스크 리소스를 추가 합니다.
공유 디스크 리소스를 추가 하기 위해서는 사전에 추가 가능한 공유 디스크가 OS상에 구성되어 있어야 합니다.
- 그룹 선택 -> 마우스 우 클릭 -> 리소스 추가를 선택합니다.
리소스 위자드에서 공유 디스크를 선택하고 Next 버튼을 클릭합니다.
공유 디스크 리소스에 사용될 드라이브 문자를 선택하면 권장 이름을 제공해 줍니다.
공유 디스크 리소스로 사용할 디스크는 양 노드간 동일한 드라이브 문자를 가져야 합니다.
동일한 드라이브 문자를 가진 로컬 디스크의 드라이브 문자도 목록에 보여지므로 정확한 드라이브 문자를 선택합니다.
[그림] 공유 디스크 리소스 드라이브 문자 선택 화면- 추가 설정을 클릭하여 디스크 검사 명령을 사용할 수 있습니다. 사용 안 함이 기본적으로 선택되어 있습니다.
옵션을 사용한다면 사용을 선택하고 체크 디스크 옵션을 입력합니다.(기본값은 /F입니다.)
설정사항 입력이 끝나면 OK 버튼을 클릭합니다.
[그림] 공유 디스크 추가 설정 위자드 화면 완료 버튼을 클릭하면 기본 공유 디스크 리소스가 추가됩니다.
삭제
해당 리소스 선택 -> 마우스 우 클릭 -> 리소스 삭제를 선택합니다.
상태
다음 테이블은 상태와 사용자 명령에 의해 발생되는 MCCS 리소스의 상태 변화에 대한 설명입니다.
공유 디스크 에이전트: MCCS 에 등록된 공유 디스크를 관리합니다.
상태 | Agent 가능 명령 | 설명 | 비고 |
---|---|---|---|
온라인 볼륨에 대한 잠금이 해제되어 쓰기가 가능한 상태입니다. | 오프라인 | MVL을 사용하여 디스크에 읽기 및 쓰기를 불가능하게 합니다. | |
모니터링 | MVL과 임시 텍스트 파일을 생성하여 볼륨에 쓰기 접근이 가능한지를 감시합니다. | ||
오프라인 볼륨이 잠긴 상태로 읽기/쓰기가 모두 불가능합니다. | 온라인 | MVL을 사용하여 디스크에 읽기 및 쓰기를 가능하게 합니다. | |
모니터링 | MVL과 임시 텍스트 파일을 생성하여 볼륨에 쓰기 접근이 가능한지를 감시합니다. | ||
장애 볼륨이 온라인 상태지만 외부적인 요인으로 문제가 발생하여 쓰기가 불가능한 상태입니다. | 온라인 | MVL을 사용하여 디스크에 읽기 및 쓰기를 가능하게 합니다. | |
오프라인 | MVL을 사용하여 디스크에 일기 및 쓰기를 불가능하게 합니다. |
속성
공유 디스크 리소스의 고유 속성을 표시 합니다.
속성 | 설명 | 타입 | 기본값 | 수정 | 비고 |
ChkDsk | True로 설정되면 볼륨 마운트 시에 디스크 검사 옵션(ChkdskArg)에 따라 디스크를 검사하고 오류를 수정합니다. | BOOLEAN | false | O | |
ChkdskArg | 체크디스크(Chkdsk)가 true 일 때 체크 디스크 명령 옵션을 지정합니다. | STRING | /F | O | |
DirtyBit | 대상 볼륨에 Dirtybit가 설정되��� 있음을 의미합니다. 일반적으로 대상 볼륨에 무결성 검사가 필요 할 경우 시스템에 의해 설정됩니다. | BOOLEAN | false | X | |
DriveLetter | 볼륨의 드라이버 문자를 지정합니다. | STRING | O | ||
ForceUmount | True로 설정 할 경우 오프라인 시 장치가 사용 중이더라도 강제로 언마운트 합니다. | BOOLEAN | false | O | |
HostID | 스카시예약에서 사용하는 서버 고유의 ID입니다. | STRING | X | ||
IOTest | 'true'로 설정되면 Disk IO 상태를 체크합니다. | BOOLEAN | true | O | |
UseSCSILock | True로 설정할 경우 SCSILock 기능을 사용합니다. | BOOLEAN | false |
속성 값은 해당 리소스를 등록할 때에 입력된 값이며, '리소스 고유 속성'에서 값을 변경하거나 확인할 수 있습니다.
MCCS 는 사용자의 입력필드에 대한 입력값 제한 기능이 존재하며, 사용자가 잘못 입력한 데이터에 대해 자동 점검기능을 제공합니다.