system management
1748162 メンバー
3708 オンライン
108758 解決策
新規ポスト

LVMのBad Block Relocation機能について

 
itoma
アドバイザー

LVMのBad Block Relocation機能について

いつもお世話になります。

LVMのBad Block Relocation(以降BBR)機能に関して詳しくご存じの方がいらしたら教えて下さい。

EMCのSymmetrixのようなストレージの場合、BBRの機能を有効(デフォルト値)にしておくと、場合によってはデータをロストすることがあり得ると聞きました。

ストレージ側でバッドブロックを検出するとストレージ自身がその振り替えを行ってくれる為、LVM上でのバッドブロックの管理と一致しなくなることが理由のようです。

ただ、これが何故データのロスにまでつながるかが良く分かりません。

使用可能なディスクの領域が減るなら分かりますが、データが無くなるというのは何がどうなるからなのでしょうか?

所詮LVMを経由してアプリケーションがデータをアクセスするのであれば、LVMが意識しているデータがディスク上に存在すればデータが無くなることはないように思えるのですが。

内容が上手く伝わるような書き方になっていないかもしれませんので、意味不明な部分があればコメントして下さい。

よろしくお願い致します。
9件の返信9
Ku_O
レギュラーアドバイザー

LVMのBad Block Relocation機能について

BBR は、ディスクに I/O を行ったときにエラーを検出して始めて機能します。ディスクアレイ側で振り替えを行っている場合、サーバーに対してはエラーは返りませんから、BBR が働くことはありません。

もし仮に、ディスクアレイが振り替えを行ったブロックを LVM の BBR でも振り替えたとします。そうなったら LVM は今後そこのブロックを使いませんから、ディスクアレイがおかしなことをしていても、影響ありません。

BBR とディスクの「振り替え」の機能はまったく別個に動作しているはずですから、私にもなぜデータロスになりうるのかわかりません。
T_K
頻繁なアドバイザー

LVMのBad Block Relocation機能について

LVMでBad Blockマーキングされた後、EMCのディスクがOnline交換されても、

LVMはその事実を知らない為(マーキングしたまま)、ddコマンドなどで、

rawデバイス指定した場合と、LVM指定した場合で相違が出る、ということを、

EMCのとある資料によるでは、「LVMによる実質的なデータロスが出る」と

表現されているので、データそのものが無くなるという意味ではないと解釈

しています。HPでEMCのような高級なストレージを使う場合は、

lvcreate/lvchangeで-r Nを付けるといいようです。
itoma
アドバイザー

LVMのBad Block Relocation機能について

みなさんありがとうございます。

マルティネスさんの説明にあるケースは以下のような状況でしょうか。

(LVMでBad Blockマーキングされた後、EMCのディスクをOnline交換したときのイメージはこんな感じ?)

<ディスクのイメージ>

ユーザ領域 代替ブロック

------------------------------

LVM:●●×●●●|△

RAW:●●○●●●|△

これをddコマンドで読み込むと

 LVM=●●△●●●

 RAW=●●○●●●

という結果になることを意味するのでしょうか?

そうするとファイルシステムとして使っている論理ボリュームのバックアップやコピーを仮にddコマンドで行っているような場合データとして正しくないデータになってしまうことになるのでしょうか?

あくまでもLVM経由で処理している分には、データの整合性は問題ないとの解釈で良いのでしょうか。

推奨されるようにlvcreate/lvchangeで-r Nを指定して機能を無効にすることは全然問題無いのですが、一応しない場合の影響をちゃんと知りたいと思っています。
T_K
頻繁なアドバイザー

LVMのBad Block Relocation機能について

日本語がおかしいですね。

>EMCのとある資料によるでは、「LVMによる実質的なデータロスが出る」

と表現されているので、・・・

EMCのとある資料では、「LVMによる実質的なデータロスが出る」

と表現されていますが、・・・

/dev/vg??/rlvol?が/dev/rdsk/cxtxdxで構成されている場合、

dd if=/dev/vg??/rlvol? of=....

dd if=/dev/rdsk/cxtxdx of=....

で差が出てしまうということを言っています。

「EMCのとある資料」が紙ベースなのでお見せできないのが残念です。
T_K
頻繁なアドバイザー

LVMのBad Block Relocation機能について

私の解釈もitomaさんの解釈と同じです。

常にLVMとして使用している分には問題ないと思います。
Ku_O
レギュラーアドバイザー

LVMのBad Block Relocation機能について

たとえ LVM を通して見たデータと raw の状態で見たデータとあるブロックに差があったとしても、raw で取ったバックアップは raw でリストアするので、LVM 上 reallocation しているという情報も戻すわけです。

ということで、やっぱり普通は問題ないのではないかと思うのですが。HP の似たような機能を持つディスクアレイでは(というか EMC 以外のどこのベンダーの製品でも)データが壊れるという話はなさそうなので、EMC 特有の動きによるものだと思います。それがディスクアレイ内部なのか、一緒に使うソフトウェアなのかはわかりませんけど。
Na_Ka
頻繁なアドバイザー

LVMのBad Block Relocation機能について

細かい理由は良くわかりませんが、EMCのDiskを使用して、LVMのBBRの設定をしていたときにデータがロストしたことがあります。

OracleのRedoが壊れました。

設定はしなければいけないでしょう。。
itoma
アドバイザー

LVMのBad Block Relocation機能について

情報ありがとうございます。

REDOが壊れたのは確かにBBRが有効になっていたことが原因の一部だったのでしょうか?

細かい理由は分からないようなのでこれ以上追求のしようないのは残念ですが。

この情報で状況が一変した感じですね。

やはり危険な設定ということなのでしょうか・・・。

ともかくこのような事例があるのであれば、BBRを無効にするのは必須ということになりそうですね。
J_I
アドバイザー

LVMのBad Block Relocation機能について

壊れる場合があるからといわれていたので、何も考えずに、RAIDストレージにつないで利用する場合BBRの機能を無効にしていましたが、確かに疑問ですね。

ふと思ったのですが、

itomaさんの2004/11/11 18:38:39 の投稿では同じサイズで書かれていますが、、

ストレージ側の置き換えの単位とLVMでの置き換えの単位(サイズ)は一緒ではないのでは??

またがってしまったときになにか起きそうな気が、

でも、、壊れるか??

すみません、よく考えていません。