Oracle Solarisは、オペレーティング・システム、ストレージ、およびネットワークの仮想化を実現する、世界で初めて完全に仮想化されたオペレーティング・システムです。このラボでは、これらの各仮想化オプションについて簡単に説明します。また、さらに重要な、これらの組合わせによって非常に俊敏なシステムを実現する方法について説明します。
Oracle Solaris 11 VirtualBox VMを使用している場合は、環境を以下のようにセットアップしてください。
オペレーティング・システム:Oracle Solaris 11 11/11
ホスト名:solaris(デフォルト)
IPアドレス:10.0.2.15
ユーザー:oracle(インストールに関するラボで推奨)
パスワード:<Solaris VMの初回起動時に構成したユーザー・パスワード>
rootパスワード:<Solaris VMの初回起動時に構成したrootパスワード>
Oracle Solaris 11では、以下のような新しい強力なネットワーク・スタック・アーキテクチャが導入されています。
ラボの演習を通じて、これらの3つのネットワーク仮想化機能セットのすべてについて説明します。最初の演習では、後でゾーン作成時(演習2)に使用できるVNICの作成方法について学習します。
oracle@solaris:~$ dladm show-link LINK CLASS MTU STATE BRIDGE OVER net0 phys 1500 up -- --
oracle@solaris:~$ sudo dladm create-vnic -l net0 vnic0 Password:
oracle@solaris:~$ dladm show-link LINK CLASS MTU STATE BRIDGE OVER net0 phys 1500 up -- -- vnic0 vnic 1500 up -- net0
oracle@solaris:~$ dladm show-vnic LINK OVER SPEED MACADDRESS MACADDRTYPE VID vnic0 net0 1000 2:8:20:cd:c1:d9 random 0
oracle@solaris:~$ sudo dladm set-linkprop -p maxbw=400 vnic0
oracle@solaris:~$ dladm show-vnic LINK OVER SPEED MACADDRESS MACADDRTYPE VID vnic0 net0 400 2:8:20:cd:c1:d9 random 0
oracle@solaris:~$ sudo ipadm create-ip vnic0 oracle@solaris:~$ sudo ipadm create-addr -T static -a local=10.0.2.20/24 vnic0/v4static1
oracle@solaris:~$ ifconfig -a4 lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 net0: flags=1004843<UP,BROADCAST,RUNNING,MULTICAST,DHCP,IPv4> mtu 1500 index 3 inet 10.0.2.15 netmask ffffff00 broadcast 10.0.2.255 vnic0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 4 inet 10.0.2.20 netmask ffffff00 broadcast 10.0.2.25
Oracle Solaris Zonesは、アプリケーションをそのアプリケーション専用の安全な環境に隔離することによってリスクを軽減できる、オペレーティング・システム・レベルの仮想化テクノロジーです。Oracle Solaris Zoneによって、ファイル・システム、プロセス、およびネットワークが安全に隔離されます。このゾーンは、ネットワーク上の個別のシステムのように見えます。Oracle Solaris Zoneへの攻撃は、Oracle Solaris Zoneの境界を超えることができません。
ワークロードを分離するだけではなく、Oracle Solaris Zonesにより、そのワークロード専用のシステム・リソースの管理も可能になります。具体的には、Oracle Solaris Zone管理者は、Oracle Solaris Zoneが使用できるCPU容量、RAM、および仮想メモリの総量を制御できます。演習1で説明した方法によってネットワーク仮想化テクノロジーと組み合わせることにより、使用できるネットワーク帯域幅の総量も管理できます。この点については、後の演習で説明します。
図で示すと、完成したマシンは、次のように構成されます。
ゾーンをホストするZFSファイル・システムを作成します(追加のゾーンを作成する場合には、そのゾーンもこのファイル・システムに配置できます)。ZFSについてはこのラボでは説明しませんが、ZFSについての基本的な知識がない場合は、ラボ:Oracle Solaris 11 ZFSファイル・システムの概要を参照してください。
ゾーンを、そのゾーン用のZFSファイル・システムに配置することにより、データ圧縮やゾーンの迅速かつ効率的なクローン化といったZFSの高度なデータ管理機能を利用できるようになります。今日のCPUでは、非圧縮データのディスクへの書込み/ディスクからの読取りにかかる時間よりもデータの圧縮/解凍にかかる時間の方が短いため、ここで、圧縮を有効にします。次のzfs createコマンドの最後の構成要素であるrpool/zonesは、データセット名です。このデータセット名は、他のZFSコマンドをこのファイル・システムに適用する際に使用します。
oracle@solaris:~$ sudo zfs create -o mountpoint=/zones -o compression=on rpool/zones
ゾーン専用のネットワーク・インタフェースに関しては、次の2つのオプションがあります。
oracle@solaris:~$ sudo dladm create-vnic -l net0 myzone0
システムのネットワーク・インタフェースを表示します。
oracle@solaris:~$ dladm show-link LINK CLASS MTU STATE BRIDGE OVER net0 phys 1500 up -- -- vnic0 vnic 1500 up -- net0 myzone0 vnic 1500 up -- net0
次の手順で、ゾーンを構成します。ゾーン構成時に設定する値について簡単に説明します。
次のコマンドを使用してゾーンを構成します。
zonecfg zonecfgユーティリティは、[Tab]キーによる補完をサポートします。任意の時点で[Tab]キーを押すと、入力可能なコマンドのリストが表示されます。入力可能なコマンドが1つしかない場合は、そのコマンドが補完されて入力されます。 |
oracle@solaris:~$ sudo zonecfg -z myzone myzone: No such zone configured Use 'create' to begin configuring a new zone. zonecfg:myzone> create zonecfg:myzone> set zonepath=/zones/myzone zonecfg:myzone> set autoboot=true zonecfg:myzone> set ip-type=exclusive zonecfg:myzone> add net zonecfg:myzone:net> set physical=myzone0 zonecfg:myzone:net> end zonecfg:myzone> verify zonecfg:myzone> exit
ゾーンをインストールします。ゾーンのインストールには、約175MBのダウンロードが必要です。時間とネットワーク帯域幅を節約するために、今回は、tzoneという既存のゾーン(OTN SysAdmin Day Pre-workで作成するゾーン)をクローン化します。ゾーンのインストールは完了までに約10分かかりますが、ゾーンのクローン化は約10秒で完了します。この既存のゾーンががない場合(確認するにはzoneadm list -cvを実行)、次のコマンドのclone tzone、installに置き換えてください。
bleonard@solaris:~$ sudo zoneadm -z myzone clone tzone
システムに構成されている2つのゾーンを確認します。一つは大域ゾーン(すべてのOracle Solarisシステムに事前に存在します)であり、もう一つは新しい非大域(ローカル)ゾーンのmyzoneです。
oracle@solaris:~$ zoneadm list -cv ID NAME STATUS PATH BRAND IP 0 global running / ipkg shared - myzone installed /zones/myzone ipkg excl
myzoneは、インストールされていますが、まだ動作していないことに注意してください。この後ですぐに起動します。ブランドは、ipkgです。これは、ゾーンが大域ゾーンと同じオペレーティング・システム(Solaris 11)で動作することを意味します。Oracle Solaris 11は、他のオペレーティング・システム(Solaris 10など)を実行するためのブランド・ゾーンもサポートします。
ZFSによって使用されるデフォルトの圧縮アルゴリズムは、lzjbです。ゾーンがインストールされたので、rpool/zonesデータセットについて実現されている圧縮率を確認します。
oracle@solaris:~$ zfs get compressratio rpool/zones NAME PROPERTY VALUE SOURCE rpool/zones compressratio 1.62x -
ゾーンを起動するための準備を整えます。初回起動時には、ゾーンが、そのゾーンを構成する一連の手順を示します。
# zoneadm -z myzone boot # zlogin -C myzone
zloginの-Cオプションにより、ゾーン・コンソールにアクセスできます。つまり、ゾーンに入り、ゾーン内から作業できるようになります。使用できるシステム構成ファイルがないため、システム構成ツールが起動し、タイムゾーン、rootパスワード、およびネットワーク構成をセットアップする一連の手順を実行する必要があります。このセットアップの正確な手順については、Oracle Technology Networkの記事を参照してください。
rootパスワードおよびoracleユーザーのパスワードは、zlogin -Cによってゾーンに接続したときにシステム構成ツールで構成したパスワードになることに注意してください。
後で、sysconfigコマンドによってシステム構成ツールを実行して、システム構成を変更したり、システム構成が.xml形式で格納されるプロファイルを作成したりすることができます。
ゾーン内から外部へpingを実行できるかどうかをテストします。
root@myzone:~# ping www.oracle.com www.oracle.com is alive
Oracle VM VirtualBox構成と大域ゾーン構成を変更していない場合、ホスト・マシンがインターネットに接続されていれば、インターネット接続はすぐに使用できます。問題がある場合は、ネットワーク構成をトラブルシューティングできます。
注:Oracle Solaris 11のネットワーク構成は、それ以前のリリースから変更されています。/etc/resolve.confや/etc/nsswitch.confなどの構成ファイルは依然として存在しますが、それらはSMFリポジトリに含まれる情報からコンパイルされるだけです。このため、次のコマンドを使用して、IPアドレス、デフォルト・ゲートウェイ、ネーム・サーバー・アドレス、およびネーム・サービスが正しく構成されていることを確認する必要があります。
ipadm show-addr netstat -rn svcprop -p config/nameserver dns/client svcprop name-service/switch
SMFリポジトリのネーム・サービス構成へのインポートおよびネーム・サービス構成からのエクスポートのために、nscfg(1)という新しいユーティリティが用意されています。このユーティリティにより、下位互換性のために、SMF構成から/etc/nsswitch.confや/etc/resolv.confなどの従来のファイルを再作成することもできます。
netstatによってルーティング・テーブルを表示できます。
root@myzone:~# netstat -rn Routing Table: IPv4 Destination Gateway Flags Ref Use Interface -------------------- -------------------- ----- ----- ---------- --------- default 10.0.2.2 UG 1 0 10.0.2.0 10.0.2.25 U 4 265 myzone0 127.0.0.1 127.0.0.1 UH 2 24 lo0 Routing Table: IPv6 Destination/Mask Gateway Flags Ref Use If --------------------------- --------------------------- ----- --- ------- ----- ::1 ::1 UH 2 0 lo0
ここで、次のように、外部にアクセスできます。
root@myzone:~# ping www.oracle.com www.oracle.com is alive
この時点では、ゾーンへのアクセスは、大域ゾーンからzloginユーティリティを使用することによってのみ可能です。ゾーンにリモートでアクセスするには、ユーザー・アカウントを作成する必要があります。この演習のために、tstarkというユーザーを作成します。myzoneインタフェースの実際のIPアドレスを確認してください(以下の例で使用されている10.0.2.25とは異なる場合があります)。
root@myzone:~# useradd -m -d /tstark -s /usr/bin/bash tstark 80 blocks root@myzone:~# passwd tstark New Password: abc133 Re-enter new Password: abc123 passwd: password successfully changed for tstark
tstarkの初期ログオン時のパスワードを変更します。
root@myzone:~# passwd -f tstark passwd: password information changed for tstark
大域ゾーンにログインしている別のターミナル・ウィンドウに戻ります。便宜上、次のように、myzoneをhostsファイルに追加します。
oracle@solaris:~$ cat /etc/inet/hosts # CDDL HEADER START # # ... # # Internet host table # ::1 solaris solaris.local localhost loghost 127.0.0.1 solaris solaris.local localhost loghost 10.0.2.25 myzone
tstarkとしてmyzoneにログインします。
oracle@solaris:~$ ssh tstark@myzone The authenticity of host 'myzone (10.0.2.25)' can't be established. RSA key fingerprint is 2c:07:3a:fc:a0:c5:1b:80:de:c8:37:3d:d2:72:56:bf. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'myzone,10.0.2.25' (RSA) to the list of known hosts. Password: abc123 Warning: Your password has expired, please change it now. New Password: 123abc Re-enter new Password: 123abc sshd-kbdint: password successfully changed for tstark Last login: Thu Apr 7 15:15:57 2011 from 10.0.2.15 Oracle Corporation SunOS 5.11 11.0 November 2011 tstark@myzone:~$
tstarkユーザーには権限がほとんどありません。このユーザーがrootロールを取得できるように、このロールを割り当てましょう。myzoneゾーンにrootとして接続し、そのままtstarkアカウントを変更します。
usermod -R root tstark
tstarkユーザーとしてログインしなおして、tstarkユーザーをsudoersファイルに追加します。sudoersファイルを編集するには、visudoを使用する必要があります。
VIチート・シート viに関する基本的な知識がない場合は、この演習で使用する以下のいくつかの共通キーボード・コマンドを確認してください。 [k]キー = 上に移動 |
tstark@myzone:~# visudo
次の行をファイルの任意の場所に追加します。NOPASSWD:設定はオプションですが、この設定により、このラボの残りの部分でsudoを使用する際の煩雑さが解消されます。
tstark ALL=(ALL) NOPASSWD: ALL
最後に、rootユーザーを終了します。
tstark@myzone:~# exit exit tstark@myzone:~$
この後の演習でゾーンのクローニングによるメリットを確認できるように、このゾーンを少しカスタマイズします。Apache Webサーバーをインストールしましょう。
tstark@myzone:~$ sudo pkg install apache-22 Nov 17 04:56:07 solaris sudo: tstark : TTY=console ; PWD=/home/tstark ; USER=root ; COMMAND=/usr/bin/pkg install apache-22 Packages to install: 5 Create boot environment: No Services to restart: 1 DOWNLOAD PKGS FILES XFER (MB) Completed 5/5 907/907 4.7/4.7 PHASE ACTIONS Install Phase 1171/1171 PHASE ITEMS Package State Update Phase 5/5 Image State Update Phase 2/2
次に、Apacheサーバーを有効にします。
tstark@myzone:~$ sudo svcadm enable apache22
大域ゾーンでFirefoxを起動して、ゾーンでのWebサーバーの動作をテストしてください。
ゾーンを希望どおりに構成できたので、このゾーンをテンプレートとして使用して、追加のゾーンを作成します。作成プロセスが非常に迅速になることと、ゾーンが希望どおりに事前に構成されることを確認してください。
まず、新しいゾーン用に新しいVNICを作成します。
oracle@solaris:~$ sudo dladm create-vnic -l net0 myzoneclone0
次に、ゾーン構成を定義します。
oracle@solaris:~$ sudo zonecfg -z myzoneclone myzoneclone: No such zone configured Use 'create' to begin configuring a new zone. zonecfg:myzoneclone> create create: Using system default template 'SYSdefault' zonecfg:myzoneclone> set zonepath=/zones/myzoneclone zonecfg:myzoneclone> set ip-type=exclusive zonecfg:myzoneclone> add net zonecfg:myzoneclone:net> set physical=myzoneclone0 zonecfg:myzoneclone:net> end zonecfg:myzoneclone> verify zonecfg:myzoneclone> exit
インストールを行ったときには数分かかりましたが、今回は数秒で完了しました。
ここで、新しいゾーンのシステム構成情報を指定する必要があります。 以下の手順を実行してください。myzoneの構成とは、ホスト名とIPアドレスが異なるだけです。このゾーンのIPアドレスを手動で定義しましょう。この演習の例では、10.0.2.35を使用しますが、10.0.2.35が現在のネットワーク構成に合わない場合は別のIPアドレスを使用してください。 sysconfigによって構成手順が順番に示され、適切な値の入力を求められます。
この構成は、ゾーンをインストールして起動する前に、構成プロファイルによって行うこともできます。
このプロファイルは、Oracle Solaris 11で導入されたコマンドによって作成できます。
sysconfig create-profile -o sc_profile.xml
sysconfig システム構成プロファイルを手動で編集した場合、sysconfigプロファイルに入力ミスや書式エラーがあると、ゾーンの起動プロセスが対話モードになります。 |
# mkdir profiles # mkdir profiles/defaultprofile # cp sc_profile.xml profiles/defaultprofile/
# zoneadm -z myzoneclone install -c /home/oracle/profilesまたは
# zoneadm -z myzoneclone clone myzone -c /home/oracle/profiles
次の手順ではゾーンをインストールしますが、インストールではなく、既存のゾーンをクローン化することもできます。まず、クローン化するゾーンを停止します。
$ sudo zoneadm -z myzone halt
次に、myzoneをクローン化します。
$ sudo zoneadm -z myzoneclone clone myzone -c /home/oracle/profiles
sysconfig -o 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$IP.0cabs$/3rNMAzh0lP/v/hLzp5iyClfTaeoln.VkgT0raL1bT9"/> <propval type="astring" name="type" value="normal"/> </property_group> </instance> </service> <service version="1" type="service" name="system/timezone"> <instance enabled="true" name="default"> <property_group type="application" name="timezone"> <propval type="astring" name="localtime" value="US/Pacific"/> </property_group> </instance> </service> <service version="1" type="service" name="system/environment"> <instance enabled="true" name="init"> <property_group type="application" name="environment"> <propval type="astring" name="LANG" value="C"/> </property_group> </instance> </service> <service version="1" type="service" name="system/identity"> <instance enabled="true" name="node"> <property_group type="application" name="config"> <propval type="astring" name="nodename" value="myzoneclone"/> </property_group> </instance> </service> <service version="1" type="service" name="system/keymap"> <instance enabled="true" name="default"> <property_group type="system" name="keymap"> <propval type="astring" name="layout" value="US-English"/> </property_group> </instance> </service> <service version="1" type="service" name="system/console-login"> <instance enabled="true" name="default"> <property_group type="application" name="ttymon"> <propval type="astring" name="terminal_type" value="sun-color"/> </property_group> </instance> </service> <service version="1" type="service" name="network/physical"> <instance enabled="true" name="default"> <property_group type="application" name="netcfg"> <propval type="astring" name="active_ncp" value="DefaultFixed"/> </property_group> </instance> </service> <service version="1" type="service" name="network/install"> <instance enabled="true" name="default"> <property_group type="application" name="install_ipv4_interface"> <propval type="astring" name="address_type" value="static"/> <propval type="net_address_v4" name="static_address" value="10.0.2.35/24"/> <propval type="astring" name="name" value="myzoneclone0/v4"/> </property_group> <property_group type="application" name="install_ipv6_interface"> <propval type="astring" name="stateful" value="yes"/> <propval type="astring" name="stateless" value="yes"/> <propval type="astring" name="address_type" value="addrconf"/> <propval type="astring" name="name" value="myzoneclone0/v6"/> </property_group> </instance> </service> <service version="1" type="service" name="system/name-service/switch"> <property_group type="application" name="config"> <propval type="astring" name="default" value="files"/> <propval type="astring" name="printer" value="user files"/> </property_group> <instance enabled="true" name="default"/> </service> <service version="1" type="service" name="system/name-service/cache"> <instance enabled="true" name="default"/> </service> <service version="1" type="service" name="network/dns/client"> <instance enabled="false" name="default"/> </service> </service_bundle>
ここで、ゾーンを起動します。
# zoneadm -z myzoneclone boot # zlogin -C myzoneclone [Connected to zone 'myzoneclone' console] Hostname: unknown Hostname: myzoneclone myzoneclone console login: Nov 18 03:37:55 myzoneclone sendmail[9688]: My unqualified host name (myzoneclone) unknown; sleeping for retry Nov 18 03:38:55 myzoneclone sendmail[9688]: unable to qualify my own domain name (myzoneclone) -- using short name myzoneclone console login: tstark Password: 123abc Oracle Corporation SunOS 5.11 11.0 November 2011 tstark@myzoneclone:~$ ifconfig -a4 lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 myzoneclone0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2 inet 10.0.2.35 netmask ffffff00 broadcast 10.0.2.255
Firefoxに戻り、Webサーバーをテストします。
10.0.2.35が大域ゾーンからルーティング可能であることが重要です。myzonecloneゾーン用に別のIPアドレスを構成している場合は、代わりにそのIPアドレスを使用してください。そのIPアドレスは、現在のネットワーク構成に合っているものである必要があります。
この演習では、ホスト名の設定に時間をかけるのではなく、IPアドレスを使用するだけです。
クローンでもtstarkユーザーを使用できます。実際にはmyzoneからログアウトしていても、クローンでは"最終ログイン"と検出されます。
oracle@solaris:~$ ssh tstark@10.0.2.35 The authenticity of host '10.0.2.35 (10.0.2.35)' can't be established. RSA key fingerprint is 8e:42:ea:ca:9c:dd:89:ba:80:a0:d1:60:74:79:4b:a2. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '10.0.2.35' (RSA) to the list of known hosts. Password: 123abc Last login: Thu Apr 7 15:15:57 2011 from 10.0.2.15 Oracle Corporation SunOS 5.11 11.0 November 2011 tstark@myzoneclone:~$
これまでのところで、オペレーティング・システムのクローンをわずか数分で起動できる、オペレーティング・システム仮想化とストレージ仮想化の強力な組合せについて説明しました。この演習では、ネットワーク仮想化によってゾーンにもたらされるさらなる価値について学習します。
次のように、大域ゾーンから、10Kのデータでmyzonecloneにpingします。
oracle@solaris:~$ ping -s 10.0.2.35 10000 PING 10.0.2.35: 10000 data bytes 10008 bytes from 10.0.2.35: icmp_seq=0. time=1.513 ms 10008 bytes from 10.0.2.35: icmp_seq=1. time=0.973 ms 10008 bytes from 10.0.2.35: icmp_seq=2. time=1.079 ms 10008 bytes from 10.0.2.35: icmp_seq=3. time=1.718 ms ...
この場合、10KBのデータの転送にかかる時間は1~2ミリ秒です。
ここで、この特定のゾーンが、優先度の低いネットワーク・テープ・バックアップ・サービスのようなものと仮定しましょう。ただし、毎日行われるバックアップが始まると、そのバックアップ・データ・トラフィックによって残りのネットワーク・トラフィックが極端に遅くなり、サービス品質に関する問題が発生しているとします。仮想ネットワーク・インタフェースでのリソース制御を活用すると、この特定のインタフェースが使用できる帯域幅の量を簡単に制限できます。これにより、他のネットワーク・トラフィックで使用するための帯域幅が解放されます。
VNICを表示します。
oracle@solaris:~$ dladm show-vnic LINK OVER SPEED MACADDRESS MACADDRTYPE VID vnic0 net0 400 2:8:20:7b:6e:37 random 0 myzone0 net0 1000 2:8:20:bf:e7:8c random 0 myzoneclone0 net0 1000 2:8:20:e:35:f1 random 0
myzoneclone0は、現在、1Gb/秒で動作するように構成されています。この演習の目的を達成するために、これを8Mb/秒に低下させましょう。pingは実行中のままにして、別のターミナルに切り替えて次のコマンドを入力します。
oracle@solaris:~$ sudo dladm set-linkprop -p maxbw=8 myzoneclone0 Password: oracle
次のように、すぐに、pingの応答時間が約10倍に跳ね上がります。
10008 bytes from 10.0.2.35: icmp_seq=24. time=10.147 ms 10008 bytes from 10.0.2.35: icmp_seq=25. time=10.279 ms 10008 bytes from 10.0.2.35: icmp_seq=26. time=10.295 ms
ここで、計算すると、10ミリ秒あたり10KBのデータは1秒あたり1MBのデータに相当します。また、転送速度を8Mb/秒に設定しましたが、これも1MB/秒に相当します。
注意すべきもう一つの点は、変更が即座に動的に行われたことです。ネットワーク・トラフィックを変更するために何かを再起動する必要はありません。
この例では、帯域幅の設定をVNIC全体に適用しました。しかし、IPアドレス、ポート、プロトコル、またはMACアドレスに基づいて帯域幅を構成することもできます。つまり、同じNICを経由する異なるネットワーク・トラフィックを調整することも可能なのです。このトピックについて詳しくは、Oracle Solaris 11のネットワーク仮想化テクノロジーのWebページを参照してください。
Solaris 11は、ゾーンの管理を大域ゾーンの別のユーザーに委任できる新機能を備えています。演習のために、まず、大域ゾーンにppottsという新しいユーザーを作成します。
oracle@solaris:~$ sudo useradd -m -d /export/home/ppotts -s /usr/bin/bash ppotts 80 blocks
oracle@solaris:~$ sudo passwd ppotts New Password: abc123 Re-enter new Password: abc123 passwd: password successfully changed for ppotts
ここで、ppottsに切り替えて、myzonecloneの管理を試みます。
oracle@solaris:~$ su - ppotts Password: ppotts@solaris:~$ pfexec zoneadm -z myzoneclone halt zoneadm: zone 'myzoneclone': only a privileged user may halt a zone.
pfexec pfexecは、ユーザーのプロファイルに対するコマンドを実行するために使用します。次の手順で、Pepperというユーザー(ユーザー名:ppotts)に、ゾーンの管理に必要な認可を割り当てます。 |
ここで、Pepperにmyzonecloneを管理する特権を与えましょう。
ppotts@solaris:~$ exit exit oracle@solaris:~$ sudo zonecfg -z myzoneclone zonecfg:myzoneclone> add admin zonecfg:myzoneclone:admin> set user=ppotts zonecfg:myzoneclone:admin> set auths=login,manage,clonefrom zonecfg:myzoneclone:admin> end zonecfg:myzoneclone> verify zonecfg:myzoneclone> exit
ここで、Pepperに切り替えて、もう一度ゾーンの管理を試みます。
ppotts@solaris:~$ pfexec zoneadm -z myzoneclone halt ppotts@solaris:~$ zoneadm list -cv ID NAME STATUS PATH BRAND IP 0 global running / ipkg shared - myzone installed /zones/myzone ipkg excl - myzoneclone installed /zones/myzoneclone ipkg excl
Pepperが別のゾーンの管理を試みるとどうなるかも、考えてみてください。
これで、3種類の仮想化を利用してより俊敏なデータセンターを構築するラボは無事に完了です。ネットワーク仮想化とZFSおよびゾーンを組み合わせることで、迅速にレプリケートおよび制御できる環境を確立することができます。