NFS Server · 3 min read · Nov 18, 2025
Impostare un server NFS ad alta disponibilità - Pagina 4
8 Installa e configura heartbeat
heartbeat è l’istanza di controllo di tutta questa configurazione. Sarà installato su server1 e server2, e monitora l’altro server. Ad esempio, se server1 si arresta, heartbeat su server2 lo rileva e fa prendere il controllo a server2. heartbeat avvia e ferma anche il server NFS su entrambi server1 e server2. Fornisce anche NFS come servizio virtuale tramite l’indirizzo IP 192.168.0.174 in modo che i nodi del cluster del server web vedano solo un server NFS.
Prima installiamo heartbeat:
server1/server2:apt-get install heartbeat
Ora dobbiamo creare tre file di configurazione per heartbeat. Devono essere identici su server1 e server2!
server1/server2:/etc/heartbeat/ha.cf:
| logfacility local0 keepalive 2 #deadtime 30 # USE THIS!!! deadtime 10 bcast eth0 node server1 server2 |
Come nomi dei nodi dobbiamo usare l’output di uname -n su server1 e server2.
server1/server2:/etc/heartbeat/haresources:
| server1 IPaddr::192.168.0.174/24/eth0 drbddisk::r0 Filesystem::/dev/drbd0::/data::ext3 nfs-kernel-server |
La prima parola è l’output di uname -n su server1, non importa se crei il file su server1 o server2! Dopo IPaddr mettiamo il nostro indirizzo IP virtuale 192.168.0.174, e dopo drbddisk usiamo il nome della risorsa del nostro DRBD che è r0 qui (ricorda, questo è il nome della risorsa che usiamo in /etc/drbd.conf - se usi un altro, devi usarlo anche qui).
server1/server2:/etc/heartbeat/authkeys:
| auth 3 3 md5 somerandomstring |
somerandomstring è una password che i due demoni heartbeat su server1 e server2 usano per autenticarsi l’uno con l’altro. Usa la tua stringa qui. Hai la scelta tra tre meccanismi di autenticazione. Io uso md5 poiché è il più sicuro.
/etc/heartbeat/authkeys dovrebbe essere leggibile solo da root, quindi facciamo questo:
server1/server2:chmod 600 /etc/heartbeat/authkeys
Infine avviamo DRBD e heartbeat su server1 e server2:
server1/server2:/etc/init.d/drbd start
/etc/init.d/heartbeat start
9 Primi test
Ora possiamo fare i nostri primi test. Su server1, esegui
server1:ifconfig
Nell’output, l’indirizzo IP virtuale 192.168.0.174 dovrebbe apparire:
| eth0 Link encap:Ethernet HWaddr 00:0C:29:A1:C5:9B inet addr:192.168.0.172 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fea1:c59b/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:18992 errors:0 dropped:0 overruns:0 frame:0 TX packets:24816 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2735887 (2.6 MiB) TX bytes:28119087 (26.8 MiB) Interrupt:177 Base address:0x1400 eth0:0 Link encap:Ethernet HWaddr 00:0C:29:A1:C5:9B inet addr:192.168.0.174 Bcast:192.168.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:177 Base address:0x1400 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:71 errors:0 dropped:0 overruns:0 frame:0 TX packets:71 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:5178 (5.0 KiB) TX bytes:5178 (5.0 KiB) |
Inoltre, esegui
server1:df -h
su server1. Dovresti vedere /data elencato lì ora:
| Filesystem Size Used Avail Use% Mounted on /dev/sda5 4.6G 430M 4.0G 10% / tmpfs 126M 0 126M 0% /dev/shm /dev/sda1 89M 11M 74M 13% /boot /dev/drbd0 24G 33M 23G 1% /data |
Se fai lo stesso
server2:ifconfig
df -h
su server2, non dovresti vedere 192.168.0.174 e /data.
Ora creiamo un file di test in /data/export su server1 e poi simuliamo un guasto del server di server1 (fermandolo heartbeat):
server1:touch /data/export/test1
/etc/init.d/heartbeat stop
Se esegui ifconfig e df -h su server2 ora, dovresti vedere l’indirizzo IP 192.168.0.174 e la partizione /data, e
server2:ls -l /data/export
dovrebbe elencare il file test1 che hai creato su server1 prima. Quindi è stato replicato su server2!
Ora creiamo un altro file di test su server2 e vediamo se viene replicato su server1 quando si riaccende:
server2:touch /data/export/test2
server1:/etc/init.d/heartbeat start
(Attendi qualche secondo.)
ifconfig
df -h
ls -l /data/export
Dovresti vedere 192.168.0.174 e /data di nuovo su server1, il che significa che ha ripreso il controllo (perché lo abbiamo definito come primario), e dovresti anche vedere il file /data/export/test2!
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.