OSS だけでスケーラブルなストレージを安価に構築する方法 #1

OSS だけでスケーラブルなストレージを安価に構築する方法 #0 のつづき。

サーバ構成概要

TLUG 発表資料 で触れた、全体的な構成のおさらい。構成図は以下のような感じ。

http://trac.mizzy.org/public/attachment/wiki/ScalableStorageWithOSS01/scalable_storage.jpg?format=raw

この構成について説明すると、以下のようになります。

  • DRBD により、2台一組でブロックデバイスをミラーリング
    • /dev/gnbd0 と /dev/gnbd1 がセット
    • /dev/gnbd2 と /dev/gnbd3 がセット
  • GNBD でブロックデバイスをエクスポート
    • /dev/gnbd0, /dev/gnbd1, /dev/gnbd2, /dev/gnbd3 がネットワーク越しに見える
  • クライアント側で GNBD でエクスポートされたブロックデバイスをインポート
    • /dev/gnbd0, /dev/gnbd1, /dev/gnbd2, /dev/gnbd3 をすべてインポート
  • DM-MP により、2つのデバイスを1つに見せる
    • /dev/gnbd0 + /dev/gnbd1 が /dev/mapper/mpath0 として見える
    • /dev/gnbd2 + /dev/gnbd3 が /dev/mapper/mpath1 として見える
  • CLVM により論理ボリュームを作成
    • /dev/mapper/mpath0 と /dev/mapper/mpath1 が物理ボリューム
    • この2つの物理ボリュームから、ボリュームグループ VG0 を作成
    • VG0 上に論理ボリューム LV0 を作成
    • この論理ボリュームが、/dev/VG0/LV0 として見える
  • /dev/VG0/LV0 を GFS2 でフォーマット
  • ストレージ全体が論理ボリューム /dev/VG0/LV0 として見えるので、こいつをマウントする

構築手順概要

構築手順はざっと以下のようになります。CentOS 5.2 + Xen で検証しています。

  • Xen インスタンスをつくる
    • client0, client1
    • storage0a, storage0b
    • storage1a, storage1b
  • ストレージサーバで GNBD によりエクスポートするブロックデバイスを作成する
  • 2台セットで DRBD ミラーリング
    • storage0a と storage0b を同期
    • storage1a と storage1b を同期
  • storage[01][ab] で GNBD によりブロックデバイスをエクスポート
  • client[01]でブロックデバイスをインポート
  • client[01]上で、DM-MP により複数のデバイスをまとめる
    • storage0[ab] からエクスポートしたデバイスをひとつに見せる
    • storage1[ab] からエクスポートしたデバイスをひとつに見せる
  • DM-MP でまとめたデバイスを、CLVM によりひとつの論理ボリュームに見せる
  • 論理ボリュームを GFS2 でフォーマットする
  • 論理ボリュームをマウントする

次回以降、それぞれについて解説していきます。

関連エントリ

Attachments