Openfiler · 5 min read · Jan 31, 2026
Installazione e Configurazione di Openfiler con DRBD e Heartbeat
Installazione e Configurazione di Openfiler con DRBD e Heartbeat
Introduzione
Openfiler è un sistema operativo ad alte prestazioni progettato per essere utilizzato come appliance SAN/NAS. Questa configurazione consentirà a due appliance Openfiler di lavorare in uno scenario di alta disponibilità Active/Passive.
Requisiti
Hardware
- 2 x box che soddisfano le specifiche minime delle specifiche hardware di Openfiler.
- 2 x interfacce ethernet in ciascuna box
- Supporto di installazione di Openfiler 2.3.
- Entrambe le box dovrebbero avere dischi della stessa dimensione in ciascuna per evitare incoerenze nella replica.
Software
Installare Openfiler 2.3 su entrambe le box utilizzando una configurazione del disco come la seguente:
- 3 GB partizione root (“/”)
- 2 GB partizione “swap”
- 512 MB partizione “/meta” (utilizzata per DRBD0)
- Partizione dati configurata come LVM non montato (utilizzata per DRBD1)
Configurazione
Rete
Ogni appliance Openfiler avrà due NIC: una per comunicare con la LAN, l’altra per comunicare con l’altra SAN (tramite cavo diretto). La prima sarà utilizzata per l’amministrazione, per comunicare direttamente con ciascun nodo.
Una terza interfaccia “virtuale” è utilizzata dal servizio heartbeat e sarà quella utilizzata dai computer sulla LAN.
Di seguito è ciò che viene utilizzato:
filer01
- Interfaccia LAN (eth0) 192.168.1.18
- Interfaccia di replicazione (eth1) 10.188.188.1
filer02
- Interfaccia LAN (eth0) 192.168.1.19
- Interfaccia di replicazione (eth1) 10.188.188.2
Indirizzo HA NAS/SAN (eth0) 192.168.1.17
- Questo è configurato nel file cluster.xml (non tentare di configurare altrove)
Configurazione del Nome Host
Per consentire a entrambi i nodi di riconoscersi a vicenda per nome, configurare il file hosts su ciascun computer.
Modificare il nostro /etc/hosts (su filer01):
# Non rimuovere la seguente riga, o vari programmi
# che richiedono funzionalità di rete falliranno.
127.0.0.1 filer01 localhost.localdomain localhost
10.188.188.2 filer02Modificare il nostro /etc/hosts (su filer02):
# Non rimuovere la seguente riga, o vari programmi
# che richiedono funzionalità di rete falliranno.
127.0.0.1 filer02 localhost.localdomain localhost
10.188.188.1 filer01Chiavi SSH Condivise
Per consentire alle due appliance Openfiler di comunicare tra loro senza dover utilizzare una password, utilizzare chiavi SSH condivise.
Su filer01:
root@filer01 ~# ssh-keygen -t dsaPremere invio ai prompt (non impostare una password sulla chiave).
Su filer02:
root@filer02 ~# ssh-keygen -t dsaPremere invio ai prompt (non impostare una password sulla chiave).
Il comando sopra genererà un file chiamato “id_dsa.pub” in ~/.ssh/, che è la chiave pubblica che dovrà essere copiata all’altro nodo:
root@filer01 ~# scp .ssh/id_dsa.pub root@filer02:~/.ssh/authorized_keys2
root@filer02 ~# scp .ssh/id_dsa.pub root@filer01:~/.ssh/authorized_keys2
Configurare DRBD
DRBD è ciò che manterrà i dati tra i due nodi coerenti.
Su filer01:
root@filer01 ~# mv /etc/drbd.conf /etc/drbd.conf.orgQuindi modificare drbd.conf (versione 8) secondo quanto segue:
global {
# minor-count 64;
# dialog-refresh 5; # 5 secondi
# disable-ip-verification;
usage-count ask;
}
common {
syncer { rate 100M; }
}
resource cluster_metadata {
protocol C;
handlers {
pri-on-incon-degr "echo O > /proc/sysrq-trigger ; halt -f";
pri-lost-after-sb "echo O > /proc/sysrq-trigger ; halt -f";
local-io-error "echo O > /proc/sysrq-trigger ; halt -f";
# outdate-peer "/usr/sbin/drbd-peer-outdater";
}
startup {
# wfc-timeout 0;
degr-wfc-timeout 120; # 2 minuti.
}
disk {
on-io-error detach;
}
net {
after-sb-0pri disconnect;
after-sb-1pri disconnect;
after-sb-2pri disconnect;
rr-conflict disconnect;
}
syncer {
# rate 10M;
# after "r2";
al-extents 257;
}
on filer01 {
device /dev/drbd0;
disk /dev/sda3;
address 10.188.188.1:7788;
meta-disk internal;
}
on filer02 {
device /dev/drbd0;
disk /dev/sda3;
address 10.188.188.2:7788;
meta-disk internal;
}
}
resource vg0drbd {
protocol C;
startup {
wfc-timeout 0; ## Infinito!
degr-wfc-timeout 120; ## 2 minuti.
}
disk {
on-io-error detach;
}
net {
# timeout 60;
# connect-int 10;
# ping-int 10;
# max-buffers 2048;
# max-epoch-size 2048;
}
syncer {
after "cluster_metadata";
}
on filer01 {
device /dev/drbd1;
disk /dev/sda5;
address 10.188.188.1:7789;
meta-disk internal;
}
on filer02 {
device /dev/drbd1;
disk /dev/sda5;
address 10.188.188.2:7789;
meta-disk internal;
}
}Entrambi gli host necessitano dello stesso drbd.conf, quindi il file drbd.conf da filer01 sarà copiato su filer02:
root@filer01 ~# scp /etc/drbd.conf root@filer02:/etc/drbd.confInizializza i metadati su /dev/drbd0 (cluster_metadata) e /dev/drbd1 (vg0drbd) su entrambi i nodi:
root@filer01 ~# drbdadm create-md cluster_metadata
root@filer01 ~# drbdadm create-md vg0drbd
root@filer02 ~# drbdadm create-md cluster_metadata
root@filer02 ~# drbdadm create-md vg0drbd
Nota: se i comandi sopra generano errori riguardanti la necessità di azzerare il file system, utilizzare il seguente comando:
root@filer01 ~# dd if=/dev/zero of=/dev/sda3Fai attenzione con questo comando e assicurati che sia sul disco corretto.
Prima di avviare il servizio DRBD, assicurati che la partizione utilizzata per drbd0 (nella risorsa cluster_metadata nel file drbd.conf) non sia già montata (cosa che sarà di default se è stata creata durante l’installazione).
root@filer01 ~# umount /dev/sda3Ora, avvia DRBD su entrambi gli host:
root@filer01 ~# service drbd start root@filer02 ~# service drbd startSe tutto va bene, dovrebbero connettersi e l’esecuzione di “service drbd status” dovrebbe presentare un output simile al seguente:
root@filer1 /# service drbd statusdrbd driver caricato correttamente; stato del dispositivo:
versione: 8.0.12 (api:86/proto:86)
GIT-hash: 5c9f89594553e32adb87d9638dce591782f947e3 compilato da phil@mescal, 2008-04-24 13:29:44
m:res cs st ds p montato fstype
0:cluster_metadata Connesso Secondario/Secondario Incoerente/Incoerente C
1:vg0drbd Connesso Secondario/Secondario Incoerente/Incoerente C
Una volta che entrambe le risorse drbd sono connesse e entrambi i nodi sono nello stato Secondario (come sopra), imposta un nodo Primario:
root@filer01 ~# drbdsetup /dev/drbd0 primary -o
root@filer01 ~# drbdsetup /dev/drbd1 primary -o
Questo dovrebbe darti un risultato di stato simile al seguente:
root@filer1 /# service drbd statusdrbd driver caricato correttamente; stato del dispositivo:
versione: 8.0.12 (api:86/proto:86)
GIT-hash: 5c9f89594553e32adb87d9638dce591782f947e3 compilato da phil@mescal, 2008-04-24 13:29:44
m:res cs st ds p montato fstype
… sincronizzato: 17.9% (247232/297152)K
0:cluster_metadata SyncSource? Primario/Secondario Aggiornato/Incoerente C
1:vg0drbd PausaSyncS? Primario/Secondario Aggiornato/Incoerente C
Nota: se il vg0drbd LVM è grande, ci vorrà molto tempo per sincronizzarlo (forse tutta la notte).
Abilita DRBD per avviarsi all’avvio:
root@filer01 ~# chkconfig –level 2345 drbd on
root@filer02 ~# chkconfig –level 2345 drbd on
Ora crea il filesystem cluster_metadata. Usa questa partizione da 512 MB per mantenere tutti i dati di configurazione di Openfiler e i dati per i servizi che dovrebbero essere disponibili in HA (es. NFS, iSCSI, SMB).
root@filer01 ~# mkfs.ext3 /dev/drbd0Non aggiungere questa partizione a un /etc/fstab, poiché è gestita da Heartbeat (e sarà configurata a breve).
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.