スペースモラトリアムノカミサマ

日記+コメント付きブックマーク+他人にも役に立つかもしれない情報など。
(更新情報: RSS(ツッコミ付き) / RSS(ツッコミ抜き) / LIRS)

最近の TrackBack:
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|06|07|08|09|10|
2011|01|02|03|07|10|11|
2012|02|03|04|07|08|09|
2013|01|06|07|
2014|02|08|09|11|
2015|09|
2016|01|05|

2012/07/19 編集

_ [システム運用] BBU 付き RAID コントローラの載ったサーバを買っても有効化されているとは限らない

要旨 → サーバ機器を買うと (少なくとも富士通は) RAID コントローラのキャッシュが無効化された設定で納品される可能性があるので、納品後設定を確認し有効化するように気をつけた方が良い。

去年 PRIMERGY RX200 S6 にバッテリバックアップユニット (BBU) 付き RAID コントローラのオプションをつけて買ったのだけど、いざ使ってみようとして RAID 管理ツールを開いてみたところ、コントローラに搭載されている書き込みキャッシュが納品時は無効化されていることに気づいた。

PRIMERGY(プライマジー) アレイコントローラの機能と設定および操作によると、

出荷時に構成されているアレイおよび、新規に構築したアレイは、Write Through (ライトスルー) の設定となっています。

(中略)

一般的に、予期しない電源断等の異常動作が発生した場合、WriteBack および Always Write Back 設定では、書き込みキャッシュ内の書き込み未完了データが失われる危険性があります。必ず、アレイコントローラの取扱説明書に記載の動作概要を理解した上で、取扱説明書に従って設定を行ってください。

[PRIMERGY(プライマジー) アレイコントローラの機能と設定および操作より引用]

となっており、BBU や UPS がない場合は書き込みデータ損失の恐れがあるので書き込みキャッシュはデフォルトでは無効化してあるよ、必要に応じて有効化してね、と書かれている。それはわかる。BBU がないのであれば。

しかし、続けて

アレイコントローラにバッテリバックアップユニットを搭載すると、上記のようなトラブルの際、キャッシュメモリ内の書き込みデータを保護することができます。また、UPS や冗長電源によってサーバ本体の信頼性を向上させる事も、書き込みデータの信頼性の向上に繋がります。

[PRIMERGY(プライマジー) アレイコントローラの機能と設定および操作より引用]

と、BBU を搭載してれば書き込みキャッシュ使っても大丈夫だよ、と書いているのにも関わらず、BBU 搭載モデルまでなぜかキャッシュを無効化した状態で出荷している

そもそも書き込みキャッシュを使ってもデータ消失の可能性を防ぐために (BBU 非搭載版もある中わざわざ追加費用払って) BBU 搭載型の RAID コントローラを選んでいるのであって、BBU を搭載しているのに書き込みキャッシュを有効化しないのは無駄金を払っていることに等しい

ところで、この PRIMERGY に搭載されている RAID コントローラにはどのようなキャッシュ設定の選択肢があるのだろうか。

論理ドライブ作成画面を見てみると、下記3つの選択肢がある。

  • データ保護を重視(デフォルト)
  • 性能を重視
  • カスタマイズする

論理ドライブ作成画面

ここでデフォルトの「データ保護を重視」を選んだ場合、
ライトモード: ライトスルー
リードモード: Read-ahead(先読み)
キャッシュモード: ダイレクト
ディスクキャッシュモード: 無効
となる。

データ保護重視で作成した論理ドライブの設定

「性能を重視」を選んだ場合は、
ライトモード: 常時ライトバック(BBUの状態に依存しない)
リードモード: Read-ahead(先読み)
キャッシュモード: ダイレクト
ディスクキャッシュモード: 有効
となる。

性能重視で作成した論理ドライブの設定

各設定項目は個別に変更可能で、下記の選択肢がある。

ライトモード
・ライトバック
・常時ライトバック(BBUの状態に依存しない)
・ライトスルー
リードモード
・自動適応
・Read-ahead(先読み)
・read-ahead(先読み)無し
キャッシュモード
・キャッシュ有り
・ダイレクト
ディスクキャッシュモード
・有効
・無効

ライトモード以外については詳しいドキュメントがなく、それぞれ何を意味するのかはっきりわからないので今回は無視するとして、問題はライトモードだ。

ライトバックは BBU 有効時のみ書き込みキャッシュ有効、
常時ライトバックは BBU の状態に関わらず書き込みキャッシュ有効、
ライトスルーは BBU の状態に関わらず書き込みキャッシュ無効なわけだが、
この中で多くのユーザにとって最も望ましいのは「ライトスルー」でも「常時ライトバック」でもなく「ライトバック」だろう。

BBU が有効な場合、不意の停電へのリスクを負うことなく高いパフォーマンスを得られ、BBU 非搭載時やバッテリ劣化時は自動的にライトスルーに切り替わるのだから、データ損失のリスクはない。(ただしバッテリ劣化時に本当に切り替わるのかどうかドキュメントに明記されていないので想定と異なる可能性はある)

BBU 付き RAID コントローラを載せた PRIMERGY を買った場合には、納品時構築済みの、または自ら新規に作成した論理ドライブについて、RAID 管理ツールでキャッシュモードを「ライトバック」に変更しなければ本来のパフォーマンスを享受できないので、注意が必要である。

そもそもこの富士通のデフォルト設定がおかしい

上にも書いたように、そもそもユーザは書き込みキャッシュを安全に使うために わざわざ高価な BBU 搭載型の RAID コントローラを選んでいるのに、せっかくつけた BBU が全く活かされない状態で出荷しているのである。これでは何のための BBU なのかわからない。

富士通的には「お客様のデータの安全性を重視して」というスタンスなのかもしれないが、BBU を使える状況下でキャッシュを有効化すると安全性が損なわれるケースとは何なのか? もしライトバックモードに何らかの既知の欠陥があり、BBU を搭載していてもデータ損失の危険性があるのでお薦めできないということであれば、そのリスクをきちんと説明すべきではないか。

また、どうしてもその状態で出荷したいなら、「本サーバは BBU 付きモデルですが、念のため初期状態では無効としてあります、BBU を活用するためには…」という説明を「はじめにお読みください」的な目立つ資料として同梱すべきだし、論理ドライブ作成時のテンプレも、「データ保護を重視(常時ライトバック)」「性能を重視(ライトスルー)」どちらもナンセンスなので、「バランス(ライトバック)」を設けて、それをデフォルトとすべきではないか。

ちなみに、この BBU 付き PRIMERGY は、購入後富士通の SE にシステム構築してもらったのだが、「デフォルトでは BBU が使われない低速設定になっていますが、有効化しますか?」というようなヒアリングはなかった。富士通自身の SE ですら、このデフォルト設定について把握していないということなのだろう。

現在のデフォルト設定は富士通の SE ですら把握していない設定上の問題をエンドユーザが認識・判断することを求めている状況なので、世界中の PRIMERGY に内蔵されている BBU は大半が無用の長物化しているのではないだろうか。勿体ないことだ。

本日のツッコミ(全3件) [ツッコミを入れる]

_ へたれSE [貴重なご意見を拝見しました。 元メーカー関係で働いていた者です。 まったく、おっしゃるとおりだと思いますm(__)m..]

_  [コメントありがとうございます。 ディスクキャッシュモード、SATAなら差が出るのですか。自分もSASで試してみたとこ..]

_ へたれSE [そうなんですよね。知り合いがESXiの環境でMegaRAIDSASに2TBのSATAディスクを使っていて、仮想マシン..]