SlideShare a Scribd company logo
1 of 37
Download to read offline
第6回コンテナ型仮想化の情報交換@東京
今⽇日から触れる  Solaris Zones ⼊入⾨門
Kazuyuki Sato
Feb 18, 2015
Corydoras	
  sterbai
Agenda
Ø  ⾃自⼰己紹介:@satokaz
Ø  Oracle Solaris Zones
2
⽬目的
•  とにかく Solaris Zones を作ってみる
•  第4回コンテナ型仮想化勉強会@東京  Oracle  Solaris  のコンテナ技
術「Solaris  Zones」
h/p://www.slideshare.net/satokaz/4-­‐20140906-­‐solariszones	
  
3
@satokaz
⾃自⼰己紹介
•  某社で製品情報を左から右に流流す仕事に従事
– Solaris とか Solaris とか Solaris とか
•  ⽔水槽の前に座って熱帯⿂魚に話かけるのが得意。返事はない。
– コリドラス(なまず)が可愛くていつも⽔水槽の前で死にかけている
– AQUA LIFE が愛読書
•  最近の悩み:悩みが多すぎるのが悩みです
4
Oracle Solaris Zones
Ø  Na#ve	
  Zones	
  
5
Oracle Solaris Zones について
アプリケーション実⾏行行環境であること
•  統合技術(コンソリデーション)
– 1960年年代から開発されている技術になり、メインフレーム環境において⼀一般
的な技術
•  実⾏行行されている環境を変えないようにする
– ゾーンの基本的な設計原則の1つ。アプリケーションがセキュリティや隔離離の
⽬目標を達成するために必要な場合を除いて、実⾏行行されている環境を変えない
ようにすること
•  アプリケーションを「移植」する必要はない
– ゾーンは、新しい API や ABI を提⽰示しない代わりに、いくつかの制限付きの
Solaris API/ABI インタフェースを提供
6
Oracle Solaris Zones について
Solaris Zones の開発⽬目標 (2003 年年代)
•  セキュリティ(Security)
–  ネットワークサービスを分離離し、システム全体に及ばない権限のサブセットを提供
•  隔離離(Isolation)
–  複数のアプリケーションを異異なる信頼された領領域で実⾏行行すると共に、グローバルリソースへ
の排他的アクセスを提供
•  仮想化(Virtualization)
–  アプリケーションへの物理理デバイスや物理理ホスト情報を隠蔽する仮想化環境を提供
•  粒粒度度(Granularity)
–  物理理パーティショニングと違いリソースを細かく分配可能に
•  透過性(Transparency)
–  アプリケーションの移植を必要としない
7
Oracle Solaris Zones について
アイソレーションのアプローチ
アプローチ メモ
chroot 古くから利利⽤用されるプロセスのアイソレーション⽅方法となるが、それ以外の
ものは隔離離できない
jails chroot ライクであり、ファイルシステムなどもアイソレーション可能
Trusted Operating System セキュアOS としての要件を満たすアプローチ
Hardware または Logical
Partitioning
2003 年年頃。logical partitions for SPARC の実装を別プロジェクトで実施中。
後の  Ldoms (Oracle VM for SPARC)
8
•  Solaris ゾーンは、jails の基本的な考え⽅方に基づいて実装されている
– さらに OS に統合し包括的な機能として提供できるよう概念念を独⾃自に拡張
Oracle Solaris Zones について
組み込まれた仮想化機能
•  単⼀一システム上に複数の
隔離離されたランタイム環境(Solaris インスタンス )を提供する機能
•  ゾーンは⼤大きく  2 種類に区分
ü  ⼤大域ゾーン  (global zone)
•  オペレーティングシステムの実体
ü  ⾮非⼤大域ゾーン  (non-global zone)
•  ⼤大域ゾーン上で動作するアプリケーション
実⾏行行環境
•  ⼤大域ゾーンとカーネルを共有
•  ⾮非⼤大域ゾーン間は完全に隔離離
•  最⼤大  8192 個  (⼤大域ゾーン含む) 作成可能
zone01 zone02 zone03
net0:1
zcons
/usr
ゾーン管理理  (zonecfg, zoneadm, zlogin, etc)
zoneadmd zoneadmd zoneadmd
net0:2
/data
/usr
net1
/data
/usr
C C C C
Virtual
Platform
/data
zcons
zcons
⼿手っ取り早く動かすのに必要なもの
Solaris 11.2 が動いていないと始められない
•  Oracle Solaris 11.2
– ベアメタルや VM 上で動作する Solaris 11.2 環境
•  ネットワーク
– IPS リポジトリへ接続
•  IPS リポジトリ
– ネットワーク上(pkg.oracle.com)
– または、ローカルファイルシステムに配置
•  気持ち♥︎
10
Oracle Solaris 11.2  をすぐに試せる  VM テンプレート
•  Oracle Solaris 11.2 VM Downloads
http://www.oracle.com/technetwork/server-storage/solaris11/downloads/vm-templates-2245495.html
–  Oracle Solaris 11.2 VM for Oracle VM VirtualBox (1.6GB)
•  VirtualBox にインポートするだけで  Oracle Solaris 11.2 を試⽤用可能
•  どうぞ、オラクルに個⼈人情報を登録頂きダウンロードしてください!
– Oracle プロファイル(アカウント)への登録が必要
•  VirtualBox へのインストールは、
Oracle Solaris 11のOracle VM VirtualBoxへのインストール
(OTN Oracle Solaris ハンズオンラボ)
http://www.oracle.com/technetwork/jp/systems/hands-on-labs/s11-vbox-install-1408628-ja.html
–  Solariss 11.1 ってなっているけど 11.2 に読み替えてね
Solaris Zones について
そういえば、CPU/メモリってどうなってるの?	
とりあえず、最初は気にしない
•  CPU リソース
– デフォルトは⼤大域ゾーンと共有
– リソース管理理機能により物理理  CPU の直接割り当ても可能
•  メモリ
– ⼤大域ゾーンと共有
– リソース管理理機能により使⽤用メモリの上限を設定することは可能
– 物理理的な割当不不可(Kernzl Zones は可能)
•  スワップは⼤大域ゾーンと共有
12
Solaris Zones について
13
Solaris Zones の種類
Solaris  Native  Zones
Solaris  Kernel  Zones solaris-‐‑‒kz n  Solaris  11.2  から提供される新たなゾーン
Oracle Solaris Zones
Solaris Zones 管理理コマンド
14
コマンド 概要
zonecfg zones の構成管理理ユーティリティ
zoneadm zones を管理理する(install, uninstall, boot, halt,
shutdown, attach/detach, clone, etc…)
zlogin zones へのログインするために、ローカルシステム
上で利利⽤用
zonestat zone の統計情報、リソース利利⽤用情報を取得
ready
installed
incomplete
uninstall
mark
incomplete
uninstall install
bootbootready
halt ready
halt
mark
incomplete
reboot
configured
No Zone
createdelete
login
Zone
running
zonecfgzoneadmzlogin
Solaris Zones 作成の基本操作
ゾーンとなる“空の⼊入れモノ”を作成
15	
# zonecfg -z testzone
Use 'create' to begin configuring a new zone.
zonecfg:testzone> create
create: Using system default template 'SYSdefault'
zonecfg:testzone> export
create -b
set zonepath=/system/zones/%{zonename}
set autoboot=false
set autoshutdown=shutdown
set ip-type=exclusive
add anet
set linkname=net0
set lower-link=auto
set configure-allowed-address=true
set link-protection=mac-nospoof
set mac-address=auto
end
zonecfg:testzone> verify
zonecfg:testzone> commit
zonecfg:testzone> exit
	
# zoneadm list -vc
ID NAME STATUS PATH BRAND IP
0 global running / solaris shared	
root@s11u2-sru7-4:~# zoneadm list -vc
ID NAME STATUS PATH BRAND IP
0 global running / solaris shared
- testzone configured /system/zones/testzone solaris excl 	
testzone の情報が追加
ゾーン関連の構成ファイルは  /etc/zones に配置
Solaris Zones 作成の基本操作
“空の⼊入れモノ”に命を吹き込む (1/2)
16	
# zoneadm -z testzone install
The following ZFS file system(s) have been created:
rpool/VARSHARE/zones/testzone
Progress being logged to /var/log/zones/zoneadm.20150218T023659Z.testzone.install
Image: Preparing at /system/zones/testzone/root.
Install Log: /system/volatile/install.4656/install_log
AI Manifest: /tmp/manifest.xml.tRaGej
SC Profile: /usr/share/auto_install/sc_profiles/enable_sci.xml
Zonename: testzone
Installation: Starting …
Creating IPS image
開始  リンクされたイメージ: 1/1 完了了
Installing packages from:
solaris
origin: http://pkg.oracle.com/solaris/support/
ダウンロード                                  パッケージ    ファイル    転送  (MB) 速度度
完了了                                                              281/281 53222/53222 352.3/352.3 320k/s
Solaris Zones 作成の基本操作
“空の⼊入れモノ”に命を吹き込む (2/2)
17	
フェーズ                                                                    項⽬目
新しいアクションをインストールしています  71132/71132
パッケージ状態データベースを更更新しています            完了了  
パッケージキャッシュを更更新しています                  0/0
イメージ状態を更更新しています            完了了  
スピード検索索データベースを作成しています            完了了  
パッケージキャッシュを更更新しています                  1/1
Installation: Succeeded
Note: Man pages can be obtained by installing pkg:/system/manual done.
Done: Installation completed in 1256.021 seconds.
Next Steps: Boot the zone, then log into the zone console (zlogin -C)
to complete the configuration process.
Log saved in non-global zone as /system/zones/testzone/root/var/log/zones/zoneadm.20150218T023659Z.testzone.install
root@s11u2-sru7-4:~# zoneadm list -vc
ID NAME STATUS PATH BRAND IP
0 global running / solaris shared
- testzone configured /system/zones/testzone solaris excl 	
root@s11u2-sru7-4:~# zoneadm list -vc
ID NAME STATUS PATH BRAND IP
0 global running / solaris shared
- testzone installed /system/zones/testzone solaris excl 	
インストールが成功すると  installed  にステータスが変更更
18	
# zoneadm -z testzone install
Progress being logged to /var/log/zones/zoneadm.20150218T022840Z.testzone.install
Image: Preparing at /system/zones/testzone/root.
Install Log: /system/volatile/install.3270/install_log
AI Manifest: /tmp/manifest.xml.JdaOwg
SC Profile: /usr/share/auto_install/sc_profiles/enable_sci.xml
Zonename: testzone
Installation: Starting ...
Creating IPS image
Error occurred during execution of 'generated-transfer-3270-1' checkpoint.
Failed Checkpoints:
Checkpoint execution error:
Error refreshing publishers, 0/1 catalogs successfully updated:
Encountered the following error(s):
Unable to contact any configured publishers.
This is likely a network configuration problem.
1: Framework error: code: 28 reason: Operation too slow. Less than 1024 bytes/sec transfered the last 3
URL: 'http://pkg.oracle.com/solaris/support' (happened 2 times)
2: Framework stall:
URL: 'http://pkg.oracle.com/solaris/support' (happened 2 times)
Installation: Failed. See install log at /system/volatile/install.3270/install_log
ERROR: auto-install failed.
#	
インストール失敗例例:
ネットワークの疎通が無く、
IPS  リポジトリへの接続ができないため
失敗したら # zoneadm –z testzone uninstall でやり直し
root@s11u2-sru7-4:~# zoneadm list -vc
ID NAME STATUS PATH BRAND IP
0 global running / solaris shared
- testzone incomplete /system/zones/testzone solaris excl
Solaris Zones 作成の基本操作
zonecfg の構成情報について	
19	
# zonecfg -z testzone export
create -b
set brand=solaris
set zonepath=/system/zones/%{zonename}
set autoboot=false
set autoshutdown=shutdown
set ip-type=exclusive
add anet
set linkname=net0
set lower-link=auto
set configure-allowed-address=true
set link-protection=mac-nospoof
set mac-address=auto
end	
プロパティ 値 概要
brand solaris ゾーンの種類を指定
zonepath /sytem/zones
ディレクトリに  
zonename で作
成(default)
ゾーンのデータ配置
先
autoboot false ⾃自動起動の有無
autoshutdow
n
shutdown ⼤大域ゾーンのシャッ
トダウン時の動作
ip-type exclusive ネットワークスタッ
クの種類
add anet
:
end
exclusive で求
められる設定
ネットワークの設定
(ip-type の設定で構
成⽅方法が異異なる)
Solaris Zones 作成の基本操作
そういえば、ファイルシステムってどうなってるの?
⼤大域ゾーン(global zones)/
/usr
/platform
/sbin
/lib /export/system
/dev/root
/etc
/var
ZFS dataset (ZVOL)
⼀一部のファイルシステム
を読み取り専⽤用で継承
/opt
完全ルートゾーン
(whole root zones)/
/usr
/platform
/sbin
/lib
/export
/etc
/var
/opt
(local,	
  iscsi,	
  fc	
  …)	
NaJve	
  Zones	
/testzones
/zones
ZFS データセットに配置
Solaris Zones 作成の基本操作
そういえば、ファイルシステムってどうなってるの?
root@s11u2-sru7-4:/system/zones# zfs list
NAME USED AVAIL REFER MOUNTPOINT
rpool 18.6G 12.4G 4.65M /rpool
rpool/ROOT 11.7G 12.4G 31K legacy
rpool/ROOT/solaris 58.7M 12.4G 4.78G /
rpool/ROOT/solaris-backup 132M 12.4G 4.78G /
rpool/ROOT/solaris-backup-1 9.82M 12.4G 4.79G /
rpool/ROOT/solaris-backup-1/var 3.19M 12.4G 1.87G /var
rpool/ROOT/solaris/var 377K 12.4G 347M /var
rpool/VARSHARE 695M 12.4G 4.80M /var/share
rpool/VARSHARE/pkg 63K 12.4G 32K /var/share/pkg
rpool/VARSHARE/pkg/repositories 31K 12.4G 31K /var/share/pkg/repositories
rpool/VARSHARE/zones 690M 12.4G 32K /system/zones
rpool/VARSHARE/zones/testzone 690M 12.4G 32K /system/zones/testzone
rpool/VARSHARE/zones/testzone/rpool 690M 12.4G 31K /rpool
rpool/VARSHARE/zones/testzone/rpool/ROOT 690M 12.4G 31K legacy
rpool/VARSHARE/zones/testzone/rpool/ROOT/solaris 690M 12.4G 635M /system/zones/testzone/root
rpool/VARSHARE/zones/testzone/rpool/ROOT/solaris/var 54.7M 12.4G 53.8M /system/zones/testzone/root/var
rpool/VARSHARE/zones/testzone/rpool/VARSHARE 31K 12.4G 31K /var/share
rpool/VARSHARE/zones/testzone/rpool/export 62K 12.4G 31K /export
rpool/VARSHARE/zones/testzone/rpool/export/home 31K 12.4G 31K /export/home
rpool/dump 1.03G 12.5G 1.00G -
rpool/export 63K 12.4G 32K /export
rpool/export/home 31K 12.4G 31K /export/home
rpool/swap 1.03G 12.5G 1.00G -
Solaris Zones 作成の基本操作
動かすよっ!
22	
# zoneadm -z testzone boot
root@s11u2-sru7-4:~# zoneadm list -vc
ID NAME STATUS PATH BRAND IP
0 global running / solaris shared
- testzone running /system/zones/testzone solaris excl 	
root@s11u2-sru7-4:~# zoneadm list -vc
ID NAME STATUS PATH BRAND IP
0 global running / solaris shared
- testzone configured /system/zones/testzone solaris excl 	
起動が成功すると  running  にステータスが変更更
# zonestat 1 1
Collecting data for first interval...
Interval: 1, Duration: 0:00:01
SUMMARY Cpus/Online: 2/2 PhysMem: 6339M VirtMem: 7363M
---CPU---- --PhysMem-- --VirtMem-- --PhysNet--
ZONE USED %PART USED %USED USED %USED PBYTE %PUSE
[total] 0.06 3.09% 3616M 57.0% 4152M 56.3% 212 0.00%
[system] 0.01 0.99% 2955M 46.6% 3226M 43.8% - -
global 0.04 2.00% 578M 9.11% 847M 11.5% 212 0.00%
testzone 0.00 0.09% 82.7M 1.30% 78.5M 1.06% 0 0.00%
Solaris Zones 作成の基本操作
動かすよっ!
# prstat –Z
PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP
2044 root 245M 123M sleep 59 0 0:01:32 0.3% java/23
2049 root 131M 18M sleep 59 0 0:00:44 0.2% gnome-power-man/4
974 root 15M 3812K sleep 59 0 0:00:24 0.1% vmtoolsd/2
12368 root 20M 5472K sleep 59 0 0:00:00 0.0% sshd/1
5 root 0K 0K sleep 99 -20 0:00:44 0.0% zpool-rpool/137
12399 root 5904K 3448K cpu1 59 0 0:00:00 0.0% prstat/1
12369 root 4756K 2620K sleep 49 0 0:00:00 0.0% bash/1
6478 root 4276K 2388K sleep 59 0 0:00:00 0.0% hald-addon-acpi/1
6474 root 7788K 5484K sleep 59 0 0:00:00 0.0% hald/5
12026 root 2940K 1736K sleep 59 0 0:00:00 0.0% in.routed/1
2077 root 61M 8192K sleep 12 19 0:00:01 0.0% updatemanagerno/1
2059 root 129M 12M sleep 59 0 0:00:01 0.0% isapython2.6/1
200 root 15M 4668K sleep 59 0 0:00:00 0.0% devfsadm/6
361 root 9544K 1396K sleep 59 0 0:00:00 0.0% dhcpagent/1
38 netcfg 4052K 2472K sleep 59 0 0:00:00 0.0% netcfgd/4
ZONEID NPROC SWAP RSS MEMORY TIME CPU ZONE
0 121 718M 580M 9.1% 0:05:33 0.7% global
1 33 77M 83M 1.3% 0:00:23 0.0% testzone
Total: 154 processes, 796 lwps, load averages: 0.02, 0.16, 0.19
Solaris Zones 作成の基本操作
動かすよっ!	
⼤大域ゾーンから⾒見見えるプロセス
•  ゾーンの種類により⼤大域ゾーンから⾒見見えるプロセスは異異なる
– ⼤大域ゾーンからの参照例例:
24	
Kernel Zones: instance-00001 の場合  → kzhost プロセスと  zsched プロセスの 2 つのみ
# ps -aefZ | grep -v global
ZONE UID PID PPID C STIME TTY TIME CMD
instance root 12406 12223 0 Aug 09 ? 278:03 /usr/lib/kzhost
instance root 12223 1 0 Aug 09 ? 0:00 zsched	
従来の Native Zones: vrrpzone01 の場合 → ⾮非⼤大域ゾーンで稼働するプロセスを参照可能
# ps -afefZ -z vrrpzone01 | grep -v global
ZONE UID PID PPID C STIME TTY TIME CMD
vrrpzone root 12402 1 0 Jul 31 ? 0:00 /usr/lib/inet/in.ndpd
vrrpzone root 11849 1 0 Jul 31 ? 0:00 /usr/lib/rad/rad -sp
vrrpzone netadm 11776 1 0 Jul 31 ? 1:41 /lib/inet/ipmgmtd
vrrpzone root 11675 1 0 Jul 31 ? 8:08 /lib/svc/bin/svc.configd
vrrpzone root 11779 1 0 Jul 31 ? 0:00 /usr/lib/pfexecd
vrrpzone root 11873 1 0 Jul 31 ? 0:00 /usr/lib/dbus-daemon --system
vrrpzone root 12477 1 0 Jul 31 ? 0:00 /usr/lib/ssh/sshd
vrrpzone netcfg 11722 1 0 Jul 31 ? 3:02 /lib/inet/netcfgd
vrrpzone daemon 11853 1 0 Jul 31 ? 0:06 /usr/lib/utmpd
vrrpzone root 10770 1 0 Jul 31 ? 0:00 zsched
vrrpzone root 12485 1 0 Jul 31 ? 0:02 /usr/sbin/syslogd
Solaris Zones 作成の基本操作
ゾーンはコンソールを持っています(1/2)	
25	
# zoneadm -C testzone
ゾーンが提供する疑似コンソールへ
接続します
画⾯面に何も表⽰示されなかったら、
とりあえず  Ctrl  +  L  を押して
リフレッシュ
ネットワークやリージョン、⾔言語、
パスワード設定などを⾏行行います
ネットワークは  Automatically  で
DHCP  利利⽤用に設定される
Solaris Zones 作成の基本操作
ゾーンはコンソールを持っています(2/2)	
26	
# zoneadm -C testzone
	
[Connected to zone 'testzone' console]	
SunOS Release 5.11 Version 11.2 64-bit
Copyright (c) 1983, 2014, Oracle and/or its affiliates. All rights reserved.
Hostname: testzone
testzone console login:
起動後は  login  プロンプトを出⼒力力して
あなたを待っています
初期設定時に作成したユーザーでログイン可能
Solaris Zones 作成の基本操作
そういえば、ネットワークってどうなってるの?
•  共有IP (shared IP)ゾーン
–  ⼤大域ゾーンと物理理ネットワークを共有
–  Oracle Solaris 10 10/08よりデフォルト
ルータを⾮非⼤大域ゾーン毎に設定可能
•  排他的IP (exclusive IP)ゾーン
–  Solaris 11 以降降デフォルトのタイプ
–  ⾮非⼤大域ゾーンに専⽤用の物理理ネットワー
クを割り当て
–  GLDv3に対応したNICが必要
–  Solaris 11 では仮想 NIC を割当可能に
⾮非⼤大域ゾーン⾮非⼤大域ゾーン⼤大域ゾーン
net1
net0:1
net0:0
共有IP 排他的IP
IPスタックを⼤大域
ゾーンと共有
独⽴立立したIPスタック
Solaris Zones 作成の基本操作
そういえば、ネットワークってどうなってるの?
⼤大域ゾーンから⾒見見た場合
root@s11u2-sru7-4:~# dladm show-phys
LINK MEDIA STATE SPEED DUPLEX DEVICE
net0 Ethernet up 1000 full e1000g0
net1 Ethernet up 1000 full e1000g1
root@s11u2-sru7-4:~# dladm show-link
LINK CLASS MTU STATE OVER
net0 phys 1500 up --
net1 phys 1500 up --
testzone/net0 vnic 1500 up net0
testzone から⾒見見た場合
root@s11u2-sru7-4:~# zlogin testzone ipadm
NAME CLASS/TYPE STATE UNDER ADDR
lo0 loopback ok -- --
lo0/v4 static ok -- 127.0.0.1/8
lo0/v6 static ok -- ::1/128
net0 ip ok -- --
net0/v4 static ok -- 172.16.166.140/24
net0/v6 addrconf ok -- fe80::8:20ff:feec:
3562/10
net0
(e1000g0)	
vnic0	
vnic1	
vnic2	
vnic3	
vnic4	
vnic5	
vnic6	
vnic7	
•  例例)	
  
指定された物理理  NIC	
  から複数の仮想	
  NIC	
  を⽣生成し	
  
ゾーンで利利⽤用	
  
28•  zonecfg の  anet プロパティは、
ゾーン起動時に⾃自動的に仮想 NIC を⽣生成し
ネットワークを構成してくれる
•  初期設定時、ネットワーク構成を⾃自動にして
いれば DHCP からアドレスを取得
•  ゾーンのシャットダウン時には構成解除
Solaris Zones 作成の基本操作
Solaris Zones 作成までのまとめ	
29	
# zonecfg -z testzone “create;verify;commit;exit”
# zoneadm –z testzone install
# zoneadm –z testzone boot; zlogin –e # –C testzone
	
zlogin 実⾏行行時 –e オプションで
エスケープシーケンスを
変更更しておくと⾊色々捗ります
net0
testzone01
Solaris 11.2
仮想  NIC
global zone
Solaris 11.2
OSの初期設定画⾯面へ
Solaris Zones 作成の基本操作
もっと楽に!ー  プロファイル・テンプレートを作成
•  sysconfig  コマンドにてSolarisの構成プロファイルを作成可能	
  
– #	
  sysconfig	
  create-­‐profile	
  –o	
  /usr/tmp/sc_profile.xml
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
<service_bundle type="profile" name="sysconfig">
<service version="1" type="service" name="system/config-user">
<instance enabled="true" name="default">
<property_group type="application" name="root_account">
<propval type="astring" name="login" value="root"/>
<propval type="astring" name="password" value="$5$9Ksg9h"/>
<propval type="astring" name="type" value="role"/>
</property_group>
<property_group type="application" name="user_account">
<propval type="astring" name="login" value="kazus"/>
<propval type="astring" name="password" value="$5$UZP0F6"/>
<propval type="astring" name="type" value="normal"/>
<propval type="astring" name="description" value="kazus"/>
<propval type="count" name="gid" value="10"/>
<propval type="astring" name="shell"
設定は、xml  形式でファイルに出⼒力力される
ホスト名、ネットワーク設定などの	
  
初期設定項⽬目をプロファイル化することが可能に
• プロファイルを利利⽤用した例例	
  
– システムの構成	
  
•  #	
  sysconfig	
  configure	
  -­‐c	
  /usr/tmp/sc.xml	
  	
  
–   ゾーンの  OS	
  を⾃自動構成	
  
•  #	
  zoneadm	
  	
  -­‐z	
  testzone	
  install	
  -­‐c	
  /usr/tmp/sc.xml	
  -­‐d	
  /userpool/zones/zone01/root/	
  -­‐u	
  
– Automated	
  Installer	
  での利利⽤用	
  
• 構成に必要な情報の設定を⾃自動化	
  
– ホスト名、ネットワーク設定、ロケールなど	
  
– ゾーン作成に利利⽤用すると最⼩小の⼿手数でゾーンを準備可能	
  
Solaris Zones 作成の基本操作
もっと楽に!ー  プロファイル・テンプレートを作成
Solaris Zones 作成の基本操作
ここからが始まりです
•  【第⼀一回  ゼロからはじめる  Oracle Solaris 11】
– 始めなければ何も始まらない!まずはインストールから始めよう  
– 知るべきは  pkg(1) コマンドのみ!  〜~Image Packaging System (IPS) が管理理
者にもたらすものとは〜~  
•  SlideShare
http://www.slideshare.net/SolarisJP/
32
Solaris Native Zones を動かすことができたら
やってみよー  その 1
•  zoneadm のマニュアルを読む
•  Kernel Zones に挑戦してみる
– Type2 HyperVisor に似た仕組みで実装される新しい Solaris Zones
•  リソース管理理を設定してみる
– CPU, メモリのリソース管理理
•  共有ストレージに配置する ZOSS (Zones on Shared Storage)
– iSCSI, FC などに Zones を配置
•  統合アーカイブ機能によるバックアップ/リストア/クローン
33
Solaris Native Zones を動かすことができたら
やってみよー  その  2
•  可⽤用性の適⽤用
– Oracle Solaris Cluster による Zones Cluster 機能
•  新しい仮想スイッチ機能 EVS (Elastic Virtual Switch) との連携
– ホストを跨いだ仮想スイッチ機能と
– Solaris Zones のマイグレーション
•  ⾊色々アプリケーションを動かしてみる
•  とにかく何でもやってみる
•  あっ、Solaris Zones はいくら作っても無償です
34
おすすめ仮想化環境
お好きなほうを
•  VMware   
– Kernel Zones を利利⽤用可能
– VMware Cmpatibility Guide: OS Release Name: Solaris 11.2
– KB Articles を確認
•  2040498 VMware KB: Mouse does not function on a Solaris 11 virtual machine (2040498)
– ホストとゲスト間のマウス移動をシームレスに⾏行行うための設定
•  VirtualBox
– Kernel Zones は利利⽤用不不可
– Solaris をサポートしているので楽
35
参考情報
•  Solaris Zones: Operating System Support for Consolidating
Commercial Workloads
– Daniel Price and Andrew Tucker – Sun Microsystems, Inc.
– https://www.usenix.org/legacy/event/lisa04/tech/full_papers/price/price.pdf
•  Oracle Solaris 11.2 Information Library (英語)
– http://docs.oracle.com/cd/E36784_01/index.html
•  Oracle Solaris 11.2 ⽇日本語マニュアル
– http://docs.oracle.com/cd/E56342_01/index.html
36
参考情報	
•  Oracle Solarisハンズオン・ラボ    
http://www.oracle.com/technetwork/jp/systems/hands-on-labs/solaris-
labs-1904205-ja.html
•  第4回コンテナ型仮想化勉強会@東京  Oracle  Solaris  のコンテナ技
術「Solaris  Zones」
h/p://www.slideshare.net/satokaz/4-­‐20140906-­‐solariszones	
  
37

More Related Content

Similar to 第6回コンテナ型仮想化の情報交換@東京「今日から触れる Solaris Zones 入門」

Oracle Solaris 11の可用性を高める! Oracle Solaris Cluster 4.0(補足資料)
Oracle Solaris 11の可用性を高める! Oracle Solaris Cluster 4.0(補足資料)Oracle Solaris 11の可用性を高める! Oracle Solaris Cluster 4.0(補足資料)
Oracle Solaris 11の可用性を高める! Oracle Solaris Cluster 4.0(補足資料)SolarisJP
 
Solaris 11 ディープダイブセミナー Distribution Constructor編
Solaris 11 ディープダイブセミナー Distribution Constructor編Solaris 11 ディープダイブセミナー Distribution Constructor編
Solaris 11 ディープダイブセミナー Distribution Constructor編SolarisJP
 
Oracle Solaris 11デベロッパーが押さえておきたい機能
Oracle Solaris 11デベロッパーが押さえておきたい機能Oracle Solaris 11デベロッパーが押さえておきたい機能
Oracle Solaris 11デベロッパーが押さえておきたい機能Kazuyuki Sato
 
今もう一度知ろう。 Solarisのコンテナ型仮想化技術
今もう一度知ろう。 Solarisのコンテナ型仮想化技術今もう一度知ろう。 Solarisのコンテナ型仮想化技術
今もう一度知ろう。 Solarisのコンテナ型仮想化技術悟 宮崎
 
IaaSクラウドを支える基礎技術 演習編_v1_0
IaaSクラウドを支える基礎技術 演習編_v1_0IaaSクラウドを支える基礎技術 演習編_v1_0
IaaSクラウドを支える基礎技術 演習編_v1_0Etsuji Nakai
 
第12回 つ部 ミーティング兼忘年会 LT資料
第12回 つ部 ミーティング兼忘年会 LT資料第12回 つ部 ミーティング兼忘年会 LT資料
第12回 つ部 ミーティング兼忘年会 LT資料Kenji Nagase
 
Pf部2011年10月勉強会.1@androidsola
Pf部2011年10月勉強会.1@androidsolaPf部2011年10月勉強会.1@androidsola
Pf部2011年10月勉強会.1@androidsolaandroid sola
 
ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観Yamato Tanaka
 
Solaris ディープダイブセミナー #4: A-2-1 サービス実行を超えた 新たなサービス管理アーキテクチャ Service Management...
 Solaris ディープダイブセミナー #4: A-2-1 サービス実行を超えた 新たなサービス管理アーキテクチャ Service Management... Solaris ディープダイブセミナー #4: A-2-1 サービス実行を超えた 新たなサービス管理アーキテクチャ Service Management...
Solaris ディープダイブセミナー #4: A-2-1 サービス実行を超えた 新たなサービス管理アーキテクチャ Service Management...SolarisJP
 
OpenStack QuickStart - Icehouse
OpenStack QuickStart - IcehouseOpenStack QuickStart - Icehouse
OpenStack QuickStart - IcehouseHideki Saito
 
“見てわかる” ファイバーチャネルSAN基礎講座(第4弾)~続・間違わない!FC SAN導入のヒントとコツ~
“見てわかる” ファイバーチャネルSAN基礎講座(第4弾)~続・間違わない!FC SAN導入のヒントとコツ~“見てわかる” ファイバーチャネルSAN基礎講座(第4弾)~続・間違わない!FC SAN導入のヒントとコツ~
“見てわかる” ファイバーチャネルSAN基礎講座(第4弾)~続・間違わない!FC SAN導入のヒントとコツ~Brocade
 
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門VirtualTech Japan Inc.
 
5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境yoyamasaki
 
5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境yoyamasaki
 
カオスエンジニアリング入門〜ChaosBladeの紹介〜
カオスエンジニアリング入門〜ChaosBladeの紹介〜カオスエンジニアリング入門〜ChaosBladeの紹介〜
カオスエンジニアリング入門〜ChaosBladeの紹介〜Nobuhide Watanabe
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストールYasuhiro Arai
 
Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)Yasuhiro Arai
 

Similar to 第6回コンテナ型仮想化の情報交換@東京「今日から触れる Solaris Zones 入門」 (20)

Oracle Solaris 11の可用性を高める! Oracle Solaris Cluster 4.0(補足資料)
Oracle Solaris 11の可用性を高める! Oracle Solaris Cluster 4.0(補足資料)Oracle Solaris 11の可用性を高める! Oracle Solaris Cluster 4.0(補足資料)
Oracle Solaris 11の可用性を高める! Oracle Solaris Cluster 4.0(補足資料)
 
osoljp 2011.08
osoljp 2011.08osoljp 2011.08
osoljp 2011.08
 
Solaris 11 ディープダイブセミナー Distribution Constructor編
Solaris 11 ディープダイブセミナー Distribution Constructor編Solaris 11 ディープダイブセミナー Distribution Constructor編
Solaris 11 ディープダイブセミナー Distribution Constructor編
 
Oracle Solaris 11デベロッパーが押さえておきたい機能
Oracle Solaris 11デベロッパーが押さえておきたい機能Oracle Solaris 11デベロッパーが押さえておきたい機能
Oracle Solaris 11デベロッパーが押さえておきたい機能
 
Windows ✖︎ Docker
Windows ✖︎ DockerWindows ✖︎ Docker
Windows ✖︎ Docker
 
今もう一度知ろう。 Solarisのコンテナ型仮想化技術
今もう一度知ろう。 Solarisのコンテナ型仮想化技術今もう一度知ろう。 Solarisのコンテナ型仮想化技術
今もう一度知ろう。 Solarisのコンテナ型仮想化技術
 
IaaSクラウドを支える基礎技術 演習編_v1_0
IaaSクラウドを支える基礎技術 演習編_v1_0IaaSクラウドを支える基礎技術 演習編_v1_0
IaaSクラウドを支える基礎技術 演習編_v1_0
 
第12回 つ部 ミーティング兼忘年会 LT資料
第12回 つ部 ミーティング兼忘年会 LT資料第12回 つ部 ミーティング兼忘年会 LT資料
第12回 つ部 ミーティング兼忘年会 LT資料
 
Gingerbread
GingerbreadGingerbread
Gingerbread
 
Pf部2011年10月勉強会.1@androidsola
Pf部2011年10月勉強会.1@androidsolaPf部2011年10月勉強会.1@androidsola
Pf部2011年10月勉強会.1@androidsola
 
ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観
 
Solaris ディープダイブセミナー #4: A-2-1 サービス実行を超えた 新たなサービス管理アーキテクチャ Service Management...
 Solaris ディープダイブセミナー #4: A-2-1 サービス実行を超えた 新たなサービス管理アーキテクチャ Service Management... Solaris ディープダイブセミナー #4: A-2-1 サービス実行を超えた 新たなサービス管理アーキテクチャ Service Management...
Solaris ディープダイブセミナー #4: A-2-1 サービス実行を超えた 新たなサービス管理アーキテクチャ Service Management...
 
OpenStack QuickStart - Icehouse
OpenStack QuickStart - IcehouseOpenStack QuickStart - Icehouse
OpenStack QuickStart - Icehouse
 
“見てわかる” ファイバーチャネルSAN基礎講座(第4弾)~続・間違わない!FC SAN導入のヒントとコツ~
“見てわかる” ファイバーチャネルSAN基礎講座(第4弾)~続・間違わない!FC SAN導入のヒントとコツ~“見てわかる” ファイバーチャネルSAN基礎講座(第4弾)~続・間違わない!FC SAN導入のヒントとコツ~
“見てわかる” ファイバーチャネルSAN基礎講座(第4弾)~続・間違わない!FC SAN導入のヒントとコツ~
 
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門
 
5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境
 
5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境
 
カオスエンジニアリング入門〜ChaosBladeの紹介〜
カオスエンジニアリング入門〜ChaosBladeの紹介〜カオスエンジニアリング入門〜ChaosBladeの紹介〜
カオスエンジニアリング入門〜ChaosBladeの紹介〜
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストール
 
Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)
 

More from Kazuyuki Sato

Oracle Solaris 11.2 新機能概要
Oracle Solaris 11.2 新機能概要Oracle Solaris 11.2 新機能概要
Oracle Solaris 11.2 新機能概要Kazuyuki Sato
 
~Solaris 11 をマルチ・プロトコル SCSI ターゲットに~ 「もう一つのストレージ仮想化機能 “COMSTAR”概要」
~Solaris 11 をマルチ・プロトコル SCSI ターゲットに~ 「もう一つのストレージ仮想化機能 “COMSTAR”概要」~Solaris 11 をマルチ・プロトコル SCSI ターゲットに~ 「もう一つのストレージ仮想化機能 “COMSTAR”概要」
~Solaris 11 をマルチ・プロトコル SCSI ターゲットに~ 「もう一つのストレージ仮想化機能 “COMSTAR”概要」Kazuyuki Sato
 
Solaris 10 から Solaris 11 への移行準備とポイント
Solaris 10 から Solaris 11 への移行準備とポイントSolaris 10 から Solaris 11 への移行準備とポイント
Solaris 10 から Solaris 11 への移行準備とポイントKazuyuki Sato
 
Oracle Solaris 11 における システム、ネットワーク、ストレージの仮想化機能
Oracle Solaris 11 における システム、ネットワーク、ストレージの仮想化機能Oracle Solaris 11 における システム、ネットワーク、ストレージの仮想化機能
Oracle Solaris 11 における システム、ネットワーク、ストレージの仮想化機能Kazuyuki Sato
 
Wine on Solaris 11 Express
Wine on Solaris 11 ExpressWine on Solaris 11 Express
Wine on Solaris 11 ExpressKazuyuki Sato
 
Oracle solaris 10 u9 iSCSI Boot
Oracle solaris 10 u9 iSCSI BootOracle solaris 10 u9 iSCSI Boot
Oracle solaris 10 u9 iSCSI BootKazuyuki Sato
 
Opensolaris ipfilter 20090710
Opensolaris ipfilter 20090710Opensolaris ipfilter 20090710
Opensolaris ipfilter 20090710Kazuyuki Sato
 

More from Kazuyuki Sato (7)

Oracle Solaris 11.2 新機能概要
Oracle Solaris 11.2 新機能概要Oracle Solaris 11.2 新機能概要
Oracle Solaris 11.2 新機能概要
 
~Solaris 11 をマルチ・プロトコル SCSI ターゲットに~ 「もう一つのストレージ仮想化機能 “COMSTAR”概要」
~Solaris 11 をマルチ・プロトコル SCSI ターゲットに~ 「もう一つのストレージ仮想化機能 “COMSTAR”概要」~Solaris 11 をマルチ・プロトコル SCSI ターゲットに~ 「もう一つのストレージ仮想化機能 “COMSTAR”概要」
~Solaris 11 をマルチ・プロトコル SCSI ターゲットに~ 「もう一つのストレージ仮想化機能 “COMSTAR”概要」
 
Solaris 10 から Solaris 11 への移行準備とポイント
Solaris 10 から Solaris 11 への移行準備とポイントSolaris 10 から Solaris 11 への移行準備とポイント
Solaris 10 から Solaris 11 への移行準備とポイント
 
Oracle Solaris 11 における システム、ネットワーク、ストレージの仮想化機能
Oracle Solaris 11 における システム、ネットワーク、ストレージの仮想化機能Oracle Solaris 11 における システム、ネットワーク、ストレージの仮想化機能
Oracle Solaris 11 における システム、ネットワーク、ストレージの仮想化機能
 
Wine on Solaris 11 Express
Wine on Solaris 11 ExpressWine on Solaris 11 Express
Wine on Solaris 11 Express
 
Oracle solaris 10 u9 iSCSI Boot
Oracle solaris 10 u9 iSCSI BootOracle solaris 10 u9 iSCSI Boot
Oracle solaris 10 u9 iSCSI Boot
 
Opensolaris ipfilter 20090710
Opensolaris ipfilter 20090710Opensolaris ipfilter 20090710
Opensolaris ipfilter 20090710
 

第6回コンテナ型仮想化の情報交換@東京「今日から触れる Solaris Zones 入門」

  • 3. ⽬目的 •  とにかく Solaris Zones を作ってみる •  第4回コンテナ型仮想化勉強会@東京  Oracle  Solaris  のコンテナ技 術「Solaris  Zones」 h/p://www.slideshare.net/satokaz/4-­‐20140906-­‐solariszones   3
  • 4. @satokaz ⾃自⼰己紹介 •  某社で製品情報を左から右に流流す仕事に従事 – Solaris とか Solaris とか Solaris とか •  ⽔水槽の前に座って熱帯⿂魚に話かけるのが得意。返事はない。 – コリドラス(なまず)が可愛くていつも⽔水槽の前で死にかけている – AQUA LIFE が愛読書 •  最近の悩み:悩みが多すぎるのが悩みです 4
  • 5. Oracle Solaris Zones Ø  Na#ve  Zones   5
  • 6. Oracle Solaris Zones について アプリケーション実⾏行行環境であること •  統合技術(コンソリデーション) – 1960年年代から開発されている技術になり、メインフレーム環境において⼀一般 的な技術 •  実⾏行行されている環境を変えないようにする – ゾーンの基本的な設計原則の1つ。アプリケーションがセキュリティや隔離離の ⽬目標を達成するために必要な場合を除いて、実⾏行行されている環境を変えない ようにすること •  アプリケーションを「移植」する必要はない – ゾーンは、新しい API や ABI を提⽰示しない代わりに、いくつかの制限付きの Solaris API/ABI インタフェースを提供 6
  • 7. Oracle Solaris Zones について Solaris Zones の開発⽬目標 (2003 年年代) •  セキュリティ(Security) –  ネットワークサービスを分離離し、システム全体に及ばない権限のサブセットを提供 •  隔離離(Isolation) –  複数のアプリケーションを異異なる信頼された領領域で実⾏行行すると共に、グローバルリソースへ の排他的アクセスを提供 •  仮想化(Virtualization) –  アプリケーションへの物理理デバイスや物理理ホスト情報を隠蔽する仮想化環境を提供 •  粒粒度度(Granularity) –  物理理パーティショニングと違いリソースを細かく分配可能に •  透過性(Transparency) –  アプリケーションの移植を必要としない 7
  • 8. Oracle Solaris Zones について アイソレーションのアプローチ アプローチ メモ chroot 古くから利利⽤用されるプロセスのアイソレーション⽅方法となるが、それ以外の ものは隔離離できない jails chroot ライクであり、ファイルシステムなどもアイソレーション可能 Trusted Operating System セキュアOS としての要件を満たすアプローチ Hardware または Logical Partitioning 2003 年年頃。logical partitions for SPARC の実装を別プロジェクトで実施中。 後の  Ldoms (Oracle VM for SPARC) 8 •  Solaris ゾーンは、jails の基本的な考え⽅方に基づいて実装されている – さらに OS に統合し包括的な機能として提供できるよう概念念を独⾃自に拡張
  • 9. Oracle Solaris Zones について 組み込まれた仮想化機能 •  単⼀一システム上に複数の 隔離離されたランタイム環境(Solaris インスタンス )を提供する機能 •  ゾーンは⼤大きく  2 種類に区分 ü  ⼤大域ゾーン  (global zone) •  オペレーティングシステムの実体 ü  ⾮非⼤大域ゾーン  (non-global zone) •  ⼤大域ゾーン上で動作するアプリケーション 実⾏行行環境 •  ⼤大域ゾーンとカーネルを共有 •  ⾮非⼤大域ゾーン間は完全に隔離離 •  最⼤大  8192 個  (⼤大域ゾーン含む) 作成可能 zone01 zone02 zone03 net0:1 zcons /usr ゾーン管理理  (zonecfg, zoneadm, zlogin, etc) zoneadmd zoneadmd zoneadmd net0:2 /data /usr net1 /data /usr C C C C Virtual Platform /data zcons zcons
  • 10. ⼿手っ取り早く動かすのに必要なもの Solaris 11.2 が動いていないと始められない •  Oracle Solaris 11.2 – ベアメタルや VM 上で動作する Solaris 11.2 環境 •  ネットワーク – IPS リポジトリへ接続 •  IPS リポジトリ – ネットワーク上(pkg.oracle.com) – または、ローカルファイルシステムに配置 •  気持ち♥︎ 10
  • 11. Oracle Solaris 11.2  をすぐに試せる  VM テンプレート •  Oracle Solaris 11.2 VM Downloads http://www.oracle.com/technetwork/server-storage/solaris11/downloads/vm-templates-2245495.html –  Oracle Solaris 11.2 VM for Oracle VM VirtualBox (1.6GB) •  VirtualBox にインポートするだけで  Oracle Solaris 11.2 を試⽤用可能 •  どうぞ、オラクルに個⼈人情報を登録頂きダウンロードしてください! – Oracle プロファイル(アカウント)への登録が必要 •  VirtualBox へのインストールは、 Oracle Solaris 11のOracle VM VirtualBoxへのインストール (OTN Oracle Solaris ハンズオンラボ) http://www.oracle.com/technetwork/jp/systems/hands-on-labs/s11-vbox-install-1408628-ja.html –  Solariss 11.1 ってなっているけど 11.2 に読み替えてね
  • 12. Solaris Zones について そういえば、CPU/メモリってどうなってるの? とりあえず、最初は気にしない •  CPU リソース – デフォルトは⼤大域ゾーンと共有 – リソース管理理機能により物理理  CPU の直接割り当ても可能 •  メモリ – ⼤大域ゾーンと共有 – リソース管理理機能により使⽤用メモリの上限を設定することは可能 – 物理理的な割当不不可(Kernzl Zones は可能) •  スワップは⼤大域ゾーンと共有 12
  • 13. Solaris Zones について 13 Solaris Zones の種類 Solaris  Native  Zones Solaris  Kernel  Zones solaris-‐‑‒kz n  Solaris  11.2  から提供される新たなゾーン
  • 14. Oracle Solaris Zones Solaris Zones 管理理コマンド 14 コマンド 概要 zonecfg zones の構成管理理ユーティリティ zoneadm zones を管理理する(install, uninstall, boot, halt, shutdown, attach/detach, clone, etc…) zlogin zones へのログインするために、ローカルシステム 上で利利⽤用 zonestat zone の統計情報、リソース利利⽤用情報を取得 ready installed incomplete uninstall mark incomplete uninstall install bootbootready halt ready halt mark incomplete reboot configured No Zone createdelete login Zone running zonecfgzoneadmzlogin
  • 15. Solaris Zones 作成の基本操作 ゾーンとなる“空の⼊入れモノ”を作成 15 # zonecfg -z testzone Use 'create' to begin configuring a new zone. zonecfg:testzone> create create: Using system default template 'SYSdefault' zonecfg:testzone> export create -b set zonepath=/system/zones/%{zonename} set autoboot=false set autoshutdown=shutdown set ip-type=exclusive add anet set linkname=net0 set lower-link=auto set configure-allowed-address=true set link-protection=mac-nospoof set mac-address=auto end zonecfg:testzone> verify zonecfg:testzone> commit zonecfg:testzone> exit # zoneadm list -vc ID NAME STATUS PATH BRAND IP 0 global running / solaris shared root@s11u2-sru7-4:~# zoneadm list -vc ID NAME STATUS PATH BRAND IP 0 global running / solaris shared - testzone configured /system/zones/testzone solaris excl testzone の情報が追加 ゾーン関連の構成ファイルは  /etc/zones に配置
  • 16. Solaris Zones 作成の基本操作 “空の⼊入れモノ”に命を吹き込む (1/2) 16 # zoneadm -z testzone install The following ZFS file system(s) have been created: rpool/VARSHARE/zones/testzone Progress being logged to /var/log/zones/zoneadm.20150218T023659Z.testzone.install Image: Preparing at /system/zones/testzone/root. Install Log: /system/volatile/install.4656/install_log AI Manifest: /tmp/manifest.xml.tRaGej SC Profile: /usr/share/auto_install/sc_profiles/enable_sci.xml Zonename: testzone Installation: Starting … Creating IPS image 開始  リンクされたイメージ: 1/1 完了了 Installing packages from: solaris origin: http://pkg.oracle.com/solaris/support/ ダウンロード                                  パッケージ    ファイル    転送  (MB) 速度度 完了了                                                              281/281 53222/53222 352.3/352.3 320k/s
  • 17. Solaris Zones 作成の基本操作 “空の⼊入れモノ”に命を吹き込む (2/2) 17 フェーズ                                                                    項⽬目 新しいアクションをインストールしています  71132/71132 パッケージ状態データベースを更更新しています            完了了   パッケージキャッシュを更更新しています                  0/0 イメージ状態を更更新しています            完了了   スピード検索索データベースを作成しています            完了了   パッケージキャッシュを更更新しています                  1/1 Installation: Succeeded Note: Man pages can be obtained by installing pkg:/system/manual done. Done: Installation completed in 1256.021 seconds. Next Steps: Boot the zone, then log into the zone console (zlogin -C) to complete the configuration process. Log saved in non-global zone as /system/zones/testzone/root/var/log/zones/zoneadm.20150218T023659Z.testzone.install root@s11u2-sru7-4:~# zoneadm list -vc ID NAME STATUS PATH BRAND IP 0 global running / solaris shared - testzone configured /system/zones/testzone solaris excl root@s11u2-sru7-4:~# zoneadm list -vc ID NAME STATUS PATH BRAND IP 0 global running / solaris shared - testzone installed /system/zones/testzone solaris excl インストールが成功すると  installed  にステータスが変更更
  • 18. 18 # zoneadm -z testzone install Progress being logged to /var/log/zones/zoneadm.20150218T022840Z.testzone.install Image: Preparing at /system/zones/testzone/root. Install Log: /system/volatile/install.3270/install_log AI Manifest: /tmp/manifest.xml.JdaOwg SC Profile: /usr/share/auto_install/sc_profiles/enable_sci.xml Zonename: testzone Installation: Starting ... Creating IPS image Error occurred during execution of 'generated-transfer-3270-1' checkpoint. Failed Checkpoints: Checkpoint execution error: Error refreshing publishers, 0/1 catalogs successfully updated: Encountered the following error(s): Unable to contact any configured publishers. This is likely a network configuration problem. 1: Framework error: code: 28 reason: Operation too slow. Less than 1024 bytes/sec transfered the last 3 URL: 'http://pkg.oracle.com/solaris/support' (happened 2 times) 2: Framework stall: URL: 'http://pkg.oracle.com/solaris/support' (happened 2 times) Installation: Failed. See install log at /system/volatile/install.3270/install_log ERROR: auto-install failed. # インストール失敗例例: ネットワークの疎通が無く、 IPS  リポジトリへの接続ができないため 失敗したら # zoneadm –z testzone uninstall でやり直し root@s11u2-sru7-4:~# zoneadm list -vc ID NAME STATUS PATH BRAND IP 0 global running / solaris shared - testzone incomplete /system/zones/testzone solaris excl
  • 19. Solaris Zones 作成の基本操作 zonecfg の構成情報について 19 # zonecfg -z testzone export create -b set brand=solaris set zonepath=/system/zones/%{zonename} set autoboot=false set autoshutdown=shutdown set ip-type=exclusive add anet set linkname=net0 set lower-link=auto set configure-allowed-address=true set link-protection=mac-nospoof set mac-address=auto end プロパティ 値 概要 brand solaris ゾーンの種類を指定 zonepath /sytem/zones ディレクトリに   zonename で作 成(default) ゾーンのデータ配置 先 autoboot false ⾃自動起動の有無 autoshutdow n shutdown ⼤大域ゾーンのシャッ トダウン時の動作 ip-type exclusive ネットワークスタッ クの種類 add anet : end exclusive で求 められる設定 ネットワークの設定 (ip-type の設定で構 成⽅方法が異異なる)
  • 20. Solaris Zones 作成の基本操作 そういえば、ファイルシステムってどうなってるの? ⼤大域ゾーン(global zones)/ /usr /platform /sbin /lib /export/system /dev/root /etc /var ZFS dataset (ZVOL) ⼀一部のファイルシステム を読み取り専⽤用で継承 /opt 完全ルートゾーン (whole root zones)/ /usr /platform /sbin /lib /export /etc /var /opt (local,  iscsi,  fc  …) NaJve  Zones /testzones /zones ZFS データセットに配置
  • 21. Solaris Zones 作成の基本操作 そういえば、ファイルシステムってどうなってるの? root@s11u2-sru7-4:/system/zones# zfs list NAME USED AVAIL REFER MOUNTPOINT rpool 18.6G 12.4G 4.65M /rpool rpool/ROOT 11.7G 12.4G 31K legacy rpool/ROOT/solaris 58.7M 12.4G 4.78G / rpool/ROOT/solaris-backup 132M 12.4G 4.78G / rpool/ROOT/solaris-backup-1 9.82M 12.4G 4.79G / rpool/ROOT/solaris-backup-1/var 3.19M 12.4G 1.87G /var rpool/ROOT/solaris/var 377K 12.4G 347M /var rpool/VARSHARE 695M 12.4G 4.80M /var/share rpool/VARSHARE/pkg 63K 12.4G 32K /var/share/pkg rpool/VARSHARE/pkg/repositories 31K 12.4G 31K /var/share/pkg/repositories rpool/VARSHARE/zones 690M 12.4G 32K /system/zones rpool/VARSHARE/zones/testzone 690M 12.4G 32K /system/zones/testzone rpool/VARSHARE/zones/testzone/rpool 690M 12.4G 31K /rpool rpool/VARSHARE/zones/testzone/rpool/ROOT 690M 12.4G 31K legacy rpool/VARSHARE/zones/testzone/rpool/ROOT/solaris 690M 12.4G 635M /system/zones/testzone/root rpool/VARSHARE/zones/testzone/rpool/ROOT/solaris/var 54.7M 12.4G 53.8M /system/zones/testzone/root/var rpool/VARSHARE/zones/testzone/rpool/VARSHARE 31K 12.4G 31K /var/share rpool/VARSHARE/zones/testzone/rpool/export 62K 12.4G 31K /export rpool/VARSHARE/zones/testzone/rpool/export/home 31K 12.4G 31K /export/home rpool/dump 1.03G 12.5G 1.00G - rpool/export 63K 12.4G 32K /export rpool/export/home 31K 12.4G 31K /export/home rpool/swap 1.03G 12.5G 1.00G -
  • 22. Solaris Zones 作成の基本操作 動かすよっ! 22 # zoneadm -z testzone boot root@s11u2-sru7-4:~# zoneadm list -vc ID NAME STATUS PATH BRAND IP 0 global running / solaris shared - testzone running /system/zones/testzone solaris excl root@s11u2-sru7-4:~# zoneadm list -vc ID NAME STATUS PATH BRAND IP 0 global running / solaris shared - testzone configured /system/zones/testzone solaris excl 起動が成功すると  running  にステータスが変更更 # zonestat 1 1 Collecting data for first interval... Interval: 1, Duration: 0:00:01 SUMMARY Cpus/Online: 2/2 PhysMem: 6339M VirtMem: 7363M ---CPU---- --PhysMem-- --VirtMem-- --PhysNet-- ZONE USED %PART USED %USED USED %USED PBYTE %PUSE [total] 0.06 3.09% 3616M 57.0% 4152M 56.3% 212 0.00% [system] 0.01 0.99% 2955M 46.6% 3226M 43.8% - - global 0.04 2.00% 578M 9.11% 847M 11.5% 212 0.00% testzone 0.00 0.09% 82.7M 1.30% 78.5M 1.06% 0 0.00%
  • 23. Solaris Zones 作成の基本操作 動かすよっ! # prstat –Z PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP 2044 root 245M 123M sleep 59 0 0:01:32 0.3% java/23 2049 root 131M 18M sleep 59 0 0:00:44 0.2% gnome-power-man/4 974 root 15M 3812K sleep 59 0 0:00:24 0.1% vmtoolsd/2 12368 root 20M 5472K sleep 59 0 0:00:00 0.0% sshd/1 5 root 0K 0K sleep 99 -20 0:00:44 0.0% zpool-rpool/137 12399 root 5904K 3448K cpu1 59 0 0:00:00 0.0% prstat/1 12369 root 4756K 2620K sleep 49 0 0:00:00 0.0% bash/1 6478 root 4276K 2388K sleep 59 0 0:00:00 0.0% hald-addon-acpi/1 6474 root 7788K 5484K sleep 59 0 0:00:00 0.0% hald/5 12026 root 2940K 1736K sleep 59 0 0:00:00 0.0% in.routed/1 2077 root 61M 8192K sleep 12 19 0:00:01 0.0% updatemanagerno/1 2059 root 129M 12M sleep 59 0 0:00:01 0.0% isapython2.6/1 200 root 15M 4668K sleep 59 0 0:00:00 0.0% devfsadm/6 361 root 9544K 1396K sleep 59 0 0:00:00 0.0% dhcpagent/1 38 netcfg 4052K 2472K sleep 59 0 0:00:00 0.0% netcfgd/4 ZONEID NPROC SWAP RSS MEMORY TIME CPU ZONE 0 121 718M 580M 9.1% 0:05:33 0.7% global 1 33 77M 83M 1.3% 0:00:23 0.0% testzone Total: 154 processes, 796 lwps, load averages: 0.02, 0.16, 0.19
  • 24. Solaris Zones 作成の基本操作 動かすよっ! ⼤大域ゾーンから⾒見見えるプロセス •  ゾーンの種類により⼤大域ゾーンから⾒見見えるプロセスは異異なる – ⼤大域ゾーンからの参照例例: 24 Kernel Zones: instance-00001 の場合  → kzhost プロセスと  zsched プロセスの 2 つのみ # ps -aefZ | grep -v global ZONE UID PID PPID C STIME TTY TIME CMD instance root 12406 12223 0 Aug 09 ? 278:03 /usr/lib/kzhost instance root 12223 1 0 Aug 09 ? 0:00 zsched 従来の Native Zones: vrrpzone01 の場合 → ⾮非⼤大域ゾーンで稼働するプロセスを参照可能 # ps -afefZ -z vrrpzone01 | grep -v global ZONE UID PID PPID C STIME TTY TIME CMD vrrpzone root 12402 1 0 Jul 31 ? 0:00 /usr/lib/inet/in.ndpd vrrpzone root 11849 1 0 Jul 31 ? 0:00 /usr/lib/rad/rad -sp vrrpzone netadm 11776 1 0 Jul 31 ? 1:41 /lib/inet/ipmgmtd vrrpzone root 11675 1 0 Jul 31 ? 8:08 /lib/svc/bin/svc.configd vrrpzone root 11779 1 0 Jul 31 ? 0:00 /usr/lib/pfexecd vrrpzone root 11873 1 0 Jul 31 ? 0:00 /usr/lib/dbus-daemon --system vrrpzone root 12477 1 0 Jul 31 ? 0:00 /usr/lib/ssh/sshd vrrpzone netcfg 11722 1 0 Jul 31 ? 3:02 /lib/inet/netcfgd vrrpzone daemon 11853 1 0 Jul 31 ? 0:06 /usr/lib/utmpd vrrpzone root 10770 1 0 Jul 31 ? 0:00 zsched vrrpzone root 12485 1 0 Jul 31 ? 0:02 /usr/sbin/syslogd
  • 25. Solaris Zones 作成の基本操作 ゾーンはコンソールを持っています(1/2) 25 # zoneadm -C testzone ゾーンが提供する疑似コンソールへ 接続します 画⾯面に何も表⽰示されなかったら、 とりあえず  Ctrl  +  L  を押して リフレッシュ ネットワークやリージョン、⾔言語、 パスワード設定などを⾏行行います ネットワークは  Automatically  で DHCP  利利⽤用に設定される
  • 26. Solaris Zones 作成の基本操作 ゾーンはコンソールを持っています(2/2) 26 # zoneadm -C testzone [Connected to zone 'testzone' console] SunOS Release 5.11 Version 11.2 64-bit Copyright (c) 1983, 2014, Oracle and/or its affiliates. All rights reserved. Hostname: testzone testzone console login: 起動後は  login  プロンプトを出⼒力力して あなたを待っています 初期設定時に作成したユーザーでログイン可能
  • 27. Solaris Zones 作成の基本操作 そういえば、ネットワークってどうなってるの? •  共有IP (shared IP)ゾーン –  ⼤大域ゾーンと物理理ネットワークを共有 –  Oracle Solaris 10 10/08よりデフォルト ルータを⾮非⼤大域ゾーン毎に設定可能 •  排他的IP (exclusive IP)ゾーン –  Solaris 11 以降降デフォルトのタイプ –  ⾮非⼤大域ゾーンに専⽤用の物理理ネットワー クを割り当て –  GLDv3に対応したNICが必要 –  Solaris 11 では仮想 NIC を割当可能に ⾮非⼤大域ゾーン⾮非⼤大域ゾーン⼤大域ゾーン net1 net0:1 net0:0 共有IP 排他的IP IPスタックを⼤大域 ゾーンと共有 独⽴立立したIPスタック
  • 28. Solaris Zones 作成の基本操作 そういえば、ネットワークってどうなってるの? ⼤大域ゾーンから⾒見見た場合 root@s11u2-sru7-4:~# dladm show-phys LINK MEDIA STATE SPEED DUPLEX DEVICE net0 Ethernet up 1000 full e1000g0 net1 Ethernet up 1000 full e1000g1 root@s11u2-sru7-4:~# dladm show-link LINK CLASS MTU STATE OVER net0 phys 1500 up -- net1 phys 1500 up -- testzone/net0 vnic 1500 up net0 testzone から⾒見見た場合 root@s11u2-sru7-4:~# zlogin testzone ipadm NAME CLASS/TYPE STATE UNDER ADDR lo0 loopback ok -- -- lo0/v4 static ok -- 127.0.0.1/8 lo0/v6 static ok -- ::1/128 net0 ip ok -- -- net0/v4 static ok -- 172.16.166.140/24 net0/v6 addrconf ok -- fe80::8:20ff:feec: 3562/10 net0 (e1000g0) vnic0 vnic1 vnic2 vnic3 vnic4 vnic5 vnic6 vnic7 •  例例)   指定された物理理  NIC  から複数の仮想  NIC  を⽣生成し   ゾーンで利利⽤用   28•  zonecfg の  anet プロパティは、 ゾーン起動時に⾃自動的に仮想 NIC を⽣生成し ネットワークを構成してくれる •  初期設定時、ネットワーク構成を⾃自動にして いれば DHCP からアドレスを取得 •  ゾーンのシャットダウン時には構成解除
  • 29. Solaris Zones 作成の基本操作 Solaris Zones 作成までのまとめ 29 # zonecfg -z testzone “create;verify;commit;exit” # zoneadm –z testzone install # zoneadm –z testzone boot; zlogin –e # –C testzone zlogin 実⾏行行時 –e オプションで エスケープシーケンスを 変更更しておくと⾊色々捗ります net0 testzone01 Solaris 11.2 仮想  NIC global zone Solaris 11.2 OSの初期設定画⾯面へ
  • 30. Solaris Zones 作成の基本操作 もっと楽に!ー  プロファイル・テンプレートを作成 •  sysconfig  コマンドにてSolarisの構成プロファイルを作成可能   – #  sysconfig  create-­‐profile  –o  /usr/tmp/sc_profile.xml <!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1"> <service_bundle type="profile" name="sysconfig"> <service version="1" type="service" name="system/config-user"> <instance enabled="true" name="default"> <property_group type="application" name="root_account"> <propval type="astring" name="login" value="root"/> <propval type="astring" name="password" value="$5$9Ksg9h"/> <propval type="astring" name="type" value="role"/> </property_group> <property_group type="application" name="user_account"> <propval type="astring" name="login" value="kazus"/> <propval type="astring" name="password" value="$5$UZP0F6"/> <propval type="astring" name="type" value="normal"/> <propval type="astring" name="description" value="kazus"/> <propval type="count" name="gid" value="10"/> <propval type="astring" name="shell" 設定は、xml  形式でファイルに出⼒力力される ホスト名、ネットワーク設定などの   初期設定項⽬目をプロファイル化することが可能に
  • 31. • プロファイルを利利⽤用した例例   – システムの構成   •  #  sysconfig  configure  -­‐c  /usr/tmp/sc.xml     –   ゾーンの  OS  を⾃自動構成   •  #  zoneadm    -­‐z  testzone  install  -­‐c  /usr/tmp/sc.xml  -­‐d  /userpool/zones/zone01/root/  -­‐u   – Automated  Installer  での利利⽤用   • 構成に必要な情報の設定を⾃自動化   – ホスト名、ネットワーク設定、ロケールなど   – ゾーン作成に利利⽤用すると最⼩小の⼿手数でゾーンを準備可能   Solaris Zones 作成の基本操作 もっと楽に!ー  プロファイル・テンプレートを作成
  • 32. Solaris Zones 作成の基本操作 ここからが始まりです •  【第⼀一回  ゼロからはじめる  Oracle Solaris 11】 – 始めなければ何も始まらない!まずはインストールから始めよう   – 知るべきは  pkg(1) コマンドのみ!  〜~Image Packaging System (IPS) が管理理 者にもたらすものとは〜~   •  SlideShare http://www.slideshare.net/SolarisJP/ 32
  • 33. Solaris Native Zones を動かすことができたら やってみよー  その 1 •  zoneadm のマニュアルを読む •  Kernel Zones に挑戦してみる – Type2 HyperVisor に似た仕組みで実装される新しい Solaris Zones •  リソース管理理を設定してみる – CPU, メモリのリソース管理理 •  共有ストレージに配置する ZOSS (Zones on Shared Storage) – iSCSI, FC などに Zones を配置 •  統合アーカイブ機能によるバックアップ/リストア/クローン 33
  • 34. Solaris Native Zones を動かすことができたら やってみよー  その  2 •  可⽤用性の適⽤用 – Oracle Solaris Cluster による Zones Cluster 機能 •  新しい仮想スイッチ機能 EVS (Elastic Virtual Switch) との連携 – ホストを跨いだ仮想スイッチ機能と – Solaris Zones のマイグレーション •  ⾊色々アプリケーションを動かしてみる •  とにかく何でもやってみる •  あっ、Solaris Zones はいくら作っても無償です 34
  • 35. おすすめ仮想化環境 お好きなほうを •  VMware    – Kernel Zones を利利⽤用可能 – VMware Cmpatibility Guide: OS Release Name: Solaris 11.2 – KB Articles を確認 •  2040498 VMware KB: Mouse does not function on a Solaris 11 virtual machine (2040498) – ホストとゲスト間のマウス移動をシームレスに⾏行行うための設定 •  VirtualBox – Kernel Zones は利利⽤用不不可 – Solaris をサポートしているので楽 35
  • 36. 参考情報 •  Solaris Zones: Operating System Support for Consolidating Commercial Workloads – Daniel Price and Andrew Tucker – Sun Microsystems, Inc. – https://www.usenix.org/legacy/event/lisa04/tech/full_papers/price/price.pdf •  Oracle Solaris 11.2 Information Library (英語) – http://docs.oracle.com/cd/E36784_01/index.html •  Oracle Solaris 11.2 ⽇日本語マニュアル – http://docs.oracle.com/cd/E56342_01/index.html 36
  • 37. 参考情報 •  Oracle Solarisハンズオン・ラボ     http://www.oracle.com/technetwork/jp/systems/hands-on-labs/solaris- labs-1904205-ja.html •  第4回コンテナ型仮想化勉強会@東京  Oracle  Solaris  のコンテナ技 術「Solaris  Zones」 h/p://www.slideshare.net/satokaz/4-­‐20140906-­‐solariszones   37