*

GEOM RAID3 を使う

公開日: : 最終更新日:2014/02/04 FreeBSD, GEOM

Seichan です.こんばんわ.
前回の「GEOM CONCAT を使う」に続いて今回は RAID1 に触れてみたいと思います.
こちらも同様に Pukiwiki の「FreeBSD で GEOM を試してみる」に以前書いていて、新バージョンでの焼き直しになります.ですので,何にも変わってないかもしれません.

 SPONSORED LINK
 

1. RAID3 ってなんだ

今更な説明ではありますが,RAID3 について軽く説明します.
RAID3 は3本以上のディスクで構成し,そのうち1本をパリティディスクとして利用し,のこりのディスクはストライピングドライブとして利用します.利用出来る総容量は,RAID3 を構成するディスク本数からパリティディスクを引いた分となります.ですので,20GB のディスクが3本なら,データ用が 40GB,パリティ用が 20GB となります.
RAID3 はビット/バイト単位で書き込みを行う(パリティ計算もビット/バイト単位)為,細かいデータの扱いやランダムアクセス性能が良くありません.反対に,大きいサイズでシーケンシャルデータの場合の性能は高くなります.また,書き込み時にパリティディスクへの負荷が偏ってしまうため,書き込み頻度が高い場合はパリティドライブ側の性能で頭打ちすることになります.
その為,シーケンシャルデータで大きいサイズの動画関連等では今でも利用されることがあります.こういった用途の場合,読み書きの比率は読み取りが圧倒的に高くなりますので.

2. GEOM RAID3 を使う

では,早速構成してみましょう.
はじめに,kernel module がロードされているのかを確認し,ロードされていなければ明示的にロードしてください.kldload geom_raid3 でロードすることが出来ます.

# kldstat
Id Refs Address            Size     Name
 1    1 0xffffffff80200000 15b93c0  kernel

# kldload geom_raid3
# kldstat
Id Refs Address            Size     Name
 1    3 0xffffffff80200000 15b93c0  kernel
 4    1 0xffffffff81812000 105d9    geom_raid3.ko

GEOM RAID3 は graid3 という専用のコマンドが用意されていますので,これを使用します.
次の例の場合,da1,da2,da3 の3本を raid3-1 という名前で RAID3 ボリュームを作成します.

# graid3 label raid3-1 da1 da2 da3

こちらも同様に,status サブコマンドで状態を確認することが出来ます.

# graid3 status
         Name    Status  Components
raid3/raid3-1  COMPLETE  da1 (ACTIVE)
                         da2 (ACTIVE)
                         da3 (ACTIVE)

status より詳細な情報が欲しい場合は list サブコマンドで確認してください.この環境では da1,da2 が DATA ディスクで,da3 が PARITY ディスクとなり,容量は 40GB となっています.

# graid3 list
Geom name: raid3-1
State: COMPLETE
Components: 3
Flags: NONE
GenID: 0
SyncID: 1
ID: 3119459635
Zone64kFailed: 0
Zone64kRequested: 0
Zone16kFailed: 0
Zone16kRequested: 0
Zone4kFailed: 0
Zone4kRequested: 48
Providers:
1. Name: raid3/raid3-1
   Mediasize: 42949671936 (40G)
   Sectorsize: 1024
   Mode: r0w0e0
Consumers:
1. Name: da1
   Mediasize: 21474836480 (20G)
   Sectorsize: 512
   Mode: r1w1e1
   State: ACTIVE
   Flags: NONE
   GenID: 0
   SyncID: 1
   Number: 0
   Type: DATA
2. Name: da2
   Mediasize: 21474836480 (20G)
   Sectorsize: 512
   Mode: r1w1e1
   State: ACTIVE
   Flags: NONE
   GenID: 0
   SyncID: 1
   Number: 1
   Type: DATA
3. Name: da3
   Mediasize: 21474836480 (20G)
   Sectorsize: 512
   Mode: r1w1e1
   State: ACTIVE
   Flags: NONE
   GenID: 0
   SyncID: 1
   Number: 2
   Type: PARITY

3. GEOM RAID3 構成後の変更

GEOM RAID0 では,ブロックサイズ/セクタサイズ の調整がありましたが GEOM RAID3 では,いくつかのチューニング項目があります.項目は次のとおりですが,通常はデフォルトから変更することはないと思います.

  • -f: 電源障害やシステムクラッシュ後の同期を行う(デフォルト)
  • -F: 電源障害やシステムクラッシュ後の同期を行わない.データは一貫した状態だと仮定する
  • -W: 検証読み取りを行わない(デフォルト)
  • -w: 検証読み取りを行う
  • -R: ラウンドロビン読み取りを行わない(デフォルト)
  • -r: ラウンドロビン読み取りを行う
  • -a: 自動同期を行う(デフォルト)
  • -n: 自動同期を行行わない

ラウンドロビンの読み取り機能は,パリティディスクも読み取り時に使用する機能です.このオプションを有効にするとランダムアクセスの読み取り動作が向上しますが,シーケンシャルアクセスの読み取りはさらに遅くなります
検証読み取り機能は,データの読み取りアクセス時,パリティディスクからもデータを読み取り,パリティ計算を行ってデータに不整合が出ていないかを検証しながら読み取ります.データを信頼できる代わりに,大きくパフォーマンスを犠牲にしてしまいます
また,ラウンドロビンの読み取り機能と,検証読み取り機能は排他オプションで,どちらか一方のみ有効にできます.
電源障害時等の自動同期を行う.について,システムクラッシュが発生した場合,ディスクにどこまで書き込みが出来ているのか.やパリティが正しく生成されたのかなどを保証できませんので,次回起動時にパリティの同期を行います.どう考えても通常の利用でクラッシュした場合,一貫した状態であることは保証できませんので,このオプションはデフォルトの同期を行う以外に選択できないと思います.
出来る方法を考えた場合,ファイルシステムを読み取り専用マウントするなど,書き込みが絶対に発生しない状況を作ることが出来れば,その際に自動同期は無効に出来そうです.

ラウンドロビン読み取りを編集する

読み取りを有効にする場合は graid3 configure に -r オプションを付けて実行します.実行後,graid3 list で確認すると,Flags: ROUND-ROBIN となっていれば設定が反映されています.

# graid3 configure -r raid3-1

# graid3 list
Geom name: raid3-1
State: COMPLETE
Components: 3
Flags: ROUND-ROBIN
GenID: 0
SyncID: 1

取り消したい場合は,graid configure に -R オプションを付けて実行します.実行後の graid3 list で,Flags: NONE になっていれば設定が反映されています.

# graid3 configure -R raid3-1

# graid3 list
Geom name: raid3-1
State: COMPLETE
Components: 3
Flags: NONE
GenID: 0
SyncID: 1

検証読み取りを編集する

検証読み取りを有効にする場合,graid3 configure に -w オプションを付けて実行します.実行後の graid3 listFlags: VERIFY となっていれば設定が反映されています.

# graid3 configure -w raid3-1

# graid3 list
Geom name: raid3-1
State: VERIFY
Components: 3
Flags: NONE
GenID: 0
SyncID: 1

取り消したい場合,graid3 configure に -W オプションを付けて実行します.実行後の graid3 list で,Flags: NONE になっていれば設定が反映されています.

# graid3 configure -W raid3-1

# graid3 list
Geom name: raid3-1
State: COMPLETE
Components: 3
Flags: NONE
GenID: 0
SyncID: 1

GEOM RAID3 を修復する

ディスク障害等で1本認識出来ていないような場合,正常なディスクと交換してリビルド処理を行う必要ががあります.たとえば次のようにパリティディスクに障害が出ている環境があったとします.

# graid3 status
         Name    Status  Components
raid3/raid3-1  DEGRADED  da1 (ACTIVE)
                         da2 (ACTIVE)

リビルドするにあたり,障害ディスクを交換します.その際,graid3 insert コマンドを使用します.insert コマンドで交換用ディスクを指定するのですが,その際,障害ドライブの番号を指定する必要があるので注意してください.ドライブの番号は,graid3 list で表示される「Number:」の個所になります.本環境では,パリティドライブは 2 です.graid3 insert 実行後リビルドが行われますので定期的に状況を確認し,Status が「COMPLETE」になる事を確認してください.

# graid3 insert -n 2 raid3-1 da5
# graid3 status
         Name    Status  Components
raid3/raid3-1  DEGRADED  da1 (ACTIVE)
                         da2 (ACTIVE)
                         da5 (SYNCHRONIZING, 1%)

と以上 RAID3 でした.次回はちょっと RAID から離れたいなぁと思います.

SPONSORED LINK
  ☆ ブログランキング参加しました (*≧∀≦)ノシ
にほんブログ村 IT技術ブログ FreeBSDへ 

関連記事

FreeBSD

FreeBSD で NFS (5) 【NFSクライアントとマウントオプション】

Seichan です.こんばんわ.公私ともにドタバタしていてまったく進みません... 前回「Fre

記事を読む

FreeBSD

GEOM RAID0 を使ってみる

Seichan です.こんばんわ. 前回「GEOM のモジュールを理解する」でも書きましたが,GE

記事を読む

FreeBSD

7-STABLE がきたよ

おひさです.seichan です. 7-current が,7-stable に落ちてきたの.

記事を読む

no image

データは何処に旅立った?

さて,でーたがとんだ?で報告した PostreSQL のデータですが,どうやら彼方へ旅立っていたよう

記事を読む

ssl_icon

PHPki で簡単証明書運用 (4) 【作成した証明書を管理する】

Seichanです.こんばんわ. 先日の「PHPki で簡単証明書運用 (3) 【署名されたサーバ

記事を読む

no image

6.2-PRERELEASE

今日(昨日)会社を休んでだるだるすごしていた Seichan です. でも,会社(部)の飲み会にはし

記事を読む

FreeBSD

FreeBSD をクライアントとして使用する (firefox)

おひさしぶりです.seichan です. 更新をサボっていたのですが,取り合えずまたクライアントネ

記事を読む

FreeBSD

GEOM GATE

FreeBSD の GEOM GATE を試してみた. VMware 内の環境なのでスピードに難有

記事を読む

no image

PostgreSQL サーバをかえた

PostgreSQL を 8.0 系から,8.1 系に変更. そのついでに,物理的なサーバをかえた.

記事を読む

ssl_icon

PHPki で簡単証明書運用 (1)

この記事は phpki-0.83.tar.gz を元に書きましたが,不具合多数の為最新のソースコード

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Google Adsense

ssl_icon
PHPki で簡単証明書運用 (5) 【管理ユーザのメンテナンスとCRLの取得】

Seichanです.こんばんわ. いつものとおり,だいぶ日が経ってし

ssl_icon
PHPki で簡単証明書運用 (4) 【作成した証明書を管理する】

Seichanです.こんばんわ. 先日の「PHPki で簡単証明書運

ssl_icon
PHPki で簡単証明書運用 (3) 【署名されたサーバ証明書を作る】

Seichan です.こんばんわ. さて,先日の「PHPki で簡単

ssl_icon
PHPki で簡単証明書運用 (2) 【初期設定と Root CA 証明書作成】

Seichan です.こんばんわ. さて,先日の「PHPki で簡単

ssl_icon
PHPki で簡単証明書運用 (1) 【PHPki の修正と導入 (修正版)】

Seichan です.こんばんわ. 先日「PHPki で簡単証明書運

→もっと見る

PAGE TOP ↑