Configurazione DRBD · 5 min read · Jan 28, 2026
Configurazione di esempio di DRBD su CentOS 4.5
Configurazione di esempio di DRBD su CentOS 4.5
Che cos’è DRBD?
DRBD è un’abbreviazione di Distributed Replicated Block Device. DRBD è un dispositivo a blocchi progettato per costruire cluster ad alta disponibilità. Questo viene fatto replicando un intero dispositivo a blocchi tramite una rete (dedicata). Puoi vederlo come un RAID1 di rete.
Requisiti di pre-configurazione:
Ho utilizzato due nodi con le seguenti impostazioni di sistema:
- cnode1.rnd (hostname) con l’indirizzo IP 172.16.4.80. Sistema operativo CentOS 4.5, due dischi rigidi SCSI da 18 GB. Per quanto riguarda la partizione ho utilizzato il seguente schema su cnode1.rnd: /dev/sda1 / 13257MB ext3 primaria /dev/sda2 4095MB swap primaria /dev/sdb1 smontato 128MB ext3 primaria (per i metadati di DRBD) /dev/sdb2 smontato 4306MB ext3 primaria (utilizzato come Disco di DRBD)
- cnode2.rnd (hostname) con l’indirizzo IP 172.16.4.81. Sistema operativo CentOS 4.5 un’unità IDE da 10 GB. Il seguente schema di partizione è stato utilizzato su cnode2.rnd: /dev/hda1 / 4503MB ext3 primaria /dev/hda2 769MB swap primaria /dev/hda3 smontato 128MB ext3 primaria (per i metadati di DRBD) /dev/hda4 smontato 4306MB ext3; primaria (utilizzato come Disco di DRBD)
Le dimensioni e i nomi delle partizioni possono variare in base alla capacità del disco e ai dischi rigidi utilizzati. Puoi definire uno schema di partizione in base alle tue esigenze.
Il mio file /etc/hosts su entrambi i nodi (cnode1.rnd & cnode2.rnd) appare così:
127.0.0.1 localhost.localdomain localhost
172.16.4.80 cnode1.rnd cnode2
172.16.4.81 cnode2.rnd cnode3
Installazione di DRBD:
Installa il software DRBD e il modulo del kernel di DRBD su cnode1.rnd e cnode2.rnd:
yum install -y kmod-drbd drbd Carica il modulo del kernel di DRBD con insmod:
insmod /lib/modules/2.6.9-55.0.9.EL/extra/drbd.ko Verifica con lsmod che il modulo sia caricato. Se vedi DRBD, allora passa alla sezione di configurazione di esempio.
Configurazione di DRBD:
Il file di configurazione di DRBD è /etc/drbd.conf. Quindi modificheremo questo file e apporteremo le seguenti modifiche e lo copieremo sull’altro nodo ( /etc/drbd.conf sarà lo stesso su entrambi i nodi).
Su cnode1.rnd modifica questo file con un editor qualsiasi. Sto usando vi:
vi /etc/drbd.conf resource r0 {
protocol C;
incon-degr-cmd "halt -f";
startup {
degr-wfc-timeout 120; # 2 minuti.
}
disk {
on-io-error detach;
}
net {
}
syncer {
rate 3M;
group 1;
al-extents 257;
}
on cnode1.rnd {
device /dev/drbd0;
disk /dev/sdb2;
address 172.16.4.80:7789;
meta-disk /dev/sdb1[0];
}
on cnode2.rnd {
device /dev/drbd0;
disk /dev/hda4;
address 172.16.4.81:7789;
meta-disk /dev/hda3[0];
}
}
Salva le tue modifiche e copialo sull’altro nodo (cnode2.rnd):
scp /etc/drbd.conf [email protected]:/etc/ Ora avviamo il demone DRBD su entrambi i nodi, ma prima vogliamo avviare il demone DRBD al prossimo riavvio. Per questo utilizzeremo il comando chkconfig su entrambi i nodi.
chkconfig --level 235 drbd on /etc/init.d/drbd start Scoprirai che DRBD ha avviato il processo di sincronizzazione. Puoi vederlo in esecuzione:
/etc/init.d/drbd status o
cat /proc/drbd Dettagli tecnici della configurazione di drbd.conf:
Protocolli:
- Un’operazione di scrittura è completa non appena i dati vengono scritti su disco e inviati alla rete.
- Un’operazione di scrittura è completa non appena arriva un riconoscimento di ricezione.
- Un’operazione di scrittura è completa non appena arriva un riconoscimento di scrittura.
Nome host:
Deve corrispondere esattamente all’output di
uname -n Dispositivo:
Il nodo del dispositivo da utilizzare: /dev/drbd0 - dispositivo a blocchi DRBD.
Indirizzo, Porta:
L’indirizzo inet e la porta a cui collegarsi localmente o per connettersi al nodo partner.
Meta-disco:
I dischi per memorizzare i metadati. DRBD ti consente di posizionare i suoi metadati sullo stesso dispositivo di supporto in cui mette i dati di produzione utilizzabili (metadati interni), o su un dispositivo a blocchi separato (metadati esterni). Ho allocato 128 MB per i metadati su un dispositivo a blocchi di metadati esterni. Tuttavia, puoi considerare la tabella sottostante per stimare le dimensioni dei metadati
| Dimensione del dispositivo a blocchi | Metadati DRBD |
| 1 GB | 2 MB |
| 100 GB | 5 MB |
| 1 TB | 33 MB |
| 4 TB | 128 MB |
Incon-degr-cmd:
Cosa dovrebbe essere fatto nel caso in cui il cluster si avvii in modalità degradata, ma sa di avere dati incoerenti (il dispositivo di livello inferiore riporta un errore di io).
on-io-error detach:
Se il dispositivo di livello inferiore riporta un errore di io, il nodo abbandona il suo dispositivo di archiviazione di supporto e continua in modalità senza disco.
degr-wfc-timeout:
Attendere il timeout di connessione, se questo nodo era un cluster degradato. Questo viene utilizzato invece di wfc-timeout (attendere il timeout del cluster).
Syncer:
Limita la larghezza di banda utilizzata dal processo di risincronizzazione.
gruppo:
Tutti i dispositivi in un gruppo vengono risincronizzati in parallelo. La risincronizzazione dei gruppi è serializzata in ordine crescente.
Al-extents:
Esegue automaticamente il rilevamento dell’area calda. Con questo parametro controlli quanto grande può diventare l’area calda. Ogni estensione segna 4M dello storage di supporto (= dispositivo di livello inferiore). Nel caso in cui un nodo primario abbandoni il cluster inaspettatamente, le aree coperte dall’insieme attivo devono essere risincronizzate al momento del reinserimento del nodo guasto. La struttura dei dati è memorizzata nell’area dei metadati, quindi ogni modifica dell’insieme attivo è un’operazione di scrittura sul dispositivo dei metadati. Un numero maggiore di estensioni comporta tempi di risincronizzazione più lunghi ma meno aggiornamenti ai metadati.
Cosa fare e cosa non fare:
Non tentare di montare un DRBD in stato secondario. Una volta configurato DRBD, non bypassarlo mai o accedere direttamente al dispositivo sottostante!
Testare DRBD:
Rendi cnode1.rnd primario e monta il dispositivo a blocchi del nodo primario (cnode1.rnd) su /mnt/disk:
drbdsetup /dev/drbd0 primary --do-what-I-say mount /dev/drbd0 /mnt/disk Copia alcuni file e cartelle:
cp -r /root/documents /mnt/disk Ora smonta il dispositivo a blocchi di DRBD e rendi il nodo primario “secondario”:
umount /mnt/disk/ drbdadm secondary all Rendi cnode2.rnd primario e monta il dispositivo a blocchi su /mnt/disk:
drbdsetup /dev/drbd0 primary --do-what-I-say mount /dev/drbd0 /mnt/diskScoprirai che i documenti esistono su cnode2.rnd.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.