はじめに
ディストリビューションレプリケートブロックデバイスは、Linuxクラスターで使用されるLinuxベースのオープンソースソフトウェアコンポーネントであり、ネットワークミラーリングによる共有ストレージシステムの置き換えを容易にします。
DRBDシステムのシームレスな複製機能により、すべてのクラスターで、DRBDを使用して、データを以前の状態に復元することが可能な限り簡単になります。
このチュートリアルでは、2台のCentosサーバー間でDRBDシステムをセットアップする方法を説明します。
クラスタ内の2台のCentos7サーバーをノード1とノード2と見なし、開始する前に、以下に示すすべての要件を満たしていることを確認してください。
前提条件
- 2台のCentosサーバー(ノード1とノード2)
このチュートリアルでは、2台のCentOs7サーバーを使用します。これらの2つのサーバーは、チュートリアル全体でそれぞれノード1およびノード2として言及されます
- 各ノードの専用ローカルディスク。
DRBDを構成するには、両方のノードに専用のディスクパーティションが必要です。
ノートE2EネットワークのインスタンスでDRBDを構成している場合は、ローカルディスクのパーティション分割についてサポートチームに連絡してください。
- ノード1とノード2専用のプライベートIP
- 下記のリンクをたどってyumリポジトリを有効にします
rpm -ivh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
次に、両方のノードで次のコマンドを使用して、ノード1とノード2に公開鍵をインポートします。
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org
DRBDパッケージのインストール
公開鍵をインポートした後、下記のDRBDパッケージを両方のノードにインストールします。
yum install -y kmod-drbd84-8.4.7 drbd84-utils
DRBDパッケージをインストールしたら、コマンドを使用して両方のノードを手動で再起動します
modprobe drbd
drbdモジュールが正しくロードされているかどうかを確認するには、コマンド
を使用します。lsmod | grep drbd
モジュールが正しくロードされると、次の結果が表示されます。
drbd 405309 0 libcrc32c 12644 1 drbd
DRBDセットアップの構成
次のステップは、LinuxでDRBDを構成することです。これを行うには、拡張子が.resのテストファイルを作成する必要があります。 ファイルにtest1.resという名前を付けます パスは/etc/drbd.d/
である必要がありますvi /etc/drbd.d/test1.res
以下の内容をファイルtest1.res
にコピーしますresource test1 { protocol C; on node1 { device /dev/drbd0; disk /dev/sdb; address IP of node 1:7788; meta-disk internal; } on node2 { device /dev/drbd0; disk /dev/sdb; address IP of node 2:7788; meta-disk internal; } }
注:上記の赤で強調表示されているテキストの代わりに、ノード1とノード2の対応するIPアドレスを置き換えます。
この後、次のコマンドを使用して、この構成ファイルを他のノードにもコピーします
[root@DRBDtest1 ~]# cat /proc/drbdscp /etc/drbd.d/test1.res node2:/etc/drbd.d/
両方のノードで同じコマンドを使用して、両方のノードでメタデータストレージを開始します
[root@DRBDtest1 ~]# cat /proc/drbddrbdadm create-md test1
両方のノードでメタデータを正常に初期化すると、ターミナルに次のメッセージが表示されます。
--== Thank you for participating in the global usage survey ==-- The server's response is: you are the 17960th user to install this version
DRBDデーモン機能を有効にする
次に、各ノードで次のコマンドを入力して、DRBDデーモン機能を有効にします。
[root@DRBDtest1 ~]# systemctl start drbd [root@DRBDtest1 ~]# systemctl enable drbd
上記のコマンドを実行すると、次の結果が得られます
Created symlink from /etc/systemd/system/multi-user.target.wants/drbd.service to /usr/lib/systemd/system/drbd.service.
次のステップは、コマンドを使用して達成されるプライマリノードを有効にすることです
[root@DRBDtest1 ~]# drbdadm primary test1
DRBDノード1を有効にした後、コマンドを使用してステータスを確認します
[root@DRBDtest1 ~]# cat /proc/drbd
これにより、次の結果が得られます
version: 8.4.7-1 (api:1/proto:86-101) GIT-hash: 3a6a769340ef93b1ba2792c6461250790795db49 build by phil@Build64R7, 2016-01-12 14:29:40 .......
DRBDでファイルシステムを作成してマウントします
次に、ファイルシステムを作成し、以下の手順に従ってDRDBデバイスにマウントする必要があります
[root@DRBDtest1 ~]# cat /proc/drbdmkfs.ext3 /dev/drbd0 [root@DRBDtest1 ~]# cat /proc/drbdmount /dev/drbd0 /mnt [root@DRBDtest1 ~]# cat /proc/drbdtouch /mnt/testfile [root@DRBDtest1 ~]# cat /proc/drbdll /mnt/
DRBDセットアップのテスト
次に、設定されたDRBD構成をテストします。
[root@DRBDtest1 ~]# umount /mnt [root@DRBDtest1 ~]# drbdadm secondary test1
2番目のノード「node2」の2次ノードを1次ノードに変更します
[root@DRBDtest2 ~]# drbdadm primary test1 [root@DRBDtest2 ~]# mount /dev/drbd0 /mnt [root@DRBDtest2 ~]# ll /mnt
これで、ノード1からのデータがノード2に複製されます。