Udostępnianie zasobów dyskowych w sieci lokalnej przy pomocy Network File System
Ostatnia zmiana: 2016-01-17 16:16

NFS umożliwia udostępnianie zasobów dyskowych i jest de facto standardem w sieciach uniksowych. W OpenWrt można zarówno montować jak i udostępniać zasoby dyskowe przy pomocy NFS.

Założenie - w systemie jest katalog który chcemy udostępnić - czy to katalog systemowy, czy podmontowany dysk. W tym przykładzie będzie udostępniony katalog /mnt. System plików na nośniku (ext2/ext3/vfat) nie ma znaczenia, byle by ten katalog był dostępny normalnie dla rutera.

W OpenWrt można znaleźć kilka implementacji serwera NFS.

nfs-kernel-server

Działa w przestrzeni jądra i powinien być najszybszą i najwydajniejszą implementacją.

Instalacja



    # opkg update
    # opkg install nfs-kernel-server

Zostaną zainstalowane także inne pakiety wynikające z zależności.

Konfiguracja

Odbywa się poprzez edycję pliku /etc/exports. W przykładnie udostępniamy katalog /mnt:


    /mnt/ *(ro,all_squash,insecure,sync,fsid=0)

Można udostępnić inne katalogi, także dla określonych komputerów w określonym trybie dostępu:


    /mnt/sda1   192.168.1.2,192.168.1.3,192.168.1.4(ro,sync,no_subtree_check,fsid=0)
    /mnt/sda2   192.168.1.2(rw,sync,no_subtree_check,fsid=0)
    /mnt/sda3   192.168.1.3(rw,sync,no_subtree_check,fsid=0)

Uruchomienie



    # /etc/init.d/portmap enable
    # /etc/init.d/portmap start
    # /etc/init.d/nfsd enable
    # /etc/init.d/nfsd start

unfs3

Implementacja NFS w przestrzeni użytkownika.

Instalacja



    # opkg install unfs3


Konfiguracja

Podobnie jak w przypadku normalnego NFS. Patrz przykłady wyżej.

Uruchomienie



    # /etc/init.d/portmap enable
    # /etc/init.d/portmap start
    # /etc/init.d/unfs3 enable
    # /etc/init.d/unfs3 start

Informacje dodatkowe

overlay

Jeżeli mamy extroot to "normalne" udostępnianie może powodować błąd nfs. Należy wskazać pierwotnie miejsce na dysku, czyli w katalogu /overlay - jeżeli chcemy udostępnić katalog /mnt/dane to podajemy:


    /overlay/mnt/dane	*(ro,all_squash,insecure,sync)

ipv6

Jeżeli w logach pojawia się informacja typu


    Jan  1 01:01:08 OpenWrt user.warn kernel: svc: failed to register lockdv1 RPC service (errno 124)

i używamy ipv6 to oznacza że używana wersja rpc.nfsd nie obsługuje ipv6. Należy poszukać innej.

Konfiguracja klienta

Jeżeli używamy linuksa:


    $ sudo mkdir -p /tmp/test
    $ sudo mount -t nfs 192.168.1.1:/mnt /tmp/test