DRBDユーザーズガイド バージョン8.4版

Brian Hellman, Florian Haas, Philipp Reisner, Lars Ellenberg

This guide has been released to the DRBD community, and its authors strive to improve it permanently. Feedback from readers is always welcome and encouraged. Please use the DRBD public mailing list for enhancement suggestions and corrections.

License information

The text of and illustrations in this document are licensed under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA", brief explanation, full license text).

In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.

本書の原著のURL:http://drbd.linbit.com/users-guide-8.4/

Trademarks used in this guide

DRBD®, the DRBD logo, LINBIT®, and the LINBIT logo are trademarks or registered trademarks of LINBIT Information Technologies GmbH in Austria, the United States and other countries.

AMD is a registered trademark of Advanced Micro Devices, Inc.

Citrix is a registered trademark of Citrix, Inc.

Debian is a registered trademark of Software in the Public Interest, Inc.

Dolphin Interconnect Solutions and SuperSockets are trademarks or registered trademarks of Dolphin Interconnect Solutions ASA.

IBM is a registered trademark of International Business Machines Corporation.

Intel is a registered trademark of Intel Corporation.

Linux is a registered trademark of Linus Torvalds.

Oracle, MySQL, and MySQL Enterprise are trademarks or registered trademarks of Oracle Corporation and/or its affiliates.

Red Hat, Red Hat Enterprise Linux, and RPM are trademarks or registered trademarks of Red Hat, Inc.

SuSE, SUSE, and SUSE Linux Enterprise Server are trademarks or registered trademarks of Novell, Inc.

Xen is a registered trademark of Citrix, Inc.

Other names mentioned in this guide may be trademarks or registered trademarks of their respective owners.


目次

はじめにお読みください
I. DRBDの紹介
1. DRBDの基礎
1.1. カーネルモジュール
1.2. ユーザ空間の管理ツール
1.3. リソース
1.4. リソースのロール(役割)
2. DRBDの機能
2.1. シングルプライマリモード
2.2. デュアルプライマリモード
2.3. レプリケーションのモード
2.4. 複数の転送プロトコル
2.5. 効率的なデータ同期
2.5.1. 可変レート同期
2.5.2. 固定レート同期
2.5.3. チェックサムベース同期
2.6. レプリケーションの中断
2.7. オンライン照合
2.8. レプリケーション用トラフィックの整合性チェック
2.9. スプリットブレインの通知と自動修復
2.10. ディスクフラッシュのサポート
2.11. ディスクエラー処理ストラテジー
2.12. 無効データの処理ストラテジー
2.13. 3ノードレプリケーション
2.14. DRBD Proxyによる遠距離レプリケーション
2.15. トラック輸送によるレプリケーション
2.16. 動的対向ノード
II. DRBDのコンパイル、インストールおよび設定
3. コンパイル済みDRBDバイナリパッケージのインストール
3.1. LINBIT社が提供するパッケージ
3.2. ディストリビューションベンダが提供するパッケージ
3.2.1. SUSE Linux Enterprise Server
3.2.2. Debian GNU/Linux
3.2.3. CentOS
3.2.4. Ubuntu Linux
4. ソースからのDRBDの構築とインストール
4.1. DRBDソースのダウンロード
4.2. 公開DRBDソースリポジトリからソースをチェックアウトする
4.3. ソースからDRBDを構築する
4.3.1. ビルドの前提条件を確認する
4.3.2. カーネルソースツリーの準備
4.3.3. DRBDビルトツリーの準備
4.3.4. DRBDユーザ空間ユーティリティのビルド
4.3.5. カーネルモジュールとしてDRBDをコンパイルする
4.4. DRBD RPMパッケージのビルド
4.5. DRBD Debianパッケージの構築
5. DRBDの設定
5.1. 下位レベルストレージの準備
5.2. ネットワーク構成の準備
5.3. リソースの設定
5.3.1. 設定例
5.3.2. global セクション
5.3.3. common セクション
5.3.4. resource セクション
5.4. リソースを初めて有効にする
5.5. デバイスの初期同期
5.6. トラックベースのレプリケーションの使用
III. DRBDの使い方
6. 一般的な管理作業
6.1. DRBDの状態のチェック
6.1.1. drbd-overview で状態を取得する
6.1.2. /proc/drbd でのステータス情報
6.1.3. 接続状態
6.1.4. リソースのロール
6.1.5. ディスク状態
6.1.6. I/O状態フラグ
6.1.7. パフォーマンス指標
6.2. リソースの有効化と無効化
6.2.1. リソースの有効化
6.2.2. リソースを無効にする
6.3. リソースの設定の動的な変更
6.4. リソースの昇格と降格
6.5. 基本的な手動フェイルオーバ
6.6. DRBDをアップグレードする
6.6.1. リポジトリをアップデートする
6.6.2. パッケージをアップグレードする
6.6.3. 構成の移行
6.7. DRBD 8.4を8.3にダウングレードする。
6.8. デュアルプライマリモードを有効にする
6.8.1. 永続的なデュアルプライマリモード
6.8.2. 一時的なデュアルプライマリモード
6.8.3. システム起動時の自動昇格
6.9. オンラインデバイス照合の使用
6.9.1. オンライン照合を有効にする
6.9.2. オンライン照合の実行
6.9.3. 自動オンライン照合
6.10. 同期速度の設定
6.10.1. 永続的な同期速度の設定
6.10.2. 一時的な同期速度の設定
6.10.3. 可変同期速度設定
6.11. チェックサムベース同期の設定
6.12. 輻輳ポリシーと中断したレプリケーションの構成
6.13. I/Oエラー処理方針の設定
6.14. レプリケーショントラフィックの整合性チェックを設定
6.15. リソースのサイズ変更
6.15.1. オンラインで拡張する
6.15.2. オフラインで拡張する
6.15.3. オンラインで縮小する
6.15.4. オフラインで縮小する
6.16. 下位デバイスのフラッシュを無効にする
6.17. スプリットブレイン時の動作の設定
6.17.1. スプリットブレインの通知
6.17.2. スプリットブレインからの自動復旧ポリシー
6.18. 3ノード構成の作成
6.18.1. デバイススタックの検討事項
6.18.2. スタックリソースの設定
6.18.3. スタックリソースを有効にする
6.19. DRBD Proxy
6.19.1. DRBD Proxy配備に関する検討事項
6.19.2. インストール
6.19.3. ライセンスファイル
6.19.4. 設定
6.19.5. DRBD Proxyの制御
6.19.6. DRBD Proxyプラグインについて
6.19.7. WANサイドの帯域幅制限を使用する
6.19.8. トラブルシューティング
7. トラブルシューティングとエラーからの回復
7.1. ハードドライブの障害の場合
7.1.1. 手動でDRBDをハードドライブから切り離す
7.1.2. I/Oエラー時の自動切り離し
7.1.3. 障害が発生したディスクの交換(内部メタデータを使用している場合)
7.1.4. 障害の発生したディスクの交換(外部メタデータを使用している場合)
7.2. ノード障害に対処する
7.2.1. 一時的なセカンダリノードの障害に対処する
7.2.2. 一時的なプライマリノードの障害に対処する
7.2.3. 永続的なノード障害に対処する
7.3. スプリットブレインからの手動回復
IV. DRBDとアプリケーションの組み合わせ
8. DRBDとPacemakerクラスタ
8.1. Pacemakerの基礎
8.2. クラスタ構成にDRBDのサービスを追加する
8.3. Pacemakerクラスタでリソースレベルのフェンシングを使用する
8.3.1. dopd でのリソースレベルフェンシング
8.3.2. CIB (Cluster Information Base)を使ったリソースレベルフェンシング
8.4. PacemakerクラスタでスタックDRBDリソースを使用する
8.4.1. オフサイトディザスタリカバリ機能をPacemakerクラスタに追加する
8.4.2. スタックリソースを使って、Pacemakerクラスタの4ノード冗長化を実現する
8.5. 2セットのSANベースPacemakerクラスタ間をDRBDでレプリケート
8.5.1. DRBDリソース構成
8.5.2. Pacemakerリソース構成
8.5.3. サイトのフェイルオーバ
9. DRBDとRed Hat Cluster Suite
9.1. Red Hat Clusterの背景情報
9.1.1. Fencing
9.1.2. リソースグループマネージャ
9.2. Red Hat Clusterの構成
9.2.1. cluster.conf ファイル
9.3. Red Hat ClusterフェイルオーバクラスタでDRBDを使用する
9.3.1. クラスタ構成の設定
10. DRBDとLVMの使用
10.1. LVMの基礎
10.2. DRBDの下位デバイスとして論理ボリュームを使用する
10.3. DRBD同期中の自動LVMスナップショットの使用
10.4. DRBDリソースを物理ボリュームとして構成する
10.5. 新しいDRBDボリュームを既存のボリュームグループへ追加する
10.6. DRBDを使用する入れ子のLVM構成
10.6.1. Switching the VG to the other node
10.7. Pacemakerによる高可用性LVM
11. DRBDとGFSの使用
11.1. GFSの基礎
11.2. GFS2 用の DRBDリソースの作成
11.2.1. デュアルプライマリリソースのリソースフェンシングを有効にする
11.3. CMANを構成する
11.4. GFSファイルシステムの作成
11.5. PacemakerでのGFS2ファイルシステムの使用
12. DRBDとOCFS2の使用
12.1. OCFS2の基礎
12.2. OCFS2用のDRBDリソースの作成
12.3. OCFS2ファイルシステムの作成
12.4. PacemakerによるOCFS2の管理
12.4.1. PacemakerにデュアルプライマリDRBDリソースを追加する
12.4.2. OCFS2をPacemakerで管理するには
12.4.3. PacemakerにOCFS2ファイルシステムを追加する
12.4.4. OCFS2ファイルシステムを管理するPacemakerの制約の追加
12.5. Pacemakerを使わないOCFS2管理
12.5.1. OCFS2をサポートするようにクラスタを設定する
12.5.2. OCFS2ファイルシステムの使用
13. DRBDとXenの使用
13.1. Xenの基礎
13.2. Xenとともに使用するためにDRBDモジュールパラメータを設定する
13.3. Xen VBDとして適切なDRBDリソースを作成する
13.4. DRBD VBDの使用
13.5. DRBDで保護されたdomUの開始、停止、移行
13.6. DRBDとXen統合の内部
13.7. XenとPacemakerの統合
V. DRBDパフォーマンスの最適化
14. ブロックデバイスのパフォーマンス測定
14.1. スループットの測定
14.2. 待ち時間の測定
15. DRBDのスループット最適化
15.1. ハードウェアの検討事項
15.2. スループットオーバヘッドの予測
15.3. チューニングの推奨事項
15.3.1. max-buffersmax-epoch-size の設定
15.3.2. I/Oアンプラグ境界値の調整
15.3.3. TCP送信バッファサイズの調整
15.3.4. アクティビティログサイズの調整
15.3.5. バリアとディスクフラッシュを無効にする
16. DRBDの待ち時間の最適化
16.1. ハードウェアの検討事項
16.2. 待ち時間オーバヘッドの予測
16.3. チューニングの推奨事項
16.3.1. CPUマスクの設定
16.3.2. ネットワークMTUの変更
16.3.3. deadline deadline I/Oスケジューラを有効にする
VI. DRBDをさらに詳しく知る
17. DRBDの内部
17.1. DRBDメタデータ
17.1.1. 内部メタデータ
17.1.2. 外部メタデータ
17.1.3. メタデータサイズの見積り
17.2. 世代識別子
17.2.1. データの世代
17.2.2. 世代識別子タプル
17.2.3. 世代識別子の変化
17.2.4. 世代識別子とDRBDの状態
17.3. アクティビティログ
17.3.1. 目的
17.3.2. アクティブエクステント
17.3.3. アクティビティログの適切なサイズの選択
17.4. クイック同期ビットマップ
17.5. peer fencingインタフェース
18. 詳細情報の入手
18.1. 商用DRBDのサポート
18.2. 公開メーリングリスト
18.3. 公開IRCチャンネル
18.4. 公開ツイッターアカウント
18.5. 資料
18.6. その他の資料
付録
Index

図の一覧

1.1. LinuxのI/OスタックでのDRBDの位置
2.1. DRBDリソースの積み重ね
6.1. syncer 速度の例(有効帯域幅が110MB/sの場合)
6.2. syncer 速度の例(有効帯域幅が80MB/sの場合)
8.1. PacemakerクラスタのDRBDリソースのスタック
8.2. PacemakerクラスタのDRBDリソースのスタック
8.3. SANベースのクラスタ間のレプリケートにDRBDを用いる
10.1. LVM overview
17.1. DRBDメタデータサイズの計算(正確)
17.2. DRBDメタデータサイズの見積り(概算)
17.3. 新規データ世代の開始時に変化するGIタプル
17.4. 再同期開始時のGIタプルの変化
17.5. 再同期完了時のGIタプルの変化
17.6. 同期速度とターゲットの同期時間にもとづくアクティブエクステントの計算
17.7. 同期速度とターゲット同期時間にもとづくアクティブエクステントの計算(例)

表の一覧

4.1. DRBDの configure スクリプトでサポートされているオプション
4.2. DRBD userland RPM packages