LoginSignup
4

More than 5 years have passed since last update.

SmartOSのLX Branded Zone(Linuxコンテナ)を動かす

Last updated at Posted at 2015-04-13

SmartOSは仮想化テクノロジとして以下の機能を持っています。

  • SmartOSによるOS仮想化(コンテナ):
    • SmartOSのZone
    • LinuxのZone(LX Branded Zone)
  • SmartOS組み込みのハイパーバイザベースの仮想化
    • KVM

ここでは、SmarOS上のLinuxコンテナであるLX Branded Zoneを動かしてみます。

SmartOSをVMware Playerで気軽に試してみるには、SmartOSをVMware Playerで動かすを、SmartOSのKVM上でCentOSを動かしみるには、SmartOSのKVMゲストとしてCentOS7.1を動かしてみるをみてみてください。

image source を設定する

SmartOSでは、仮想マシンイメージを imgadm importコマンドでイメージソースから取得します。デフォルトのイメージソースは、images.joyent.comです。LX Branded Zoneのイメージは updates.joyent.comというイメージソースからも入手することができます。そこで、最初にこのイメージソースを追加します。
現在のイメージソースの確認はimgadm sourcesで、追加はimgadm sources -a <URL>です。

# imgadm sources
https://images.joyent.com
# imgadm sources -a https://updates.joyent.com
Added "imgapi" image source "https://updates.joyent.com"
# imgadm sources
https://images.joyent.com
https://updates.joyent.com

imgadm availコマンドで、イメージソースにあるLX Branded Zoneのイメージを確認します。

# imgadm avail | grep lx-
f7c19252-c998-11e4-be95-3315493f3741  lx-centos-6             20150313                                          other    2015-03-13T15:52:35Z
818cc79e-ceb3-11e4-99ee-7bc8c674e754  lx-ubuntu-14.04         20150320                                          other    2015-03-20T03:45:09Z
116deb8c-cf03-11e4-9b2d-7b1066800a6a  lx-debian-7             20150320                                          other    2015-03-20T13:14:41Z
eb4128ec-cf12-11e4-960d-8780cec6463f  lx-centos-6             20150320                                          other    2015-03-20T15:08:09Z

ちなみに grep しないでリストすると膨大なリストが得られますがdockerが多数含まれていることがわかります。

LX Branded Zoneのimageをimportする

今回は、Ubuntu 14.04 の LX Branded Zoneを作ることにします。
イメージをimportするコマンドは、imgadm importです。

# imgadm import 818cc79e-ceb3-11e4-99ee-7bc8c674e754
Importing 818cc79e-ceb3-11e4-99ee-7bc8c674e754 (lx-ubuntu-14.04@20150320) from "https://images.joyent.com"
Gather image 818cc79e-ceb3-11e4-99ee-7bc8c674e754 ancestry
Must download and install 1 image (154.3 MiB)
Download 1 image                  [================================================================>] 100% 154.32MB 534.23KB/s  4m55s
Downloaded image 818cc79e-ceb3-11e4-99ee-7bc8c674e754 (154.3 MiB)
...9e-ceb3-11e4-99ee-7bc8c674e754 [================================================================>] 100% 154.32MB   1.62MB/s  1m35s
Imported image 818cc79e-ceb3-11e4-99ee-7bc8c674e754 (lx-ubuntu-14.04@20150320)

import されている image は、imgadm listで確認できます。

# imgadm list
UUID                                  NAME             VERSION   OS     PUBLISHED
818cc79e-ceb3-11e4-99ee-7bc8c674e754  lx-ubuntu-14.04  20150320  other  2015-03-20T03:45:09Z
c41bf236-dc75-11e4-88e5-038814c07c11  centos-7         20150406  linux  2015-04-06T15:58:28Z

Ubuntu 14.04のLX Branded Zoneを作成する

ZoneやKVM VMを作成するコマンドは、vmadm createです。LX Branded Zoneも、このコマンドで作成します。このコマンドは、zoneの属性を記述した json形式のデータを入力としますが、-fパラメータによりファイルで与えることができます。ここでは、ファイルを用意することとします。

/var/tmp/lx-ubuntu-14-04.json
{
  "alias": "lxubuntu 14.04",
  "brand": "lx",
  "kernel_version": "3.13.0",
  "max_physical_memory": 2048,
  "image_uuid": "b7493690-f019-4612-958b-bab5f844283e",
  "nics": [
    {
      "nic_tag": "admin",
      "ip": "dhcp",
      "primary": true
    }
  ],
  "qemu_extra_opts": "-k ja -usbdevice tablet"
}

nic_tag、ip等は、SmartOSのKVMゲストとしてCentOS7.1を動かしてみると同じです。"kernel_version"は、Ubuntu 14.04のカーネルバージョンです。

jsonファイルの用意ができたところで、いよいよ LX Branded Zoneをprovisionします。

# vmadm create -f /var/tmp/lx-ubuntu-14-04.json
Successfully created VM 16b4155b-e996-41e1-bb87-25eb0f0934ff

vmadm createは瞬時に完了します。

vmadm listで、確認します。

# vmadm list
UUID                                  TYPE  RAM      STATE             ALIAS
a90640f4-0596-451e-8d6c-ad001d71f834  KVM   512      stopped           CentOS 7.1(1503) KVM
16b4155b-e996-41e1-bb87-25eb0f0934ff  LX    1024     running           lxubuntu 14.04

LX Branded Zoneが作成されて、動作していることがわかります。

新しいLX Branded Zone(Ubuntu)用の zfs ファイルシステムが作成されていることを確認します。

# df -h | grep -i zones
zones                   19G   599K       5.6G     1%    /zones
zones/archive           19G    19K       5.6G     1%    /zones/archive
zones/cores             10G    19K       5.6G     1%    /zones/global/cores
zones/var               19G   5.8M       5.6G     1%    /var
zones/config            19G    43K       5.6G     1%    /etc/zones
zones/opt               19G    22K       5.6G     1%    /opt
zones/usbkey            19G   115K       5.6G     1%    /usbkey
zones/a90640f4-0596-451e-8d6c-ad001d71f834    10G    40K       5.6G     1%    /zones/a90640f4-0596-451e-8d6c-ad001d71f834
zones/cores/a90640f4-0596-451e-8d6c-ad001d71f834    10G    19K       5.6G     1%    /zones/a90640f4-0596-451e-8d6c-ad001d71f834/cores
zones/818cc79e-ceb3-11e4-99ee-7bc8c674e754    19G   450M       5.6G     8%    /zones/818cc79e-ceb3-11e4-99ee-7bc8c674e754
zones/16b4155b-e996-41e1-bb87-25eb0f0934ff    10G   450M       5.6G     8%    /zones/16b4155b-e996-41e1-bb87-25eb0f0934ff
zones/cores/16b4155b-e996-41e1-bb87-25eb0f0934ff    10G    19K       5.6G     1%    /zones/16b4155b-e996-41e1-bb87-25eb0f0934ff/cores

ファイルシステムの名前"zones/16b4155b-e996-41e1-bb87-25eb0f0934ff"にLX Branded Zone のUUIDが入っていることから、今作成した Ubuntu のLX Branded Zoneであることがわかります。

Ubuntu LX Branded Zoneにコンソール接続する(CLIコンソール編)

コンソールには、zlogin -C コマンドで接続しますが、zone作成時点では、rootパスワードが未設定のためログインできません。そこで、zloginでログインしてパスワードを設定します。引数として、接続先zoneのUUIDが必要です。

UUIDを確認します。

# vmadm list
UUID                                  TYPE  RAM      STATE             ALIAS
a90640f4-0596-451e-8d6c-ad001d71f834  KVM   512      stopped           CentOS 7.1(1503) KVM
16b4155b-e996-41e1-bb87-25eb0f0934ff  LX    1024     running           lxubuntu 14.04

もしくは、

# zoneadm list
global
16b4155b-e996-41e1-bb87-25eb0f0934ff

zloginでコンソールへ接続します。

# zlogin 16b4155b-e996-41e1-bb87-25eb0f0934ff
[Connected to zone '16b4155b-e996-41e1-bb87-25eb0f0934ff' pts/3]
Welcome to Ubuntu 14.04 LTS (GNU/Linux 3.13.0 x86_64)

 * Documentation:  https://help.ubuntu.com/

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

   __        .                   .
 _|  |_      | .-. .  . .-. :--. |-
|_    _|     ;|   ||  |(.-' |  | |
  |__|   `--'  `-' `;-| `-' '  ' `-'
                   /  ;  Instance (Ubuntu 14.04 LX Brand 20150320)
                   `-'   https://docs.joyent.com/images

root@16b4155b-e996-41e1-bb87-25eb0f0934ff:~#

本当に Ubuntuか確認します。

~# cat /etc/os-release
NAME="Ubuntu"
VERSION="14.04, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"

本当に64ビットなのか、bashのバイナリを見てみます。

~# file /bin/bash
/bin/bash: ELF 64-bit LSB  executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0aa3fddc66598b161d5b4407c9b61e021388fda0, stripped

Linuxコンテナか確認します。
lang:
~# uname -a
Linux 16b4155b-e996-41e1-bb87-25eb0f0934ff 3.13.0 BrandZ virtual linux x86_64 x86_64 x86_64 GNU/Linux
~# ls -l /boot
total 0

確かに、Linuxカーネルがありません。

rootパスワードを設定します。

~# passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

コンソールへ接続します。

# zlogin -C 16b4155b-e996-41e1-bb87-25eb0f0934ff
[Connected to zone '16b4155b-e996-41e1-bb87-25eb0f0934ff' console]


Ubuntu 14.04 LTS 16b4155b-e996-41e1-bb87-25eb0f0934ff console

16b4155b-e996-41e1-bb87-25eb0f0934ff login: root
Password:
Last login: Sun Apr 12 22:47:54 UTC 2015 from zone:global on pts/3
Welcome to Ubuntu 14.04 LTS (GNU/Linux 3.13.0 x86_64)

 * Documentation:  https://help.ubuntu.com/
   __        .                   .
 _|  |_      | .-. .  . .-. :--. |-
|_    _|     ;|   ||  |(.-' |  | |
  |__|   `--'  `-' `;-| `-' '  ' `-'
                   /  ;  Instance (Ubuntu 14.04 LX Brand 20150320)
                   `-'   https://docs.joyent.com/images

root@16b4155b-e996-41e1-bb87-25eb0f0934ff:~#

コンソール接続は、zoneをrebootしても継続します。

コンソールを抜けるのは~^D ('~'チルダに続けて [Ctrl] と [D] を同時に押します)を入力します。

なお、rebootしてみると、さずがコンテナです一瞬といっても良いくらいの時間で reboot されます(カーネルをrebootするわけではないので、当たり前ですね)。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4