Probíhá hledání...

Jak připojit NFS - distribuce Debian/Ubuntu

Úvod

NFS (Network File System) je distribuovaný protokol souborového systému, který vám umožňuje se připojovat k serveru vzdálené adresáře. To umožňuje využívat úložný prostor na jiném místě a snadno zapisovat do stejného prostoru z více serverů. Systém NFS se dobře hodí pro adresáře, ke kterým bude třeba pravidelně přistupovat.

Předpoklady:

V této příručce budeme konfigurovat sdílení adresářů mezi dvěma servery. Ty mohou mít libovolnou velikost. Pro každý z těchto serverů budete muset mít nastaven účet s právy sudo. Pro účely této příručky budeme server, který bude sdílet své adresáře, označovat jako hostitele a server, který bude tyto adresáře připojovat, jako klienta. Abychom si je v celé příručce udrželi přehledně, budu jako zástupné hodnoty pro hostitele a server používat následující IP adresy:

  • Hostitel: 1.2.3.4
  • Klient: 111.111.111.111

Výše uvedené hodnoty byste měli nahradit vlastními hodnotami hostitele a klienta.

Stažení a instalace

Než budeme moci začít, musíme nainstalovat potřebné komponenty na hostitelský i klientský server. Na hostitelském serveru musíme nainstalovat nfs-kernel-server:

sudo apt-get update sudo apt-get install nfs-kernel-server

Jakmile jsou tyto balíčky nainstalovány, můžete se přepnout na klientský počítač: Na klientském počítači budeme muset nainstalovat balíček s názvem "nfs-common":

sudo apt-get update sudo apt-get install nfs-common

Vytvoření sdíleného adresáře na hostitelském serveru

Během tohoto návodu budeme experimentovat se sdílením dvou samostatných adresářů. Prvním adresářem, který budeme sdílet, je adresář

/home

který obsahuje uživatelská data. Druhým je adresář pro obecné účely, který vytvoříme speciálně pro systém NFS, abychom si mohli ukázat správné postupy a nastavení. Ten bude umístěn na adrese:

/var/nfs

Vzhledem k tomu, že

/home

již existuje, začněte vytvořením adresáře:

/var/nfs

adresář:

sudo mkdir /var/nfs

Nyní máme nový adresář určený speciálně pro sdílení se vzdálenými hostiteli. Vlastnictví adresáře však není ideální. Měli bychom ho přidělit uživateli v našem systému s názvem

nobody

Vlastnictví skupiny bychom měli přidělit skupině v našem systému s názvem

nogroup

To můžeme provést zadáním tohoto příkazu:

sudo chown nobody:nogroup /var/nfs

Musíme změnit vlastnictví pouze u adresářů, které se používají speciálně pro sdílení. Nechtěli bychom měnit vlastnictví našich:

/home

protože by to způsobilo velké množství problémů všem uživatelům, které máme na našem hostitelském serveru.

Konfigurace exportů systému NFS na hostitelském serveru

Nyní, když máme vytvořeny a přiřazeny naše adresáře, můžeme se ponořit do konfiguračního souboru systému NFS a nastavit sdílení těchto prostředků. Otevřete soubor

/etc/exports

v textovém editoru s právy roota:

sudo nano /etc/exports

Soubory, které uvidíte, budou obsahovat několik komentářů, které vám ukáží obecnou strukturu jednotlivých konfiguračních řádků. Syntaxe je v podstatě následující: directory_to_share client(share_option1,...,share_optionN) Chceme tedy vytvořit řádek pro každý z adresářů, které chceme sdílet. Protože v tomto příkladu má náš klient IP adresu:

111.111.111.111

budou naše řádky vypadat takto:

/home 111.111.111.111(rw,sync,no_root_squash,no_subtree_check)
/var/nfs 111.111.111.111(rw,sync,no_subtree_check)

Vysvětlili jsme zde vše kromě konkrétních možností, které jsme povolili. Ty si nyní projdeme.

  • rw: Toto nastavení umožňuje klientskému počítači přístup ke svazku jak pro čtení, tak pro zápis.
  • sync: Tato volba nutí systém NFS zapisovat změny na disk předtím, než odpoví. Výsledkem je stabilnější a konzistentnější prostředí, protože odpověď odráží aktuální stav vzdáleného svazku.
  • nosubtreecheck: Touto volbou se zabrání kontrole podstromů, což je proces, při kterém musí hostitel při každém požadavku zkontrolovat, zda je soubor v exportovaném stromu skutečně stále k dispozici. To může způsobit řadu problémů, pokud je soubor přejmenován v době, kdy jej má klient otevřený. Téměř ve všech případech je lepší kontrolu podstromů zakázat.
  • norootsquash: Ve výchozím nastavení překládá systém NFS požadavky od uživatele root na dálku na neprivilegovaného uživatele na serveru. Mělo jít o bezpečnostní funkci, která nedovolí účtu root na klientovi používat souborový systém hostitele jako root. Tato příkaz to u některých sdílení zakazuje.

Po dokončení změn soubor uložte a zavřete. Dále byste měli vytvořit tabulku NFS, která obsahuje exporty vašich sdílených souborů, zadáním příkazu:

sudo exportfs -a

Služba NFS však ve skutečnosti ještě není spuštěna. Můžete ji spustit zadáním:

sudo service nfs-kernel-server restart

Tím zpřístupníte sdílené soubory klientům, které jste nakonfigurovali.

Vytvoření přípojných bodů a připojení vzdálených sdílených složek na klientském serveru

Nyní, když je váš hostitelský server nakonfigurován a zpřístupňuje své sdílené adresáře, musíme připravit našeho klienta. budeme muset připojit vzdálené sdílené soubory, takže vytvořme několik přípojných bodů. Použijeme tradiční

/mnt

jako výchozí bod a vytvoříme adresář s názvem:

nfs

Pod ním vytvoříme adresář nfs, aby naše sdílené složky byly konsolidované. skutečné adresáře budou odpovídat jejich umístění na hostitelském serveru. Jednotlivé adresáře a potřebné nadřazené adresáře vytvoříme zadáním tohoto příkazu:

sudo mkdir -p /mnt/nfs/home
sudo mkdir -p /mnt/nfs/var/nfs

Nyní, když máme kam umístit naše vzdálené sdílené soubory, můžeme je připojit prostřednictvím oslovení našeho hostitelského serveru, což je v tomto návodu

1.2.3.4

takto:

sudo mount 1.2.3.4:/home /mnt/nfs/home sudo mount 1.2.3.4:/var/nfs /mnt/nfs/var/nfs

Tyto příkazy by měly připojit sdílené soubory z našeho hostitelského počítače na náš klientský počítač. Můžeme to překontrolovat tak, že se podíváme na dostupné místo na disku našeho klientského serveru:

df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda 59G 1.3G 55G 3% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
udev 2.0G 12K 2.0G 1% /dev
tmpfs 396M 324K 396M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 2.0G 0 2.0G 0% /run/shm
none 100M 0 100M 0% /run/user
1.2.3.4:/home 59G 1.3G 55G 3% /mnt/nfs/home

Jak vidíte dole, zobrazil se pouze jeden z našich podílů. Je to proto, že obě sdílené složky, které jsme exportovali, se nacházejí ve stejném filesystému na vzdáleném serveru, což znamená, že sdílejí stejný úložný prostor. Aby bylo možné

Avail

a aby

Use%

sloupce zůstaly přesné, lze do výpočtů přidat pouze jednu sdílenou složku.Pokud chcete zobrazit všechny připojené sdílené složky NFS, můžete zadat:

mount -t nfs
1.2.3.4:/home on /mnt/nfs/home type nfs
(rw,vers=4,addr=1.2.3.4,clientaddr=111.111.111.111)
1.2.3.4:/var/nfs on /mnt/nfs/var/nfs type nfs
(rw,vers=4,addr=1.2.3.4,clientaddr=111.111.111.111)

Zobrazí se všechna připojení NFS, která jsou v současné době přístupná na klientském počítači.

Otestování přístupu k systému NFS

Přístup ke sdílené složce můžete otestovat tak, že do ní něco zapíšete. Do jedné ze sdílených složek můžete zapsat testovací soubor takto:

sudo touch /mnt/nfs/home/test_home

Zapíšeme testovací soubor i do druhého sdílení, abychom demonstrovali důležitý rozdíl:

sudo touch /mnt/nfs/var/nfs/test_var_nfs

Podívejte se na vlastnictví souboru v připojeném domovském adresáři:

ls -l /mnt/nfs/home/test_home

-rw-r--r-- 1 root root 0 Apr 30 14:43 test_home

Jak vidíte, vlastníkem souboru je root. Je to proto, že jsme zakázali

root_squash

která by soubor zapsala jako anonymní uživatel, který není rootem.V našem druhém testovacím souboru, který byl připojen pomocí příkazu

root_squash

uvidíme něco jiného:

ls -l /mnt/nfs/var/nfs/test_var_nfs

-rw-r--r-- 1 nobody nogroup 0 Apr 30 14:44 test_var_nfs

Jak vidíte, tento soubor byl přiřazen uživateli "nobody" a skupině "nogroup". To odpovídá naší konfiguraci.

Automatické připojování vzdálených adresářů NFS

Připojování našich vzdálených sdílených adresářů NFS můžeme učinit automatickým přidáním do našeho adresáře

fstab

v klientovi. Tento soubor otevřete s právy roota v textovém editoru:

sudo nano /etc/fstab

Na konec souboru přidáme řádek pro každou z našich sdílených složek. Budou vypadat takto:

1.2.3.4:/home /mnt/nfs/home nfs auto,noatime,nolock,bg,nfsvers=4,intr,tcp,actimeo=1800 0 0
1.2.3.4:/var/nfs /mnt/nfs/var/nfs nfs auto,noatime,nolock,bg,nfsvers=4,sec=krb5p,intr,tcp,actimeo=1800 0 0

Volby, které zde zadáváme, lze nalézt v manuálové stránce, která popisuje připojování NFS v souboru

fstab

soubor:

man nfs

Tím se vzdálené oddíly automaticky připojí při spuštění systému (může chvíli trvat, než se vytvoří spojení a zpřístupní se sdílené oddíly).

Odpojení vzdáleného úložiště NFS

Pokud již nechcete, aby byl vzdálený adresář v systému připojen, můžete jej snadno odpojit tak, že se přesunete z adresářové struktury sdílené složky a odpojíte ji takto:

cd ~
sudo umount /mnt/nfs/home
sudo umount /mnt/nfs/var/nfs

Tím odstraníte vzdálené úložiště a zůstane přístupné pouze místní úložiště:

df -h

Filesystem Size Used Avail Use% Mounted on
/dev/vda 59G 1.3G 55G 3% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
udev 2.0G 12K 2.0G 1% /dev
tmpfs 396M 320K 396M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 2.0G 0 2.0G 0% /run/shm
none 100M 0 100M 0% /run/user

Jak vidíte, naše sdílené soubory NFS již nejsou k dispozici jako úložný prostor.

Závěr

Systém NFS poskytuje rychlý a snadný způsob přístupu ke vzdáleným systémům prostřednictvím sítě. Samotný protokol však není šifrovaný. Pokud jej používáte v produkčním prostředí, zvažte směrování systému NFS přes SSH nebo připojení VPN, abyste vytvořili bezpečnější prostředí.

Komentáře

Pro odeslání komentáře je nutno být přihlášen