HOME / 日記 / Solaris Containerの中で・・・

Date: 2009/06/12 |  このエントリーをはてなブックマークに追加  |  Tags: Solaris, OpenSolaris, Howto, 利用法

Solaris Containerの中で・・・

周知の通り、色々な理由があって、Solaris Containerをレンタルしている弊社ですが、そのためにSolaris Containerをかなりいろいろと調べています。

その中でちょっと思ったことを散文的に・・・

その前に用語を一つ・・・

ZoneSolarisのZoneという技術の枠組みのことを指します。
コンテナSRMとZone技術が組み合わさったものを指します。また、プロセスの隔離によって実現する仮想化技術のことも指します。
仮想サーバコンテナ技術によってサービスされているサーバのことです

微妙に違うので念のため。

Root管理者は本当に分けられるのか?

これはYesだから、Phase2Serverのサービスができるわけですが、問題もあります。

たとえば現在では、OSのUpdateはGlobalZoneからでしか行うことはできません。仮想サーバを借りているサーバの管理者からすると、GlobalZoneの都合で勝手にサーバのバージョンが上がっては困るときもありますから、これをうまく解離しないとなりません。

lx-zoneのように世界が別ならできますが、native zone(SolarisやSolaris ExpressのZone)やipkg zone(OpenSolarisのZone)では、Global Zoneとの解離性があまり無いので(これはこれでメリットもあるのです)、これはできません。

Phase2Serverは、DimensionPlusのテクノロジでできているので、Containerの引っ越しが容易にできます。この機能を使い、新しいバージョンのOSの物理機に引っ越しすることで、これを実現をしています。もっともPhase2Serverでは、再起動時に常に同じマシンから帰ってくるこことは保証していないので、同バージョン間での引っ越しに関しては頻繁に行われてる可能性がありますが・・・。

Zoneの中から、自分が利用しているメモリとかってわかるの?

実はvmstatではわかりません。

たしかにProject単位(≒Zone単位)でcapがかけられており、Capがある以上、今いくつ使っているのか知りたいとは思います。

こうしてください

prstat -Z

最後に自分のZoneがどのぐらいつかっているか出てきます。

net-snmpdだと、どこまで情報がとれるの?

正直、あんまり取れません。

CPU負荷は全体のことだから良いとしても、何パーセントぐらい使ってるかはprstatでとれますね。メモリは上記の方法でとれ、NICはexclusiveならば取れると思います。残念ながらsharedでは取れません。ディスクサイズは取れますが、ディスク負荷はiostatを監視するしかないですね。

なので、net-snmpdに独自のプログラムをラッピングして、これらを取得することにしています。

zoneのboot environmentはどう選択するの?

zoneの中のbeという概念は、ありません。

zbe-nというのは、GlobalZoneがバージョンが上がったときに、一緒に作る物で、Zone自体の単位を示すわけではありません。

ただ、概念は理屈上はできます。しかし、zbeはzoneに対して権限委譲してるものではなく、GlobalZoneがzbeをマウントしてそこをZoneに見せているため、Zoneの中からbeのコントロールはできないのですね。zoneのrootにSnapshotを親から作れても自分自身でつくれないのと、仕組みは同じです。

zfsの委譲はできますが、普通はzbeに対してはできないので、普通はできません。

zoneのjail breakはできないの?

もしわかってても、最初にzoneの開発チームに言いますよ(笑)

DimensionPlusは結構、構成技術を先に出してるけど、同じ方法は真似できないの?

真似はできると思いますが、通常の方法ではZoneのBootができないので、ちょっといろんな所のソースをいじくり回さないとならないと思います。はい。

DimensionPlusは6月中に本当に出るのか?

すみません。

実のところ現時点では見通しがたっていません。

正式なリリースは会社の方のWEBサイトで行いますが、もうしばらくお待ち頂く可能性は高いです(ぺこり)。



日記

Recent Updates