Windows Server 2012 Hyper-V, 고가용성 기술의 향상, 그 두번째 이야기, 스케일 아웃 파일 서버(SMB 3.0)를 통한 Hyper-V
지난 포스팅, 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이라는 큰 버전 업그레이드로 해당 모습을 보여주고 있습니다.
일단 결론은 그렇습니다. 바로 Hyper-V의 가상 머신 파일, 그리고 가상 하드 디스크(VHD, VHDX) 파일을 원격 파일 서버에 저장해놓고, 이를 Hyper-V에서 사용할 수 있는 형태입니다. SMB 3.0 기반에서 제공되는 파일 서버에 대해서는 많은 분들께서 기존 버전과의 차이, 특히 성능에 대해서 많은 궁금증을 보여주시고 계시기에, 한가지 그림을 인용합니다.
SMB 3.0의 경우, DAS 형태의 스토리지 서버 성능의 98% 모습을 보여주고 있습니다. 이 의미는 하드웨어 기반의 DAS 기반 스토리지를 Hyper-V용으로 사용할 수도 있으나, 필요시나 환경적 여건에 따라 SMB 파일 공유를 스토리지형태로 사용할 수 있는 유연성을 보여준다는 것입니다. SMB 파일 공유를 사용하는 경우, 서버의 고가용성에 대한 걱정을 하실 수 있습니다. SMB 파일 공유는 장애 조치 클러스터내 파일 서버를 역할로 추가하여 고가용성을 확보했습니다. 이 경우, 더 높은 고가용성을 위해서 필요한 사항이 존재하였죠. 바로 장애 조치시, 약간의 장애 시간이 존재한다는 것입니다. 앞서 포스팅한 글에서 언급한 바와 같이, 장애 조치 클러스터의 기본 동작 방식은 LUN에 대한 소유권을 넘겨주기 위해, 일시적인 연결 중단이 필요했기 때문인데, Windows Server 2012의 경우에는 “응용 프로그램 데이터용 스케일 아웃 파일 서버” 유형을 제공하여, 이를 해결하고 있습니다.
스케일 아웃 파일 서버는 기존 파일 서버 용도와 약간의 다른 형태로 구성이 됩니다. 먼저 파일 서버의 IP 주소를 묻지 않습니다. IP 주소는 클러스터의 한 리소스가 되는데, 스케일 아웃 파일 서버의 경우에는 특정 노드가 IP 주소를 가지고, 운영하는 형태가 부적절하므로(장애 조치시 단절 발생), 네트워크 로드 밸런싱 형태의 구조를 띄게 됩니다.
이를 통해 부하 분산, 그리고 장애 조치에 대한 기본적인 접속 포인트를 해결하게 되며, 스토리지에 대한 쓰기 작업이 불가능한 노드로 요청이 전달되었을 경우, 이 요청을 가능한 노드로 리디렉션시키는 형태입니다. 또한 스토리지 저장소에 대한 접근 부분은 클러스터 공유 볼륨(CSV)를 통해서 해결하게 되죠. 파일 서버형태의 스토리지 사용시, 또한가지 많이 질문하시는 사항이 바로 디스크 오류 처리에 대한 부분입니다. Windows Server 2008 R2까지의 CHKDSK는 디스크 오류 발생시, 이에 대한 정밀 검사 및 해결을 하기 위해서는 디스크에 대한 오프라인(다시 시작이 필요)이 필요했고, 전체 디스크를 다 검사하였기에, 용량, 그리고 파일 갯수에 따라서 엄청난 시간이 소요되는 작업이었습니다. Windows Server 2012의 경우, 해당 구조를 개선하여, 많은 작업을 최대한 온라인 상에서, 어쩔 수 없이 오프라인이 필요한 경우에는 문제의 부분만 확인 및 수정하는 아키텍쳐를 가지고 있습니다. 그 결과, 어떠한 형태던 3초이내의 처리를 가능케 하였습니다. 저장소 하드웨어 레벨부터, 고가용성 레벨까지 이제 전체적인 부분이 눈에 보이시나요?
해당 공유는 Hyper-V 컴퓨터만 접근할 수 있도록, 보안 퍼미션 설정이 필요합니다.
여기서 한가지 주의 사항이 있습니다. Hyper-V에서 사용하기 위해, 해당 공유에 Hyper-V 컴퓨터 계정에 커베로스 인증 위임 처리를 해줘야 합니다. 컴퓨터 계정의 인증 정보가 SMB 파일 서버(정확하게는 CIFS)에 접근하기 위해 필수 사항이죠.
지금까지의 Hyper-V 클러스터링을 위해서는 서버와 더불어, 하드웨어 스토리지에 대한 요구가 필수 조건이었습니다. 이제는 하드웨어에 대한 요구 조건 처리 없이, Windows Server만으로도 Hyper-V의 고가용성을 가져갈 수 있는 또하나의 시나리오가 생긴 셈이며, 이는 IT 엔지니어에는 환영할만한 사항입니다. (물론 하드웨어적인 고가용성이 스토리지에만 요구되는 것은 아닙니다. 네트워크 카드에 대한 부분도 필요한 경우도 있고, 다양한 부분이 있죠. 네트워크 티밍에 대한 부분도 별도로 다루겠습니다. )
SMB 쪽 개선 사항은 이 포스팅에서 살펴보는 Hyper-V적인 요소만이 전부는 아닙니다. 하드웨어 NIC의 도움을 받아, SMB에 대한 처리를 소프트웨어적이 아닌, 하드웨적으로 처리해주는 SMB Direct(SMB over RDMA(Remote Direct Memory Access)), 파일 서버에 접근 가능한 네트워크 NIC이 여러개인 경우, 이에 대한 장애 조치, 혹은 묶음 처리를 가능하게 하는 SMB Multi-Channel, 그리고 SMB 교신시 기본적으로 암호화가 적용되는 SMB Encryption까지 세세히 적기엔 많은 개선들이 반영되었습니다.
관련된 기술 자료는 아래와 같습니다.
- 구성 방법 및 개요 : Scale Out File Server for Application Data Overview (TechNet)
- UTG 문서 : Understand and Troubleshoot Scale-Out File Servers in Windows Server "8" Beta
- 본사 파일 서버 팀의 Jose Barreto 블로그 : Updated Links on Windows Server 2012 File Server and SMB 3.0
Comments
Anonymous
October 27, 2013
언제나 귀중한 포스팅 감사합니다. 현재 WS2012R2로 SoFS를 통한 Hyper-V환경을 구축하고자 DELL R710 2대를 사용하여 테스트중입니다. Failover Clustering 기능을 추가하고, 도메인 유저로 로그인후, 클러스팅 검증을 진행한 결과, 디스크 영역부분에서 경고(클러스터링에 사용될 해당 디스크 영역이 없다는 메세지)가 표시되고있는 상태입니다. 이 부분을 어떠한 방식으로 해결해 가야할지 이와 유사한 경험이 있으시다면 조언 좀 받을 수 있을까요? 참고로 아래 URL도 참조중입니다. technet.microsoft.com/.../jj822937.aspx 위 URL에서는 RAID controller를 disabled 하는게 권장되는것 같은데, 현재 테스트는 Enabled 상태로 진행중입니다. BIOS에서 Disabled로 변경후 진행해 보았지만, 역시나 그럴경우 디스크 자체를 인식못하게 되어 윈도우 인스톨 자체가 진행이 안되는 상황이 발생합니다. 한 간에 WS2012 R2부터는 물리적 RAID controller 로 인식되다는 소문?도 얼핏 들어보았지만 실제로 어떠한지, 답변 가능한 범위내에서 조언 받을 수 있으면 감사하겠습니다. WS2012R2의 매력적인 기능들을 보다 적극적으로 사용해 보고 싶은 마음에 살짝 도움을 요청드려봅니다.Anonymous
October 27, 2013
박창주님 // 안녕하세요~ 저랑 시스템이 동일하시군요 :) 디스크 영역이 추가되지 않으신다는 것이 FC나 iSCSI에선 연결이 되신 후이신지.. 아니면 아예 연결이 안되신다는 의미신지 정확하지가 않습니다. 다만 제 경우, 기존에 사용하던 LUN을 연결하려 할 경우, 디스크가 정상적으로 연결되지 않았던 경우는 있었습니다. 이경우 스토리지 관리자에서 해당 LUN을 오프라인으로 했다가 온라인으로 하면 정상으로 된 경우는 있었습니다. 제 경우엔 디스크 컨트롤러는 기존 2012, 2008에서 사용하던 부분과 동일했습니다.Anonymous
October 28, 2013
꼬알라님// 답변 감사합니다. 동일한 시스템이군요, 안심되네요. iSCSI에서 연결이 안된 상태였고, 연결후 다시 확인해 보겠습니다. (현재, 아래와 같이 진행을 준비중) 1.SAN구성(iSCSI로 테스트 예정) 2.Failover Clustering 구성 3.SAN상의 데이터디스크를 CSV에 추가 4.SoFS 리소스 작성 5.공유작성 참고로, 꼬알라님의 시스템은 하드웨어상에 물리적 RAID 구성(PERC 6/i Integrated 사용)을하여 진행하셔서 문제가 없으셨다고 인식해도 될까요?Anonymous
October 28, 2013
박창주님 // iSCSI에서 아직 연결이 안되었다면, 클러스터링에서는 디스크가 없다는 사항이 나오는 것이 맞습니다. 서버에 내장된 RAID는 클러스터상 노드간 공유할 수 없는 디스크이기 때문에, 클러스터링을 통해서 SMB 파일 공유를 만드실 예정이라면, 디스크는 공유 디스크(현재 말씀하신 사항에선 iSCSI)가 있어야 합니다. 당연히 저도 내장된 RAID가 아닌, 스토리지에 연결해서 해당 LUN을 공유 디스크로 연결한 후, CSV로 변경하여 SMB 파일 공유를 구성하였습니다.Anonymous
October 29, 2013
꼬알라님// 아... 그렇게 되는군요. R710 2대(역할:파일서버1, 2) 안에, iSCSI 가상 디스크를 작성하면 결국 물리적인 서버 2대로 SMB파일공유 환경을 만들수 있겠다고 생각했었는데, 이게 아니였군요. 추가로 공유 디스크용의 물리적인 서버가 1대 더 필요하게 되는거였군요.Anonymous
October 29, 2013
박창주님 // 클러스터링을 하지 않으시고, 그냥 서버 1대로 운영하셔도 SMB 파일 서버는 만들 수 있지만, 서버 1대가 장애가 발생하면 전체장애로 이어지게 되죠. 이에 클러스터링으로 무중단 서비스를 생성하시는 것인데, 이 경우에는 서버 2대가 공통으로 접근할 수 있는 스토리지가 있어야 합니다. 해당 스토리지는 말씀하신 것처럼, 추가 서버를 이용하실 수도 있고, 하드웨어 스토리지를 이용하셔도 됩니다.Anonymous
October 29, 2013
꼬알라님 // 클러스터링으로 무중단서비스 상태를 구성하였다 하더라도, 결국에는 서버 2대가 공통으로 접근하는 스토리지(추가 서버 or 하드웨어 스토리지) 가 싱글포인트가 되어, 이 부분이 장애일 경우에는 결국 전체장애로 이어지게 되는 상황은 서버1대로 운영하는 SMB 파일서버와 크게 다를것 같지는 않네요. VMware의 VSAN or Stormagic와 같이 서버2대의 내장 디스크를 하나의 공유스토리지로 보여주어 가용성을 높이는 기술이 WS2012를 사용했을경우, SoFS부분에서 구현 가능할듯 싶어서 관심을 갖고 접근 중이였습니다만 생각했던것과는 조금 다른것 같네요. 혹시, WS2012에서 이와 같은 기술구현이 가능한 솔루션이 있을까요?Anonymous
October 29, 2013
박창주님 // 말씀하신 바와 같이 스토리지의 장애는 저장 장소가 없어지는 셈이 되니 장애로 이어지겠지만, 서버간의 장애에 대한 부분(스토리지는 정상일때)일 경우에는 2008 R2때와 달리 장애가 일어나지 않고 장애 조치가 일어납니다. (SMB 3.0에 향상된 부분이죠) 서버 로컬에 있는 디스크를 VM에서 공유 스토리지로 사용하는 부분은 Windows Server 2012 R2에 공유 VHDX가 있으며(2012가 아닌..) blogs.technet.com/.../windows-server-2012-r2-hyper-v-shared-vhdx.aspx 에 다뤄놓았습니다.Anonymous
October 29, 2013
꼬알라님 // Cloud OS런치 세미나 준비로 바쁘신 중에도 친절하게 답변주셔서 감사합니다. 궁금했던 부분들이 해소되었네요. 진화된 WS2012 R2의 공유VHDX에 대해서도 참고하겠습니다. ^ ^Anonymous
October 29, 2013
박창주님 // 끼어들게 된 듯한데 (양해해 주시길...), 일단 VSAN은 아직 베타라 상세 비교를 많이 해보지 않은 상태지만, 개념은 좋은 듯 합니다. 그리고, VSAN의 상세 내용을 보니 왜 SMB(small to medium business)용으로 VMware가 권고하고 있는지 아키텍처를 이해하니 알게 되었고요. Windows Server의 Storage Space와 SOFS는 Enterprise용으로 Ultra High-performance를 염두해 두고 개발했기 때문에 디스크단의 고가용성은 디스크의 기능에 맡겨 놓았다고 생각합니다. 스토리지를 2개 사야 하지 않는냐는 실제 스토리지 영업에게 문의해 보았는데, 항상 서버는 고가용성을 위해 2대씩 사도 고가용성을 위해 스토리지 박스를 2개씩 사는 고객은 많지 않다고 합니다. Storage Space는 물론 JBOD을 2개 사용했을때 이를 인식하고 배분하는 기능도 가지고 있지요. 11월1일날 IT Pro 대상으로 Windows Server 2012 R2 상세 기능 소개 세션이 있는데, 한번 참가해 보셔도 좋을 듯 합니다. 한국에서 이정도 깊이 있는 세션은 처음이자 당분가도 없지 않을까 합니다. :) 일단, 고가용성(Cluster와는 다른 고가용성이지만)을 위해서는 전 ㅗHyper-V Replica를 사용합니다(SMB서버를 가상화 해서 그 VHDX를 다른 Hyper-V 호스트로).Anonymous
November 17, 2013
이정훈님 // 친절히 코멘트 주셔서 감사합니다. 역으로 제가 코멘트를 제가 너무 늦게 보아서 죄송하네요... ^^; 말씀을 듣고 보니 "디스크단의 고가용성은 디스크의 기능에 맡겨 놓은" 것이 이해가 되네요. 11월1일 열렸던 세미나 아쉽지만 참가 못 했네요.(가까운 이웃나라에 있어서...) 다음에 기회가 되면 꼭 참가하겠습니다. AD없이 간단히 2대의 머신으로 Hyper-V replica 구축해 보았는데, 편리하고 유용한 솔루션이네요.Anonymous
December 23, 2013
안녕하세요. 최근 IT Camp 떄 뵈었던 김학철 입니다.제가 정말 궁금했던 부분을 토의 하고 계시네요.'서버2대의 내장 디스크를 하나의 공유 스토리지로 보여주어 가용성을 높이는 기술' 이 Windows Server 2012 R2 에서 가능 한가?이 질문을 풀어 보려 백방으로 알아 봤는데 결국은 안된다는 거네요.