이 글은 솔라리스 논-글로벌 존을 기존 LUN 에서 새로운 LUN 으로 마이그레이션 하는 과정에 대해 설명합니다. 타겟은 솔라리스 운영체제 시스템 관리자와 스토리지 관리자입니다.
이 글은 다음과 같은 주제들을 다루고 있습니다:
.개요
.마이그레이션 이론
.요구사항
.마이그레이션 과정
.참고자료
개요
마이그레이션은 존을 하나의 디스크에서 다른 디스크로 이동하는 과정입니다. 존의 이동이 필요한 경우는 다음과 같은 것들이 있을 수 있습니다:
- 데이타가 빠르게 증가함에 따라 좀 더 많은 디스크 용량이 존에 제공되어야할 필요가 있을때.
- 데이타 읽기/쓰기 속도의 변경으로 인하여 존이 좀더 높은 tier 혹은 낮은 tier 의 LUN 으로 옮겨져야할 필요가 생김.
- 새로운 파일 시스템을 기존의 존에 추가할 때.
- 새로운 어플리케이션들을 기존의 존에 추가할 때.
이 글은 다음과 같은 존의 아키텍쳐에만 촛점을 맞추고 있습니다:
- 메타디바이스에 마운트된 존 루트 파일 시스템
- 종속된 공간을 가진 분리된 메타디바이스에 마운트된 어플리케이션 파일 시스템
마이그레이션 이론
마이그레이션은 두단계로 이루어 집니다:
- 어플리케이션 파일 시스템 마이그레이션 하기
- 루트 파일 시스템 마이그레이션 하기
마이그레이션은 그림 1 처럼 가시화 될 수 있습니다.
그림 1: 마이그레이션 과정 다이어그램
그림 1에서, 마이그레이션 전에, 루트 와 어플리케이션 파일 시스템들은 메타디바이스에 위치하고 있습니다, 그리고 새로운 LUN 에서 메타셋은 파일 시스템을 수용하는데에 사용됩니다. 메타셋들은 다음과 같은 장점을 제공합니다:
- 데이타의 증가를 수용할 수 있도록 하나 이상의 LUN 이 포함될 수 있습니다.
- 파일 시스템은 서로 다른 LUN들 사이에 논리적으로 퍼질 수 있는 소프트 파티션상에서 생성될 수 있습니다.
- 만약 새로운 파일 시스템 혹은 어플리케이션이 존에 추가되어야 한다면, 이것은 단순히 새로운 LUN들을 메타셋에 추가하고 필요한 숫자 만큼의 소프트 파티션을 생섬함으로써 가능합니다.
요구조건
존 마이그레이션 과정을 시작하기 전에 다음 커맨드의 출력을 확인합니다. 출력은 기본 계획을 새우는데에 매우 유용할 것입니다.
df -kh (글로벌 및 논-글로벌 존에서 모두)
metaset metaset -s SetName -p metastat format metastat -p luxadm probe
베리타스 볼륨 메니저의 다음의 명령어들을 이용하여 결과를 확인합니다:
vxdisk list vxprint -g <diskgroup> -hmQqs vxdg list
만약 존의 어떠한 파일 시스템이라도 NFS 파일 시스템으로 공유되고 있다면, 타겟에서 파일 시스템의 잠금을 방지하기 위해서 마이그레이션전에 이것들을 공유해제 하시기 바랍니다.
마이그레이션 과정
아래의 단계들을 따라서 마이그레이션 과정을 수행합니다:
1. 메타셋을 생성합니다:
metaset -s s10-12 -a -h <HostName>
2. 새로운 LUN 을 메타셋에 추가 합니다:
metaset -s s10-12 -a /dev/rdsk/<NewLUN>
3. RAID-0 (stripe) 볼륨을 새로운 LUN 에 생성합니다:
metainit -s s10-12 d300 1 1 /dev/rdsk/<NewLUN>
d300 은 RAID-0 볼륨의 이름입니다.
4. 메타셋을 활성화 합니다; 이제 볼륨은 다른 소프트 파티션들에 의해 사용될 준비가 되었습니다.
metaset -s s10-12 -A enable
5. 필요한 수 만큼의 소프트 파티션을 필요한 만큼의 공간을 가지도록 생성합니다.
소프트 파티션의 갯수는 존 루트 파일 시스템의 숫자와 존 어플리케이션 파일 시스템의 갯수를 더한것과 같습니다.
metainit -s s10-12 d200 -p d300 4gb metainit -s s10-12 d201 -p d300 50gb
소프트 파티션들을 할당되야 하는 스토리지 용량 만큼 초기화 합니다.
6. 존 루트와 어플리케이션 파일 시스템을 위해 필요한 새로운 디렉토리들을 생성합니다:
mkdir /zones/TestZone_new mkdir /zones/TestZone/root/app_new
7. 새로운 파일 시스템을 모든 새로운 소프트 파티션에 생성합니다:
newfs /dev/md/s10-12/rdsk/d200 newfs /dev/md/s10-12/rdsk/d201
8. 소프트 파티션 /dev/md/s10-12/dsk/200 을 거기에 맞는 마운트 포인트 /zones/TestZone_new 로 마운트 합니다:
mount /dev/md/s10-12/rdsk/d200 /zones/TestZone_new
9. 비슷하게 어플리케이션 파일 시스템 /dev/md/s10-12/dsk/201 을 /zones/TestZone/root/app_new 로 마운트 합니다:
mount /dev/md/s10-12/rdsk/d201 /zones/TestZone/root/app_new
이제 여러분은 df -k 를 통해서 마운트포인트 /dev/md/s10-12/rdsk/d200 를 글로벌 존에서, 존에서는 /dev/md/s10-12/rdsk/d201 를 보실 수 있습니다.
새로운 파일 시스템은 현재 사용중인 존 파일 시스템과 동기화될 준비가 되었습니다. 동기화는 두단계로 이루어 집니다:
- 첫번째 레벨의 동기화에서 여러분은 어플리케이션 파일 시스템을 존이 실행되는 동안에 동기화 하실 수 있습니다
- 최종 동기화에서 존을 승인에 의해 정지시킨 다음에 루트 파일 시스템을 동기화 합니다.
10. 첫번째 레벨의 동기화를 수행합니다:
/usr/local/bin/rsync -av -e /usr/local/bin/ssh \ /zones/TestZone/root/app/ /zones/TestZone/root/app_new
어플리케이션 파일 시스템의 사이즈들을 조사합니다. 이 예제에서 app_new 는 app 과 사이즈가 다를 수 있습니다. 그러나 오직 수메가바이트 차이일 것입니다.
11. 존에서 실행중인 모든 어플리케이션들과 데이타베이스들이 셧다운 됐는지 확인하고 존을 정지 시킵니다.
12. 최종 동기화를 수행합니다:
/usr/local/bin/rsync -av -e /usr/local/bin/ssh \ /zones/TestZone/ /zones/TestZone_new
참고: 동기화 동안에 슬래시 (/) 가 소스 파일 시스템의 끝에 추가되어 보일 것입니다.
13. 존 루트 파일시스템들을 모두 언마운트 시킵니다.
umount /zones/TestZone umount /zones/TestZone_new
14. 존 설정 파일의 백업을 만듭니다 (TestZone.xml):
cd /etc/zones cp TestZone.xml /export/home/User/ TestZone.xml.bakup
15. 존 설정 파일에서 이전 어플리케이션 파일 시스템의 raw 및 블럭 디바이스를 새로운 파일 시스템으로 교체 합니다 (/etc/zones/TestZone.xml):
a. /app 파일 시스템 디바이스 정보를 수정합니다:
vi TestZone.xml
b. 다음의 정보를:
<filesystem special="/dev/md/dsk/d101" raw="/dev/md/rdsk/d101" directory="/app" type="ufs">
아래의 정보로 변경합니다:
<filesystem special="/dev/md/s10-12/dsk/d201" raw="/dev/md/s10-12/rdsk/d201" directory="/app" type="ufs">
16. 존 루트 파일 시스템을 크로스 마운트 합니다. 즉 새로운 존 루트 파일시스템(/dev/md/s10-12/dsk/200) 을 /zones/TestZone 에서 마운트 합니다. 이전에는 /zones/TestZone_new 에서 마운트 됐었음을 기억하시기 바랍니다.
mount /dev/md/s10-12/rdsk/d200 /zones/TestZone
이제 우리는 존 루트를 위한 새로운 파일 시스템을 가지게 되었습니다.
이미 우리는 존 설정파일에서 /dev/md/s10-12/rdsk/d201 이 /app 으로 마운트되어야 한다고 정의 하였습니다. 그러므로 이제 존은 루트 와 어플리케이션 파일 시스템을 위한 새로운 파일 시스템을 가지게 되었습니다.
17. 존을 부팅하고 로그인 한다음에 파일 시스템을 검사 합니다:
Zoneadm -z TestZone boot
18. vfstab 파일을 수정하여 항목을 다음과 같이 수정합니다:
다음의 라인을:
/dev/md/s10-12/dsk/d301 /dev/md/s10-12/rdsk/d301 /TestZone ufs 2 yes -
다음과 같이 변경합니다:
/dev/md/s10-12/dsk/d200 /dev/md/s10-12/rdsk/d200 / TestZone ufs 2 yes -
19. 어플리케이션 및 데이타베이스를 시작시켜서 상태를 확인합니다.
참고자료
*Solaris Volume Manager Administration Guide 는 논리 볼륨 메니저 작업들에 대한 참고서로 메타디바이스, 메타셋, 소프트 파티션, 그리고 RAID 볼륨에 대한 정보를 제공합니다.
*System Administration Guide 의 Zones 섹션: Solaris Containers-Resource Management and Solaris Zones 는 존의 개념에 대한 참고서로 논-글로벌 존 관련 작업, 즉 존의 설정이나 존의 부팅 및 정지 같은 작업들에 대한 정보를 제공합니다.
이 글의 영문 원본은
Migrating Non-Global Zones in the Solaris 10 OS
에서 보실 수 있습니다.
"관리자코너" 카테고리의 다른 글
- 맥북 13인치 코어 2 듀오에 솔라리스10 설치하기 (댓글 2개 / 트랙백 0개) 2008/06/16
- 썬 버추얼 데스크탑 커넥터 1.0(베타)을 사용한 VDI 데모 구축 (댓글 0개 / 트랙백 0개) 2008/01/23
- 솔라리스 Tip Of The Week:SMF (댓글 0개 / 트랙백 0개) 2009/01/23
- GlassFish 를 프로덕션 환경으로 설치하기 (댓글 0개 / 트랙백 0개) 2009/11/23
- 솔라리스 레디 애플리케이션 및 솔루션 (댓글 0개 / 트랙백 0개) 2008/03/13
- 솔라리스 10 에서 TCP Wrapper 사용하기 (댓글 1개 / 트랙백 0개) 2006/01/23
- 시만텍 베리타스 넷백업과 ZFS 스냅샷 통합하기 (댓글 0개 / 트랙백 0개) 2009/07/17
- ZFS, 썬의 최신 파일 시스템(Part 1: 스토리지 무결성, 보안성 및 확장성) (댓글 3개 / 트랙백 1개) 2006/11/23
- USB로 부팅하기 - 설치 (댓글 31개 / 트랙백 1개) 2007/08/20
- 파일과 디렉토리를 안전하게 옮기거나 카피 할 수 있는 방법 (댓글 6개 / 트랙백 0개) 2007/04/23

댓글을 달아 주세요
솔라리스가 오라클에 인수되어 더욱 더 활성화가 예상됩니다.
2009/06/20 00:27이미 HP, IBM이 자체OS외에 솔라리스를 탑재하고 있습니다.
솔라리스 10 교육용 CD 패키지가 옥션에서 9만9천원에 판매되고 있네요.
원래 가격이 백만원이 넘는 건데요...
썬교육센터의 3가지과정이 들어가 있네요.
이번 기회에 솔라리스 전문가로 거듭나시길....