JavaScript is required to for searching.
탐색 링크 건너뛰기
인쇄 보기 종료
Oracle Solaris 11.1 관리: Oracle Solaris 영역, Oracle Solaris 10 영역 및 리소스 관리     Oracle Solaris 11.1 Information Library (한국어)
search filter icon
search icon

문서 정보

머리말

제1부Oracle Solaris 리소스 관리

1.  리소스 관리 소개

2.  프로젝트 및 작업(개요)

3.  프로젝트 및 작업 관리

4.  확장 계정(개요)

5.  확장 계정 관리(작업)

6.  리소스 제어(개요)

7.  리소스 제어 관리(작업)

8.  FSS(Fair Share Scheduler)(개요)

9.  FSS(Fair Share Scheduler) 관리(작업)

10.  리소스 상한값 지원 데몬을 사용한 물리적 메모리 제어(개요)

11.  리소스 상한값 지원 데몬 관리(작업)

12.  리소스 풀(개요)

13.  리소스 풀 만들기 및 관리(작업)

14.  리소스 관리 구성 예

제2부Oracle Solaris 영역

15.  Oracle Solaris 영역 소개

16.  비전역 영역 구성(개요)

17.  비전역 영역 계획 및 구성(작업)

비전역 영역 계획 및 구성(작업 맵)

현재 시스템 설정 평가

디스크 공간 요구 사항

영역 크기 제한

영역 호스트 이름과 네트워크 요구 사항 정의

영역 호스트 이름

공유 IP 영역 네트워크 주소

IPv4 영역 네트워크 주소

IPv6 영역 네트워크 주소

배타적 IP 영역 네트워크 주소

파일 시스템 구성

비전역 영역 구성 만들기, 수정 및 삭제(작업 맵)

영역 구성, 확인 및 커밋

영역 구성 방법

다음 단계

여러 영역 구성 스크립트

비전역 영역의 구성 표시 방법

zonecfg 명령을 사용하여 영역 구성 수정

영역 구성의 리소스 유형 수정 방법

영역 구성의 등록 정보를 지우는 방법

영역의 이름을 바꾸는 방법

영역에 전용 장치 추가 방법

전역 영역의 zone.cpu-shares를 설정하는 방법

zonecfg 명령을 사용하여 영역 구성 되돌리기 또는 제거

영역 구성을 되돌리는 방법

영역 구성 삭제 방법

18.  비전역 영역, 설치, 종료, 정지 및 복제 정보(개요)

19.  비전역 영역 설치, 부트, 종료, 정지, 제거 및 복제(작업)

20.  비전역 영역 로그인(개요)

21.  비전역 영역에 로그인(작업)

22.  영역 마이그레이션 및 zonep2vchk 도구 정보

23.  Oracle Solaris 시스템 마이그레이션 및 비전역 영역(작업) 마이그레이션

24.  영역이 설치된 Oracle Solaris 11.1 시스템의 자동 설치 및 패키지 정보

25.  Oracle Solaris 영역 관리(개요)

26.  Oracle Solaris 영역 관리(작업)

27.  변경할 수 없는 영역 구성 및 관리

28.  그 밖의 기타 Oracle Solaris 영역 문제 해결

제3부Oracle Solaris 10 영역

29.  Oracle Solaris 10 영역 소개

30.  Oracle Solaris 10 시스템 액세스 및 아카이브 만들기

31.  (옵션) Oracle Solaris 10 영역으로 고유 비전역 영역 마이그레이션

32.  solaris10 브랜드 영역 구성

33.  solaris10 브랜드 영역 설치

34.  영역 부트, 로그인 및 영역 마이그레이션

용어집

색인

영역 구성, 확인 및 커밋

zonecfg(1M) 매뉴얼 페이지에서 설명되어 있는 zonecfg 명령은 다음 작업을 수행하는 데 사용됩니다.

또한 zonecfg 명령을 사용하여 전역 영역의 리소스 관리 설정을 영구적으로 지정할 수도 있습니다.

zonecfg 유틸리티를 사용하여 영역을 구성할 때 revert 하위 명령을 사용하여 리소스에 대한 설정을 실행 취소할 수 있습니다. 영역 구성을 되돌리는 방법을 참조하십시오.

시스템에 여러 영역을 구성하는 스크립트는 여러 영역 구성 스크립트에 나와 있습니다.

비전역 영역의 구성을 표시하려면 비전역 영역의 구성 표시 방법을 참조하십시오.

영역 구성 방법

비전역 영역을 만드는 데 필요한 필수 요소는 zonename 등록 정보와 zonepath 등록 정보입니다. 기타 리소스 및 등록 정보는 선택 사항입니다. 또한 일부 선택적 리소스는 옵션을 선택해야 합니다. 예를 들어 dedicated-cpu 리소스를 사용할 것인지 또는 capped-cpu 리소스를 사용할 것인지를 결정해야 합니다. 사용 가능한 zonecfg 등록 정보 및 리소스에 대한 자세한 내용은 영역 구성 데이터를 참조하십시오.

이 절차를 수행하려면 전역 관리자이거나 전역 영역에서 적합한 권한을 부여 받은 사용자여야 합니다.

  1. 루트 또는 동등한 역할의 사용자로 로그인합니다.
  2. 선택한 영역 이름을 사용하여 영역 구성을 설정합니다.

    이 예제 절차에서는 my-zone이라는 이름을 사용합니다.

    global# zonecfg -z my-zone

    이 영역을 처음으로 구성한 경우 다음 시스템 메시지가 표시됩니다.

    my-zone: No such zone configured
    Use 'create' to begin configuring a new zone.
  3. 새 영역 구성을 만듭니다.

    이 절차에서는 기본 설정을 사용합니다.

    zonecfg:my-zone> create
    create: Using system default template 'SYSdefault'
  4. 이 절차에서는 영역 경로 /zones/my-zone을 설정합니다.
    zonecfg:my-zone> set zonepath=/zones/my-zone

    영역이 ZFS 데이터 세트에 있어야 합니다. ZFS 데이터 세트는 영역을 설치하거나 연결할 때 자동으로 생성됩니다. ZFS 데이터 세트를 만들 수 없을 경우 영역이 설치되거나 연결되지 않습니다. 영역 경로의 상위 디렉토리가 존재할 경우 해당 상위 디렉토리가 마운트된 데이터 세트의 마운트 지점이어야 합니다.

  5. 자동 부트 값을 설정합니다.

    true로 설정하는 경우, 전역 영역이 부트될 때 영역이 자동으로 부트됩니다. 기본값은 false입니다. 자동 부트 영역의 경우 영역 서비스 svc:/system/zones:default도 사용으로 설정해야 합니다. 이 서비스는 기본적으로 사용으로 설정됩니다.

    zonecfg:my-zone> set autoboot=true
  6. 영역에 대한 지속 부트 인수를 설정합니다.
    zonecfg:my-zone> set bootargs="-m verbose"
  7. 이 영역에 하나의 CPU를 전용으로 지정합니다.
    zonecfg:my-zone> add dedicated-cpu
    1. CPU 수를 설정합니다.
      zonecfg:my-zone:dedicated-cpu> set ncpus=1-2
    2. (옵션) 중요도를 설정합니다.
      zonecfg:my-zone:dedicated-cpu> set importance=10

      기본값은 1입니다.

    3. 지정을 종료합니다.
      zonecfg:my-zone:dedicated-cpu> end
  8. 기본 권한 세트를 수정합니다.
    zonecfg:my-zone> set limitpriv="default,sys_time"

    이 행은 기본 권한 세트에 시스템 시계를 설정할 수 있는 권한을 추가합니다.

  9. 예약 클래스를 FSS로 설정합니다.
    zonecfg:my-zone> set scheduling-class=FSS
  10. 메모리 상한값을 추가합니다.
    zonecfg:my-zone> add capped-memory
    1. 메모리 상한값을 설정합니다.
      zonecfg:my-zone:capped-memory> set physical=1g
    2. 스왑 메모리 상한값을 설정합니다.
      zonecfg:my-zone:capped-memory> set swap=2g
    3. 고정 메모리 상한값을 설정합니다.
      zonecfg:my-zone:capped-memory> set locked=500m
    4. 메모리 상한값 지정을 완료합니다.
      zonecfg:my-zone:capped-memory> end

    주 - capped-memory 리소스를 사용하려면 전역 영역에 resource-cap 패키지가 설치되어 있어야 합니다.


  11. 파일 시스템을 추가합니다.
    zonecfg:my-zone> add fs
    1. 이 절차에서는 파일 시스템의 마운트 지점을 /usr/local로 설정합니다.
      zonecfg:my-zone:fs> set dir=/usr/local
    2. 전역 영역의 /opt/local이 구성 중인 영역의 /usr/local로 마운트되도록 지정합니다.
      zonecfg:my-zone:fs> set special=/opt/local

      비전역 영역에서 /usr/local 파일 시스템은 읽기 및 쓰기가 가능하게 설정됩니다.

    3. 이 절차에서는 파일 시스템 유형을 lofs로 지정합니다.
      zonecfg:my-zone:fs> set type=lofs

      이 유형은 커널이 파일 시스템과 상호 작용하는 방식을 지정합니다.

    4. 파일 시스템 지정을 완료합니다.
      zonecfg:my-zone:fs> end

    이 단계를 두 번 이상 수행하여 둘 이상의 파일 시스템을 추가할 수 있습니다.

  12. 필요할 경우 hostid를 설정합니다.
    zonecfg:my-zone> set hostid=80f0c086
  13. sales라는 ZFS 데이터 세트를 tank 저장소 풀에 추가합니다.
    zonecfg:my-zone> add dataset
    1. ZFS 데이터 세트 sales에 대한 경로를 지정합니다.
      zonecfg:my-zone> set name=tank/sales
    2. 데이터 세트 지정을 종료합니다.
      zonecfg:my-zone> end

    영역 관리자는 데이터 세트 내에서 스냅샷, 파일 시스템 및 볼륨을 만들고 삭제할 수 있습니다. 영역 관리자는 데이터 세트의 등록 정보를 수정하고 압축 및 암호화를 제어할 수 있습니다.

  14. 자동 VNIC를 사용하여 배타적 IP 영역을 만듭니다.
    zonecfg:my-zone> set ip-type=exclusive
    zonecfg:my-zone> add anet
    1. 생성될 링크의 기본 링크로 auto를 지정합니다.
      zonecfg:my-zone:anet> set lower-link=auto

      zoneadmd 데몬에서 영역이 부트될 때마다 VNIC가 생성될 링크를 자동으로 선택합니다. 데이터 링크를 선택할 경우 IPoIB 링크를 건너뜁니다.

    2. 지정을 종료합니다.
      zonecfg:my-zone:anet> end
  15. 장치를 추가합니다.
    zonecfg:my-zone> add device
    1. 이 절차에서는 장치 일치를 /dev/sound/*로 설정합니다.
      zonecfg:my-zone:device> set match=/dev/sound/*
    2. 장치 지정을 완료합니다.
      zonecfg:my-zone:device> end

    둘 이상의 장치를 추가하기 위해 이 단계를 여러 번 수행할 수 있습니다.

  16. IB 진단 도구 외의 OFUV 구성 요소에 대해 OFUV(Open Fabrics User Verbs) 장치를 추가합니다.
    zonecfg:my-zone> add device
    1. 이 절차에서는 장치 일치를 infiniband/ofs/*로 설정합니다.
      zonecfg:my-zone:device> set match=infiniband/ofs/*
    2. 장치 지정을 완료합니다.
      zonecfg:my-zone:device> end

    IB 진단 도구는 비전역 영역에서 지원되지 않습니다. 추가된 장치는 verbs 및 rdma_cm과 같은 OFUV의 구성 요소에서 사용할 수 있습니다.

    둘 이상의 장치를 추가하기 위해 이 단계를 여러 번 수행할 수 있습니다.

  17. IB 진단 도구 외의 OFUV 구성 요소에 대해 OFUV 장치를 추가합니다.
    zonecfg:my-zone> add device
    1. 이 절차에서는 장치 일치를 infiniband/hca/*로 설정합니다.
      zonecfg:my-zone:device> set match=infiniband/hca/*
    2. 장치 지정을 완료합니다.
      zonecfg:my-zone:device> end

    IB 진단 도구는 비전역 영역에서 지원되지 않습니다. 추가된 장치는 verbs 및 rdma_cm과 같은 OFUV의 구성 요소에서 사용할 수 있습니다.

    둘 이상의 장치를 추가하기 위해 이 단계를 여러 번 수행할 수 있습니다.

  18. format 명령을 사용한 디스크 레이블 지정을 허용하려면 전체 disk/LUN을 영역에 위임하고 allow-partition 등록 정보를 설정해야 합니다.
    zonecfg:my-zone> add device
    1. 이 절차에서는 장치 일치를 /dev/*dsk/c2t40d3*로 설정합니다.
      zonecfg:my-zone:device> set match=/dev/*dsk/c2t40d3*
    2. allow-partitiontrue로 설정합니다.
      zonecfg:my-zone:device> set allow-partition=true
    3. 장치 지정을 완료합니다.
      zonecfg:my-zone:device> end

    둘 이상의 장치를 추가하기 위해 이 단계를 여러 번 수행할 수 있습니다.

  19. 디스크에서 uscsi 작업을 허용하려면 allow-raw-io 등록 정보를 설정해야 합니다.
    zonecfg:my-zone> add device
    1. 이 절차에서는 장치 일치를 /dev/*dsk/c2t40d3*로 설정합니다.
      zonecfg:my-zone:device> set match=/dev/*dsk/c2t40d3*
    2. allow-raw-iotrue로 설정합니다.
      zonecfg:my-zone:device> set allow-raw-io=true
    3. 장치 지정을 완료합니다.
      zonecfg:my-zone:device> end

      주의

      주의 - 디스크의 영역에서 uscsi 작업을 수행할 수 있도록 허용하면 영역에서 디스크와 동일한 버스에 연결된 다른 장치에도 액세스할 수 있게 됩니다. 따라서 이 기능을 사용으로 설정하면 보안 위험이 발생할 수 있고 전역 영역 및 동일한 버스의 리소스를 사용하는 다른 영역이 외부 공격에 노출될 수 있습니다. uscsi(7I)를 참조하십시오.


    둘 이상의 장치를 추가하기 위해 이 단계를 여러 번 수행할 수 있습니다.

  20. 등록 정보 이름을 사용하여 영역 전체의 리소스 제어를 추가합니다.
    zonecfg:my-zone> set max-sem-ids=10485200

    둘 이상의 리소스 제어를 추가하기 위해 이 단계를 여러 번 수행할 수 있습니다.

  21. attr 리소스 유형을 사용하여 설명을 추가합니다.
    zonecfg:my-zone> add attr
    1. 이름을 comment로 설정합니다.
      zonecfg:my-zone:attr> set name=comment
    2. 유형을 string으로 설정합니다.
      zonecfg:my-zone:attr> set type=string
    3. 값을 해당 영역을 나타내는 설명으로 설정합니다.
      zonecfg:my-zone:attr> set value="This is my work zone."
    4. attr 리소스 유형 지정을 완료합니다.
      zonecfg:my-zone:attr> end
  22. 영역에 대한 영역 구성을 확인합니다.
    zonecfg:my-zone> verify
  23. 영역에 대한 영역 구성을 커밋합니다.
    zonecfg:my-zone> commit
  24. zonecfg 명령을 종료합니다.
    zonecfg:my-zone> exit

    프롬프트에서 명시적으로 commit를 입력하지 않은 경우에도 exit를 입력하거나 EOF가 발생할 때 commit가 자동으로 시도됩니다.

명령줄에서 여러 하위 명령 사용

참고 - zonecfg 명령은 여러 하위 명령을 지원합니다. 동일한 셸 호출에서 각 명령을 따옴표로 묶고 세미콜론으로 구분하여 입력하면 됩니다.

global# zonecfg -z my-zone "create ; set zonepath=/zones/my-zone"

공유 IP 영역의 경우 zonecfg net 리소스에 고정 주소만 지정할 수 있습니다. 명령줄에서 제공할 수 없습니다.


다음 단계

커밋한 영역 구성을 설치하려면 영역 설치 및 부트를 참조하십시오.

여러 영역 구성 스크립트

이 스크립트를 사용하여 시스템에서 여러 영역을 구성하고 부트할 수 있습니다. 생성된 영역은 anet 리소스를 포함하는 기본 배타적 IP 영역입니다.

스크립트를 실행하기 전에 SCI 도구를 실행하여 구성 프로파일을 만들어야 합니다.

global# sysconfig create-profile -o sc_config.xml

이 스크립트는 다음 매개변수를 사용합니다.

스크립트를 실행하려면 전역 영역에서 루트 권한을 가진 전역 관리자이거나, 적합한 권한 프로파일을 가진 사용자여야 합니다.

#!/bin/ksh
#
# Copyright 2006-2012 Oracle Corporation. All rights reserved.
# Use is subject to license terms.
#

#
# This script serves as an example of how to instantiate several zones
# with no administrative interaction.  Run the script with no arguments to
# get a usage message.  The general flow of the script is:
#
#   1) Parse and check command line arguments
#   2) Configure all zones that are not yet configured
#   3) Install the first zone, if needed
#   4) Create the remaining zones as clones of the first zone
#
# Upon successful completion, the requested number of zones will be
# been installed and booted.
#

export PATH=/usr/bin:/usr/sbin

me=$(basename $0)
function fail_usage {
    print -u2 "Usage:
    $me <#-of-zones> <zonename-prefix> <basedir> <sysconfig.xml>

Generate sysconfig.xml with:
    sysconfig create-profile -o sysconfig.xml

When running sysconfig, choose \"Automatically\" or \"None\" for network
configuration. The value entered for \"Computer Name\" will ignored:
each zone's nodename will be set to match the zone name."

    exit 2
}

function log {
    print "$(date +%T) $@"
}

function error {
    print -u2 "$me: ERROR: $@"
}

function get_zone_state {
    zoneadm -z "$1" list -p 2>/dev/null | cut -d: -f3
}

#
# Parse and check arguments
#
(( $# != 4 )) && fail_usage

# If $1 is not a number nzones will be set to 0.
integer nzones=$1
if (( nzones < 1 )); then
    error "Invalid number of zones \"$1\""
    fail_usage
fi
# Be sure that zonename prefix is an allowable zone name and not too long.
prefix=$2
if [[ $prefix != @([a-zA-Z0-9])*([-_.a-zA-Z0-9]) || ${#prefix} > 62 ]]; then
    error "Invalid zonename prefix"
    fail_usage
fi
# Be sure that basedir is an absolute path.  zoneadm will create the directory
# if needed.
dir=$3
if [[ $dir != /* ]]; then
    error "Invalid basedir"
    fail_usage
fi
# Be sure the sysconfig profile is readable and ends in .xml
sysconfig=$4
if [[ ! -f $sysconfig || ! -r $sysconfig || $sysconfig != *.xml ]]; then
    error "sysconfig profile missing, unreadable, or not *.xml"
    fail_usage
fi

#
# Create a temporary directory for all temp files
#
export TMPDIR=$(mktemp -d /tmp/$me.XXXXXX)
if [[ -z $TMPDIR ]]; then
    error "Could not create temporary directory"
    exit 1
fi
trap 'rm -rf $TMPDIR' EXIT

#
# Configure all of the zones
#
for (( i=1; i <= nzones; i++ )); do
    zone=$prefix$i
    state=$(get_zone_state $zone)
    if [[ -n $state ]]; then
        log "Skipping configuration of $zone: already $state"
        continue
    fi

    log "Configuring $zone"
    zonecfg -z "$zone" "create; set zonepath=$dir/$zone"
    if (( $? != 0 )); then
        error "Configuration of $zone failed"
        exit 1
    fi
done

#
# Install the first zone, then boot it for long enough for SMF to be
# initialized.  This will make it so that the first boot of all the clones
# goes much more quickly.
#
zone=${prefix}1
state=$(get_zone_state $zone)
if [[ $state == configured ]]; then
    log "Installing $zone"

    # Customize the nodename in the sysconfig profile
    z_sysconfig=$TMPDIR/$zone.xml
    search="<propval type=\"astring\" name=\"nodename\" value=\".*\"/>"
    replace="<propval type=\"astring\" name=\"nodename\" value=\"$zone\"/>"
    sed "s|$search|$replace|" $sysconfig > $z_sysconfig

    zoneadm -z $zone install -c $z_sysconfig
    if (( $? != 0 )); then
        error "Installation of $zone failed."
        rm -f $z_sysconfig
        exit 1
    fi
    rm -f $z_sysconfig
elif [[ $state != installed ]]; then
    error "Zone $zone is currently in the $state state."
    error "It must be in the installed state to be cloned."
    exit 1
fi
# Boot the zone no further than single-user.  All we really want is for
# svc:/system/manifest-import:default to complete.
log "Booting $zone for SMF manifest import"
zoneadm -z $zone boot -s
if (( $? != 0 )); then
    error "Failed to boot zone $zone"
    exit 1
fi
# This zlogin will return when manifest-import completes
log "Waiting for SMF manifest import in $zone to complete"
state=
while [[ $state != online ]]; do
    printf "."
    sleep 1
    state=$(zlogin $zone svcs -Ho state \
        svc:/system/manifest-import:default 2>/dev/null)
done
printf "\n"
log "Halting $zone"
zoneadm -z $zone halt
if (( $? != 0 )); then
    error "failed to halt $zone"
    exit 1
fi
firstzone=$zone

#
# Clone and boot the remaining zones
#
for (( i=2; i <= $nzones; i++ )); do
    zone=$prefix$i

    # Be sure that it needs to be installed
    state=$(get_zone_state $zone)
    if [[ $state != configured ]]; then
        log "Skipping installation of $zone: current state is $state."
        continue
    fi

    log "Cloning $zone from $firstzone"

    # Customize the nodename in the sysconfig profile
    z_sysconfig=$TMPDIR/$zone.xml
    search='<propval type="astring" name="nodename" value=".*"/>'
    replace='<propval type="astring" name="nodename" value="'$zone'"/>'
    sed "s|$search|$replace|" $sysconfig > $z_sysconfig

    # Clone the zone
    zoneadm -z $zone clone -c $z_sysconfig $firstzone
    if (( $? != 0 )); then
        error "Clone of $firstzone to $zone failed"
        rm -f $z_sysconfig
        exit 1
    fi
    rm -f $z_sysconfig

    # Boot the zone
    log "Booting $zone"
    zoneadm -z $zone boot
    if (( $? != 0 )); then
        error "Boot of $zone failed"
        exit 1
    fi
done

#
# Boot the first zone now that clones are done
#
log "Booting $firstzone"
zoneadm -z $firstzone boot
if (( $? != 0 )); then
    error "Boot of $firstzone failed"
    exit 1
fi

log "Completed in $SECONDS seconds"
exit 0

스크립트 출력:

$ ./buildzones
Usage:
        buildzones <#-of-zones> <zonename-prefix> <basedir> <sysconfig.xml>

Generate sysconfig.xml with:
        sysconfig create-profile -o sysconfig.xml

When running sysconfig, choose "Automatically" or "None" for network
configuration. The value entered for "Computer Name" will be ignored:
each zone's nodename will be set to match the zone name.

# ~user/scripts/buildzones 3 bz /tank/bz /var/tmp/sysconfig.xml
12:54:04 Configuring bz1
12:54:05 Configuring bz2
12:54:05 Configuring bz3
12:54:05 Installing bz1
A ZFS file system has been created for this zone.
Progress being logged to /var/log/zones/zoneadm.20110816T195407Z.bz1.install
       Image: Preparing at /tank/bz/bz1/root.

 Install Log: /system/volatile/install.24416/install_log
AI Manifest: /usr/share/auto_install/manifest/zone_default.xml
  SC Profile: /tmp/buildzones.F4ay4T/bz1.xml
    Zonename: bz1
Installation: Starting ....

비전역 영역의 구성 표시 방법

이 절차를 수행하려면 전역 영역의 전역 관리자이거나, 적합한 권한 프로파일을 가진 사용자여야 합니다.

  1. 루트 또는 동등한 역할의 사용자로 로그인합니다.
  2. 영역 구성을 표시합니다.
    global# zonecfg -z zonename info