Solarsi 11 ゾーン(既存環境の確認)

稼働ステータスを確認する (zoneadm)

ゾーンが現在「動いているか」「インストールされているか」といった状態や、物理的な情報を確認します。

ゾーンの一覧と状態を表示
# zoneadm list -cv
  • ID: 起動中のゾーンには一意の番号が振られます。
  • STATUS: configured (設定のみ), installed (インストール済), running (起動中) など。
  • BRAND: solaris (Native), solaris-kz (Kernel Zone) などの種類。
ゾーンの物理的な属性を確認
# zoneadm -z <ゾーン名> list -p

用途: ゾーンのUUIDや、どのデータセット(ZFS)を使用しているかなどの詳細な属性が確認できます。


詳細な構成設定を確認する (zonecfg)

ゾーンに割り当てられたリソース(ネットワーク、CPU、メモリ、デバイスなど)の定義を確認する際に使用します。

指定したゾーンの設定をすべて表示
# zonecfg -z <ゾーン名> info
  • 用途: そのゾーンがどのように定義されているか(マウントポイント、ネットワークインターフェース、リソース制限など)を一括で確認できます。
特定の項目だけを確認する

# zonecfg -z <ゾーン名> info net # ネットワーク設定のみ
# zonecfg -z <ゾーン名> info capped-memory # メモリ制限の設定のみ
何も表示されない場合: そのゾーンは物理リソースを制限なく(他のゾーンと競合しながら)使用できる状態です。

管理者のための逆引き調査
調査項目コマンド
自動起動設定になっているか?zonecfg -z <名> info autoboot
どのIPアドレスが割り当てられているか?zonecfg -z <名> info anet
ゾーンのデータはどこに保存されているか?zonecfg -z <名> info zonepath
現在のカーネルバージョンやブランドは?zoneadm list -p

zoneadm list -pのサンプル
root@solaris11:~# zoneadm list -p
:global:running:/::solaris:shared:-:none:
1:new-zone:running:/system/zones/new-zone:b6163420-8dca-47d7-a90e-909299b40eda:solaris:excl:-:none:
2:myzone:running:/system/zones/myzone:a740b28f-6d87-474f-8fda-8e0909cf4391:solaris:excl:-:none:

上記の実行結果は、現在動作しているグローバルゾーン1つと、ノンプリミティブ・ゾーン(子コンテナ)2つのステータスを示しています。

出力の各フィールドが何を意味しているか、管理者の視点で分解して解説します。

zoneadm list -p の各項目の意味

各行は :(コロン)で区切られており、左から順に以下の情報を表しています。
ID : 名前 : 状態 : パス : UUID : ブランド : IP構成 : その他

1. global(グローバルゾーン)
  • ID 0: システムのグローバルゾーン(親)は必ずIDが 0 です。
  • 状態 running: OSが正常に稼働しています。
  • ブランド solaris: 標準的なSolaris 11の環境です。
  • IP構成 shared: ネットワークを物理カードと共有する設定(デフォルト)です。
2. new-zonemyzone(ノンプリミティブ・ゾーン)
  • ID 1, 2: 起動順に振られた、動的な識別番号です。再起動すると変わる可能性があります。
  • パス /system/zones/...: 先ほど設定したデータの格納場所です。ZFSデータセットがここにマウントされています。
  • UUID: システム内で一意の識別子です。ゾーン名を変更しても、このIDは変わりません。
  • ブランド solaris: これらはNative Zone(カーネル共有型)として作成されています。
  • IP構成 excl: **Exclusive IP(排他的IP)**モードです。重要なポイントで、各ゾーンが独自のVNIC(仮想ネットワークカード)を持ち、グローバルゾーンから独立したネットワークスタックを保持していることを示します。

「リソース制限(CPUやメモリ)」の調査・設定方法について
1. 現在のリソース制限を確認する (zonecfg)
設定として「上限」が決められているかを確認します。
# zonecfg -z myzone info capped-cpu
# zonecfg -z myzone info capped-memory

何も表示されない場合: そのゾーンは物理リソースを制限なく(他のゾーンと競合しながら)使用できる状態です。

2. リソース制限を設定する
下記は、new-zone に対して「CPU 1コア分(100%)」「メモリ 4GB」という制限をかける手順になります
# zonecfg -z new-zone
zonecfg:new-zone> add capped-cpu
zonecfg:new-zone:capped-cpu> set ncpus=1.0
zonecfg:new-zone:capped-cpu> end
zonecfg:new-zone> add capped-memory
zonecfg:new-zone:capped-memory> set physical=4g
zonecfg:new-zone:capped-memory> end
zonecfg:new-zone> verify
zonecfg:new-zone> commit
zonecfg:new-zone> exit

ポイント: ncpus=1.0 は「1スレッド相当」を意味します。マルチコア環境では、特定のコアを占有するのではなく、全体の利用率の合計を100%に制限します。

3. リアルタイムの消費状況を調査する (zonestat)
設定した制限が正しく機能しているか、あるいは不足していないかを調査します。
# zonestat -z myzone,new-zone 5
  • %CPU: 割り当てられたCPUのうち、どれくらい使っているか。
  • %MEM: メモリの利用率。
  • CAP: 設定された上限(キャップ)に対しての到達度。
4. 実行中のゾーンに即時反映する (prctl)

zonecfg での設定は次回の再起動(boot)時に有効になりますが、稼働中のゾーンに対して今すぐ制限を変更したい場合は prctl を使います(高度な操作)。

  • 現在のメモリ制限を一時的に変更(例: 2GBへ):Bash# prctl -n zone.max-rss -v 2G -t privileged -e deny -i zone myzone

関連記事

TOP