solaris112beta

Solarisのページに戻る

目次

Table of Contents

Kernel Zone を作成する

Kernel Zone Brand package の確認

 # pkg list brand/brand-solaris-kz
 NAME (PUBLISHER)                                  VERSION                    IFO
 system/zones/brand/brand-solaris-kz               0.5.11-0.175.2.0.0.37.1    i--

Kernel Zone が使用可能か確認する。

 # virtinfo
 NAME            CLASS     
 non-global-zone supported 
 kernel-zone     supported

Memory が小さい環境では、Kernel Zone  を動作させるホスト上の ZFS ARCキャッシュサイズを小さくしておく。例) 例えば 8GB 実メモリを実装のマシンで、Kernel Zone を 2GB メモリで動作させる場合、ホストの /etc/system に下記一行を追加して、ZFS ARC キャッシュを 1GB に押さえておく。

 set zfs:zfs_arc_max=0x40000000

* /etc/system を編集したら、リブートが必要です。

Kernel Zone の構成

 # zonecfg -z kzone "create -t SYSsolaris-kz;commit;exit"

あるいは、もっと簡単に

 # zonecfg -z kzone create -t SYSsolaris-kz

Kernel Zone のインストール

 # zonecfg -z kzone install

Kernel Zone に 物理HDD を割り当ててない場合は、ZVOL を作成して rpool を割り当てます。deaultのサイズは 16GB ですが、ZVOL のサイズを変更するには、-x install-size で指定します。

 # zoneadm -z kzone install -x install-size=32G

Kernel Zone の起動

 # zoneadm -z kzone ready
 # zoneadm -z kzone boot
 # zoneadm list -vc
 0 global           running     /                            solaris    shared
 1 kzone            running     -                            solaris-kz excl  
 - myzone           installed   /rpool/zones/myzone          solaris    excl
 # zlogin kzone
 root@kzone:~# zfs list
 NAME                              USED  AVAIL  REFER  MOUNTPOINT
 rpool                            4.53G  10.9G  32.5K  /rpool
 rpool/ROOT                       2.46G  10.9G    31K  legacy
 rpool/ROOT/solaris-1             2.46G  10.9G  2.34G  /
 rpool/ROOT/solaris-1/var          121M  10.9G   119M  /var
 rpool/VARSHARE                   2.40M  10.9G  2.30M  /var/share
 rpool/VARSHARE/pkg                 63K  10.9G    32K  /var/share/pkg
 rpool/VARSHARE/pkg/repositories    31K  10.9G    31K  /var/share  /pkg/repositories
 rpool/VARSHARE/zones               31K  10.9G    31K  /system/zones
 rpool/dump                       1.03G  10.9G  1.00G  -
 rpool/export                     96.5K  10.9G    32K  /export
 rpool/export/home                64.5K  10.9G    32K  /export/home
 rpool/export/home/admin          32.5K  10.9G  32.5K  /export/home/admin
 rpool/swap                       1.03G  10.9G  1.00G  -
 root@kzone:~#

Kernel Zone の中で、さらに local zone を作成する

Kernel Zone の便利そうなところといえば、Zone であっても global zone が存在し、Kernel zone の中で さらに local zone を作成/実行できるところでしょう。仮想環境としての用途/可能性がますます広がりそうです

Bare metal(global zone) <--> Kernel Zone(global zone) <--> Local zone

Kernel Zone の中で、local zone を作成する。

 kzone# zonecfg -z myzone create
 kzone# zoneadm -z myzone install
 kzone# zoneadm -z myzone boot
 kzone# zlogin -C myzone

さすがに、Kernel Zone 中の locale zone の起動は、オーバーヘッドが小さいといっても若干時間はかかります。ちょっと驚いたのは、kernel zone で、local zone をインストールしても、ほとんどdisk容量を食わないことです。

 Oracle Corporation      SunOS 5.11      11.2    April 2014
 admin@myzone:~$ zfs list
 NAME                              USED  AVAIL  REFER  MOUNTPOINT
 rpool                             708M  5.78G    31K  /rpool
 rpool/ROOT                        707M  5.78G    31K  legacy
 rpool/ROOT/solaris                707M  5.78G   660M  /
 rpool/ROOT/solaris/var           39.2M  5.78G  38.2M  /var
 rpool/VARSHARE                    958K  5.78G   895K  /var/share
 rpool/VARSHARE/pkg                 63K  5.78G    32K  /var/share/pkg
 rpool/VARSHARE/pkg/repositories    31K  5.78G    31K  /var/share  /pkg/repositories
 rpool/export                     96.5K  5.78G    32K  /export
 rpool/export/home                64.5K  5.78G    32K  /export/home
 rpool/export/home/admin          32.5K  5.78G  32.5K  /export/home/admin

これは使えそうな。。

archiveadm(1m)で Zone を Unified Archive イメージ として保管する

archiveadm を使えば、Kernel Zone や local zone の boot 環境ごとimage file に変換することができます。

 # archiveadm create -z kzone /var/tmp/kzone.uar

保管した Unified Archive イメージから、別の Kernel Zone として展開も可能です。 具体例は、下記の "OpenStack を試してみる"でも紹介しています。

OpenStack を試してみる

参考の記事 Getting Started with OpenStack on Oracle Solaris 11.2

Oracle Solaris 11.2 (Beta) では、OpenStack Grizzly 2013.1.4 リリースレベルがパッケージ化されているようです。

Openstack 環境の構築のために、手っ取り早い方法として、すでに OpenStack が pre-install された Unified Archive イメージを使って、Kernel Zone としてインストールする方法が紹介されています。

Oracle Solaris 11.2 Beta 用の Unified Archive イメージは、ここからダウンロード可能です。

install 時に -a で、UAR イメージを指定します

 # zonecfg -z openstack "create -t SYSsolaris-kz;select anet id=0;add mac; set mac-address=auto; end; end;commit;exit"
 # zoneadm -z openstack install -a /export/home/user/Downloads/sol-11_2-beta-openstack-x86.uar

autoinstall でインストールと設定が始まります。

 Progress being logged to /var/log/zones/zoneadm.20140512T150354Z.openstack.install
 [Connected to zone 'openstack' console] done.
 reading kernel file /platform/i86pc/kernel/amd64/unix...done.
 SunOS Release 5.11 Version 11.2 64-bit
 Copyright (c) 1983, 2014, Oracle and/or its affiliates. All rights reserved.
 Remounting root read/write
 Probing for device nodes ...
 Preparing image for use
 Done mounting image
 Configuring devices.
 Hostname: solaris
 Using specified install manifest : /system/shared/ai.xml
 
 
 solaris console login: Automated Installation started
 The progress of the Automated Installation will be output to the console
 Detailed logging is in the logfile at /system/volatile/install_log
 Press RETURN to get a login prompt at any time.
 15:06:06    Install Log: /system/volatile/install_log
 15:06:06    Using XML Manifest: /system/volatile/ai.xml
 15:06:06    Using profile specification: /system/volatile/profile
 15:06:06    Starting installation.
 15:06:06    0% Preparing for Installation
 15:06:06    100% manifest-parser completed.
 15:06:06    100% None
 15:06:06    0% Preparing for Installation
 15:06:07    1% Preparing for Installation
 15:06:07    2% Preparing for Installation
 <省略>
 15:14:16    87% Transferring contents
 15:14:24    88% Transferring contents
 15:14:31    Completed transfer of stream: '659805f7-1085-e7a8-c5cc-ad9e894c83c3-0.zfs' from file:///system/shared/uafs/OVA
 15:14:32    89% Transferring contents
 15:14:35    Archive transfer completed
 15:14:37    Destroying received snapshots under: rpool@659805f7-1085-e7a8-c5cc-ad9e894c83c3
 15:14:37    cannot open 'rpool/ROOT/solaris-1@rollback': snapshot does not exist
 15:14:38    90% generated-transfer-1402-1 completed.
 15:14:38    90% apply-pkg-variant completed.
 15:14:40    Setting boot devices in firmware
 15:14:40    91% boot-configuration completed.
 15:14:40    91% update-dump-adm completed.
 15:14:40    92% setup-swap completed.
 15:14:40    92% device-config completed.
 15:14:42    92% apply-sysconfig completed.
 15:14:42    93% transfer-zpool-cache completed.
 15:14:55    98% boot-archive completed.
 15:14:55    98% transfer-ai-files completed.
 15:14:56    98% cleanup-archive-install completed.
 15:14:56    100% create-snapshot completed.
 15:14:56    100% None
 15:14:57    Automated Installation succeeded.
 15:14:57    You may wish to reboot the system at this time.
 Automated Installation finished successfully
 Shutdown requested. Shutting down the system
 Log files will be available in /var/log/install/ after reboot
 svc.startd: The system is coming down.  Please wait.
 svc.startd: 114 system services are now being stopped.
 syncing file systems... done
 
 [NOTICE: Zone halted]
 
 [Connection to zone 'openstack' console closed]
       Done: Installation completed in 681.965 seconds.

以上で、Unified Archive からのインストールは完了。あとは通常の Zone と同じように boot と初期設定を行う。

 # zoneadm -z openstack boot
 # zlogin -C openstack

必要な初期構成が終わったら、下記の Perl script を実行します。

 root@openstack:~# /usr/demo/openstack/configure_evs.py
 Generating public/private rsa key pair.
 Your identification has been saved in /var/user/evsuser/.ssh/id_rsa.
 Your public key has been saved in /var/user/evsuser/.ssh/id_rsa.pub.
 The key fingerprint is:
 e6:03:dc:16:1b:e5:2a:8b:c4:a1:f3:5c:a4:86:ab:05 evsuser@openstack
 Generating public/private rsa key pair.
 Created directory '/var/lib/neutron/.ssh'.
 Your identification has been saved in /var/lib/neutron/.ssh/id_rsa.
 Your public key has been saved in /var/lib/neutron/.ssh/id_rsa.pub.
 The key fingerprint is:
 5c:12:97:4c:64:ac:b2:ad:f8:d8:5d:c8:d0:4b:d4:f4 neutron@openstack
 Oracle Corporation      SunOS 5.11      11.2    April 2014
 Generating public/private rsa key pair.
 Created directory '/root/.ssh'.
 Your identification has been saved in /root/.ssh/id_rsa.
 Your public key has been saved in /root/.ssh/id_rsa.pub.
 The key fingerprint is:
 29:96:7d:9f:17:fd:a3:6b:d0:2a:b6:34:7b:7b:4f:94 root@openstack
 populating authorized_keys
 configuring EVS
 enabling Neutron

OpenStack ダッシュボードを開いてみます。

http://openstack/horizon

今回 Oralce Solaris 11.2 Beta 用の Unified Archive でプリセットされた環境では、User: admin Passwd: secrete でログインできます。

openstack-0.png
openstack-1.png
openstack-2.png
openstack-3.png
openstack-4.png

Glance(イメージ管理)に Unified Archive イメージを追加する

Oracle Solaris 11.2 Beta の Unified Archive イメージは、ここ からダウンロード可能です。簡単に作ることも可能です。

 openstack# achiveadm create -z myzone /var/tmp/myzone.uar
 Initializing Unified Archive creation resources...
 Unified Archive initialized: /var/tmp/myzone.uar
 Logging to: /system/volatile/archive_log.3823
 Executing dataset discovery...
 Dataset discovery complete
 Creating install media for zone(s)...
 Media creation complete
 Preparing archive system image...
 Beginning archive stream creation...
 Archive stream creation complete
 Beginning final archive assembly...
 Archive creation complete
 openstack# ls -l /var/tmp/myzone.uar 
 -rw-r--r--   1 root     root     1259110400  5月 22日  19:29 /var/tmp/myzone.uar

今回は、ダウンロードした image を使います。

 openstack# ls -l /var/tmp/sol-11_2-beta-x86.uar
 -rw-r--r--   1 root     root     1295892480  5月 23日 2014年 sol-11_2-beta-x86.uar

Glance にダウンロードした image を追加します。

 openstack# glance --os-username glance --os-password glance --os-tenant-name service --os-auth-url http://localhost:5000/v2.0 image-create --container-format bare --disk-format raw --is-public true --name "Oracle Solaris 11.2 NGZ" --property architecture=x86_64 --property hypervisor_type=solariszones --property vm_mode=zones < /var/tmp/sol-11_2-beta-x86.uar
 +----------------------------+--------------------------------------+
 | Property                   | Value                                |
 +----------------------------+--------------------------------------+
 | Property 'architecture'    | x86_64                               |
 | Property 'hypervisor_type' | solariszones                         |
 | Property 'vm_mode'         | zones                                |
 | checksum                   | abfa68038db5350ff42a484976e87580     |
 | container_format           | bare                                 |
 | created_at                 | 2014-05-12T03:59:54.756360           |
 | deleted                    | False                                |
 | deleted_at                 | None                                 |
 | disk_format                | raw                                  |
 | id                         | 87fb2b70-251a-cdae-8533-ef05a9c33d6f |
 | is_public                  | True                                 |
 | min_disk                   | 0                                    |
 | min_ram                    | 0                                    |
 | name                       | Oracle Solaris 11.2 NGZ              |
 | owner                      | 3553c6559eafcbc2bfccf03b869e1fb2     |
 | protected                  | False                                |
 | size                       | 1295892480                           |
 | status                     | active                               |
 | updated_at                 | 2014-05-12T04:04:32.327361           |
 +----------------------------+--------------------------------------+

horizon で image が追加されたことが確認できます。

openstack-5.png