ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
![]() |
Oracle Solaris の管理: Oracle Solaris コンテナ - リソース管理と Oracle Solaris ゾーン Oracle Solaris 10 1/13 Information Library (日本語) |
10. リソース上限デーモンによる物理メモリーの制御 (概要)
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 システムでのパッケージとパッチの追加および削除 (タスク)
27. Oracle Solaris ゾーンの管理 (概要)
28. Oracle Solaris ゾーンの管理 (タスク)
29. 非大域ゾーンにインストールされている Oracle Solaris 10 システムのアップグレード
30. Oracle Solaris ゾーンで発生するさまざまな問題のトラブルシューティング
31. ブランドゾーンと Linux ブランドゾーンについて
34. lx ブランドゾーンのインストール、ブート、停止、複製、およびアンインストールについて (概要)
35. lx ブランドゾーンのインストール、ブート、停止、アンインストール、および複製 (タスク)
次の処理を実行するには、zonecfg コマンド (zonecfg(1M) のマニュアルページを参照) を使用します。
ゾーン構成を作成します
必要な情報がすべて存在することを確認します
非大域ゾーン構成を確定します
zonecfg コマンドは、大域ゾーンのリソース管理設定を持続的に指定する場合にも使用できます。
zonecfg ユーティリティーを使用してゾーンを構成する際、revert サブコマンドを使用して、リソースの設定を元に戻すことができます。「ゾーン構成を元に戻す方法」を参照してください。
システムに複数のゾーンを構成するスクリプトについては、「複数のゾーンを構成するスクリプト」を参照してください。
非大域ゾーンの構成を表示する方法については、「非大域ゾーンの構成を表示する方法」を参照してください。
ネイティブな非大域ゾーンの作成に必須の要素は、zonename および zonepath プロパティーだけです。そのほかのリソースおよびプロパティーはオプションです。省略可能なリソースには、dedicated-cpu リソースと capped-cpu リソースのどちらを使用するかを決めるなど、選択肢の中から選ぶ必要があるものもあります。使用可能な zonecfg のプロパティーとリソースについては、「ゾーン構成データ」を参照してください。
この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。
役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』の「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。
この手順例では、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
基本ディレクトリとして使用するディレクトリ
このスクリプトを実行するには、大域ゾーン内の大域管理者になる必要があります。大域管理者は、大域ゾーン内でスーパーユーザー権限を保持するか、Primary Administrator 役割になります。
#!/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
この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。
役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』の「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。
global# zonecfg -z zonename info