「分散複製ブロックデバイス」とも呼ばれるDRBDは、Linux用の分散ストレージソリューションです。これは、ハードディスク、パーティション、論理ボリュームなどのブロックデバイス上のデータを、ネットワーク接続を介して1つのサーバーから別のサーバーにミラーリングするために使用されます。一方のサーバーがクラッシュした場合、もう一方のサーバーのデータが使用される可能性があります。 DRBDは、ネットワーク化されたミラーリングによってLinuxアプリケーションの高可用性(HA)も保証します。
このチュートリアルでは、DRBDをインストールし、それを使用して2台のサーバー間でパーティションを複製する方法を示します。
前提条件
- Atlantic.netクラウドプラットフォーム上の2つの新しいCentOS8VPSで、各VPSに1つのブロックストレージデバイスが接続されています。サーバーはUSA-EAST1(オーランド)で作成する必要があります
- 両方のサーバーで構成されたルートパスワード
ステップ1–Atlantic.Netクラウドサーバーを作成する
まず、Atlantic.Netクラウドサーバーにログインします。オペレーティングシステムとしてCentOS8を選択し、少なくとも4GBのRAMを搭載した新しいサーバーを作成します。次に、ブロックストレージデバイスを作成し、VPSに接続します。次に、SSH経由でクラウドサーバーに接続し、ページの上部で強調表示されている資格情報を使用してログインします。
CentOS 8サーバーにログインしたら、次のコマンドを実行して、ベースシステムを最新の利用可能なパッケージで更新します。
dnf update -y
ステップ2–各ノードでホスト名を設定する
まず、各ノードにホスト名を設定する必要があります。
最初のノードで、次のコマンドを実行してホスト名を設定します。
hostnamectl set-hostname node1.example.com
2番目のノードで、次のコマンドを実行してホスト名を設定します。
hostnamectl set-hostname node2.example.com
終了したら、次のステップに進むことができます。
ステップ3–各ノードでストレージデバイスを準備する
次に、DRBDリソースの各ノードに同じサイズのストレージデバイスを設定する必要があります。このチュートリアルでは、各ノードで/ dev/sdbブロックストレージを使用します。
両方のノードで、次のコマンドを使用してGPTパーティションテーブルとパーティションを作成します。
parted -s -aoptimal-/ dev / sdb mklabel gptparted -s -aoptimal-/ dev / sdb mkpart primary 0%100%parted -s-/ dev / sdb align-checkoptimal 1
次に、次のコマンドを使用してパーティションを確認します。
fdisk -l </ pre>次の出力で/dev/sdb1パーティションを取得する必要があります。
ディスク/dev/ sda:80 GiB、85899345920バイト、167772160セクター単位:1のセクター* 512 =512バイトセクターサイズ(論理/物理):512バイト/512バイトI/ Oサイズ(最小/最適):512バイト/ 512バイトDisklabelタイプ:dosDisk識別子:0x7e9dbe13Deviceブート開始終了セクターサイズIDタイプ/ dev / sda12048 167770112 167768065 80G 83 LinuxDisk / dev / sdb:50 GiB、53687091200バイト、104857600セクター単位:1のセクター* 512 =512バイトセクターサイズ(論理/物理):512バイト/512バイトI/ Oサイズ(最小/最適):512バイト/ 512バイトディスクラベルタイプ:gptDisk識別子:4CBB1682-09B1-4785-B96C-2B9D2B3BEB53デバイス開始終了セクターサイズタイプ/ dev / sdb12048 104855551 104853504 50G Linuxファイルシステムステップ4–DRBDをインストールする
重要 :両方のノードでこのプロセスを繰り返します。
次のコマンドでインストールできます:
dnf -y install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpmrpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo .orgリポジトリがインストールされたら、次のコマンドを使用してDRBDパッケージをインストールします。
dnf install drbd90-utils kmod-drbd90 -yインストールが完了したら、次の手順に進むことができます。
ステップ5–DRBDリソースの構成
重要 :両方のノードでこのプロセスを繰り返します。
デフォルトのDRBD構成ファイルは/etc/drbd.confにあり、他のファイルは/etc/drbd.d/ディレクトリ内にあります。
2台のサーバー間でストレージデバイスを複製するには、/ etc /drbd.d/ディレクトリ内に新しい構成ファイルを作成する必要があります。
nano /etc/drbd.d/resource0.res次の行を追加します:
resource resource0 {on node1.example.com {device / dev / drbd1;ディスク/dev/ sdb1;アドレスnode1-ip-address:7789;メタディスク内部; } onnode2.example.com{デバイス/dev/ drbd1;ディスク/dev/ sdb1;アドレスnode2-ip-address:7789;メタディスク内部; }}注 :resource0.resは両方のノードで同じです。
場所:
- node1.example.com およびnode2.example.com 各ノードのホスト名です。
- / dev / drbd1 はDRBDデバイスの名前です。
- / dev / sdb1 各ノードのストレージデバイスの名前です。
- Node1-ip-address は最初のノードのIPアドレスです。
- Node2-ip-address は2番目のノードのIPアドレスです。
- 7789 はDRBDポートです。
終了したら、ファイルを保存して閉じます。
ステップ6–DRDBリソースの初期化と有効化
次に、両方のノードでDRBDのメタデータを初期化する必要があります。
両方のノードで次のコマンドを実行して、DRBDリソースを初期化します。
drbdadm create-md resource0
次の出力が得られるはずです:
md_offset 53684989952al_offset 53684957184bm_offset53683318784見つかったext3ファイルシステム2097152kBデータ領域は明らかに使用されています52425116kBは現在の構成で使用可能のままですこれにより新しいメタデータが未使用スペースに配置されるように見えますが、これは推測にすぎないため、確認する必要があります。続行しますか?[確認するには「yes」と入力する必要があります] yesinitializing activity loginitializing bitbit(1600 KB)to all zeroWriting meta data ... new drbd meta data block successlycreated.success
両方のノードでDRBDリソースを初期化した後、リソースを有効にする必要があります。
両方のノードで次のコマンドを実行して、リソースを有効にします。
drbdadm up resource0
これにより、リソースがバッキングデバイスに接続されます。次に、レプリケーションパラメータを設定し、リソースをピアに接続します。
最初のノードで、次のコマンドを使用してDRBDのステータスを確認します。
drbdadm status resource0
次の出力が得られるはずです:
ステップ7–初期デバイス同期のプライマリリソースを設定する
この時点で、DRBDは操作の準備ができています。次に、最初のデバイス同期のソースとして使用するノードを指定する必要があります。
最初のノードで、次のコマンドを使用して最初の完全同期を開始します。
drbdadm primary --force resource0
次に、次のコマンドを使用して、最初のノードのステータスを確認します。
drbdadm status resource0
次の出力が得られるはずです:
次のコマンドを使用して、名前のデバイスマッピングを取得することもできます。
lsblk
新しいDRBDデバイスdrbd1が表示されます。 次の出力で:
ステップ8–DRBDデバイスでファイルシステムを作成する
次に、DRBDデバイス上にファイルシステムを作成してマウントし、レプリケートされたデータストレージに使用できるかどうかを確認する必要があります。
最初のノードで、次のコマンドを使用してDRBDデバイスにext4ファイルシステムを作成します。
mkfs.ext4 / dev / drbd1
注 :このプロセスは、ブロックストレージのサイズによっては時間がかかる場合があります。
次の出力が得られるはずです:
次に、次のコマンドを使用して、DRBDデバイスを/optディレクトリにマウントします。
マウント/dev/ drbd1 / opt /
次に、/optディレクトリ内にいくつかのテストファイルを作成します。
cd / opttouch file1 file2 file3 file4 file5 file6 file7 file8 file9
次に、次のコマンドを使用して、マウントされたデバイスを確認します。
df -hT / opt
次の出力が表示されます。
使用されるファイルシステムタイプサイズ使用率使用率/dev/ drbd1 ext4 49G 53M 47G 1%/ opt
ステップ9–DRBDデバイスを2番目のノードにマウントする
このセクションでは、DRBDデバイスを2番目のノードにマウントし、レプリケーションが機能しているかどうかを確認します。
最初のノード 、DRBDデバイスをアンマウントし、次のコマンドを使用してセカンダリノードにします。
cdumount/optdrbdadmセカンダリリソース0
2番目のノード 、次のコマンドを使用して2番目のノードをプライマリにします。
drbdadmプライマリリソース0
次に、次のコマンドを使用して、DRBDデバイスを/optディレクトリにマウントします。
マウント/dev/ drbd1 / opt
次に、次のコマンドを実行して、/optディレクトリ内のファイルのリストを出力します。
ls / opt
すべてが正常であれば、DRBDデバイスに保存されているすべてのファイルがそこにあるはずです:
次のコマンドを使用して、DRBDデバイスのマウントされたパーティションを確認することもできます。
df -hT / opt
次の出力が得られるはずです:
使用されるファイルシステムタイプサイズ使用率使用率/dev/ drbd1 ext4 49G 53M 47G 1%/ opt
結論
おめでとう! CentOS 8にDRBDを使用してレプリケーションを正常にインストールし、セットアップしました。データの可用性を向上させたい場合、DRBDは優れたツールです。詳細については、DRBDのドキュメントをご覧ください。 Atlantic.NetのVPSホスティングアカウントでDRBDを今すぐお試しください!