HOME / 日記 / Solaris Containerの中で・・・
Date: 2009/06/12 | | Tags: Solaris, OpenSolaris, Howto, 利用法
周知の通り、色々な理由があって、Solaris Containerをレンタルしている弊社ですが、そのためにSolaris Containerをかなりいろいろと調べています。
その中でちょっと思ったことを散文的に・・・
その前に用語を一つ・・・
Zone | SolarisのZoneという技術の枠組みのことを指します。 |
コンテナ | SRMとZone技術が組み合わさったものを指します。また、プロセスの隔離によって実現する仮想化技術のことも指します。 |
仮想サーバ | コンテナ技術によってサービスされているサーバのことです |
微妙に違うので念のため。
これは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では、再起動時に常に同じマシンから帰ってくるこことは保証していないので、同バージョン間での引っ越しに関しては頻繁に行われてる可能性がありますが・・・。
実はvmstatではわかりません。
たしかにProject単位(≒Zone単位)でcapがかけられており、Capがある以上、今いくつ使っているのか知りたいとは思います。
こうしてください
prstat -Z
最後に自分のZoneがどのぐらいつかっているか出てきます。
正直、あんまり取れません。
CPU負荷は全体のことだから良いとしても、何パーセントぐらい使ってるかはprstatでとれますね。メモリは上記の方法でとれ、NICはexclusiveならば取れると思います。残念ながらsharedでは取れません。ディスクサイズは取れますが、ディスク負荷はiostatを監視するしかないですね。
なので、net-snmpdに独自のプログラムをラッピングして、これらを取得することにしています。
zoneの中のbeという概念は、ありません。
zbe-nというのは、GlobalZoneがバージョンが上がったときに、一緒に作る物で、Zone自体の単位を示すわけではありません。
ただ、概念は理屈上はできます。しかし、zbeはzoneに対して権限委譲してるものではなく、GlobalZoneがzbeをマウントしてそこをZoneに見せているため、Zoneの中からbeのコントロールはできないのですね。zoneのrootにSnapshotを親から作れても自分自身でつくれないのと、仕組みは同じです。
zfsの委譲はできますが、普通はzbeに対してはできないので、普通はできません。
もしわかってても、最初にzoneの開発チームに言いますよ(笑)
真似はできると思いますが、通常の方法ではZoneのBootができないので、ちょっといろんな所のソースをいじくり回さないとならないと思います。はい。
すみません。
実のところ現時点では見通しがたっていません。
正式なリリースは会社の方のWEBサイトで行いますが、もうしばらくお待ち頂く可能性は高いです(ぺこり)。