| 탐색 링크 건너뛰기 | |
| 인쇄 보기 종료 | |
|
시스템 관리 설명서: Oracle Solaris Containers-리소스 관리 및 Oracle Solaris 영역 Oracle Solaris 10 1/13 Information Library (한국어) |
8. FSS(Fair Share Scheduler)(개요)
9. FSS(Fair Share Scheduler) 관리(작업)
10. 리소스 상한값 지원 데몬을 사용한 물리적 메모리 제어(개요)
15. Solaris Management Console의 리소스 제어 기능
Solaris 10 8/07: 영역 구성에서 등록 정보 유형을 지우는 방법
Solaris 10 3/05 - Solaris 10 11/06: 영역 구성에서 등록 정보 유형을 수정하는 방법
Solaris 10 8/07: 영역 이름을 바꾸는 방법
전역 영역의 zone.cpu-shares를 설정하는 방법
zonecfg 명령을 사용하여 영역 구성 되돌리기 또는 제거
19. 비전역 영역 설치, 정지, 복제 및 제거 정보(개요)
20. 비전역 영역 설치, 부트, 정지, 제거 및 복제(작업)
24. Oracle Solaris 10 9/10: 물리적 Oracle Solaris 시스템을 영역으로 마이그레이션(작업)
25. 영역이 설치된 Oracle Solaris 시스템의 패키지 및 패치 정보(개요)
26. 영역이 설치된 Oracle Solaris 시스템에서 패키지 및 패치 추가 및 제거(작업)
29. 비전역 영역이 설치된 Oracle Solaris 10 시스템 업그레이드
30. 그 밖의 기타 Oracle Solaris 영역 문제 해결
34. lx 브랜드 영역 설치, 부트, 정지, 복제 및 제거 정보(개요)
35. lx 브랜드 영역 설치, 부트, 정지, 제거 및 복제(작업)
zonecfg(1M) 매뉴얼 페이지에 설명된 zonecfg 명령을 사용하여 다음 작업을 수행할 수 있습니다.
영역 구성 만들기
필요한 모든 정보가 있는지 확인
비전역 영역 구성 커밋
또한 zonecfg 명령을 사용하여 전역 영역의 리소스 관리 설정을 영구적으로 지정할 수도 있습니다.
zonecfg 유틸리티를 사용하여 영역을 구성할 때 revert 하위 명령을 사용하여 리소스에 대한 설정을 실행 취소할 수 있습니다. 영역 구성을 되돌리는 방법을 참조하십시오.
시스템에 여러 영역을 구성하는 스크립트는 여러 영역 구성 스크립트에 나와 있습니다.
비전역 영역의 구성을 표시하려면 비전역 영역의 구성 표시 방법을 참조하십시오.
고유 비전역 영역을 만드는 데 필요한 필수 요소는 zonename 및 zonepath 등록 정보입니다. 기타 리소스 및 등록 정보는 선택 사항입니다. 또한 일부 선택적 리소스는 옵션을 선택해야 합니다. 예를 들어 dedicated-cpu 리소스를 사용할 것인지 또는 capped-cpu 리소스를 사용할 것인지를 결정해야 합니다. 사용 가능한 zonecfg 등록 정보 및 리소스에 대한 자세한 내용은 영역 구성 데이터를 참조하십시오.
이 절차를 수행하려면 전역 영역의 전역 관리자여야 합니다.
역할을 만든 다음 사용자에게 지정하려면 시스템 관리 설명서: 기본 관리의 RBAC와 함께 Solaris 관리 도구 사용(작업 맵)을 참조하십시오.
이 예제 절차에서는 my-zone이라는 이름을 사용합니다.
global# zonecfg -z my-zone
이 영역을 처음으로 구성한 경우 다음 시스템 메시지가 표시됩니다.
my-zone: No such zone configured Use 'create' to begin configuring a new zone.
이 절차에서는 기본 설정을 사용합니다.
zonecfg:my-zone> create
zonecfg:my-zone> set zonepath=/export/home/my-zone
Solaris 10 10/08 이전 릴리스의 경우에는 zonepath를 ZFS에 배치하지 마십시오.
true로 설정하는 경우, 전역 영역이 부트될 때 영역이 자동으로 부트됩니다. 자동 부트 영역의 경우 영역 서비스 svc:/system/zones:default도 사용으로 설정해야 합니다. 기본값은 false입니다.
zonecfg:my-zone> set autoboot=true
zonecfg:my-zone> set bootargs="-m verbose"
zonecfg:my-zone> add dedicated-cpu
zonecfg:my-zone:dedicated-cpu> set ncpus=1-2
zonecfg:my-zone:dedicated-cpu> set importance=10
기본값은 1입니다.
zonecfg:my-zone:dedicated-cpu> end
zonecfg:my-zone> set limitpriv="default,sys_time"
이 행은 기본 권한 세트에 시스템 시계를 설정할 수 있는 권한을 추가합니다.
zonecfg:my-zone> set scheduling-class=FSS
zonecfg:my-zone> add capped-memory
zonecfg:my-zone:capped-memory> set physical=50m
zonecfg:my-zone:capped-memory> set swap=100m
zonecfg:my-zone:capped-memory> set locked=30m
zonecfg:my-zone:capped-memory> end
zonecfg:my-zone> add fs
zonecfg:my-zone:fs> set dir=/usr/local
zonecfg:my-zone:fs> set special=/opt/zones/my-zone/local
비전역 영역에서 /usr/local 파일 시스템은 읽기 및 쓰기가 가능하게 설정됩니다.
zonecfg:my-zone:fs> set type=lofs
이 유형은 커널이 파일 시스템과 상호 작용하는 방식을 지정합니다.
zonecfg:my-zone:fs> end
이 단계를 두 번 이상 수행하여 둘 이상의 파일 시스템을 추가할 수 있습니다.
zonecfg:my-zone> set hostid=80f0c086
zonecfg:my-zone> add dataset
zonecfg:my-zone> set name=tank/sales
zonecfg:my-zone> end
전체 루트 영역에는 공유 파일 시스템이 없으므로 전체 루트 영역을 만드는 데 이 단계를 수행하지 마십시오. 디스크 공간 요구 사항에서 전체 루트 영역에 대한 설명을 참조하십시오.
zonecfg:my-zone> add inherit-pkg-dir
zonecfg:my-zone:inherit-pkg-dir> set dir=/opt/sfw
주 - 패키지를 적용하기 위해 영역의 패키징 데이터베이스가 업데이트됩니다. zoneadm을 사용하여 영역을 설치한 후에는 이러한 리소스를 수정하거나 제거할 수 없습니다.
zonecfg:my-zone:inherit-pkg-dir> end
이 단계를 두 번 이상 수행하여 둘 이상의 공유 파일 시스템을 추가할 수 있습니다.
주 - 전체 루트 영역을 만들려고 하는데 inherit-pkg-dir을 사용하여 기본 공유 파일 시스템 리소스가 추가된 경우, 영역을 설치하기 전에 zonecfg를 사용하여 이러한 기본 inherit-pkg-dir 리소스를 제거해야 합니다.
zonecfg:my-zone> remove inherit-pkg-dir dir=/lib
zonecfg:my-zone> remove inherit-pkg-dir dir=/platform
zonecfg:my-zone> remove inherit-pkg-dir dir=/sbin
zonecfg:my-zone> remove inherit-pkg-dir dir=/usr
zonecfg:my-zone> set ip-type=exclusive
주 - 물리적 장치 유형만 add net 단계에서 지정됩니다.
zonecfg:my-zone> add net
zonecfg:my-zone:net> set address=192.168.0.1
zonecfg:my-zone:net> set physical=hme0
zonecfg:my-zone:net> set defrouter=10.0.0.1
zonecfg:my-zone:net> end
이 단계를 두 번 이상 수행하여 둘 이상의 네트워크 인터페이스를 추가할 수 있습니다.
zonecfg:my-zone> add device
zonecfg:my-zone:device> set match=/dev/sound/*
zonecfg:my-zone:device> end
둘 이상의 장치를 추가하기 위해 이 단계를 여러 번 수행할 수 있습니다.
zonecfg:my-zone> set max-sem-ids=10485200
둘 이상의 리소스 제어를 추가하기 위해 이 단계를 여러 번 수행할 수 있습니다.
zonecfg:my-zone> add attr
zonecfg:my-zone> verify
zonecfg:my-zone> commit
zonecfg:my-zone> exit
프롬프트에서 명시적으로 commit를 입력하지 않은 경우에도 exit를 입력하거나 EOF가 발생할 때 commit가 자동으로 시도됩니다.
참고 - zonecfg 명령은 여러 하위 명령을 지원합니다. 동일한 셸 호출에서 각 명령을 따옴표로 묶고 세미콜론으로 구분하여 입력하면 됩니다.
global# zonecfg -z my-zone "create ; set zonepath=/export/home/my-zone"
커밋한 영역 구성을 설치하려면 영역 설치 및 부트를 참조하십시오.
이 스크립트를 사용하여 시스템에서 여러 영역을 구성하고 부트할 수 있습니다. 이 스크립트는 다음 매개변수를 사용합니다.
만들 영역의 수
zonename 접두어
기본 디렉토리로 사용할 디렉토리
스크립트를 실행하려면 전역 영역의 전역 관리자여야 합니다. 전역 관리자는 전역 영역에서 수퍼 유저 권한을 갖거나 기본 관리자 역할을 수행합니다.
#!/bin/ksh
#
# Copyright 2006 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
#ident "%Z%%M% %I% %E% SMI"
if [[ -z "$1" || -z "$2" || -z "$3" ]]; then
echo "usage: $0 <#-of-zones> <zonename-prefix> <basedir>"
exit 2
fi
if [[ ! -d $3 ]]; then
echo "$3 is not a directory"
exit 1
fi
nprocs=`psrinfo | wc -l`
nzones=$1
prefix=$2
dir=$3
ip_addrs_per_if=`ndd /dev/ip ip_addrs_per_if`
if [ $ip_addrs_per_if -lt $nzones ]; then
echo "ndd parameter ip_addrs_per_if is too low ($ip_addrs_per_if)"
echo "set it higher with 'ndd -set /dev/ip ip_addrs_per_if <num>"
exit 1
fi
i=1
while [ $i -le $nzones ]; do
zoneadm -z $prefix$i list > /dev/null 2>&1
if [ $? != 0 ]; then
echo configuring $prefix$i
F=$dir/$prefix$i.config
rm -f $F
echo "create" > $F
echo "set zonepath=$dir/$prefix$i" >> $F
zonecfg -z $prefix$i -f $dir/$prefix$i.config 2>&1 | \
sed 's/^/ /g'
else
echo "skipping $prefix$i, already configured"
fi
i=`expr $i + 1`
done
i=1
while [ $i -le $nzones ]; do
j=1
while [ $j -le $nprocs ]; do
if [ $i -le $nzones ]; then
if [ `zoneadm -z $prefix$i list -p | \
cut -d':' -f 3` != "configured" ]; then
echo "skipping $prefix$i, already installed"
else
echo installing $prefix$i
mkdir -pm 0700 $dir/$prefix$i
chmod 700 $dir/$prefix$i
zoneadm -z $prefix$i install > /dev/null 2>&1 &
sleep 1 # spread things out just a tad
fi
fi
i=`expr $i + 1`
j=`expr $j + 1`
done
wait
done
i=1
while [ $i -le $nzones ]; do
echo setting up sysid for $prefix$i
cfg=$dir/$prefix$i/root/etc/sysidcfg
rm -f $cfg
echo "network_interface=NONE {hostname=$prefix$i}" > $cfg
echo "system_locale=C" >> $cfg
echo "terminal=xterms" >> $cfg
echo "security_policy=NONE" >> $cfg
echo "name_service=NONE" >> $cfg
echo "timezone=US/Pacific" >> $cfg
echo "root_password=Qexr7Y/wzkSbc" >> $cfg # 'l1a'
i=`expr $i + 1`
done
i=1
para=`expr $nprocs \* 2`
while [ $i -le $nzones ]; do
date
j=1
while [ $j -le $para ]; do
if [ $i -le $nzones ]; then
echo booting $prefix$i
zoneadm -z $prefix$i boot &
fi
j=`expr $j + 1`
i=`expr $i + 1`
done
wait
done
이 절차를 수행하려면 전역 영역의 전역 관리자여야 합니다.
역할을 만든 다음 사용자에게 지정하려면 시스템 관리 설명서: 기본 관리의 RBAC와 함께 Solaris 관리 도구 사용(작업 맵)을 참조하십시오.
global# zonecfg -z zonename info