BSD界隈四方山話

第7回 ZFSベストプラクティス-FreeBSD Journal March/April 2015

この記事を読むのに必要な時間:およそ 3 分

FreeBSD Journal - DON'T MISS A SINGLE ISSUE!

FreeBSD Foundationは2014年から隔月の電子雑誌FreeBSD Journalを販売しています。FreeBSDコミュニティやコミッターの最前線で活躍しているメンバーによる執筆が特徴で,2年目に入ってからも購読者数を増やしています。

図1 FreeBSD Journal on iPad

図1 FreeBSD Journal on iPad

FreeBSD Journalは各号ごとに購入することもできますが,年間購読のサブスクリプションでの購入がお勧めです。だいぶ割安で各号をダウンロードできるようになります。iPad,iPhone,Android,Kindleなどのデバイスから購入できるほか,Webブラウザ版の提供も始まっています。

図2 ZFS BEST PRACTICES on FreeBSD Journal March/April 2015

図2 ZFS BEST PRACTICES on FreeBSD Journal March/April 2015

執筆現在の最新版となる「FreeBSD Journal March/April 2015」にAllan Jude氏による記事「ZFS BEST PRACTICE」が掲載されています。Allan Jude氏はHTTPおよび動画配信のCDNサービスを提供しているScaleEngineのバイスプレジデントを務めています。FreeBSD ZFSエキスパートの一人です。

Allan Jude氏は多くのZFSユーザが,ZFSとこれまでのファイルシステムの違いを誤って理解しているため,その結果として不適切な状況が発生し,なにかしらの問題に遭遇していると指摘しています。いくつかのベストプラクティスを通じて,誤ったやり方を避け,適切にZFSを活用していこう,といった内容の記事になっています。FreeBSD ZFSを使ってストレージを構築するユーザさんにとっては特に参考になるベストプラクティスがまとまっています。この記事のためにこの号を購入するのは充分ありです。

FreeBSD Journalでどういったコンテンツが提供されているのか紹介する意味も込めて,今回は「ZFS BEST PRACTICES」の内容の簡単な要約を紹介します。

ハードウェアRAIDはHBAで使おう

ZFSでストレージを構築するタイプのマシンではRAIDコントローラを経由してディスクを使うことが多いと思いますが,ここで誤ってハードウェアRAID側の機能でRAIDを実装し,カーネル側に単一のディスクストレージとしか見えないようにするユーザがいるという点を指摘しています。それではZFSの恩恵がまるで受けられないといいます。ZFSの提供するデータ保護機能の恩恵を受けるには,RAIDコントローラはシンプルにHBA(ITまたはJBODモード)で使うことを薦めています(RAIDカードによってはすべてのディスクを単一のRAID 0としてセットアップする必要があります)⁠

ZFSの特徴の一つはデータロスが発生しないように冗長化する点にありますが,これは少なくともディスクが2つ以上あって,冗長化の構成を採用している時に限られます。ストレージが単一にしか見えないと,この利点を活かすことができません。

ZFSはECCメモリじゃなくても大丈夫

Allan Jude氏は多くの記事やポストがZFSを使う場合にはECCメモリを使う必要があると指摘しているといいますが,そうではないと説明しています。ZFSの主要開発者であるMatt Ahrens氏の次の発言を引き合いに出し,ZFSがそうしたメモリエラーに対して強い特性を持っていることを指摘しています。

⁠ZFS on a system without ECC is no more dangerous than any other file system on a system with ECC.(ECCメモリを使っていないマシンで動作しているZFSは,ECCメモリを使っているマシンで動作するファイルシステムと同じくらい安全ですよ。)⁠

ただしAllan Jude氏は,高い可用性が求められ,かつ,ECCメモリを購入するコストがそれに充分見合うと判断するのであれば,ECCメモリを使うことにはなんら問題がないとも説明しています。メモリエラーの発生の危険性を抑えることができ,アプリケーションクラッシュなどの問題が低減するからだとしています。

それでもバックアップは必要

ZFSによってより安全にデータを保持できるものの,誤ってプールを削除してしまうとか,ディスクリプレース時に誤ったディスクをリプレースしてしまうとか,ヒューマンエラーによってデータを消失することがあるため,バックアップはちゃんと取りましょうと説明しています。

ZFSはバックアップを取る方法をいくつか提供しています。スナップショット,インクリメンタルレプリケーション機能,プールスプリットなどの機能が紹介されています。

ディスクラベルには物理スロット番号とシリアル番号

ZFSでストレージを組むようなケースでは大量のディスクを扱います。このため,ディスクにはそれぞれラベルを貼って人間が認識しやすくして運用するのが普通です。Allan Jude氏はプロダクションシステムの経験から,⁠物理スロット番号-ディスクのシリアル番号」といった組み合わせをラベルとするのが扱いやすかったと説明しています。

Allan Jude氏は36スロット搭載したラックマウントプロダクトを例に出し,前面に24スロット,背面に12スロットが設置できる場合,たとえばフロントの6番目に配置したディスクであれば「f06-シリアル番号」のようなラベルを張ると良いと述べています。物理スロット番号を入れることでオペレータが作業しやすくなるほか,シリアル番号を入れることで不具合への対応やディスクの特定などが容易になるとしています。

ラベルはgpart(8)コマンドで次のように作成しています。

図3 ディスクにラベルを張る方法の例

gpart modify -i 2 -l f06-シリアル番号 da0

これで/dev/da0は「/dev/gpt/f06-シリアル番号」でアクセスできるようになります。ただし,ラベルは15文字以内と決まっていますので,長さが15文字を超える場合には,シリアル番号の下の方を優先して利用するなどして全部で15文字以内に納めれば良いだろうとしています。

コメント

コメントの記入