ZFS and Container Integration in Solaris10 05/09
지난 포스팅에서 솔라리스 10 05/09 버전의 신기능으로서 ZFS와 컨테이너 기능의 통합에 대해 소개 드렸었는데요. 이번 포스팅에서 더 자세하게 살펴보겠습니다.
1. 존 설치시 ZFS 데이터셋 자동 생성
우선 존을 생성할 때 존의 경로가 ZFS 스토리지 풀 위의 경로에 있으면 존 설치시 자동으로 새로운 ZFS 데이터셋이 생성이 되는 기능이 추가되었습니다.
먼저 my-zone이라는 존을 하나 생성해 보겠습니다. 이 시스템에는 미리 export/zones라고 하는 ZFS 데이터셋을 생성해 두고 새로 만드는 존의 경로는 이 데이터셋의 경로에 두었습니다.
|
위의 커맨드는 존을 가장 빠르게 구성할 수 있는 방법으로 (사용자 입장에서) 존의 경로와 네트워크를 루프백 인터페이스의 127.0.0.2 내부 인터페이스 주소로 주고 존을 구성하였습니다. 다음으로 존을 인스톨하겠습니다.
bash-3.00# zoneadm -z my-zone install 이 영역에 대한 ZFS 파일 시스템이 만들어졌습니다. Prepating to install zone <my-zone> Creating list of files to copy from the global zone. Copyig <7940> files to the zone. ... |
짜잔! 존 인스톨 시 자동으로 ZFS 파일시스템을 생성하는 것을 볼 수 있습니다. ZFS 데이터셋의 리스트를 확인해 보도록 하겠습니다.
bash-3.00# zfs list NAME USED AVAIL REFER MOUNTPOINT rpool 5.85G 9.77G 35.5K /rpool rpool/ROOT 3.99G 9.77G 18K legacy rpool/ROOTs10x_u7wos_08 3.99G 9.77G 3.99G / rpool/dump 1.00G 9.77G 1.00G - rpool/export 367M 9.77G 506K /export rpool/export/home 366M 9.77G 22K /export/home rpool/export/zones 366M 9.77G 21K /export/zones rpool/export/zones/my-zone 366M 9.77G 366M /export/zones/my-zone |
새로운 데이터셋이 생성된 것을 확인할 수 있습니다. 또한 존을 언인스톨하게 되면 아래처럼 ZFS 데이터셋이 자동으로 삭제됩니다.
bash-3.00# zoneadm -z my-zone uninstall 이 영역에 대한 ZFS 파일 시스템이 삭제되었습니다. |
2. 존 클론 시 ZFS 스냅샷/클론 자동 생성
위에서 본 것처럼 컨테이너 기능을 이용하여 존 설치시 ZFS 데이터셋이 자동으로 생성됨으로서 컨테이너가 ZFS 파일시스템의 안정성, 확장성 등 장점을 활용하기가 더욱 쉬워졌습니다. 그렇지만 수동으로 데이터셋을 만들고 그 위에 존을 설치해도 되는 것을 굳이 자동으로 했다고 ZFS가 컨테이너 기능과 통합되었다고 할 수는 없겠지요?
ZFS가 LDOM, xVM Server, Container 등 가상화 기능과 결합하였을 때 진정 의미가 있는 것은 뭐니뭐니해도 Snapshot / Clone / Rollback 기능일 것입니다. ZFS의 스냅샷은 파일시스템 레벨에서 제공하는 기능으로 특정 시점의 파일시스템의 데이터 블록들의 데이터를 저장을 해놓고 이 데이터 상태로 나중에 되돌아갈 수도 있고 (Rollback) 용량증가없이 즉각적으로 복제본을 만들 수도 있는 (Clone) 기능입니다. 특히 클론 시에는 대용량의 데이터를 복사할 때 시간과 용량이 걸리는 일이 없이 즉각 0 바이트의 용량으로 복제본을 만들 수 있는 기능인데요. 이번 업데이트에서는 이 기능이 컨테이너의 기능과 결합되었습니다.
컨테이너도 자체적으로 클론 기능을 가지고 있는데요. 이 것은 특정 존을 일종의 골든 이미지 존으로 만들어 놓고 이 존에 설치된 어플리케이션 및 각종 구성 설정 들을 그대로 유지하면서 새로운 존을 생성하는 기능입니다. 다만 ZFS와는 달리 데이터 블록을 그대로 한 카피 더 만들어야 하므로 용량이 두배가 되고, 클론을 생성하는 데 오랜 시간이 걸리게 됩니다. 이번 업데이트 부터는 존을 클론할 때 ZFS 데이터셋 위에 경로가 있게 되면 특정 존을 자동으로 스냅샷하고 이를 클론하여 존의 추가 설치에 따른 용량 증가와 설치 시간의 소요가 없이 존을 클론할 수 있도록 되었습니다.
마스터 존이 생성되어 있다고 할 경우 존의 클론 과정은 대략 다음과 같습니다.
- 마스터 존 halt
- 마스터 존 구성 정보 export
- 위 마스터 존의 구성 정보를 편집하여 새로 복제본으로 생성될 존의 구성 정보 설정
- 복제본 존 구성
- 복제본 존 클론
우선 위에서 만든 my-zone을 마스터 존으로 놓고 구성정보를 export 합니다.
|
/export/zones/master 파일은 my-zone 존의 구성 정보를 담고 있는 파일인데요.이 구성 정보를 이용해서 새로운 복제 존을 구성하겠습니다. 다만 경로 및 ip주소 정도는 수정해야겠지요? 필요한 내용은 이 파일에서 모두 편집할 수 있습니다. 저는 존의 경로와 ip 주소만 수정해 보겠습니다.
|
위 구성 파일을 이용해서 복제본 존을 구성합니다.
|
보통 존은 존 구성 -> 존 설치 의 두 단계를 거치는데요. export / import 하거나 clone 하는 경우에는 설치 대신 import 또는 clone을 하면 됩니다. 아래처럼 clone을 하게 되면 마스터 존에 대해서 SUNW<zonename>이라는 스냅샷이 자동으로 생성되고 이 스냅샷을 클론하여 새로운 존을 설치하는 것을 확인할 수 있습니다. 스냅샷 / 클론이기 때문에 설치하는 것에 비하여 시간이 현저하게 줄어듭니다. 복사가 아니라 ZFS 클론이라고 친절하게 설명까지 해줍니다. ^^
|
아래 용량을 확인해 보면 SUNWzone1 스냅샷에 1.8MB, zone1 클론에 240K로 용량의 증가가 거의 없는 것을 확인하실 수 있습니다.
|
3. ZFS 스냅샷을 이용한 존 클론
위에서는 마스터 존을 클론하면서 자동으로 ZFS 스냅샷/클론을 수행하도록 하였는데요. 이미 존에 대하여 만들어진 스냅샷을 활용하여 새로운 존을 클론을 할 수도 있습니다.
새로운 zone2를 구성해 보겠습니다. 물론 존의 경로와 ip 주소 등 master 파일의 내용은 zone2에 맞게 수정해 주어야 합니다.
|
아래와 같이 -s 옵션을 이용하여 스냅샷을 지정해주면 이 스냅샷을 클론하여 존을 생성합니다.
|
zone2가 설치된 것을 확인하실 수 있구요.
|
용량은 zone1을 새로 복제할 때와 마찬가지로 240K만 추가로 사용된 것을 확인할 수 있습니다.
|
만약 클론시에 스냅샷을 쓰지 않고 기존처럼 복사하는 방법을 그대로 사용하고 싶으면 아래처럼 -m copy 옵션을 줄 수도 있습니다.
|
ZFS 파일 시스템에 대해서는 제가 따로 소개한 바는 없지만 ZFS는 컨테이너, DTrace 등과 함께 솔라리스 10의 가장 혁신적인 기술 가운데 하나로 이렇게 가상화 기술과 결합하게 되면 보다 빠른 가상화 게스트의 설치와 스토리지 용량의 절감을 가져 올 수 있는 매우 큰 장점이 있습니다.
다음 포스트에서는 이번 업데이트 7 릴리즈의 Intel 네할름 프로세서 지원에 대해 소개드려 보겠습니다.