NFS vs. NBD – Zdalny dostęp do danych w Linuksie: różnice, konfiguracja i zastosowanie
W środowiskach serwerowych i systemach wbudowanych bardzo często zachodzi potrzeba zdalnego udostępniania danych lub przestrzeni dyskowej. W świecie Linuksa istnieją dwa popularne podejścia: NFS (Network File System) oraz NBD (Network Block Device). Mimo podobnego celu – udostępniania danych przez sieć – działają one zupełnie inaczej.
W tym artykule pokażemy, czym różnią się NFS i NBD, kiedy warto ich używać, i jak je skonfigurować – zarówno po stronie serwera, jak i klienta.
Czym jest NFS?
NFS (Network File System) to protokół opracowany przez Sun Microsystems, który umożliwia zdalne montowanie systemu plików. Dzięki NFS użytkownik może korzystać z plików znajdujących się na innym komputerze tak, jakby były lokalne.
Instalacja i konfiguracja NFS
🔹 Serwer NFS
sudo apt update
sudo apt install nfs-kernel-server
Edytujemy plik /etc/exports
:
/mnt/dane 192.168.1.0/24(rw,sync,no_subtree_check)
Następnie:
sudo mkdir -p /mnt/dane
sudo chown user:group /mnt/dane
sudo exportfs -a
sudo systemctl restart nfs-kernel-server
🔹 Klient NFS
sudo apt install nfs-common
sudo mount 192.168.1.10:/mnt/dane /mnt/nfs
Aby montować automatycznie przy starcie systemu, dodajemy do /etc/fstab
:
192.168.1.10:/mnt/dane /mnt/nfs nfs defaults 0 0
Czym jest NBD?
NBD (Network Block Device) to inny sposób udostępniania danych – na poziomie bloków, a nie plików. Działa bardziej jak wirtualny zdalny dysk niż katalog sieciowy. Umożliwia klientowi dostęp do całej zdalnej partycji lub obrazu dysku tak, jakby był to lokalny dysk.
To idealne rozwiązanie m.in. do systemów rootfs przez sieć, backupów, klastrów czy rozproszonego RAID.
Konfiguracja NBD
🔹 Serwer (nbd-server)
sudo apt install nbd-server
Przykład konfiguracji /etc/nbd-server/config
:
[generic]
user = nbd
group = nbd
[nazwa1]
exportname = /dev/sdb1
port = 10809
Uruchamiamy serwer:
sudo systemctl restart nbd-server
🔹 Klient (nbd-client)
sudo apt install nbd-client
sudo nbd-client 192.168.1.10 10809 /dev/nbd0
sudo mount /dev/nbd0 /mnt
Odłączenie:
sudo umount /mnt
sudo nbd-client -d /dev/nbd0
NFS vs. NBD – Kiedy używać?
Cecha | NFS | NBD |
---|---|---|
Poziom działania | Plikowy | Blokowy (urządzenia) |
Typ dostępu | Pliki i katalogi | Całe partycje lub obrazy dysków |
Montowanie | Jako system plików | Jako urządzenie blokowe (/dev/nbdX ) |
Typowe zastosowania | Udostępnianie katalogów | Remote rootfs, RAID, backup |
Wydajność | Dobra przy wielu małych plikach | Lepsza przy dużych, ciągłych danych |
Protokół i port | NFS (port 2049) | TCP (domyślnie port 10809) |