おがさわらなるひこのオープンソースとかプログラミングとか印刷技術とか

おがさわらなるひこ @naru0ga が技術系で興味を持ったりなんだりしたことをたまーに書くブログです。最近はてなダイアリー放置しすぎて記事書くたびにはてな記法忘れるのではてなブログに移行しました。

クリエイティブ・コモンズ・ライセンス
特に断りがない場合は、本ブログの筆者によるコンテンツは クリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンスの下に提供されています。

東京 OpenSolaris 勉強会 for びぎなーず 2009.09

2009.09.26 に行われた勉強会に参加してきました。やっとブログ書けたよ……。
相変わらずびぎなーずです*1
しばらくびぎなーずにお邪魔させていただくだろうなぁ。

今回の演目?は二つ。

  • OpenSolaris コンテナを一緒に勉強 by 大野さん
  • デスクトップとして OpenSolaris をいろいろ使ってみる by 太田さん

ちょっとベクトルが違う演目が並ぶところも僕は好ましいと思う。
いや、俺は Solaris でデスクトップなんか興味ないんだ、アドミニストレーションについてバリバリやってくれ! って人には不満なのかもしれないけど、オイラは別に管理者とか本業じゃないので、面白そうなことは広く浅く知っておきたいから、今みたいなスタイルの方がいいな。

ということで講師の大野さん、太田さん、その他 openSolaris ユーザーズグループのみなさん、会場を提供してくださった Sun の皆々様、ありがとうございました。

第一セッション:OpenSolaris コンテナを一緒に勉強 by 大野さん

資料はこちら

コンテナってなに?
  • ZONE + リソース管理
  • では ZONE とは?
    • Solaris における仮想サーバー
      • Linux における chroot 的なものと思えばいいのかな。
      • オフトピだけど、Linux 環境を動かす lx zone なんてのもある。
まずはブート環境を作る
  • ブート環境とはシステムが起動するまでの一連のファイルや設定群
    • Solaris複数のブート環境を作ることができる
    • もちろん ZFS なので Copy on Write だから、複数作ってもまるまるディスクを食うわけではない。
  • boot 環境を作るコマンドは beadm (= boot environment admin)
    • bmadm list でブート環境のリスト
    • bmadm create でブート環境を作成
ZONE の作成
ZONE の初期化
  • ZONE はできたばっかりだと空っぽ (既存の環境からコピーしたりはしない)
  • ので、ネットワーク越しにレポジトリからとってくる
    • 今のところ、大域 ZONE (Global ZONE: 大本となる Solaris の環境) のレポジトリ情報を使うことしかできない。異なるレポジトリをさすことはできない
    • 取得するファイルサイズは 70MB ぐらい、展開後に 200MB ぐらいになるかも?
  • 大域 ZONE に対して、後から作った ZONE を非大域 ZONE (None-Global Zone) と呼ぶ。


(タッチパッドで絵を描くのムズイ……)

Solaris 10 の ZONE と openSolaris の ZONE
  • Solaris 10 の ZONE = 疎ルートゾーン (sparse (root) zone)
    • Global ZONE のファイルを read only で共有
    • 特徴:
      • ディスク使用量が非常に少ない
      • Global ZONE を update するとすべての Non-Global ZONE が update される *2
  • openSolaris の ZONE = ipkg ブランドゾーン (ipkg brand zone)
    • 2008.05 から導入
    • ZFS に大きく依存しているので、ZFS の実装が先行している openSolaris はこちらにシフト
      • いずれは商用版 Solaris もこちらになるかも?
  • 設定次第では ipkg brand zone を sparse root zone のように運用することもできる
    • たとえば、/usr は Global ZONE を参照する、といった設定は可能
    • しかし Sun 曰く「それは想定外だからやるべきでない」だそうで。
ZONE とネットワーク設定

それぞれの ZONE は次の二つのネットワーク設定から選択可能

  • 共有 IP ゾーン:Global ZONE と同じ NIC を強要
    • もちろん IP アドレスは別個に割り当てる
    • その他の設定 (Gateway とか) は Global ZONE から持ってこられる
  • 排他的 IP ゾーン:一個の ZONE には一個の NIC を割り当てる
    • ただし Crossbow*3 で作った仮想 NIC でもオッケー。
リソース管理
  • 要は使用メモリやディスクサイズ (ZFS はサイズ制限が非常に緩いファイルシステムなので) に quota を掛けるということ
  • rcapd (Resource Capacity Daemon?) というソフトを使うが標準ではインストールされませんので注意。
セッション1の感想

やっぱりサーバ OS として考えると Solaris ってすごいよくできてる。
Web サーバとアプリサーバと DB サーバとかってどんな小さなサーバでもやっぱ別々に立てたくなるけど、ZONE 使えばまずは一個雛形つくっておいて、ZFS のクローニングでクローン作って、それでそれぞれに必要なソフトを突っ込めばいい。
一台のサーバで足りなくなったら ZONE ごとエクスポートして別マシンにインポートとかもできるらしい。そのとき Crossbow で仮想 NIC 使ってればネットワーク的には変わらないからスケールアウトも楽勝。
うーん、これはサーバ立てて弄ってみたくなるぞ。

セッション2: デスクトップとして OpenSolaris をいろいろ使ってみる by 太田さん

資料はこちら

えっと、基本的には「デスクトップアプリをもりもり紹介する」というセッションなので、私がグダグダ書くより資料ご覧になっていただいた方が早いと思います。

ので、私のアンテナに引っかかったことをちょいちょいと。

  • 講師の太田さんは openSolaris の Core Contributor。
    • という役目がよく分からないのだけど (^^;)、別にコミット権がどうとかいうわけでもないらしい。
      • ついでにいうと openSolaris でパッケージを contrib に上げるのはものすごく大変らしい。コードレビューがっちりやってからじゃないと取り込んでもらえないとか。
    • openSolaris の技術を商用 Solaris に展開するアドバイザ的なこともやったりするらしい。
    • 各国のユーザーズグループとお話とかもするらしい。
  • openSolaris の目標、それは「Ubuntu のような Solaris」。
    • 単に Solaris をオープンにしたわけじゃないよ、と。
    • デスクトップ OS として Ubuntu に対抗できるようにしようよと。
    • メインストリームでもしょっちゅう「Similar to Ubuntu」という言葉が出てくるよと。
  • 案外知られていないのは、ATOK X や Wnn 8 といった商用アプリを Sun が買って、extra レポジトリに入れていること。
    • つまり ATOK を使うのにお金を払う必要がない!
  • 前述の理由で公式のレポジトリに入ってないけど、野良ビルドはけっこうあるので探してみよう。
    • SecondLife とか (日本語入力できないけど)
    • Chromium とか
    • Google Gadget とか(肝心の Gadget が環境依存したりして悲しいけど --;)
  • Jaris どう?
    • WINE の実装は超頑張ってるのでゲーマーにはオススメかも。
    • ただライセンス微妙な奴とか突っ込んでてドキドキしちゃうのが欠点。今頑張って見直しかけてるみたいだけど。
    • なんか Dell に Jaris 好きがいるのか逆かは分からないけど Dell のドライバがやたら充実してる。Dell ユーザにはいいかも。
セッション2の感想

こういう「基本に立ち返ったプレゼン」は大事だと思います。
どうしても Solaris というと ZFS、Crossbow、Zone などなど管理者にシアワセな機能が強調されがちなのだけど、デスクトップ OS としてある程度シェアを取らないと開発もコミュニティも停滞しがちだし。

ただ、「Ubuntu のような Solaris」とだけ言ってしまうと「じゃあ Ubuntu でよくね?」となってしまうので、まずは Solaris ならではのユーザーランドの嬉しさを示して(なければ作る、ぐらいのことをして)、「こんなにうれしくて、なおかつデスクトップとしてもすげーんだぜ!」って話に持っていかないと、みんなを振り向かせるのは難しいと思うんですよね。

でも繰り替えしますが、こういう視点でものを語ることそのものはとても大事だと思いますので、太田さんに拍手。

その後懇親会へ

いろんな話をしたけど忘れちゃった。
二つあるとすれば、終電のがして用賀から長原の下宿まで2時間歩いて帰ったことと、地図がないけど携帯の電池も切れちゃったからコンビニ探さなきゃ、といったら、瀧@ジャストプレイヤーさんが充電器くれたことですね。ありがとう瀧さん!

知識レベルが低いからどんな話を聞いても楽しいぞい。
次回もまた参加しようっと。
Crossbow の話もしてくれないかなぁ。

*1:よく知り合いに「なるひこさんはビギナーズじゃなくてこっちでいいでしょ」とか言われるんですが、i-node がどうだとか ZFSソースコード読んだりとかそーゆー世界にわたしゃついていけません。ユーザーランドを知りたいというう気持ちの方が強いっす。

*2:これは良し悪しですね。

*3:Crossbow: openSolarisZFS 以外のもう一つの目玉。ネットワークの仮想化を実現する技術。このブログエントリあたりが参考になるでしょう。