Storage VMotion
VMotion이 가상 머신을 Shutdown 하거나 Power off 하지 않은 채 다른 ESXi 서버로 이동시키는 기술이라면, Storage VMtion은 VMotion과 마찬가지로 가상 머신을 Shutdown 하지 않은 채 가상 머신의 디스크 파일을 다른 데이터스토어로 이동시키는 기술을 의미한다.
Storage VMotion이 활용될 수 있는 사례는 다음과 같다.
• 노후화된 스토리지를 교체해야 할 경우 - 구 기종의 스토리지 위에서 가상 머신을 운영하다가 새로운 기종의 스토리지를 도입하여 가상 머신 디스크 파일을 이동해야 할 경우, 가상 머신의 서비스는 온라인 그대로 운영하면서 가상 머신의 디스크 파일을 이동시킬 수 있다.
• 이기종 프로토콜 스토리지 간의 이동이 필요할 경우 - 광채널 스토리지 시스템에서 iSCSI 스토리지 또는 NFS 스토리지 등으로(또는 그 반대로도) 이동이 필요할 경우에도 가상 머신을 Shutdown 할 필요 없이 온라인 중에 가능하다.
• 디스크 성능과 관련한 병목 현상을 해결하고자 할 경우 - VMFS 또는 NFS 데이터스토어에 과도한 가상 머신 디스크 파일이 통합되어 운영될 경우, 별도의 데이터스토어를 새롭게 추가하여 가상 머신 디스크 파일을 이동시켜서 부하를 분산시키고자 할 경우에도 사용 가능하다.
그렇다면 Storage VMotion이 작동되는 실제 원리에 대해 알아보면 다음과 같다. 우선 DS01이라는 데이터스토어에 VM01이라는 가상 머신 디스크 파일이 존재한다고 가정해 보자. 여기에 DS02라는 새로운 데이터스토어를 생성하였고 DS01에서 DS02로 가상 머신 디스크 파일을 이동시킨다고 가정한다.
- 먼저 VM01의 가상 머신 구성 파일을 DS02 데이터스토어로 먼저 복사한다. VM01의 가상 머신 구성 파일들은 VMX 파일이나 각종 로그 파일 등이 해당되며, 이러한 파일들은 가상 머신의 실제 디스크 파일들이 아니므로 쉽게 복사가 가능하다.
- 가상 머신 디스크 구성 파일 복사가 완료되면 DS01 데이터스토어 위치한 가상 머신 디스크 파일을 DS02 데이터스토어로 복사해야 한다. 실제로 이 작업이 바로 Storage VMotion에서 핵심이다. 가상 머신 디스크 파일이 계속해서 열려 있는 상태, 즉 데이터의 변동이 가해지는 상태에서 복사가 이루어져야 한다. 읽기만 한다면 문제가 없지만 쓰기와 같은 작업이 이루어질 경우 그러한 변동된 값에 대한 보정이 별도로 이루어져야 한다는 것이다. 데이터 파일에 무언가 변동이 가해졌다는 것을 알아차리기 위해서는 크게 파일 레벨에서 구현하는 방법과 디스크 블록 레벨에서 구현하는 방법이 존재한다. 파일 레벨에서 구현하는 방법은 게스트 운영체제 내부에 별도의 에이전트를 설치하여 통신을 해야 하거나 또는 아예 가상 머신 디스크 파일을 마운트 하여 일일이 열어 보아야 하는 문제점이 존재한다. 반면에, 디스크 블록 레벨에서 구현하는 방법은 디스크 블록을 매번 전부 읽어 들여야 하기 때문에 스토리지 자체에 커다란 부하를 줄 수 있는 단점이 존재한다. VMware에서는 결국 블록 레벨에서 구현하는 방법을 선택하였는데, 스토리지에 가해지는 부하를 최소화하기 위해 CBT라는 기능을 사용한다. CBT는 Change Block Tracking의 약자로서, 말 그대로 블록에 무언가 변경이 가해졌는지 아닌지의 여부를 추적하는 기법이다. 특정 시점 이후에 블록에 변동이 가해졌는지 아닌지를 추적할 수 있도록 일종의 로그 파일을 이용한다. 그렇게 함으로써 변동된 값이 있는지 그 여부를 파악하기 위해 디스크 블록 전체를 전부 스캔할 필요 없이 CBT 값을 이용하여 변동된 블록의 위치를 쉽게 알아차릴 수 있게 되었다.
다시 설명하자면 가상 머신 구성 파일 복사가 완료되면 가상 머신 디스크 파일에 대하여 자동으로 CBT 기능을 설정한다. 그다음, 우선 가상 머신 디스크 파일을 pre-copy 하여 DS02 데이터스토어에 복사를 시작한다. - 가상 머신 디스크 파일의 pre-copy 작업이 완료된 다음 복사가 진행되는 동안 혹시 변경된 블록이 있었는지 여부를 CBT 기능을 통해 파악한다. 변경된 블록이 존재한다면 해당 블록까지 복사를 진행한다.
- 그런 다음, 복사가 완료된 순간 가상 머신은 재빠르게 Suspend 상태로 빠진다. 그리고 새롭게 옮겨진 DS02 데이터스토어의 가상 머신 디스크 파일 위치로 경로가 변경된 다음, 다시 가상 머신은 Suspend 상태에서 빠져나오면서 아무 일도 없었다는 듯 서비스가 재개된다.
Storage VMotion을 실제로 구현하기 위해서는 반드시 먼저 VMotion의 준비사항이 마련되어야 하는 것은 아니다. Storage VMotion이 가상 머신을 실시간으로 다른 ESXi 서버로 이동시키는 것이 아니라 데이터스토어의 위치를 바꾸는 것이기 때문이다. Storage VMotion을 실행하기 위해서 별도의 실행 메뉴가 존재하는 것은 아니며, VMotion과 마찬가지로 가상 머신을 선택한 후 Migrate 메뉴를 클릭하면 작업이 시작된다.
VMotion이나 Storage VMotion이 가지고 있는 최대 장점은 뭐니 뭐니 해도 가상 머신을 Shutdown 할 필요 없이 이동시키거나 가상 머신 디스크 파일을 다른 데이터스토어 쪽으로 이동시킬 수 있다는 점이다. 가상화 환경의 장점 중 하나가 바로 이렇게 가상 머신이 하드웨어 시스템과 독립적으로 분리되고 또한 파일화되어 있기 때문에 물리적 시스템 환경에서라면 구현 불가능한 것들이 이러한 기능들로 인해 가능해질 수 있다는 점이다. 또한 점진적으로 이러한 기능들로 인해 가상 머신에 좀 더 미션 크리티컬한 서비스가 올라가고 있으며, DRS, DPM 기능과 같이 사용함으로써 얻는 시너지 효과는 엄청나다고 볼 수 있다.
'⫸VMware' 카테고리의 다른 글
FT 작동 원리 (0) | 2022.10.18 |
---|---|
HA 개요 및 작동 원리 (0) | 2022.10.14 |
VMotion 작동 원리 (0) | 2022.10.12 |
가상 머신 스냅샷 (0) | 2022.10.11 |
가상 머신의 구조 (0) | 2022.10.10 |