Quantcast
Channel: TechNet Blogs
Viewing all articles
Browse latest Browse all 34890

FileShare witness vs. Disk witness

$
0
0

 

안녕하세요. 한국 마이크로소프트 플랫폼팀 정해원입니다.

오늘은 간단하게 Cluster의 Quorum Model에서 나오는 용어인 Witness의 수단으로 사용되는 FileShare와 Disk witness의 차이점에 대해서 알아보도록 하겠습니다.

FileShare witness는 대부분 Multi-Site Cluster를 구성하실 때 사용합니다. 국내에서는 Exchange 설치 시에만 사용하신다고 봐도 무방하겠네요.

FileShare witness는 원격지의 공유 폴더를 지정하여 해당 폴더에 Witness.log 파일을 생성하고 이 Log 파일을 통해 Quorum Model의 정족수를 채울 수 있는 Vote를 제공하게 됩니다.

Disk witness는 physical disk resource 중 하나를 이용해서 Cluster Database의 Copy 본을 저장하게 되지요.

 

이렇게, Quorum Model로 사용되는 Node and Disk Majority와 Node and File Share Majority는 어떠한 차이가 있을까요?

그리고 어떠한 Model이 더 좋을까요?

먼저, Fileshare witness를 사용하는 두 노드(A와 B)로 구성된 Cluster를 생각해보겠습니다.

A 노드가 어떠한 이유(Shutdown 혹은 Crash)로 중지되어도 B 노드는 정상적으로 Cluster service가 운영될 겁니다.

이 때, Cluster에 노드를 추가하거나 리소스를 추가하는 작업이 발생하게 되면 Cluster Database는 어떻게 될까요? 당연히 신규 정보로 업데이트가 되겠죠.

이러한 내용은 Fileshare witness에도 전달이 되어, Witness.log 파일의 Timestamp 값을 Update 하게 됩니다.

이 상황에서 B 노드가 중지되고 A 노드가 시작된다면, A 노드의 Cluster service는 자신의 Cluster Database의 버전과 Witness.log 파일의 Timestamp를 비교하게 됩니다.

이 때, Fileshare witness의 Timestamp가 이미 Update 된 상황이라 A 노드는 예전 정보를 가지고 있는 상태고 결국 A 노드의 Cluster service는 시작에 실패합니다.

이것을 Prevent Partition-in-Time 이라고 합니다. 즉, 정보가 일치하지 않는 상황을 아예 생기지 않도록 하겠다는 것이지요.

 

반대로 동일한 상황에서 Disk witness를 사용하고 있었다면 어떻게 될까요?

Disk witness로 사용하는 Disk에는 Cluster Database의 복사본이 담겨 있습니다. 따라서 A 노드의 Cluster service가 시작될 때 예전 정보를 가지고 있더라도 Disk witness에 있는 Cluster Database를 읽어와서 자신을 최신 정보로 Update 하게 됩니다.

따라서, A 노드의 Cluster service는 정상적으로 실행이 되겠지요.

이것을 Solve Partition-in-Time 이라고 합니다. 즉, 정보가 일치하지 않는 상황이 생겨도 이를 해결하여 Cluster service가 정상적으로 기동되도록 하겠다는 것입니다.

 

결과적으로 만약 Multi-Site 같이 Shared Physical Disk를 사용할 수 없는 환경이 아니라면 Solve Partition-in-Time 기능을 제공하는 Disk witness로 Quorum Model을 사용하시는 것이 보다 적합하겠습니다.

 

감사합니다.


Viewing all articles
Browse latest Browse all 34890

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>