오픈솔라리스는 복수개의 부트 환경을 가질 수 있는 기능 및 툴을 제공합니다.
이 글은 복수 부트 환경 관리에 대해 설명 드립니다.

종종 개발자들은 복수개의 시스템 설정을 유지하고 테스트를 위해서 각 환경을 전환해가면서 사용해야할 필요가 있습니다. 2005년솔라리스10ZFS 소개로, 최소한의 추가 공간과 시간 지연으로도 파일 시스템의 스냅샷을 만들고 복제 할 수 있게 되었습니다. 이를 통해서 환경의 백업 및 복구가 가능해 졌습니다. 간편하다고는 하지만 몇단계의 과정을 거쳐야 하고 특히 복수개의 파일시스템을 가진 환경일때에 특히 추가 과정을 더 밟아야 합니다.

오픈솔라리스 의 새롭게 새롭된 beadm 이라는 유틸리티는 부트 환경들(Boot Environment, 줄여서 BE 라고 함)을 효과적으로 관리 할 수 있도록 도와 줍니다. beadm 은 모든 관계된 파일 시스템의 복사 작업을 처리해 주고 x86, x64 플랫폼상의 GNU GRUB [GRand Unified Bootloader] 메뉴를 수정해 줍니다. 또한 단일 과정으로 BE 들을 생성, 수정 및 삭제할 수 있습니다.

이 글에서 여러분은 오픈솔라리스의 beadm 를 이용해서 BE 를 관리하는 방법을 예제를 통해서 배우게 됩니다.

순서
 
- 여러분의 환경 검사하기
- 여러분의 환경 복제하기
- 설정 살펴보기
- 부트 환경들 관리하기
- 결론
 
여러분의 환경 검사하기

새롭게 설치된 오픈솔라리스, 오픈솔라리스 2008.05 를 부팅할때에 여러분은 그림 1 과 유사한 GRUB 메뉴를 보게 됩니다.

 
사용자 삽입 이미지

그림 1.
오픈솔라리스 2008.05 의 GRUB 메뉴
 

위의 메뉴는 현재 오직 하나의 BE 만이 사용가능함을 보여 줍니다. OS 가 부팅되고 나서는 beadm list 를 실행함으로써 BE 의 목록을 보실 수 있습니다:


jack@opensolaris:~$ beadm list
jack@opensolaris:~$ beadm list

BE Active Active on Mountpoint Space
Name reboot Used
---- ------ --------- ---------- ------
opensolaris yes yes / 4.77G


여기서 BE 는 opensolaris 로 불립니다. df 커맨드를 수행함으로써 , ZFS 루트 파일 시스템이 동일한 이름을 공유 하고 있음을 보실 수 있습니다:


jack@opensolaris:~$ df /
Filesystem 1K-blocks Used Available Use%
Mounted on rpool/ROOT/opensolaris 29950875 4250701 25700174 15% /

여러분의 환경 복제하기

BE 를 구성하는 파일 시스템의 셋은 루트 파일 시스템 자체와 그의 모든 자식들 입니다. 일반적으로 BE 는 //opt 디렉토리들을 가지고 있습니다. 그러나 필요에 따라 더 늘리실 수 있습니다. 예를 들어 아래의 커맨드 (root 로 실행했고 모두 한 줄임) 는 빈 파일 시스템을 만들고 /MyData 아래 마운트 되었습니다:

 
jack@opensolaris:~# zfs create -o mountpoint=/MyData -o canmount=noauto rpool/ROOT/opensolaris/MyData


ZFS 내의 디렉토리를 살펴 보면 다음과 같습니다:


jack@opensolaris:~# zfs list -r rpool/ROOT/opensolaris
NAME USED AVAIL REFER MOUNTPOINT
rpool/ROOT/opensolaris 4.68G 24.6G 4.06G legacy
rpool/ROOT/opensolaris/MyData 18K 24.6G 18K /MyData
rpool/ROOT/opensolaris/opt 644M 24.6G 644M /opt

여러분이 BE 에 큰 변화를 줄 생각이지만 그 이전에 환경을 보존을 하고 필요에 따라 다시 복구한다고 가정해 봅시다. 간단하게 여러분은 또 다른 BE test_bebeadm 로 만듭니다.:


jack@opensolaris:~# beadm create test_be
jack@opensolaris:~# beadm list

BE Active Active on Mountpoint Space
Name reboot Used
---- ------ --------- ---------- ------
opensolaris yes yes / 4.68G
test_be no no - 72.5K


beadm create 커맨드는 수행하는데 몇초가 걸립니다. test_be 의 최소공간을 확인하시기 바랍니다. 재부팅 후에 test_be 가 GRUB 메뉴에 나타납니다. 그림 2를 보시기 바랍니다.

 
사용자 삽입 이미지
그림 2. GRUB 메뉴와 두개의 부트 환경들
 

여러분은 이제 opensolaris 의 모든 파일 시스템과 본래 BE 를 복제하였고 GRUB 메뉴를 단일 커맨드로 업데이트 하였습니다.

설정 살펴보기

좀 더 자세히 살펴 보겠습니다. 여러분은 beadmopensolaris 의 모든 파일 시스템의 읽기 전용 파일 시스템 이미지인 스냅샷을 만들었음을 알 수 있습니다:


jack@opensolaris:~$ zfs list -r rpool/ROOT/opensolaris
NAME USED AVAIL REFER MOUNTPOINT
rpool/ROOT/opensolaris 4.68G 24.6G 4.06G legacy
rpool/ROOT/opensolaris@test_be 24K - 4.06G -
rpool/ROOT/opensolaris/MyData 18K 24.6G 18K /MyData
rpool/ROOT/opensolaris/MyData@test_be 0 - 18K -
rpool/ROOT/opensolaris/opt 644M 24.6G 644M /opt
rpool/ROOT/opensolaris/opt@test_be 0 - 644M -


스냅샷은 스냅샷 이름 뒤에 따라오는 @ 구분자로 구분 가능하고 위에서는 test_be 입니다. 모든 스냅샷을 캡춰한 다음 beadm 은 본래 BE 를 복제 하기 위해 이 스냅샷을 사용합니다:


jack@opensolaris:~$ zfs list -r rpool/ROOT/test_be
NAME USED AVAIL REFER MOUNTPOINT
rpool/ROOT/test_be 75.5K 24.6G 4.06G legacy
rpool/ROOT/test_be/MyData 0 24.6G 18K /MyData
rpool/ROOT/test_be/opt 0 24.6G 644M /opt


마지막으로 beadm 은 또한 GRUB 메뉴를 그것에 맞게 수정합니다:

 
jack@opensolaris:~$ more /rpool/boot/grub/menu.lst
splashimage /boot/grub/splash.xpm.gz
background 215ECA
timeout 30
default 0
#---------- ADDED BY BOOTADM - DO NOT EDIT ----------
title OpenSolaris 2008.11 snv_101b_rc2 X86
findroot (pool_rpool,0,a)
splashimage /boot/solaris.xpm
foreground d25f00
background 115d93
bootfs rpool/ROOT/opensolaris
kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS,console=graphics
module$ /platform/i86pc/$ISADIR/boot_archive
#---------------------END BOOTADM--------------------
 
title OpenSolaris 2008.11 snv_101b_rc2 X86 text boot
findroot (pool_rpool,0,a)
bootfs rpool/ROOT/opensolaris
kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS
module$ /platform/i86pc/$ISADIR/boot_archive
 
title test_be
findroot (pool_rpool,0,a)
splashimage /boot/solaris.xpm
foreground d25f00
background 115d93
bootfs rpool/ROOT/test_be
kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS,console=graphics
module$ /platform/i86pc/$ISADIR/boot_archive
#============ End of LIBBE entry =============

 

이 시점 부터 test_beopensolaris BE 의 정확한 복제 버전입니다. 여러분이 //opt 디렉토리를 수정해 주었기 때문에 좀 더 많은 디스크 용량을 소비할 것입니다.

부트 환경들 관리하기

원래의 BE 로 돌아가기 위해 재부팅을 하고 GRUB 메뉴에서 본래 BE 를 선택합니다.=

만약 BE 가 더이상 필요가 없다면 삭제합니다:

1. root 권한으로 아래의 커맨드를 입력합니다:


jack@opensolaris:~# beadm destroy test_be

beadm 은 확인을 요구합니다:

Are you sure you want to destroy test_be? This action cannot be undone (y/[n]):

2. y 를 눌러서 확인 합니다.

이후에 beadmtest_be 의 모든 스냅샷과 복제본들을 삭제하고 ZFS 풀이 그 즉시 공간을 회수 합니다. 마지막으로 beadm 은 GRUB 메뉴를 수정합니다.

결론

오픈솔라리스 beadm 유틸리티는 여러분의 시스템에서 복수개의 부트 환경을 관리할 수 있는 간편하고 유연하고 다양한 기능들을 제공 합니다. 좀 더 자세한 정보는 beadm Command Reference documentation 을 참고하시기 바랍니다.

이 글의 영문 원본은
Working With Multiple Boot Environments on the OpenSolaris OS
에서 보실 수 있습니다.

"오픈솔라리스" 카테고리의 다른 글

2009/01/16 16:16 2009/01/16 16:16

TRACKBACK :: http://blog.sdnkorea.com/blog/trackback/714

댓글을 달아 주세요

[로그인][오픈아이디란?]

◀ Prev 1  ... 154 155 156 157 158 159 160 161 162  ... 806  Next ▶