Windows Server 2012 Hyper-V, 고가용성 기술의 향상, 그 두번째 이야기, 스케일 아웃 파일 서버(SMB 3.0)를 통한 Hyper-V

image

지난 포스팅, Windows Server 2012 Hyper-V, 고가용성 기술의 향상, 그 첫번째 이야기에서 5년간의 Hyper-V 고가용성 기술의 개요 및 발전을 정리하였습니다. 몇몇 기술에 대해서는 추가적인 설명이 필요하여 별도의 포스팅으로 분리한다고 언급드렸고, 이 중 첫번째 이야기인 파일 공유를 통한 Hyper-V 고가용성 이야기에 대해서 오늘 이야기해볼까 합니다.

SMB(Server Message Block) 프로토콜은 잘 아시는 바와 같이 UNC 경로(\\서버이름\공유이름) 형태의 파일 서비스를 위해 주로 사용되는 프로토콜입니다. 기존 Windows Server 2008 R2의 경우 SMB 2.1 버전을 지원하였고, 이를 통해 LAN 환경의 파일 서버나 스토리지 형태로 사용을 많이 했습니다. SMB 2.1의 경우, 용량이 큰 파일 혹은 WAN 구간의 원거리의 경우에는 사용하기가 적절하지 않았습니다. 대기 시간이나 네트워크 불안정시 이에 대한 재처리 모듈등이 이유가 되었죠. Windows Server 2012의 경우 SMB에 대한 개선을 스토리지적인 측면에서 접근하였고, SMB 3.0이라는 큰 버전 업그레이드로 해당 모습을 보여주고 있습니다.

image

일단 결론은 그렇습니다. 바로 Hyper-V의 가상 머신 파일, 그리고 가상 하드 디스크(VHD, VHDX) 파일을 원격 파일 서버에 저장해놓고, 이를 Hyper-V에서 사용할 수 있는 형태입니다. SMB 3.0 기반에서 제공되는 파일 서버에 대해서는 많은 분들께서 기존 버전과의 차이, 특히 성능에 대해서 많은 궁금증을 보여주시고 계시기에, 한가지 그림을 인용합니다.

image

SMB 3.0의 경우, DAS 형태의 스토리지 서버 성능의 98% 모습을 보여주고 있습니다. 이 의미는 하드웨어 기반의 DAS 기반 스토리지를 Hyper-V용으로 사용할 수도 있으나, 필요시나 환경적 여건에 따라 SMB 파일 공유를 스토리지형태로 사용할 수 있는 유연성을 보여준다는 것입니다. SMB 파일 공유를 사용하는 경우, 서버의 고가용성에 대한 걱정을 하실 수 있습니다. SMB 파일 공유는 장애 조치 클러스터내 파일 서버를 역할로 추가하여 고가용성을 확보했습니다. 이 경우, 더 높은 고가용성을 위해서 필요한 사항이 존재하였죠. 바로 장애 조치시, 약간의 장애 시간이 존재한다는 것입니다. 앞서 포스팅한 글에서 언급한 바와 같이, 장애 조치 클러스터의 기본 동작 방식은 LUN에 대한 소유권을 넘겨주기 위해, 일시적인 연결 중단이 필요했기 때문인데, Windows Server 2012의 경우에는 “응용 프로그램 데이터용 스케일 아웃 파일 서버” 유형을 제공하여, 이를 해결하고 있습니다.

image

스케일 아웃 파일 서버는 기존 파일 서버 용도와 약간의 다른 형태로 구성이 됩니다. 먼저 파일 서버의 IP 주소를 묻지 않습니다. IP 주소는 클러스터의 한 리소스가 되는데, 스케일 아웃 파일 서버의 경우에는 특정 노드가 IP 주소를 가지고, 운영하는 형태가 부적절하므로(장애 조치시 단절 발생), 네트워크 로드 밸런싱 형태의 구조를 띄게 됩니다.

image

이를 통해 부하 분산, 그리고 장애 조치에 대한 기본적인 접속 포인트를 해결하게 되며, 스토리지에 대한 쓰기 작업이 불가능한 노드로 요청이 전달되었을 경우, 이 요청을 가능한 노드로 리디렉션시키는 형태입니다. 또한 스토리지 저장소에 대한 접근 부분은 클러스터 공유 볼륨(CSV)를 통해서 해결하게 되죠. 파일 서버형태의 스토리지 사용시, 또한가지 많이 질문하시는 사항이 바로 디스크 오류 처리에 대한 부분입니다. Windows Server 2008 R2까지의 CHKDSK는 디스크 오류 발생시, 이에 대한 정밀 검사 및 해결을 하기 위해서는 디스크에 대한 오프라인(다시 시작이 필요)이 필요했고, 전체 디스크를 다 검사하였기에, 용량, 그리고 파일 갯수에 따라서 엄청난 시간이 소요되는 작업이었습니다. Windows Server 2012의 경우, 해당 구조를 개선하여, 많은 작업을 최대한 온라인 상에서, 어쩔 수 없이 오프라인이 필요한 경우에는 문제의 부분만 확인 및 수정하는 아키텍쳐를 가지고 있습니다. 그 결과, 어떠한 형태던 3초이내의 처리를 가능케 하였습니다. 저장소 하드웨어 레벨부터, 고가용성 레벨까지 이제 전체적인 부분이 눈에 보이시나요?

image

해당 공유는 Hyper-V 컴퓨터만 접근할 수 있도록, 보안 퍼미션 설정이 필요합니다.

image

여기서 한가지 주의 사항이 있습니다. Hyper-V에서 사용하기 위해, 해당 공유에 Hyper-V 컴퓨터 계정에 커베로스 인증 위임 처리를 해줘야 합니다. 컴퓨터 계정의 인증 정보가 SMB 파일 서버(정확하게는 CIFS)에 접근하기 위해 필수 사항이죠.

image

지금까지의 Hyper-V 클러스터링을 위해서는 서버와 더불어, 하드웨어 스토리지에 대한 요구가 필수 조건이었습니다. 이제는 하드웨어에 대한 요구 조건 처리 없이, Windows Server만으로도 Hyper-V의 고가용성을 가져갈 수 있는 또하나의 시나리오가 생긴 셈이며, 이는 IT 엔지니어에는 환영할만한 사항입니다. (물론 하드웨어적인 고가용성이 스토리지에만 요구되는 것은 아닙니다. 네트워크 카드에 대한 부분도 필요한 경우도 있고, 다양한 부분이 있죠. 네트워크 티밍에 대한 부분도 별도로 다루겠습니다. Smile)

image

SMB 쪽 개선 사항은 이 포스팅에서 살펴보는 Hyper-V적인 요소만이 전부는 아닙니다. 하드웨어 NIC의 도움을 받아, SMB에 대한 처리를 소프트웨어적이 아닌, 하드웨적으로 처리해주는 SMB Direct(SMB over RDMA(Remote Direct Memory Access)), 파일 서버에 접근 가능한 네트워크 NIC이 여러개인 경우, 이에 대한 장애 조치, 혹은 묶음 처리를 가능하게 하는 SMB Multi-Channel, 그리고 SMB 교신시 기본적으로 암호화가 적용되는 SMB Encryption까지 세세히 적기엔 많은 개선들이 반영되었습니다.

관련된 기술 자료는 아래와 같습니다.