クラスタ設定 · 2 min read · Jan 29, 2026

GFSとDRBDを使用したアクティブ/アクティブSamba CTDBクラスタの設定 (CentOS 5.5) - ページ 2

この記事では、GFSとDRBDを使用してアクティブ/アクティブSamba CTDBクラスタを設定する方法について説明します。 BRLinkサーバーLinuxチームのラファエル・マランゴーニによって準備されました。

3. 前提条件とクラスタパッケージのインストール

インストールする必要があるいくつかのパッケージがあります:

yum -y install drbd82 kmod-drbd82 samba

Red Hat Cluster Suiteをインストールしましょう:

yum -y groupinstall "Cluster Storage" "Clustering"

4. DRBDの設定

まず、両方のノードで/etc/drbd.confを設定する必要があります:

vi /etc/drbd.conf 
global {
    usage-count yes;
}

common {
  syncer {
                rate 100M;
                al-extents 257;
         }
}

resource r0 {

  protocol C;

  startup {
    become-primary-on both;              ### プライマリ/プライマリのため ###
    degr-wfc-timeout 60;
    wfc-timeout  30;
  }

  disk {
    on-io-error   detach;
  }

  net {
    allow-two-primaries;                 ### プライマリ/プライマリのため ###
    cram-hmac-alg sha1;
    shared-secret "mysecret";
    after-sb-0pri discard-zero-changes;
    after-sb-1pri violently-as0p;
    after-sb-2pri violently-as0p;
  }

  on node1.clustersmb.int {
    device     /dev/drbd0;
    disk       /dev/sdb;
    address    172.16.0.1:7788;
    meta-disk  internal;
  }

  on node2.clustersmb.int {
    device     /dev/drbd0;
    disk       /dev/sdb;
    address    172.16.0.1:7788;
    meta-disk  internal;
  }
}  

設定の主なポイントは: resource: DRBDによって管理されるリソースを指します。”r0”と呼びました。 disk: DRBDが使用するデバイス(ディスクまたはパーティション)を指します。 address: DRBDが使用するIPアドレス/ポート(クロスオーバーインターフェースを指していることに注意してください) syncer: ノード間の転送レート(Gigabitカードがあるため100Mを使用します) 疑問がある場合は、DRBDユーザーガイドを参照してください: www.drbd.org/users-guide-emb/

その設定の後、r0リソースのメタデータを作成できます。両方のノードで次を実行します:

drbdadm create-md r0

次に、DRBDサービスを初期化してinitdbを作成する必要があります。両方のノードで(ほぼ同時に)次を実行します:

/etc/init.d/drbd start

両方のノードをプライマリとして設定するには、両方のノードで次を実行します:

drbdsetup /dev/drbd0 primary -o

同期の進行状況とDRBDリソースのステータスを確認するには、/proc/drbdを確認します:

cat /proc/drbd

今、同期の終了を待つ必要があります。これは、ディスクのサイズとパフォーマンスによって長時間かかる場合があります。 もちろん、クロスオーバーケーブルで使用されているクラスタネットワークインターフェースの速度にも依存します。

同期プロセスが終了したら、リソースr0のステータスを確認できます:

node1:

[root@node1 ~]# cat /proc/drbd

[root@node1 ~]# cat /proc/drbd
version: 8.2.6 (api:88/proto:86-88)
GIT-hash: 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by buildsvn@c5-x8664-build, 2008-10-03 11:30:17
0: cs:Connected st:Primary/Primary ds:UpToDate/UpToDate C r—
ns:2097052 nr:0 dw:0 dr:2097052 al:0 bm:128 lo:0 pe:0 ua:0 ap:0 oos:0

node2:

[root@node2 ~]# cat /proc/drbd

[root@node2 ~]# cat /proc/drbd
version: 8.2.6 (api:88/proto:86-88)
GIT-hash: 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by buildsvn@c5-x8664-build, 2008-10-03 11:30:17
0: cs:Connected st:Primary/Primary ds:UpToDate/UpToDate C r—
ns:0 nr:2097052 dw:2097052 dr:0 al:0 bm:128 lo:0 pe:0 ua:0 ap:0 oos:0

両方のサーバーが最新であること(UpToDate/UpToDate)とプライマリであること(Primary/Primary)が重要です。 すべてのステータス情報が何を意味するかを学ぶには、次を参照してください: www.drbd.org/users-guide-emb/ch-admin.html#s-proc-drbd

DRBDサービスが起動時に自動的に開始されるようにする必要があります:

chkconfig --level 35 drbd on

5. GFSの設定

次に、DRBDと一緒に使用するクラスタファイルシステムであるGFS(Red Hat Global File System)を設定する必要があります:

まず、両方のノードで/etc/cluster/cluster.confを設定する必要があります:

vi /etc/cluster/cluster.conf 







        
                
                        
                
        



        
                
                        
                
        






        


次に、両方のノードでcmanサービスを開始する必要があります(同時に):

/etc/init.d/cman start

その後、両方のノードで他のサービスを開始できます:

/etc/init.d/clvmd start
/etc/init.d/gfs start
/etc/init.d/gfs2 start

すべてのサービスが初期化時に有効であることを確認する必要があります。
両方のノードで次を実行します:

chkconfig –level 35 cman on
chkconfig –level 35 clvmd on
chkconfig –level 35 gfs on
chkconfig –level 35 gfs2 on

次に、デバイスをフォーマットします。これは一つのノードでのみ行います:

gfs_mkfs -p lock_dlm -t cluster1:gfs -j 2 /dev/drbd0

今、マウントポイントを作成し、両方のノードでdrbdデバイスをマウントします:

mkdir /clusterdata
mount -t gfs /dev/drbd0 /clusterdata

両方のノードでfstabにデバイスを挿入しましょう:

vi /etc/fstab

次の行を挿入します:

/dev/drbd0          /clusterdata               gfs    defaults        0 0 

次に、クラスタファイルシステムが機能しているか確認するのが良いでしょう:
node1でのみ、次を実行します:

tar -zcvf /clusterdata/backup-test.tgz /etc/

今、node2でファイルが存在するか確認します。
node2でのみ、次を実行します:

ls -l /clusterdata/ 

[root@node2 ~]# ls -l /clusterdata
total 12576
-rw-r–r– 1 root root 12844520 Jul 23 16:01 backup-test.tgz

次に、node2が書き込めるかテストします。
node2でのみ、次を実行します:

tar -zcvf /clusterdata/backup-test2.tgz /etc/

今、node1に2つのファイルが存在するか確認します。
node1でのみ、次を実行します:

ls -l /clusterdata/ 

[root@no2 ~]# ls -l /clusterdata/
total 25160
-rw-r–r– 1 root root 12850665 Jul 23 16:03 backup-test2.tgz
-rw-r–r– 1 root root 12844520 Jul 23 16:01 backup-test.tgz

すべてが正常であれば、もちろんテストファイルを削除できます。
一つのノードでのみ、次を実行します:

rm -f /clusterdata/backup* 
Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。