본문 바로가기
  • 오늘도 한걸음. 수고많았어요.^^
  • 조금씩 꾸준히 오래 가자.ㅎ
IT기술/클라우드, VM, AWS

[vSphere] 하드웨어의 가상화 - 디스크(스토리지)

by 미노드 2018. 10. 30.

- Virtual Machine의 게스트OS는 자신의 인식하는 디스크가 물리적인 디스크 컨트롤러에 연결된 일종의 하드 디스크라고 착각할 뿐이다. vSphere서버는 많은 가상머신들에게 제각각 크기의 디스크와 함께 원하는 개수, 읽고 쓰는데 문제 없이 디스크를 인식시켜주어야 한다.

핵심은 많은 가상머신들에게 어떻게 해서 가상의 디스크를 인식시켜 줄 것인가,
그런 개별 가상머신의 디스크 데이터를 어떻게 저정하고 관리할 것인가 이다.

 
1. 각각의 가상머신들에게 개별 디스크를 인식시켜 주기위해서 갖추어야 할 것은 디스크 컨트롤러 와 디스크 자체 두가지다.

vSphere서버에선 다양한 가상 디스크 컨트롤러 가상머신에게 제공 하고 있으며, 초기 가상머신 생성 시에 어떤 디스크 컨트롤러를 사용할 것인지 선택할 수 있다.

디스크의 경우는 개별 가상머신들에게 자신의 디스크 컨트롤러에 직접 연결된 로컬 디스크 처럼 인식 시켜주게 되며
이를 VMDK(Virtual Machine Disk)파일 이라고 부른다.
확장자가 .vmdk 인 파일이다.
스토리지 쪽에서 확인 가능하다.

예를 들어 가상머신으로 50GB의 게스트OS를 생성하면, 실제 vSphere서버에 50G 사이즈의 단일 .vmdk파일이 존재 하게된다.

OS iso 이미지파일을 예를들면 단일 파일임에도 불구하고 그 안에는 OS의 모든 파일과 디렉토리 구조가 들어 있다.
vmdk 역시 ISO이미지 파일과 상당히 유사한 구조다.
결론적으로 이러한 vmdk파일이 가상머신에게 일종의 하드 디스크로 인식이 된다는 것이다.

그렇기에 vmdk파일은 삭제하면 가상머신에서 본다면 디스크가 통으로 사라진 것이 되고,
vmdk파일을 복사한다면, 디스크 복사본을 생성한 것과 같은 경우가 된다.


2. vSPhere서버는 VMFS(VMware File System)라는 파일 시스템을 사용한다.

vmdk 파일은 단일 파일이지만, 크기가 상당하다.
그리고 특성상 빠른(고속)접근이 이루어져야 한다.
이러한 이유로 VMFS라는 파일 시스템이 개발되게 되었다.
vmdk파일은 대부분 VMFS위에서 작동하게 되며 두 가지의 특징을 가진다

 ⓐ : 커~다란 블록크기
 - VMFS는 기본적으로 블록 크기를 최소1MB ~ 최대 8MB까지 설정 할 수 있는 고성능 파일 시스템이다.
블록 크기가 큰 이유는 VMFS위에 저정되는 VMDK 파일들의 기본 크기가 워낙 크기 때문에,
단일 파일은 고속으로 접근하기 위해 블록 크기를 크게 가져갈 수 밖에 없다.
 
 ⓑ : 클러스터 파일 시스템 구조
 - 오라클 파일 시스템(OCFS)이나 베리타스 클러스터 파일 시스템(Veritas CFS)처럼 VMFS도
클러스터 파일 시스템 구조를 가지고 있다.
최대 32대의(ESX 4까지입니다. 이후버전으로는 바뀌었을 수도 있습니다) vSphere서버들이 동시에 단일 VMFS볼륨에 읽고 쓸 수가 있으며,
이러한 클러스터 파일 시스템 구조의 특징으로 하나의 VMFS 볼륨에 여러 대의 vSphere서버 호스트들이 동시에 읽고 쓸 수 있다.
그러나 VMDK파일은 오직 하나의 vSphere서버 호스트들만 열어 볼 수 있다.


그리고 VMFS 파일 시스템을 언급하게 되면서 항상 대두 되는 중요한 개념이 바로
공유 스토리지(Shared Storage) 이다.
여기서 공유는 개념적으로는 기존의 물리적 서버들의 각자 보유하고 있던
DAS(Direct Attach Storage, 서버와 전용 케이블로 연결한 외장 저장 장치를 말합니다) 형태의 디스크들이
하나의 거대한 스토리지로 통합되는 것을 의미한다.
하나에 8TB짜리 스토리지를 쓸 수는 없기 때문이고 쓰더라도 위험하기 때문이다.

그리고 기술적으로는 vSphere에서 제공하는 핵심 기능들이(예를 들어 HA vMotion, DRS, DPM등) 구현되기 위해서는
vSphere서버(ESX)들이 스토리지 시스템에 접근하여 동일한 VMFS볼륨을 동시에 액세스해야 하는 것을 의미한다.