diaryこの広告は、90日以上更新していないブログに表示しています。drbd仮想化と、冗長化は、これからのサーバ管理で大事なポイントだっつーことで、DRBDについてユーザーズガイドを読んでみた。斜め読みしただけで使えることは使えるけど、ぜんぜん記憶にはのこらないので、対訳してみた。include:DRBDのインストールが済んだら、それぞれのマシンで、だいたい同じサイズの記憶領域を用意します。これがDRBDがリソース(資源)として利用するデバイスです。issues.ファイルをマウントしてできたループデバイスもDRBDで利用可能ですが、ヘタをするとデッドロックに陥ることがあるのでお勧めしません。stacking.また、DRBDは「孫引き」もできません、すなはち、DRBDでできたデバイスを、他のDRBD構成で利用するということはできないのです。商用版のDRBD+では可能です。すれば、データのコピーが3つ以上にすることができます。this).ところで、利用する記憶領域は、空にしておく必要はありません。実のところ、DRBDの用途としては、すでに存在する(RAID構成でないため、冗長性が無い)データをバックアップする、というものが結構あるのです。するときには、第12章の「DRBDのメタデータ」の項目を理解しておく必要があります。既存のデータ領域に、DRBDが管理用に使うデータを置く場所が無いかもしれないからです。setup:このガイドでは、以下のようなごく単純な構成を例にとります。recommended.絶対に必要というわけではありませんが、DRBDによってデータの複製を行うためには、専用かつ切断されることのないネットワーク回線を割り当てることをお勧めします。望ましいのはギガビットイーサネットで直結する方法です。ネットワークスイッチを介して接続する場合には、機器を冗長構成にして、ネットワークの障害に備えるようにしたほうが良いでしょう。latency).ルータを越えるようなネットワーク接続は避けるべきです。読み書きの転送速度と、時間遅れなどの性能が低下します。configuration.サーバのファイアウォール(たとえばiptables)の設定について。DRBDは7788番以上のポートを使います。ポート番号はダイナミックに変化したりはしません。1つのリソースにつき2つのポートを使って双方向にデータのやり取りします。ファイアウォールは、これらの通信を通すような設定になっていなければなりません。properly.セキュリティに関して、もうひとつのポイントは、SELinuxやAppArmorの設定です。場合によっては、現在使われているセキュリティポリシーを変更する必要があるかもしれません。application.もちろん、DRBDが使うポートが、他のサービスに占有されていてはダメです。driver).ひとつのDRBDリソースについて、複数の接続を許すことはできません。ロードバランスや冗長化を考えているのであれば、ネットワーク機器の側で対応してください。setup:このガイドでは、次のようなシンプルな構成を想定しています。いうファイルで設定できる。この設定ファイルは、それぞれのサーバ(node)の間で同じでなければならない。/usr/share/doc/packages/drbd.DRBDのソースを集めたアーカイブファイルには、scripts/のサブディレクトリに設定例のファイルが入っている。ディレクトリに設定例が置かれる。drbd.conf(5).ここでは、DRBDを動かすのに必要最小限の設定項目だけを取り上げている。マニュアルをmanコマンドで読むことができる。sections:このガイドで、これまで設定してきた内容に沿った設定の例を示す。below).利用者が望めば、DRBDの利用の回数などの統計をとれる。data.リソースには、r0(この名前は任意)という名前をつけた。いうパーティションをデバイスとして指定していて、このデバイスにメタデータを内包するようになっている。respectively.リソースはTCPで7789というポートを利用し、それぞれ10.1.1.31と10.1.1.32というIPアドレスが割り当てられる。users:このセクションは、設定ファイルの中では1度だけしか指定されない。普通は設定ファイルの先頭に置かれる。ここで指定可能な項目はいくつかあるが、普通、使われるのは次のものだけである。DRBDプロジェクトは、どのバージョンのDRBDが利用されているかの統計を取っている。DRBDがインストールされるたびに、webサーバにアクセスすることでカウントしている。ask;であり、DRBDをアップグレードするたびに、ユーザに、通知するかしないかを尋ねる。http://usage.drbd.org.DRBDの統計結果は誰でもアクセスできる。basis.このセクションは、どのリソースにも共通する設定をまとめて定義するために使われる。リソースについて指定できるすべての項目が指定できる。options.commonセクションは無くてもよいが、複数のリソースを定義するときにはあったほうが良い。ないと、手間ばかり増えてしまうし、共通の指定を変えそこなう危険もある。したがって、どのリソースについても、この指定が引き継がれる。これを上書きすることも可能である。modes"の項目を参照のこと。whitespace.リソースには名前をつけておく必要がある。名前はどんなものでも良いが、英数字以外の文字や空白は使えない。それぞれ、クラスタを構成するノード(サーバ)を指定する。settings.resourceセクションに記載されていない項目については、commonセクションで指定があれば、その値を引き継ぎ、commonセクションにも指定がなければ、DRBDのデフォルトの値が使われることになる。above:さらに、もっと手間を省こうとすれば、それぞれのhostの項目で共通の指定があれば、resourceセクションの中で1度指定すれば済む。したがって、上記の例のresourceセクションは次のようにしてもっと簡単に書ける。above.ただし、このような記法は、DRBDのバージョン8.2.1以降でないと利用できない。resource.前節で指定したように、リソースの初期設定ファイルができたら、今度はリソースを使えるようにすることができる。nodes.これから行うそれぞれのステップは、両方のnodeで完了してから次に進むようにしなくてはいけない。metadata:デバイスのメタデータを作る。このステップは初めてデバイスを作成したときだけ実施する。次のようにdrdbadmコマンドを実行する。device:DRBDのリソースにデバイスを接続する。node:ノードの接続。ここで、DRDBリソースを、他のノードのリソースと接続する。upコマンドを使えば、いっぺんに行える。これはDRBDの状態を示すファイルである。このファイルの中身は、次のようになっているはずだ。この段階では想定どおりで問題ない。synchronization.ここまでで、DRBDは正しくディスクとネットワークのリソースを割り当てられて、動作の準備が整った。ここで確認しておかなくてはならないのは、どちらのノードに同期させるかということだ。operational:DRBDが完全に動作するまでにはあと2つのステップが必要だ。caution.初期の同期をとる元となるディスクを決める。どちらのノードもまったく空のディスクを使うのなら、どちらが元でもかまわない。どちらかのノードにすでにデータがあって、それをミラーリングしたいのであれば、それを同期元とする。command:初期同期を開始する。このステップは、同期の元となるノードで、1度だけ実行すること。次のようにコマンドを実行する。device.このコマンドを実行したら、同期が始まる。内容を見て監視することができる。デバイスのサイズによっては、かなり時間がかかる。device.ここまでで、DRBDは完全に動作していて、初期の同期が完了していなくても(多少パフォーマンスは落ちるが)読み書きが可能である。resource.さて、次は第6章に進んで、管理作業について知ることができる。Groupの趣意書が固まったらしい。Kindleで読書メモ作ってみた。モーメントにしてみた。本ブログの内容にご注意ください。TLの教育系ベンチャーの存在が自分を勇気付けてくれたRealtimeとは月別アーカイブはてなブログをはじめよう!kgbuさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。