Solaris container_zone 구성방법

시스템운영/Solaris|2011. 8. 8. 23:47

해당 내용은 Solaris 10 Sparc 10/08 updata6 으로 작성되었으며..

늘 그렇듯! update 버전이 나올시 내용 및 일부 명령어가 바뀔수 있삼.

또한 해당 글은 100% 민재님이 작성함..

 

*시스템 사양
V440, 2CPU, 4GMemory, 73GDisk * 4, Solaris 10 Sparc 10/08 updata6

0. 주요 확인 명령어
#zoneadm list -cv => 존의 상태 확인
#zoneadm -z zone boot => zone 이름을 가진 존을 부팅
#zoneadm -z zone halt => zone 이름을 가진 존을 종료
#zlogin -C zone => zone 이름을 가진 존으로 접속 (종료는 ~.)

#zonecfg -z zone(존이름)
 =>info 설정정보 전체 출력
 =>set or help 를 치면 사용할수 있는 명령어가 출력
 (전역) zonename
 (전역) zonepath
 (전역) brand
 (전역) autoboot
 (전역) bootargs
 (전역) pool
 (전역) limitpriv
 (전역) scheduling-class
 (전역) ip-type
 (전역) max-lwps
 (전역) max-shm-memory
 (전역) max-shm-ids
 (전역) max-msg-ids
 (전역) max-sem-ids
 (전역) cpu-shares
 fs  dir, special, raw, type
 inherit-pkg-dir dir
 net  address, physical, defrouter
 device  match
 rctl  name, value
 attr  name, type, value
 dataset  name
 dedicated-cpu ncpus, importance
 capped-cpu ncpus
 capped-memory physical, swap, locked

1. 존이 있는지 확인한다.
# zoneadm list -cv
  ID NAME             STATUS     PATH                           BRAND    IP   
   0 global           running    /                              native   shared

2. 존이 생성될 경로를 만들고 퍼미션은 반드시 700으로 설정한다.
# mkdir /zone
# chmod 700 /zone

3. 존을 새롭게 생성합니다.
# zonecfg -z zone
zone: 그런 영역은 구성되지 않음
새 영역 구성을 시작하려면 'create'을(를) 사용하십시오.
zonecfg:zone> create => 새영역을 구성합니다.
zonecfg:zone> set zonepath=/zone =>존이 저장될 경로를 지정합니다.
zonecfg:zone> set autoboot=true =>자동 부팅될지 여부에 대한 숼정

#여기부터는 옵션#
#1-1 inherit-pkg-dir 사용
inherit-pkg-dir을 추가하면 Global 의 있는 파일자원공유하게 된다.
문제점은 Application 설정시 대부분 /usr/local 에 추가하게 되는데
Zone은 Global Zone에 대해 쓰기 권한이 없어 설치를 못한다는것!
기본으로 /usr 등이 추가되어 있는듯 하다.
아래는 /opt /lib /platform /sbin /usr 등을 추가했다.(공유하겠단뜻)
기본값이긴 하지만 권장하지 않는다.
zonecfg:zone> add inherit-pkg-dir
zonecfg:zone:inherit-pkg-dir> set dir=/opt
zonecfg:zone:inherit-pkg-dir> end
zonecfg:zone> add inherit-pkg-dir
zonecfg:zone:inherit-pkg-dir> set dir=/lib
zonecfg:zone:inherit-pkg-dir> set dir=/platform
zonecfg:zone:inherit-pkg-dir> set dir=/sbin
zonecfg:zone:inherit-pkg-dir> set dir=/usr
zonecfg:zone:inherit-pkg-dir> end

#1-2 inherit-pkg-dir 제거(Global 영역과 분리)
경험상 권장한다 (install 시 파일복사하는데 시간이 많이 걸림)
zonecfg:zone>remove inherit-pkg-dir

#2-1 IP세팅(고정아이피)
이상황에서는 ce1 사용할 인터페이스를 추가했지만 zone 및 Global 에서는
ce0:1 가상아이피로 구성된다.
Global Ce0 사용 Zone이 Ce0사용 => Zone 이 Ce0:1로 자동변환 둘다 사용가능
Global Ce0 사용 Zone이 Ce1사용 => Zone 이 Ce1:1로 변환되며 전제적으로 Global에서
                                          Ce1이 활성화상태로 있어야함(127.0.0.1 localhost 로 하면좋을듯)
zonecfg:zone> add net =>이더넷 추가
zonecfg:zone:net> set address=192.168.141.10/24 =>아이피 설정
zonecfg:zone:net> set physical=ce1 =>사용할 인터페이스 설정
zonecfg:zone:net> end =>종료
zonecfg:zone> verify
zonecfg:zone> commit
zonecfg:zone> exit

#2-2 DHCP사용
Global 과 Zone 이 동시에 DHCP 사용을 원할경우 2개의 이더넷 포트가 필요하다.
zonecfg:zone> set ip-type=exclusive => shared가 기본값이며 exclusive는 DHCP 설정을 위해 선택한다.
zonecfg:zone:net> set physical=ce0
zonecfg:zone:net> end

#3 추가 디스크 구성
Zone 에서는 format 등의 명령어가 먹히질 않는다 따라서 Global Zone의 자원의 디스크를
Zone 으로 매핑시켜 Zone에서 사용이 가능하게 해야 한다.
zonecfg:zone> add fs =>파일시스템 추가
zonecfg:zone:fs> set dir=/data1 => zone내에서 마운트될 경로
zonecfg:zone:fs> set special=/dev/dsk/c1t1d0s0
zonecfg:zone:fs> set raw=/dev/rdsk/c1t1d0s0
zonecfg:zone:fs> set type=ufs
zonecfg:zone:fs> set options=logging
zonecfg:zone:fs> end
*Zone이 완성후에 디스크 추가시 적용할려면 존을 halt 후 다시 Boot를 해야함

#4 자원 분리 및 한계치 지정
4-1 zone에서 최대 CPU사용을 1개 이상사용못하게 설정
zonecfg:zone> set dedicated-cpu
zonecfg:zone:dedicated-cpu> set ncpus=1
zonecfg:zone:dedicated-cpu> end
zonecfg:zone> verify

4-2 Swap 및 물리적 메모리 한계치 설정
zonecfg:zone> add capped-memory
zonecfg:zone:capped-memory> set physical=2G(필수 스케일 접미어(K, M, G 또는 T)를 가진 양의 수가 여기 나와야 합니다.
zonecfg:zone:capped-memory> set swap=4G
zonecfg:zone:capped-memory> end

 


_______________________설정완료_______________________________

zonecfg:zone> verify => 유효성 검사(설정 값이 이상이 없는지)
zonecfg:zone> commit => 확인
zonecfg:zone> exit => 설정 종료

zonecfg:zone> info => 설정값 확인
_______________________________________________________________________
zonecfg:zone> info
zonename: zone
zonepath: /zone
brand: native
autoboot: true
bootargs:
pool:
limitpriv:
scheduling-class:
ip-type: shared
fs:
 dir: /data1
 special: /dev/dsk/c1t1d0s0
 raw: /dev/rdsk/c1t1d0s0
 type: ufs
 options: [logging]
net:
 address: 44.44.44.100/24
 physical: ce1
 defrouter이(가) 지정되지 않았습니다.
dedicated-cpu:
 ncpus: 1
capped-memory:
 physical: 2G
 [swap: 4G]
rctl:
 name: zone.max-swap
 value: (priv=privileged,limit=4294967296,action=deny)
zonecfg:zone> exit
_______________________________________________________________________
zonecfg:zone> info
zonename: zone
zonepath: /zone
brand: native
autoboot: true
bootargs:
pool:
limitpriv:
scheduling-class:
ip-type: exclusive
net:
 address이(가) 지정되지 않았습니다.
 physical: ce1
 defrouter이(가) 지정되지 않았습니다.
dedicated-cpu:
 ncpus: 1
capped-memory:
 physical: 2G
 [swap: 4G]
rctl:
 name: zone.max-swap
 value: (priv=privileged,limit=4294967296,action=deny)
zonecfg:zone>
_____________________________________________________________________

 

4. 구성이 완료된 화면
# zoneadm list -cv
  ID NAME             STATUS     PATH                           BRAND    IP   
   0 global           running    /                              native   shared
   - zone             configured /zone                          native   shared

 

5-1. Zone install (inherit-pkg-dir 공유시 15분정도 걸림)
# zoneadm -z zone install
Preparing to install zone <zone>.
Creating list of files to copy from the global zone.
Copying <2904> files to the zone.
Initializing zone product registry.
Determining zone package initialization order.
Preparing to initialize <1295> packages on the zone.
Initializing package <0> of <1295>: percent complete: 0%        
Initializing package <1> of <1295>: percent complete: 0%        
-중간 생략-     
Initializing package <1294> of <1295>: percent complete: 99%        
Initialized <1295> packages on zone.                               
Zone <zone> is initialized.
The file </zone/root/var/sadm/system/logs/install_log> contains a log of the zone installation.


5-2. Zone install (inherit-pkg-dir 제거시 1시간 이상 걸림)
# zoneadm -z zone install
Preparing to install zone <zone>.
Creating list of files to copy from the global zone.
Copying <147787> files to the zone.
-이메세지후 파일을 복사하는데 화면에 아무런 출력값이 없음-
Initializing zone product registry.
Determining zone package initialization order.
Preparing to initialize <1295> packages on the zone.

Initializing package <0> of <1295>: percent complete: 0%        
Initializing package <1> of <1295>: percent complete: 0%        
-중간생략-        
Initializing package <1294> of <1295>: percent complete: 99%        
Initialized <1295> packages on zone.                               
Zone <zone> is initialized.
The file </zone/root/var/sadm/system/logs/install_log> contains a log of the zone installation.

 


6. Zone Install이 완료된 상태!
# zoneadm list -cv
  ID NAME             STATUS     PATH                           BRAND    IP   
   0 global           running    /                              native   shared
   - zone             installed  /zone                          native   shared

7. Zone 첫 부팅시작 및 Zone 으로 접속
# zoneadm -z zone boot => 존 첫 부팅
# zlogin -C zone => 존으로 첫 접속

8.부팅히면 첫 서비스 구성이 이루어 지고 사용자 환경설정이 아래와 같이 진행된다.
아래의 화면에는 나오지 않았지만 네임서버 구성 및 Root 사용자 패스워드등도 설정이 진행된다.
Select a Language

  0. English
  1. es
  2. fr
  3. Korean

Please make a choice (0 - 3), or press h or ? for help: 3


Select a Locale

  0. Korean EUC
  1. Korean EUC
  2. Korean UTF-8
  3. Korean UTF-8
  4. Go Back to Previous Screen

Please make a choice (0 - 4), or press h or ? for help: 0

사용 중인 단말기는 어떤 유형입니까?
 1) ANSI 표준 CRT
 2) DEC VT52
 3) DEC VT100
 4) Heathkit 19
 5) Lear Siegler ADM31
 6) PC 콘솔
 7) Sun 명령어 도구
 8) Sun 워크스테이션
 9) 텔레비디오 910
 10) 텔레비디오 925
 11) Wyse 모델 50
 12) X 터미널 에뮬레이터 (xterms)
 13) CDE 단말기 에뮬레이터(dtterm)
 14) 기타
선택 번호를 입력하고 Return을 누르십시오: 3

Creating new rsa public/private host key pair
Creating new dsa public/private host key pair
Configuring network interface addresses: ce1.
rebooting system due to change(s) in /etc/default/init

[알림: 영역 재부트]
SunOS Release 5.10 Version Generic_137137-09 64-bit
Copyright 1983-2008 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
Hostname: zone
Reading ZFS config: done.
zone console login: root
Password:
Jan  7 15:52:53 zone login: ROOT LOGIN /dev/console
Sun Microsystems Inc.   SunOS 5.10      Generic January 2005
#


------------------------------------------------------
설정이 모두 완료되었다.

 

 


 

댓글()