SmartOS入門
2016.01.30
JapanOpenSolarisUsersGroup
Sakaue (id:nslope)
Tokyo OpenSolaris 勉強会 2016.01
アジェンダ
• 自己紹介
• SmartOSの概要
• インストール方法の紹介
• デモ
• SmartOSコンテナの特徴
自己紹介
• Twitter id: nslope
SmartOSについて
• Joyent社が開発しているクラウド用OS。コンテナ/仮
想マシンに特化。
• https://smartos.org/
• 2週間毎にリリース
• https://download.joyent.com/pub/iso/
• KernelにOpenSolarisから派生したillumosを使用
SmartOSについて
• SmartOSで使用できる仮想環境は主に3つ
• Naitiv Zone (通常のコンテナ)
• Solaris Zoneを元にしたコンテナ
• パッケージ管理にpkgsrcを採用
• LX Branded Zone(Linuxコンテナ)
• SmartOS上でLinuxアプリケーションを使用するためのコン
テナ
• Dockerイメージの実行も可能
• KVM
• ハイパーバイザ
• Zoneの中に仮想マシンのプロセスを起動する
Z Cloudについて
• 2015年10月でサービス終了
• ・・・お疲れさまでした。
インストール方法と注意点
• https://download.joyent.com/pub/iso/
• iso,USB,vmware,PXEのイメージを配布
• Boot/Kernel部分はインストールされない
Presentation Title
インストール(VirtualBox)
タイプは「Solaris」、バージョンは「Oracle Solaris 11(64bit)」を選択
Presentation Title
インストール(VirtualBox)
Isoイメージをアタッチして起動
Presentation Title
インストール(VirtualBox)
説明などを読みつつエンター
Presentation Title
インストール(VirtualBox)
IPアドレス、ネットマスクを入力(もしくはDHCP)
Presentation Title
インストール(VirtualBox)
デフォルトゲートウェイを入力
Presentation Title
インストール(VirtualBox)
DNS、NTPサーバを入力
Presentation Title
インストール(VirtualBox)
ZFSの構成を選択
Presentation Title
インストール(VirtualBox)
ホスト名、rootパスワードを入力
Presentation Title
インストール(VirtualBox)
設定を確認してインストール
Presentation Title
インストール(VirtualBox)
完了後リブート(isoは外さない!)
Presentation Title
デモ
• デモ1(ノーマルなコンテナ)
• イメージのインポート
• Zoneの作成
• パッケージのインストール
• メモリの追加
• 参考
• http://wiki.smartos.org/display/DOC/How+to+create+a
+zone+%28+OS+virtualized+machine+%29+in+SmartOS
• デモ2(dockerコンテナ)
• イメージのインポート
• Zoneの作成
イメージのインポート
• イメージのリスト
# imgadm avail
• イメージのインポート
# imgadm import 5c7d0d24-3475-11e5-8e67-27953a8b237e
マニフェストの作成
• マニフェストの作成
# cat zone01.json
{
"brand": "joyent",
“image_uuid": "5c7d0d24-3475-11e5-8e67-27953a8b237e",
"alias": "zone01",
"hostname": "zone01",
"max_physical_memory": 512,
"quota": 20,
"resolvers": ["8.8.8.8"],
"nics": [
{
"nic_tag": "admin",
"ip": "198.18.253.101",
"netmask": "255.255.255.0",
"gateway": "198.18.253.254",
"vlan_id": "253",
"primary" : true
}]
}
Zoneの作成
• 作成
# vmadm create –f zone01.json
• Zoneの情報
# vmadm list
UUID TYPE RAM STATE ALIAS
46c93d1d-b7a8-40a6-bff1-8bc5aa92560c OS 512 running zone01
• ログイン(コンソール)
# vmadm console 46c93d1d-b7a8-40a6-bff1-8bc5aa92560c
# zlogin –C console 46c93d1d-b7a8-40a6-bff1-8bc5aa92560c
パッケージのインストール
• インストール済みパッケージのリスト
# pkgin list
• インストール可能パッケージのリスト
# pkgin avail
• パッケージのインストール
# pkgin install nginx
イメージのインポート
• dockerのソースを追加
# imgadm source --add-docker-hub
• イメージのインポート
# imgadm import wordpress
マニフェストの作成
• マニフェストの作成
# cat zone02.json
{
"brand": "lx",
“image_uuid": "233750c3-9cb7-4c79-7d51-3156baf45141",
"alias": "zone02",
"hostname": "zone02",
"max_physical_memory": 512,
"quota": 20,
"resolvers": ["8.8.8.8"],
"nics": [
{
"nic_tag": "admin",
"ip": "198.18.253.102",
"netmask": "255.255.255.0",
"gateway": "198.18.253.254",
"vlan_id": "253",
"primary" : true
}],
"kernel_version": "3.13.0"
}
※ Linuxコンテナを使用する場合は、
brandの指定を”lx”とし、
kernel_versionの指定が必要になります
Zoneの作成
• 作成
# vmadm create –f zone.json
• Zoneの情報
# vmadm list
UUID TYPE RAM STATE ALIAS
b529cad4-3730-43da-b74f-0eebbdbdb824 LX 512 provisioning
zone02
• ログイン(コンソール)
# zlogin 46c93d1d-b7a8-40a6-bff1-8bc5aa92560c
# mv /var/svc/provisioning /var/svc/provision_success
※このままだとタイムアウトします
※ /var/svc/provisioning をリネームすると成功します
Presentation Title
SmartOSコンテナの特徴
• インストール時に「zones」という名前のzpoolを作成
• イメージやコンテナは全て「zones」に保存される
• イメージやコンテナ毎に1datasetずつ
• /var や/optもここ
• vmadmコマンドによるコンテナの制御
• nodejsで記述
• vmadmdデーモンとREST APIで通信
• vmadmd がzoneの設定やvnicの作成を実行
• IPアドレスをコンテナ外から設定
• cronssbowの拡張
• メタデータの管理
• mdata-list,mdata-getなどでメタデータを取得できる

Smartos入門(TokyoOpenSolaris勉強会版)