Кластеры · 3 min read · Jan 29, 2026

Настройка кластера Active/Active Samba CTDB с использованием GFS и DRBD (CentOS 5.5) - Страница 2

Эта статья объясняет, как настроить кластер Active/Active Samba CTDB, используя GFS и DRBD. Подготовлено Рафаэлем Марангони из команды BRLink Servidor 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;              ### Для Primary/Primary ###
    degr-wfc-timeout 60;
    wfc-timeout  30;
  }

  disk {
    on-io-error   detach;
  }

  net {
    allow-two-primaries;                 ### Для Primary/Primary ###
    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: IP-адрес/порт, который будет использовать DRBD (обратите внимание, что мы указываем на кроссовые интерфейсы) syncer: скорость передачи между узлами (мы используем 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

Теперь мы должны настроить GFS (Red Hat Global File System), который является кластерной файловой системой для использования с DRBD:

Сначала нам нужно настроить /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.
Только на 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

Get new posts in your inbox

No spam. Unsubscribe anytime.