Cluster Samba · 4 min read · Jan 29, 2026
Impostare un Cluster Samba CTDB Active/Active Utilizzando GFS e DRBD (CentOS 5.5)
Impostare un Cluster Samba CTDB Active/Active Utilizzando GFS e DRBD (CentOS 5.5)
Questo articolo spiega come impostare un Cluster Samba CTDB Active/Active, utilizzando GFS e DRBD. Preparato da Rafael Marangoni, del Team Linux di BRLink.
Introduzione
Utilizziamo due nodi, entrambi sono nodi attivi, e le richieste sono bilanciate. Per replicare i dati tra i nodi utilizziamo DRBD. Per un cluster attivo/attivo, dobbiamo utilizzare un ClusterFS (in questo caso GFS), per far sì che i due nodi possano scrivere sulla risorsa DRBD contemporaneamente.
1 Nota Preliminare
Distribuzione Linux:
Stiamo utilizzando la distribuzione CentOS 5.5 (64bit), ma probabilmente funzionerà anche su Fedora (e Red Hat, di sicuro). L’installazione di CentOS è molto semplice e classica, seleziona i pacchetti di base e altre cose che ti piacciono/hai bisogno. Un problema che deve essere ricordato è che utilizziamo DRBD per replicare i dati tra i nodi, quindi avrai bisogno di un disco o partizione esclusiva per DRBD. Ricorda questo prima di partizionare i dischi durante l’installazione di CentOS.
Hardware/Topologia di Rete:
Utilizziamo due schede di rete Gigabit per nodo, una (eth0) collegata alla rete (LAN), e l’altra (eth1) con un cavo incrociato che collega entrambi i nodi. Il cavo incrociato deve essere utilizzato per migliorare le prestazioni e l’affidabilità del sistema, perché DRBD non dipenderà da switch di rete o altro per replicare i dati tra i nodi.
In questo tutorial utilizzeremo i nodi fisici node1.clusterbr.int e node2.clusterbr.int:
node1.clustersmb.int: Usa IP 10.0.0.181 (LAN) e IP 172.16.0.1 (incrociato)
node2.clustersmb.int: Usa IP 10.0.0.182 (LAN) e IP 172.16.0.2 (incrociato)
vip1.clustersmb.int: È l’IP del Cluster, dal nodo1 10.0.0.183.
vip2.clustersmb.int: È l’IP del Cluster, dal nodo2 10.0.0.184.
Dischi:
Entrambi i nodi hanno due dischi:
/dev/sda: per il sistema operativo;
/dev/sdb: per DRBD.
Come ho detto prima, puoi utilizzare solo un disco, se lasciando una partizione esclusiva per DRBD.
CTDB:
È un’implementazione cluster di TDB, da utilizzare con Samba su filesystem cluster. Ne abbiamo bisogno per avere un cluster attivo/attivo, quindi entrambi i servizi smb possono rispondere alle richieste di rete. Maggiori informazioni su http://ctdb.samba.org.
2 Preparazione Dei Nodi
Disabilitare SELINUX
Dobbiamo disabilitare SELINUX:
vi /etc/selinux/configCambia solo questa riga (lasciando tutto il resto intatto):
SELINUX=disabledImpostare il Nome Host
Dobbiamo cambiare il nome host e il gateway dei nodi:
vi /etc/sysconfig/networknode1:
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=node1.clustersmb.int
GATEWAY=10.0.0.9node2:
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=node2.clustersmb.int
GATEWAY=10.0.0.9Configurare le Interfacce di Rete
Successivamente, configureremo le interfacce di rete:
node1:
L’interfaccia LAN:
vi /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0
BOOTPROTO=static
IPADDR=10.0.0.181
NETMASK=255.255.255.0
ONBOOT=yes
HWADDR=a6:1e:3d:67:66:78 L’interfaccia Cross-Over/DRBD:
vi /etc/sysconfig/network-scripts/ifcfg-eth1DEVICE=eth1
BOOTPROTO=static
IPADDR=172.16.0.1
NETMASK=255.255.255.0
ONBOOT=yes
HWADDR=ee:ef:ff:9a:9a:57node2:
L’interfaccia LAN:
vi /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0
BOOTPROTO=static
IPADDR=10.0.0.182
NETMASK=255.255.255.0
ONBOOT=yes
HWADDR=52:52:a1:1a:62:32L’interfaccia Cross-Over/DRBD:
vi /etc/sysconfig/network-scripts/ifcfg-eth1DEVICE=eth1
BOOTPROTO=static
IPADDR=172.16.0.2
NETMASK=255.255.255.0
ONBOOT=yes
HWADDR=1a:18:b2:50:96:1eImpostare la Configurazione DNS
Impostare la configurazione DNS su entrambi i nodi (secondo la tua rete):
vi /etc/resolv.confsearch clustersmb.int
nameserver 10.0.0.9Configurare la Risoluzione di Base del Nome Host
Configurare /etc/hosts (stessa configurazione su entrambi i nodi):
vi /etc/hosts127.0.0.1 localhost.localdomain localhost
10.0.0.191 node1.clustersmb.int node1
10.0.0.192 node2.clustersmb.int node2
PS: Probabilmente vorrai impostare altre righe in questo file, per puntare ad altri indirizzi della tua rete.
Controllare la Connettività di Rete
Controlliamo se tutto va bene:
node1:
Pingando node2 (tramite interfaccia LAN):
[root@node1 ~]# ping -c 2 node2[root@node1 ~]# ping -c 2 node2
PING node2 (10.0.0.182) 56(84) bytes of data.
64 bytes from node2 (10.0.0.182): icmp_seq=1 ttl=64 time=0.089 ms
64 bytes from node2 (10.0.0.182): icmp_seq=2 ttl=64 time=0.082 ms
— node2 ping statistics —
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.082/0.085/0.089/0.009 ms
Pingando node2 (tramite interfaccia incrociata):
[root@node1 ~]# ping -c 2 172.16.0.2[root@node1 ~]# ping -c 2 172.16.0.2
PING 172.16.0.2 (172.16.0.2) 56(84) bytes of data.
64 bytes from 172.16.0.2: icmp_seq=1 ttl=64 time=0.083 ms
64 bytes from 172.16.0.2: icmp_seq=2 ttl=64 time=0.083 ms
— 172.16.0.2 ping statistics —
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.083/0.083/0.083/0.000 ms
node2:
Pingando node1 (tramite interfaccia LAN):
[root@node2 ~]# ping -c 2 node1[root@node2 ~]# ping -c 2 node1
PING node1 (10.0.0.181) 56(84) bytes of data.
64 bytes from node1 (10.0.0.181): icmp_seq=1 ttl=64 time=0.068 ms
64 bytes from node1 (10.0.0.181): icmp_seq=2 ttl=64 time=0.063 ms
— node1 ping statistics —
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.063/0.065/0.068/0.008 ms
Pingando node1 (tramite interfaccia incrociata):
[root@node2 ~]# ping -c 2 172.16.0.1[root@node2 ~]# ping -c 2 172.16.0.1
PING 172.16.0.1 (172.16.0.1) 56(84) bytes of data.
64 bytes from 172.16.0.1: icmp_seq=1 ttl=64 time=1.36 ms
64 bytes from 172.16.0.1: icmp_seq=2 ttl=64 time=0.075 ms
— 172.16.0.1 ping statistics —
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.075/0.722/1.369/0.647 ms
Configurare le Opzioni di Inizializzazione
Mi piace impostare il runlevel a 3.
vi /etc/inittabCambia solo questa riga (lasciando tutto il resto intatto):
id:3:initdefault:Mi piace rimuovere alcuni servizi dall’inizializzazione automatica, per mantenere solo i servizi che verranno realmente utilizzati.
Questi sono i servizi attivi di cui avremo bisogno:
[root@node1 ~]# chkconfig --list | grep 3:sim[root@node1 ~]# chkconfig –list | grep 3:sim
acpid 0:no 1:no 2:si 3:si 4:si 5:si 6:no
anacron 0:no 1:no 2:si 3:si 4:si 5:si 6:no
apmd 0:no 1:no 2:si 3:si 4:si 5:si 6:no
atd 0:no 1:no 2:no 3:si 4:si 5:si 6:no
cpuspeed 0:no 1:si 2:si 3:si 4:si 5:si 6:no
crond 0:no 1:no 2:si 3:si 4:si 5:si 6:no
irqbalance 0:no 1:no 2:si 3:si 4:si 5:si 6:no
kudzu 0:no 1:no 2:no 3:si 4:si 5:si 6:no
network 0:no 1:no 2:si 3:si 4:si 5:si 6:no
rawdevices 0:no 1:no 2:no 3:si 4:si 5:si 6:no
sshd 0:no 1:no 2:si 3:si 4:si 5:si 6:no
syslog 0:no 1:no 2:si 3:si 4:si 5:si 6:no
A questo punto, dobbiamo riavviare entrambi i nodi per applicare la configurazione.
rebootRicevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.