solaris112betaのソース

#freeze
[[Solarisのページに戻る>Solaris]]

目次
#contentsx

------
** Kernel Zone を作成する [#ae0dbea2]
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 を作成する [#g36acc17]

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 イメージ として保管する [#n838f861]

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

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

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

** OpenStack を試してみる [#bc188f37]

参考の記事 [[Getting Started with OpenStack on Oracle Solaris 11.2>http://www.oracle.com/technetwork/articles/servers-storage-admin/getting-started-openstack-os11-2-2195380.html]]

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 イメージは、[[ここ>http://www.oracle.com/technetwork/server-storage/solaris11/downloads/beta-unified-archives-2190886.html]]からダウンロード可能です。

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 でログインできます。

#ref(openstack-0.png)

#ref(openstack-1.png)

#ref(openstack-2.png)

#ref(openstack-3.png)

#ref(openstack-4.png)

*** Glance(イメージ管理)に Unified Archive イメージを追加する [#o908d03b]

Oracle Solaris 11.2 Beta の  Unified Archive イメージは、[[ここ>http://www.oracle.com/technetwork/server-storage/solaris11/downloads/beta-unified-archives-2190886.html]] からダウンロード可能です。簡単に作ることも可能です。

  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 が追加されたことが確認できます。

#ref(openstack-5.png)