OpenSolaris Hot Topic Seminar 2009 12/18 に参加してきた

イベント&セミナー - OpenSolaris Hot Topic Seminar

サン・マイクロシステムズ主催のこのセミナー、前回が初参加でした。このブログを再開するきっかけにもなったセミナーですが、個人的に今回も非常に有意義なものでした。
OSC 2009 Tokyo/FallとOpenSolarisナイトセミナー


セミナーへの感想は後述するとして、各セッションごとに簡単に書いてみたいと思います。ただ、個人的に気になった部分、発見があった部分が中心になっているので、気になる方は後日アナウンスがあるであろうセミナーの動画なりで確認してください。アナウンスがあり次第リンクも追加したいと思います。

ますます注目の ZFS 第 3 弾!!

ざっとこういうことができますよという復習と具体的なTipsなどがありました。結構駆け足気味でした。
以下気になったところ。

ZFS 実用編
  • ZFSのストレージ使うならSunの7000シリーズ以外にもJBODのSun Storage J4200とか4400とかもある

価格的にもお手頃でJ4200とかよさげな気がする。チューニングしてiSCSIストレージにして使ううと面白いかもと思った。

  • プールにはドライブ以外にもramdisk(ramdiskadm -aで作成)、ファイル(mkfileで作成)をデバイスとして指定可能
  • cacheデバイスとしては使えないがloifadm -a でループバックインターフェースにすれば可能

mkfileでファイル作ってやれば、zpoolやzfsコマンドの練習に非常に便利なのは知っていたんだけど、cacheデバイスにも使える技は知らなかった。
cacheデバイスの取り外しなんかのシミュレートもできるということですね。

  • 近年のドライブ単体の信頼性から計算されるRAID5/6の再構成成功率は、RAID5で約79%〜98%RAID6では限りなく100%に近い

このことからダブルパリティ(RAID-Z2)とトリプルパリティ(RAID-Z3)の必要性がわかる。
まあZFSRAID-ZはRAID5とは違うものだから信頼性で言えばRAID5より高いとは思うんですが。
というかRAID5には良いイメージが全然無い。遅い、再構成でトラブルことがよくあるというイメージしか無い。

  • 同じドライブ数の場合ストライプ > ミラー > RAID-Z > Z2 > Z3だけど、read時にRAID-Zの方がミラーよりもストライプ幅が大きく性能が高いこともある。RAID-Z/Z2/Z3の場合はプール内に何グループ作るかが重要。
  • RAID-Z/Z2/Z3のグループ構成時のドライブ数目安として、RAID-Z:3〜4、RAID-Z2:5〜13、RAID-Z3:8ドライブ以上
  • 1zpool内に複数のRAID-Z/Z2/Z3グループを作る。ランダムI/Oが多い場合は1グループのドライブ数を少なくした方が良い

このあたりはセッションの動画を確認した方が良いと思う。

  • Hybridストレージプールは読み書き、容量、コスト、消費電力のすべてで有利

過去のwebの特集や記事でも触れられています。
ストレージ・システムのコスト問題を解決する 「Solaris ZFS」と「Open Storage」

  • SSD使用時の信頼性に問題はない。SSDが故障してもcacheデバイスの場合はキャッシュミス扱いになるけ(パフォーマンスは下がるがシステムが停止することはない)。ZILデバイスの場合は一次キャッシュの中のコピーが使用される。
  • 一次キャッシュは読み書き両方に使われる。最大使用量はで物理メモリ-1Gか7/8のどちらか

最近のソースコードでは変わったらしいけどZFSはメモリ食いなのは変わらないと思う。

  • cache(L2ARC)はランダムreadに大きく効く
  • ミラー構成は取れない
  • ARCから除去される直前のデータが格納される
  • 再起動するとデータが無効になる(データが消えているわけではないが利用されなくなる)。今後拡張される予定。
  • ARCより大きい方がバランスが良い
  • 1レコードあたり256バイトメタデータが作られ、これはARCに格納される。ざっとrecordsize=8k(デフォルト)でL2ARCが100GでARCは5G必要。

前回のセミナー後の質問でL2ARCが大きすぎてもダメと言うのはここの部分だと思われる。ARCが足りないと意味がない。

  • ZILは同期書き込みの時にのみ使用される
  • ZILには高速デバイスを指定するとよい
  • ログデバイス(slog:separate log)を指定しないと、プール内に作られ、トランザクションコミット後にすぐに削除される

logが書き込み対象のプール内にあるとパフォーマンスが下がるため、HDDデバイスでもいいので別のデバイスを指定した方がいいとされています。今の自作ストレージではそうしています。

  • immedeate_write_sz(32k)を超える書き込み時にZILが有効ならslogが有効ならslogへ、無効ならコミットまで待つ
  • 属性値でバイアスを指定できる(throughput/latency)

ここまでZIL関連

  • スペアディスクはプールをまたいで共有できる
  • スペアディスクに切り替わったあと、呼称ディスクを交換して交換後のディスクへ再度構成を戻すことができる

このあたりはmkfileで作ったファイルを用いたzpoolやzfsコマンドで確認済み。試してみるとわかりやすいと思う。

  • 容量的には80%を超えないように設計・運用するべし。内部処理が遅くなる
  • GB(1000x1000x1000)とGiB(1024x1024x1024)の違い。ざっとraw容量x0.9
  • snapshotやcloneの使用量も見積もる
  • RAIDの再同期は高速で使用中の部分のみを認識して行われる

通常のRAIDではドライブ全体を同期するので容量が大きいとこれに時間がかかる(LinuxRAIDとか)。
ZFSの場合は使用部分だけなので縮退中の時間が短い。

  • ZFSの属性値(プロパティ)は設定後の書き込みにのみ反映されるので、zfs create時に設定しておくのがベスト
  • ネットワークで共有する場合、リンクアグリゲーションではL2/L3/L4でポリシーを設定して使用ポートを振り分けることができる
  • クライアントが少ない場合はL2/3/4の組み合わせポリシーで均等配分できることが多い
  • なにも設定しなくても、IPを1個ずつずらす構成になっていれば均等分散されやすくなる

IP1個ずらしはなるほどだった。うちの場合これでとりあえずよいかも。

  • ZFSでDBを使う場合のポイント

現状DBを使うことはないので割愛。知りたい人は資料をみてください。

  • Evil tuningもあるよ

ZIL無効とかキャッシュフラッシュ無効とかチェックサム停止とか、ARCサイズ絞るとか
ZFS Evil Tuning Guide - Siwikiが参考になると思う。


ZFS 最新情報

今回のセミナーの内容は先週のOpenSolaris勉強会 for びぎなーずに少しリンクしたものがあった。先週の勉強会に参加していた自分としてはよりわかりやすかった。

ここでもCOMSTARがピックアップされていて、これからCOMSTARはOpenSolarisでは注目キーワードのひとつになってくると思う。日本語の情報が少ないので情報がどんどん出てきてくれるとうれしいんだけど。

以下ピックアップ

  • zpoolとzfsにはバージョンがそれぞれ存在している。確認はzpool upgrade -v と zfs updgrade -vで可能。
  • OpenSolaris2009.06はzpoolが14zfsが3
  • Solaris10 10/09はzpoolが15でzfsが4
  • FreeBSD8.0はzpoolが13でzfsが3
  • 最新のONVN(Nevada)ではzpoolが22でzfsが4

これは前回の勉強会でもでていた。Solarisの方がOpenSolarisより現時点ではバージョンが新しい。次のOpenSolaris2010.03では最新に追随すると思われる。

  • zpoolとzfsのバージョンはimportする際には注意が必要。サポートしているバージョンじゃないとimportできない。
  • beadmやliveupgradeでBEを切り替える環境では、新しい環境でupgradすると古いBEから起動できなくなる

これは要注意。

  • OpenSolaris2009.10(b111)以降のビルド毎の注目すべき新機能

これは数が多いので資料を参照。2010/12/19時点での最新はb130で、次のリリース予定の2010.03には大体134か135ぐらいまでが含まれる予定。
ピックアップ

    • 112:zvolにおいてのWrite Cache EnableのSCSIコマンドサポート(COMSTARを見据えた実装)
    • 114:user/group quotaの実装。zfsバージョン4の新機能
    • 117:Dynamic LUN Expansionと連携したpoolの自動拡張
    • 118:HDDのセクタサイズが512バイトから4kバイトに移行するための対応。(最近出たWDのディスクがWindows7に最適化され、XPでは変更が必要になるというあれのこと)
    • 120:トリプルパリティのRAID-Z3追加
    • 122:データセット(ファイルシステムやスナップショット)毎にslogの使用を選択できるプロパティ追加(現在はシステム全体で使用するかしないかの選択になる)
    • 125:slog(ZILデバイス)の着脱が可能になる
    • 127:iSCSIブートのサポート
    • 128:Deduplication(デデュップ)機能をサポート
ZFS Deduplication

重複排除機能。リリース当時かなり大騒ぎになった。
重複排除機能とは

  • データの重複部分を検知して1つにまとめることでストレージ容量を節約する機能
  • ファイル、ブロック、バイトレベルにおいての重複を検知する機能がある

ストレージ商品においての重要な差別化機能

ZFSのDeduplicationは

  • ブロックレベルの重複検知機能
  • 重複判定はon-the-fly(書き込み時に随時)。dedup実行の為の専用領域は不要
  • 重複判定のchecksum方式は選択可能
    • SHA256
    • Fletcher4(現在はバグで使用できない)
    • データ比較のverilyを組み合わせてより確実に
  • dedup使用前のデータは対象外になる

以下Tips

  • 既存のデータをdedupの対象にするにはdedup=onの領域にcpゃmvやtarなどで書き込む(Windowsファイル教諭のACL情報は欠落するので注意)
  • zfs send -Dオプションでsend/receiveが可能(のはずだが現時点ではあまり上手く動かない・・・)
  • 容量はpoolレベルでのみ確認可能(zpool list)


この他ZFS Cryptoとか最新機能の追っかけ方とか。

Solaris 3 分クッキング

OpenSolaris2009.06のレポジトリの作り方。
時間があまりなく、資料配布と簡単な説明だけで終了。
インターネットにつながっていなくてもパッケージのアップグレードやインストールができるようになる。ローカルに持っていたりUSBメモリに持っていたりするとアップグレードやインストールが劇的に早くなる。

インターネットにつなげない環境で構築する場合は有効なノウハウだと思う。

TPC-C での性能世界 No.1 のマシンの構成とは

TPC-CでSunが世界1位になったということで、そのマシンやネットワーク構成についての説明。
ご自身でもおっしゃっていたが、あまり意味のないベンチマークで実運用環境とはかけ離れた構成をとらないといけない。
上層部から世界1位奪取指令がでたから実行されたとのこと。
IBMの構成よりスリムにできましたといった内容でした。正直あまり興味はなかったけど、ZFSも用いることでパフォーマンスがよくなっているというのは面白かった(COMSTAR)。

まとめ

アンケートにも書いたけどここにも不満点・改善案を書いておきます。

時間的な制約でセッションが毎度押し気味になってしまっている。説明が割愛されたり質問が締め切られたりと非常に勿体無い。
Sunのページを見ると本来の趣旨ときてBOF的なものという言葉があるけどこれでは成り立ってないと思う。
セッションを減らすなどして、ひとつひとつにもっと時間を割いて欲しいところ。質疑応答の時間をめいっぱいとるのも重要だと思う。前回も今回も運用中のトラブルやTips的なところからの細かなノウハウが面白かったし、情報を共有するという意味でこのセミナーは重要な役割を担えるはず。

あと実機を使ったデモも欲しいかな。次回のHot Topicが何になるかはわからないけどZFSで実際の運用の流れやデモを見せてもらえるものだと嬉しい。今後CrossbowやCOMSTARなどが含まれてくると思うので、その際には是非デモも取り入れてもらいたい。
とはいえこういう場を提供してくれるSunの方には非常に感謝しております。


総括としては今回も大盛況だったと思う。席もかなり埋まっていたのでZFSへの注目度は推して知るべし。毎回お菓子とドリンクが用意されているのはうれしかったりする。

終了後またまたiSCSIについて質問させてもらったけど結局よくわからなかった(zfs_nocacheflushとか)。とりあえずデフォルトではディスクに対して常にキャッシュをフラッシュするように設定されているという解釈は間違っていなかったことだけわかった。


次回はナイトセミナーでまたひよこ組が出てくると予想されるので内容的には入門的なモノになると思うけどまた参加しようと思う。


[2009/12/28追記]

  • セミナーの音声&資料のリンク追加

[2010/01/12追記]

  • セミナーの動画リンク追加