Sun が openSolaris についてありがたーいことに無償で行ってくれる、やや初心者寄りのナイトセミナーと、中級者・実運用者向けのホットトピックセミナー。
今回はホットトピックセミナーということで一瞬躊躇したのですが、Solaris バリバリ運用してるわけじゃないし、分かんないのは当たり前、わかんなかったら質問すればいいや、まいっかということで行ってきました。
「ますます注目の ZFS 第三段 - ZFS 実用編」by Nozaki さん
これまでのセミナーですでに ZFS の何がすごいか、技術的特徴は、などの話はしているので*1、今回は「では ZFS でどういうふうに実際にシステムを構築したらいいか」というテーマで。
おお、それは素敵だ。来てよかった*2。
好意でやっていただいてるセミナーをだらだら垂れ流してもしょうがないので要点のみかいつまんで。
動作 OS
- Solaris/openSolaris
- SPARC or x64 がオススメ。
- ZFS は 32bit だとパフォーマンスいまいち
- Solaris 10 ならサポート万全だけど、openSolaris もサポート契約結べるよ!
- SPARC or x64 がオススメ。
サーバ構成要件
- 当然なんでも「速ければいい」「大きければいい」
- メモリはごっそり載せると ARC (ディスク用1次キャッシュ) として使われるのでうれしい
- SSD などの高速フラッシュデバイスも L2ARC、ZIL といったキャッシュに使われるのであるとハッピー
- ZFS root 推称
- つかそもそも openSolaris は ZFS root だけだし
- ブート環境の snapshot / rollback はおいしすぎる機能
- UFS と共存するとメモリ食うよ?
ストレージ (総論)
内部ストレージと考えたときのストレージプール
プール内での RAID 構成
素敵な RAID-Z 構成
Hybrid ストレージプール
- ARC (メモリ READ キャッシュ) + L2ARC (Flash 二次 READ キャッシュ) + ZIL (Flash 書き込みキャッシュ) を階層化することによる高速化
- 読み込み:
- 読み込み時に ARC (-> L2ARC) -> 実デバイスにアクセス
- その結果を ARC (-> L2ARC) にキャッシュ
- 書き込み
- 実デバイスに書き込む
- 前後して(忘れた)ZILにも書き込む
- 要はZILはキャッシュというより障害時の「保険」。ちゃんと書き込まれたときにはZILのデータは使われない
- SSDって壊れたりしないの?
- しますします。
- でも L2ARC はキャッシュなのでぶっ壊れたら単なるミスヒットとして動くし、ZIL のデータは普段使われないので、機会を見て交換すればおけ。
- ARC はメモリから適当に余ってる分を取ってくるのでチューニングの必要はほとんどない。
- ただし、RDBMS のようにパフォーマンス確保のために一定量のメモリをあらかじめ確保に行くようなアプリがある場合はその分開けておいてあげると効率がいい。
ZFS のプロパティ設定
しまった、ここまでで書きすぎた。あとはさらっと。
- ZFS に置ける「ファイルシステム」とは「プール内に存在する同じプロパティ(属性)を持った塊」
- だから ZFS におけるファイルシステム管理とは「どういうプロパティの塊を作るか」に等しい
- 基本的には「チューニング不要」が目標
- でもまあいじらなきゃいけないときもある。
- quota は FS と user/group 両方でかけられる (on Solaris 10 u6? openSolaris 2009.06 ではまだ。
openSolaris。Solaris10 は次の update?*7) - recordsize は普通のファイルなら既定値でいいが、RDBMS の場合はブロックサイズと合わせてやるといい
- 共有ファイルシステムにもいろいろあるけど省略
あとは
いろいろなサンプルシステム・資料紹介と宣伝なので省略。
強いて言えば
- ZFS は巨大ファイルを一気に転送するのが強いので、仮想化のファイルイメージ管理したり、ストリーミングなんかに威力を発揮する
- SS7000 のシミュレータは面白いかも。
- http://www.solarisinternals.com は情報の宝庫だから頑張って読もうね。
ZFS 最新情報 by satokaz さん
実のところこの話の半分は「openSolaris勉強会(びぎなーず)2009.12での話とかぶるんですが、向こうは「だから Dev でバグ出ししようぜ!」という話だったのに対し、こっちは「Dev の変更追いかけてくとこんなことがわかるよ!」という話なのでベクトルがちゃんと違います。一粒で二度おいしい。
ということで今の 2009.06 のビルド番号は 111 なので、112 以降の変更を時系列で追っていくというのが主な内容になりました。
おいしい話を二つだけ紹介。
System Duty Cycle scheduling (b129)
- 今までは I/O が非常に高負荷になると資源を ZFS 自体が占有してしまってシステムがロックアップしたかのようになってしまうことがあった。
- そこで SPA (Storage Pool Allocation) 専用 system process を起動して、プールごとにスケジューリング管理の下に入れることで、I/O がすべてを占有するということを防止する
ZFS Deduplication (dedup; ででゅっぷと読もう) のサポート (b128)
ZFS Crypto
- 2010.03 に入ると言われているが依存関係のプロジェクトが遅れているのでまだ Dev 入りしていない
あと PSARC 番号からその機能を調べる方法は直接資料を参照してください。基本的には先日の openSolaris 勉強会びぎなーずと同様の内容です。
三分間クッキング「オフラインで IPS リポジトリを立てる」by 原口さん
今回は時間が押していたので概要説明だけで
- IPS (Image Packaging System) は Linux でいう rpm/yum や dpkg/APT のような openSolaris のパッケージングシステム
- でもたとえば apt-cache のようなローカルレポジトリを構築する方法はない……けど一つ方法が。
- それがリポジトリ ISO イメージの存在!
リポジトリ ISO イメージ
- ネットワークに接続されていない環境で openSolaris をインストールするための秘密兵器(?)
- fat package とも呼ばれる
- x86 と SPARC 両方のパッケージを含む
- 場所は osol-repo-0906-full.iso とかで調べるか資料見てね
- サイズは 7.7GB あるので太い回線で落とそう
- できれば bittorrent を使ったりするといいかも
さてこいつをどうしますか
- 7.7GB もあるから単層DVD-Rには焼けないよ
- USBメモリで持ってくるのがいいかも
- イメージを lofiadm でマウントしよう
>pfexec lofiadm -a osol-repo-0906-full.iso /dev/lofi/1
>pfexec mount -F hsfs /dev/lofi/i /mnt
得失など
【得】
- ネットワークから切れていても使える
- ZONE*8 を作るとき openSolaris は必要なパッケージを取得するのに IPS サーバを参照するのでちょっと時間がかかるが、ローカルにあると作成が一瞬で終わる (これはおいしい)
- ネットワーク環境下でもミラーサーバとして使える
【失】
- あくまでもリリース版 (今回の場合は 2009.06) のときのパッケージしか使えないので、最新パッケージとの同期ができない
- セキュリティ上微妙だけど、ネットワークから閉じた環境ならいいのかなぁ?
ぼく的結論
やっぱり IPS にも apt-cache みたいな仕組み欲しいなあ〜。
「SPARC と Solaris で実現した TPC-C 世界一」by 大曽根さん
自分のドメインナレッジと乖離してるんで資料の丸写しになりそうなので超簡単に。
TPC-C とは
今回 Sun がチャレンジ
終わりに
ということでどっちかというともうサーバとして Solaris 導入してます、とか、導入をマジに検討してます、みたいな人が行くところで、オイラみたいな根っからのデスクトップ屋が行くとこじゃないかなーと思ってたら、意外と楽しめました。
改めまして、このような有益なイベントを手弁当で開催してくださっている Sun の皆様に感謝いたします!
*1:私は聞いてませんが、まあ openSolaris 勉強会の方で勉強してるしね。
*2:私はちょうど NTT-X から HP ML115 をこの日ぽちったところで、openSolaris をベースOSにして仮想環境サーバにする&印刷環境調査マシンにしようと思ってたので非常にタイムリー。いや、スケール全然違うけどさ。
*3:でも元々商用OSだからねえ、コミュニティのちからってどこまで信じられるかしら?
*4:すんません、ぼくもわかんないのでググってください。
*7:コメント欄でご指摘いただきましたので修正。