www.opensolaris.org
OpenSolaris
を利用した仮想化システム運用
VPS
サービス「
Phase
2
Server
」のバックヤード
ジャストプレイヤー株式会社 代表取締役社長 瀧 康史アジェンダ
.
サーバ仮想化.
仮想化のメリット.
コンテナ型仮想化の特徴の特徴.
DimensionPlus
が提供するもの.
DimensionPlusの特徴.
DimensionPlusの構造.
DimensionPlus
を支える技術.
DimensionPlus
の歩みと未来www.justplayer.co.jp www.justplayer.ne.jp 3 -www.opensolaris.org
ジャストプレイヤー株式会社について
∼ソフトウェアに即時性を!∼
.
JUSTPLAYER
.
「我々はプレイヤーでありつづけたい」.
(ソフトウェアが)すぐに遊べる(ミドルウェアの提供をしたい).
WHEN YOU WANT IS WHEN YOU PLAY
(欲しいときが遊ぶとき).
「ソフトウェアに即時性を!」事業内容
.
事業内容.
WEB(ホームページ)制作事業.
WEB企画、デザイン制作.
WEBシステム開発.
SI事業.
ソフトウェア開発事業.
SaaS/ASP、ホスティング事業.
その他.
第二種電気通信事業者届出 届出番号 C-18-1421.
静岡県中小企業新事業活動促進法(静岡県中小企業革新法)に基づく経営革 新計画の承認(WikiベースのCMS、WikiPlus)WEB
会社としては若干珍しく、どちらかというとインフラに近い仕事が得 意。また、それぞれの切り売りも得意www.justplayer.co.jp www.justplayer.ne.jp 5 -www.opensolaris.org
瀧 康史(たき やすし)
.
ジャストプレイヤー株式会社 代表取締役社長.
日本OpenSolaris Users Group Leader
.
出身地.
静岡県静岡市(旧清水市).
業務履歴.
テクニカルライター.
S社‘X紙’(S社のパソコン向け雑誌)を中心に5年間.
ゲームソフト制作.
S社にてS社用ゲーム機のゲームソフトを5年間制作。ゲームディレクター、アシスタントプロデ ューサー、プランナー等。.
有限会社ジャストプレイヤーを起業、現、ジャストプレイヤー株式会社自己紹介
.
日本のOpenSolaris
のコミュニティです。.
日本ポータル(http://jp.opensolaris.org
)があります。.
メーリングリスト([email protected]
)で活発に意見交換されてい ます。.
月に一度、最終土曜日に、「東京OpenSolaris
勉強会」を開催しています。.
IRC
(irc://irc.freenode.net/opensolaris-jp
)でも、眠らないディスカッション が・・・・・。.
初心者大歓迎です。サーバ仮想化とは?
「ハードウェア資源と、サーバを分離する」
単に、
1
台の物理サーバの上に複数の仮想サーバが乗せるのではなく、複数台の物理サーバの上に、たくさん仮想サーバを乗せることができる。 仮想化層
www.justplayer.co.jp www.justplayer.ne.jp 9 -www.opensolaris.org サーバ(サービスのエンジン)とは、あるサービスを実現するための単位。例えば、
.
WEB
サーバ、アプリケーション、メールサーバ、データベースサーバ、ファイルサ ーバ、ストレージサーバ、認証サーバ、ネームサーバ、DHCP
サーバ、NAT
、ロード バランサー、ルータ、等々・・・ これを実現するユニット、セットはなんだろう?1.
プロセス、プロセスのグループ(Solaris
ではProject
やTask
)2.
OS
のユーザ・ランドから上3.
OS
のカーネルのサービスモジュール4.
ハードウェアとOS
のドライバ群 インフラエンジニアは、これらのサーバ群に最適なリソースを与え、制御し、システ ムを正常に稼働・運用させるのが仕事。サーバとはなにか?≠サーバ機
どの層で隔離・仮想化するのか?
どの層でサーバを隔離・仮想化したいのか?は、この単位で決まります。1.
プロセス、プロセスのグループ2.
OS
のユーザ・ランドから上3.
OS
のカーネルのサービスモジュール4.
ハードウェアとOS
のドライバ群 サーバの隔離性を意識することで、サーバのポータビリティや、スケーラビリティ の考慮ができます(1
サーバ、1OS
という考えはここに基づく)。 仮想化には隔離性が必要です。上に行くほど隔離性が少ない代わりに、仮想化コス ト(お値段ではない方)が下がります。一方、下に行くほど、仮想化コストがかかり、 リソースの再利用効率が悪くなります。 仮想化とは、仮想化層から上のインスタンス単位の隔離性を確保し、仮想化層か ら下を、差し替え可能にする技術ともいえます。 ■プラットフォーム依存 ■プロセス・ユーザ・プロジェクト・タスク ■コンテナ型仮想化 ■ ハイパバイザ仮想化www.justplayer.co.jp www.justplayer.ne.jp 11 -www.opensolaris.org
仮想化のファイナンシャル・メリット
.
ハードウェア資源「=物理サーバ機器群」と、サービスが密着しない.
投資サイクルとサービスのライフサイクルを分離できる.
ほとんどのサービスは、はじめるまでどの規模のハードウェア資源が必要かわからない.
時期によって繁盛記が異なるサービスがある 具体的には?.
ハードウェア資源は足りなくなったときに買えばよい.
リースバック時のサーバリプレースがスムーズである.
サービスの開始時に、ハードウェアの納期に縛られずにすむ(予算化がいらない ことも・・・・・・).
サービスの縮退が、ファイナンシャルのサイクルに縛られずにすむWeb
ホスティングとは、WEB
サーバから下を「インフラ(=僕は知らないけど提供されてるもの)」としたい! この隔離性は、Apache
を、Apache
から・・・.
プログラム(CGI
等)を一切実行させない。.
それでよければOK!.
SuExec
で起動し、1
利用者ごとにOS
のユーザ、chroot
などで割る。.
CGIのプロセス起動コストがかかる(FastCGI等)。ulimit,quota等で制限。mod_php等(全部Apache権限)が使えない。mod_phpをsafemodeはちょっと・・・。
.
ReverseProxy Apache +
ユーザ単位のApache
。.
しっかり作れば結構いける!造るのが、割と面倒なのがネック。.
FreeBSD
でJail
。.
jail毎のリソース制御効率が高いわけではないけど、割と良いんじゃない?と、
2000
年頃、こんなことを考えつつ、Phase1Plus
というサービスを2002
年にス タートしていました。その他、User Mode Linux
等、様々なものを評価しました。Solaris Containers
と、
これを支える技術
コンテナ型サーバ仮想化のメリット
ハイパバイザ型に比べて、次のようなメリットがあります。.
リソースを使わない.
カーネルは共通。プロセスが本当に利用するメモ リ、CPUだけでよい。.
パフォーマンスボトルネックがとても少ない.
グローバルゾーンから見たら1つのプロセスに過 ぎない。.
ブートが速い.
カーネルが起動しない分、ブート、リブートがとても速い資源共有率が高いので、
1つのサーバにたくさん収容できる
www.justplayer.co.jp www.justplayer.ne.jp 15 -www.opensolaris.org
コンテナ型サーバ仮想化のデメリット
ハイパバイザ型に比べて、次のようなデメリットがあります。.
コンテナごとの隔離性が低い.
異なるOS
の動作は不可能.
比較的、互いの負荷影響を受けやすい.
一部に動かないアプリケーションがある.
ライブマイグレーションなどの機能がないカーネルが共通で資源共有率が高いことによる裏返しです
Solaris Containers
の特徴
Solaris Containers
は、次の特徴を持ちます。.
OS
標準の機能である.
パッチなどによる提供ではないため、ノングローバルゾーン(仮想サーバ)とグローバ ルゾーン(収容機)のアプリケーションレベルの互換性が高い.
Solaris Resource Manager
によるリソース管理ができる.
1つのコンテナの負荷の影響を、他のコンテナに波及させにくい。.
cpu cap、memory cap等。.
BrandZ
でLinux
のユーザランドをバイナリ互換で実行可能(fake linux
).
CentOS 3、4、5等。Linux同様、yumでパッケージ管理が可能.
ただし、一部のアプリケーションは動作しないなどの難、多し。コンテナ型サーバ仮想化技術の最大のデメリットである
www.justplayer.co.jp www.justplayer.ne.jp 17 -www.opensolaris.org
.
ZFS
による管理.
ZFSはツリー構造でデータセット(ファイルシステム)を管理している。.
仮想サーバ毎に、ZFSを委譲して、利用することが可能。.
仮想サーバ毎の、利用量のCAPの制御ができる。.
スナップショット、ロールバック、クローンなどの高価なストレージアプライアンスと同 等以上の機能を持つ。.
ただし、仮想サーバ毎のストレージのアクセス頻度管理は難しい(わかるけど、制御が 難しい)。.
SAN
を利用した管理.
COMSTAR(iSCSIなどのTARGET機能)。ZFSと連携して、高価なDAS並の機能をが標準で利用することができる。
.
→4月24日OpenSolaris勉強会@用賀。http://atnd.org/events/4078.
SANを利用し、収容サーバをディスクレスにすることで、さらに仮想化の隔離性が増 す。.
フェイルセーフのための多重化も簡単にできるStorage
の仮想化と管理
.
Crossbow
(仮想ネットワークプロジェクト)による管理.
仮想サーバ毎に、仮想NICを作成して委譲。.
仮想NICの帯域制御。spoofingプロテクト。CPU負荷の制御。.
仮想Switch(Etherstub)の作成.
仮想Bridgeの作成。.
VLAN、フィルタ、ルーティング等.
仮想サーバへのMACアドレスの貼り付け。.
帯域の測定、監視など。Network
の仮想化と管理
www.justplayer.co.jp www.justplayer.ne.jp 19 -www.opensolaris.org
利用に適したもの、適さないもの
適したもの
.
WEB
サーバ.
アプリケーションサーバ(PHP
、Java
Servlet
).
メールサーバ.
DNS
.
DBMS
(MySQL
、PostgreSQL
程度 の規模).
これらのテスト、本番機、一次サー バ。等々・・・ アプリケーションによる冗長化が可能 (再起動ができるシステム) ノンストップで運用する必要があるもの (Live Migration
が必要なシステム)適さないもの
.
ファイルサーバ(NFS
、CIFS
が動作し ない).
大型のDBMS
.
別OS
の収容が必須なもの。.
Windowsサーバ依存.
IIS依存.
Linuxサーバ依存Zone
設置場所を決める。pfexec zfs create -o mountpoint=/zones rpool/zones
Zone
の作成pfexec zonecfg -z testzone
プロンプトがでるので、
zone
の作成 set zonepath=/zones/test.justplayer. com set brand=ipkg set autoboot=false set ip-type=shared add net set address=10.100.2.12/29 set physical=bge1 end add rctl set name=zone.cpu-capadd value (priv=privileged,limit=150,a ction=deny)
end
add rctl
Container
の作り方
set name=zone.max-swap
add value (priv=privileged,limit=53687 0912,action=deny) end add capped-memory set physical=256M end このようにすると、
ZFS
のデータセッ ト、rpool/zones/test.justplayer.
com
に、Zone
が作成されます。コンテナは、仮 想 化というよりも、単 なるプロセスパーティショニングで。 (
zonecfg/zoneadm
)。単なるプロセスパーティショニング技術を制御し、さらにポータビリティを高める ために、
ZFS
のデータセットをコンテナ毎に持つことにします(zpool/zfs
)。仮想サーバのデータセットは、
SAN
(Storage Area Network
)上に起きます (itadm/stmfadm
)。SAN
は高いSAN
でもいいですが、無料のOpenSolaris
のCOMSTAR
を利用します。SAN
を使うことで、別の収容サーバへの接続(Detach
→Attach
)が容易になります (iscsiadm
)。コンテナの収容情報、仮想
NIC
情報は、収容サーバに保存されますが、同等なものを管理システムサーバ上に設置します。すると、コンテナがあっちにもこっちにも
いけるようになります。
www.justplayer.co.jp www.justplayer.ne.jp
23
-www.opensolaris.org
例)実構成例
収容サーバ
.
Oracle Sun Fire X2270
Switch
.
HP Procurve
ストレージ.
X4140
.
OpenSolaris HA Cluster
DAS
.
J4200
www.justplayer.co.jp www.justplayer.ne.jp 25 -www.opensolaris.org
ネットワーク構成図
Viriual Server 6 Viriual Server 7 Viriual Server 0 Viriual Server 1 Viriual Server 3 Viriual Server 5 vlan2 vlan1 Viriual Server 4 Viriual Server 2 R Internet vlan0 物理サーバセット 仮想サーバセット ControlNetwork・・・・・・マネジメントサーバから の制御に使われるネットワークStorage Area Network・・・・・iSCSI用SAN DMZ /Backnet・・・・・・サービス用ネットワーク Host Server 2 Host Server 1 Host Server 0 Management Server R Interne t Storage Server 1 WEB UI CLI等 Storage Server 0
Storage Area Network Backnet (tagVLAN)
DMZ
それぞれのサーバの役割
物理サーバ.
マネジメントサーバ.
システム全体を統括。また様々な支援ソフトウェア(DHCP、IPS等)を動作させる.
物理資源、仮想システム全体を調停させるソフトウェアを動作させる.
UIの提供.
ストレージサーバ.
コンテナ(ノングローバルゾーン)のディスクイメージを格納.
ホストサーバ.
仮想サーバを収容し、動作させる 仮想サーバ.
仮想サーバ(≒コンテナ≒ノングローバルゾーン).
ホストサーバで動作し、サービスネットに足をおろし、様々なサービスを行うwww.justplayer.co.jp www.justplayer.ne.jp 27 -www.opensolaris.org
マネジメントサーバ
.
物理デバイス群(ホストサーバ、ストレージサーバ)の構成情報を持つ.
仮想サーバ、仮想ネットワークの構成情報を持つ.
DHCP
サーバ機能:コントロールネットにてホストサーバのIPアドレス配布.
IPS
サーバ機能:DimensionPlus
ソフトウェア群の最新版を配布する.
NTP
サーバ機能:全システムのIP
アドレスを同期させる.
SYSLOG
の収集.
SNMP
の収集.
仮想サーバテンプレートの配信(HTTP
サーバ機能).
WEB UI
、CLI
の管理ツール(管理者、仮想サーバ利用者両方) このサーバは十分な安定性を持つディスクをもつサーバである必要あるが、仮に 停止しても、すぐに起動し直せば、仮想サーバは動作し続けることができる。ストレージサーバ
.
仮想サーバのディスクイメージを格納する.
iSCSI DAS
でも代替可能。.
ZFS/COMSTAR
を動作させる。.
ZFSのボリュームの切り出し.
iSCSIのExport.
Snapshot.
Rollback.
Clone.
オープンなテクノロジ(ZFS
、iSCSI
)ででき ている ディスク0 修正後 仮想 ディスク2 ディスク1 修正後 仮想 ディスク0 仮想 ディスク2 仮想 ディスク1 Set1 Set0 OpenSolaris Apache、php5.3 インストール済み OpenSolaris Apache、MySQL インストール済み zfs clone iS CSI target インストール済 テンプレートセット インストール後www.justplayer.co.jp www.justplayer.ne.jp 29 -www.opensolaris.org
ホストサーバ
.
仮想サーバをコンテナ(ノングローバルゾーン)として収容する.
コンテナの制御、起動、終了などの処理。.
ディスクレスで起動。.
iSCSI DAS
から、コンテナのデータセットを受け取り、マウントして起動。.
なるべく固有情報を持たない。代替可能なようにする。.
ハードウェアの構成情報や、ネットワーク等の物理的な情報は、マネジメントサ ーバに保存する キーワードは、.
マルチコア、メモリ多量ECC
付き、NIC
たくさん、ディスクレス。取り替え可能、安 い方がベター。Intel VT/AMD-V
無くてよし。でも64
ビットがよい。.
ホストサーバ上で動作するコンテナ(ノングローバルゾーン).
最低256MB
程度のメモリで動作。AMP
環境を用意する場合は512MB
推奨.
サービスネットに足をおろし、様々なサービスを動作させる.
仮想サーバのネットワークはVLAN
、VNIC
、VHUB
(Crossbow
)機能などで仮想 化されている.
仮想サーバと物理サーバ群はIP
的な接点がない.
仮想サーバのためのネットワーク(サービスネットワーク)とコントロールネットワー ク、ストレージエリアネットワークは隔離されている.
コントロール側から仮想サーバへのメッセージはzlogin経由でしか行われない.
収容されている物理サーバからの引っ越しが簡単(次回再起動で移動).
リソースの設定変更時は再起動が必要 仮想サーバは、実質メモリが許す限り、作成することが可能仮想サーバ
www.justplayer.co.jp www.justplayer.ne.jp 31 -www.opensolaris.org
仮想サーバの移転(マイグレーション)
.
移転元サーバ.
仮想サーバの停止(zone halt).
仮想サーバの切り離し(zone detach).
ストレージの解放(zpool export).
ストレージの切断(iscsi detach) アプリケーション層 OS層 ホストサーバ群 ハードウェア層 App サ ー バ WEB サ ー バ サ ー バWEB O S:CentOS CPU:1.0個分 MEM:256M DISC:5G O S:OpenSolaris CPU:2個分 MEM:1G DISC:60G O S:OpenSolaris CPU:1.5個分 MEM:256M DISC:5G DBMS サ ー バWEB ミドルウェア サ ー バ O S:OpenSolaris CPU:1.5個分 MEM:256M DISC:5G O S:OpenSolaris CPU:2個分 MEM:512M DISC:20G O S:CentOS CPU:0.7個分 MEM:512M DISC:20G 仮想サーバの移転が可能.
移転先サーバ.
ストレージの接続(iscsi attach).
ストレージのマウント(zpool import).
仮想サーバの接続(zone attach).
仮想サーバの起動(zone boot) 再起動が伴うが、マイグレーションも可能。ただし、CPU
固有命令に注意!.
OS
:OpenSolaris
.
Solaris Container
.
Solaris Resource Manager
.
lxzone
(仮想Linux
用).
ZFS
.
COMSTAR
.
Crossbow
.
Diskless boot
.
USB boot
.
D-Trace
.
等々利用技術一覧
いちいち組み合わせるのめんどくさくない?
DimensionPlus Project
と、
DimensionPlus
が提供するもの
DimensionPlus
とは…….
Solaris Container
が提供していない部分を補い、様々な技術をまとめ、仮想化 をより手軽に行うことができるソフトウェア 特徴.
管理サーバからの、物理デバイスのコントロール.
ホストサーバ、ストレージの構成情報、状態等の管理、モニタリング.
ホストサーバのディスクレス化→ディスクありも可能.
USBメモリによるブート、iSCSIによるブート.
管理サーバからの、仮想システムのコントロール.
仮想サーバ、仮想ネットワークの構成情報、状態等の管理、モニタリング.
WEB
ベースのUI
とCLI
の提供www.justplayer.co.jp www.justplayer.ne.jp 35 -www.opensolaris.org
DimensionPlus
で実現できること
.
管理サーバ+ストレージ+ホストサーバ(x64/x86)
の3
台だけで、何十台の仮想 サーバシステムを作ることができる.
ホストサーバを1台増やすごとに、何十台単位で仮想サーバの増強ができる.
ホストサーバの追加がUSB
メモリを差し込んで起動するだけで簡単にできる.
アップデートがやっぱり面倒なので、最近はiSCSIブートの実験中 :).
わずか数分で仮想サーバの作成ができる.
仮想ネットワーク構造(VLAN
)を持ったサーバセットを作ることができる.
仮想サーバを別のホストサーバへマイグレーション(移転)することができる.
柔軟なリソース管理.
仮想サーバ、仮想ネットワークのコントロール(作成、変更、削除、移転、状態確認 等)がWEB
ベースのUI
で簡単にできるDimensionPlus
の運用シーン
.
会社の社内サービスインフラ向けに・・・・・・.
Intranet/Internetのサービスの収容.
過去のRHELv3/v4などで作られたサーバのマイグレーション.
fake linux機能でSolarisカーネルにLinuxの移転が可能.
Linuxブームの時に量産してしまったPCサーバの統合に.
開発会社の本番システム、テストシステム向けに・・・・・・.
8Gのマシンに、現実的なAMPアプリで20∼30台程度のコンテナの収容が可能.
ストレージサーバは、OpenSolaris OSが動き、十分なディスク安定率があれば良い。プ ロプライエタリな専用iSCSI DASに比べて遙かに安価.
ASP
、SaaS
、ホスティング向けに・・・・・・.
収容率が高いので、歩留まりがきわめて良い.
ライセンスが安価なのもメリットwww.justplayer.co.jp www.justplayer.ne.jp 37 -www.opensolaris.org
動作画面プロト
超プロトなので、たぶん作り直されます。動作条件
.
マネジメントサーバ.
OpenSolarisが動作するサーバ.
メモリ 2GB∼.
ディスク 40GB∼.
冗長性があるものを推奨.
NIC 1つ以上.
コントロールネット他.
ストレージサーバ.
OpenSolarisの動作するサーバ.
メモリ 4GB∼.
ディスク.
十分な冗長性と、速度、容量、スケーラ ビリティが必要.
NIC 2つ以上.
コントロールネット、SAN、その他Link Aggr推奨.
ホストサーバ.
OpenSolarisの動作するx64/x86サー バ.
CPU 2 Core 以上を推奨.
メモリ 4GB∼.
ディスク なし.
USBメモリブートできるもの.
NIC 3つ以上.
コントロールネット、SAN、サービスネッ ト、その他LinkAggr推奨www.justplayer.co.jp www.justplayer.ne.jp 39 -www.opensolaris.org ライセンス
.
商用ライセンスor
オープンソース.
商用ライセンス費用.
1ソケットあたり5万円前後/年にする予定.
商用ライセンス用IPSレポジトリの公開.
オープンソース.
GPLの予定。もーちょっとまってね。.
無償版のIPSレポジトリも提供する予定DimensionPlus
のライセンス
Phase
2
Server:VPS
サービス
.
当社、ジャストプレイヤー株式会社の、 レンタルサーバサービス(http://
www.justplayer.ne.jp
).
Phase2Server(VPS).
WikiPlus.
そのほかサービス予定のSaaS、ASP、ホ スティングのサービス基盤.
メールサーバシステム.
DNS
、MX
等www.justplayer.co.jp www.justplayer.ne.jp
41
-www.opensolaris.org
DimensionPlus Ver.
1
.
0
(
RiceBird
)
目的
.
システム全体が安価なサーバ仮想化を行いたい.
限られた予算の中で、「仮想化」はできるのか?.
ノングローバルゾーンのプロビジョニングを簡単にしたい.
ノングローバルゾーンの引っ越しを簡単にしたい.
ノングローバルゾーンをストレージサーバに集約させる必要がある 技術.
Solaris Express
ベース.
USB
メモリブート(ディスクレスホスト)の実現.
ZFS/iSCSI/Clearview
問題.
USB
メモリが消耗する可能性がある.
構成情報がUSB
に保存されるwww.justplayer.co.jp www.justplayer.ne.jp
43
-www.opensolaris.org
DimensionPlus Ver.
2
.
0
(Pheasant)
目的
.
管理ツールの強化(マネジメントサーバからすべてのコントロールを行う).
構成情報をすべてマネジメントサーバに一元管理.
USB
メモリ(or LiveCD
)のRAMDISK
化.
NFS
を無くしたい.
WEB UI/CLI
の追加.
オープンソース化 技術.
OpenSolaris
ベース.
ZFS/iSCSI/Clearview/Crossbow/IPS/Boot
プロセス(LiveUSB/CD)
問題.
Zone
の情報取得が弱いwww.justplayer.co.jp www.justplayer.ne.jp
45
-www.opensolaris.org
2008
年3
月(Proprietary Build
)DimensionPlus Ver 1.0
(RiceBird)
2009
年6
月∼(OpenSource
)DimensionPlus Ver 2.0
(Pheasant)
課題
.
コンテナのコントロール、ストレージ管理をもう少し多様化したい。.
Host
サーバがLinux
上のコンテナにできれば、また違うことができるよね?.
などなどメモリキャップのコツ
.
必要のメモリの2
倍程度をcap
にし、90%
ルールなどを敷いて管理した方がい い。.
256MBの契約ですが、512MBまでは最大利用することが可能・・・など。.
理由は、ページスキャナーの構造によるlxzone
の互換性.
所詮、特定のバイナリを動かすためのものと考えた方が良い。.
LL
ぐらいの動作は概ね可能だが、深いものは動かない。OS
の壁.
クラウド化(XaaS
化)が進むほど、関係なくなってくると考えられるが、現段階で は、OS
の壁を越えられない人は、思ってる以上に多い。コンテナの実運用での
Tips
www.justplayer.co.jp www.justplayer.ne.jp 47 -www.opensolaris.org