cs:navody:nfs:start

NFS

CESNET nabízí velké prostory (v řádech stovek TB) pro ukládání dat přístupné přes protokol NFSv4.

Tyto úložné prostory si můžete zpřístupnit i na svém osobním stroji. Tato stránka obsahuje návod jak to udělat na strojích s operačním systémem Linux. Pro MS-Windows bohužel neexistuje klient NFSv4, který by byl zdarma, existuje pouze komerční NFS Maestro.

Pro zajištění bezpečnosti dat je vyžadované připojení ověřené přes systém Kerberos. To, v závislosti na použitých přepínačích příkazu mount, umožňuje komunikaci i šifrovat.

Co budete potřebovat

Pro zpřístupnění NFSv4 ze serverů CESNETu poskytujících tyto souborové systémy na svůj Linux desktop budete potřebovat následující věci:

  • Správně nastavený hostname, který lze resolvovat, lze ověřit pomocí:
    • ping -c 1 ``hostname``
    • ping -c 1 ``hostname -f``
  • prázdný adresář jako bod pro namountování
  • nainstalovanou podporu Kerberos
  • kerberos lístek umožňující připojení svazku (lístek dostupný pod uživatelem root, případně keytab)
  • kerberos lístek pro přístup k datům (dostupný pod uživatelem, pod kterým pracujete)
  • správně vyplněný /etc/krb5.conf, více v sekci Kerberos, lze použít např. tento (pokud montujete i úložiště z MetaCentra, čtěte určitě sekci Kerberos)
  • root účet na svém stroji
  • správně nastavený systémový čas
  • V případě, že používáte distribuci CentOS 5.8 budete ještě potřebovat
    • Kernel verze 2.6.18-308.4 nebo novější (jinak v NFS svazku budete dostávat hlášku: cd: [adresář]: Not a directory)
    • nfs-utils verze 1.0.9-61, ke stažení zde (jinak svazek nepůjde připojit s hláškou Permission denied)
  • Pro všechny stroje vyjma mobilních klientů doporučujeme mít ve svém hostname v /etc/hosts přidán kanonický název (výstup z hostname -f), např:
198.51.100.10   mujklient.domena.cz mujklient
Aktuální IPv4 adresy serverů (hostů) pro jednotlivá datacentra:
Jihlava nfs.du2.cesnet.cz
Brno nfs.du3.cesnet.cz
Ostrava nfs.du4.cesnet.cz
Jihlava nfs.du5.cesnet.cz
Aktuální IPv6 adresy serverů (hostů) pro jednotlivá datacentra:
Jihlava nfs6.du2.cesnet.cz
Brno nfs6.du3.cesnet.cz
Ostrava nfs6.du4.cesnet.cz
Služby na IPv6 jsou provozovány v pilotním režimu.

Adresář pro připojení svazku

Sdílený prostor je třeba mapovat do nějakého adresáře. Doporučujeme dodržovat konvenci zavedenou v MetaCentru, tj. podadresář v /storage. Vytvořte si tedy prázdný adresář příkazem:

mkdir -p /storage/cesnet-du1

Kerberos lístek umožňující připojení svazku

Pro přípojení (mount) svazku je potřeba získat lístek dostupný pod uživatelem root. Ten lze získat 2 způsoby:

  • Použijete uživatelský lístek s omezenou platností
  • Využijete údaje uložené v keytabu /etc/krb5.keytab

V závislosti na použitém způsobu se pak částečně liší nastavení klientských nástrojů.

Použijete uživatelský lístek s omezenou platností

Pod uživatelem root je potřeba vytvořit lístek pomocí příkazu

kinit user@EINFRA

kde user je vaše přihlašovací jméno. Ověření platnosti lístku je popsáno na vlastní stránce. Nevýhodou tohoto postupu je omezená platnost lístku a tudíž omezená doba připojení svazku, po vypršení lístku na svazek již nelze přistoupit. Maximálně doba připojení svazku pomocí této metody je 8 dní (maximální doba platnosti obnovovatelného lístku).

Tato metoda vyžaduje zadávat heslo a nelze tudíž vytváření lístku automatizovat např. pomocí cronu.

Využijete údaje uložené v keytabu /etc/krb5.keytab

Trvalý keytab pro uživatele a servisní účty lze získat následujícím způsobem:

ssh -o PubkeyAuthentication=no -o GSSAPIAuthentication=no USER@SERVER "remctl kdccesnet.ics.muni.cz accounts nfskeytab" > krb5.keytab

kde USER je vaše jméno (nebo jméno servisního účtu) používané v EINFRA a SERVER zvolíte na základě toho, kam potřebujete přistupovat (např. pro ostravské pole „ssh.du4.cesnet.cz“).

Je nezbytné, aby ssh příkaz byl autentizován heslem a nikoli klíčem či jiným způsobem. Bez zadání hesla nebude remctl příkaz fungovat.

Takto získaný soubor krb5.keytab umístěte do /etc/krb5.keytab.

Pokud již soubor /etc/krb5.keytab existuje, je potřeba provést „merge“ těchto souborů. Postup se liší dle verze Kerberos knihoven a je popsán například tady .

Vlastník souboru by měl být root a práva na čtení či zápis by měl mít pouze root, tedy:

 # ls -l /etc/krb5.keytab 
-rw------- 1 root root 57 Nov  2 09:48 /etc/krb5.keytab
Keytab soubor obsahuje principál ve tvaru nfs/USER@EINFRA a heslo. Komukoliv, kdo tento soubor může přečíst umožňuje vydávat se za takto uložený účet a tudíž připojit si NFS svazek. V některých speciálních případech může být výhodné, aby soubor mohli číst ještě jiné, servisní účty. V tomto případě je výhodnější soubor zkopírovat a kopii dát práva pro čtení a zápis jen pro daný servisní účet. Detailněji je toto popsáno níže.
Jelikož je heslo pro daný účet již uloženo v keytabu, nevyžaduje tato metoda zadávat heslo a lze ji tak použít pro automatické připojování svazků.

Klientské NFS nástroje

Doporučujeme nainstalovat nástroje dostupné z našich repozitářů. Tyto balíky již obsahují patche pro správnou funkci některých vlastností. Debian9 / Ubuntu18.04 (i386/amd64)

apt update
apt install nfs-common libnfsidmap2

Debian6 / Ubuntu12.04 (i386/amd64)

wget ftp://homeproj.cesnet.cz/apt/du/du_squeeze.list -O /etc/apt/sources.list.d/cesnet-du.list
wget ftp://homeproj.cesnet.cz/apt/du/APT-GPG-KEY-du -O - | apt-key add -
apt-get update
apt-get install nfs-common libnfsidmap2

Debian8 (i386/amd64)

wget ftp://homeproj.cesnet.cz/apt/du/du_jessie.list -O /etc/apt/sources.list.d/cesnet-du.list
wget ftp://homeproj.cesnet.cz/apt/du/APT-GPG-KEY-du -O - | apt-key add -
apt-get update
apt-get install nfs-common libnfsidmap2 libnfsidmap-dev

openSUSE12 (pouze x86_64)

zypper addrepo ftp://homeproj.cesnet.cz/rpm/du-opensuse/stable/x86_64/
zypper install --no-recommends nfs-client libnfsidmap

CentOS6 (pouze x86_64)

wget https://du.cesnet.cz/_media/cs/navody/nfs/cesnet-du.repo -O /etc/yum.repos.d/cesnet-du.repo
yum install nfs-utils nfs-utils-lib


Pro jiné OS doporučujeme mít nainstalován nfs-utils verze 1.1.0 a vyšší.

Zároveň budete potřebovat běžící rpcbind nebo ve starších distribucích portmap. Měl by se nainstalovat v závislostech na nfs-utils. V opačném případě jde o stejnojmenný balíček (tj. portmap, rpcbind).

Nastavení nfs-utils pro NFSv4

Po úpravě konfigurace je nutné dané služby NFS restartovat.
V případě, že připojujete NFS pomocí obyčejného lístku, je nutné před startem dané služby NFS (nfs-common na Debian, Ubuntu verze nižší než 12.04, service gssd Ubuntu 12.04 a novější) mít získaný lístek pod uživatelem root.

Po správném nastavení nfs-utils by již mělo být možné připojit svazek pod uživatelem root. Stále je však nutné provést další kroky.

Použiváte uživatelský lístek s omezenou platností

Debian/Ubuntu

Nastavení nfs-utils je v souboru /etc/default/nfs-common. Nastavíme hodnoty následovně:

NEED_STATD=yes
STATDOPTS=
NEED_IDMAPD=yes
NEED_GSSD=yes

Dále je potřeba v /etc/default/nfs-common přidat řádek (pro Debian a Ubuntu verze nižší než 12.04):

RPCGSSDOPTS="-n"

Pro Ubuntu 12.04 - 16.04 je změna v /etc/init/gssd.conf: Původní řádek tvaru:

exec rpc.gssd

nahraďte řádkem:

exec rpc.gssd -n  

Po těchto změnách je nutno službu restartovat, běžela-li již (nfs-common/service gssd).

openSUSE

Nastavení nfs-utils je v souboru /etc/sysconfig/nfs. Nastavíme alespoň tyto hodnoty:

NFS_SECURITY_GSS="yes"
NFS4_SUPPORT="yes"  
RPCGSSDARGS="-n"
Fedora

Nastavení nfs-utils je v souboru /etc/sysconfig/nfs. Nastavíme alespoň tyto hodnoty:

SECURE_NFS="yes"  
RPCGSSDARGS="-n"
CentOS 6

Nastavení nfs-utils je v souboru /etc/sysconfig/nfs. Nastavíme alespoň tyto hodnoty:

SECURE_NFS="yes"  
RPCGSSDARGS="-n"

Využijete údaje uložené v keytabu ''/etc/krb5.keytab''

Debian/Ubuntu

Nastavení nfs-utils je v souboru /etc/default/nfs-common. Nastavíme hodnoty následovně:

NEED_STATD=yes
STATDOPTS=
NEED_IDMAPD=yes
NEED_GSSD=yes      
openSUSE

Nastavení nfs-utils je v souboru /etc/sysconfig/nfs. Nastavíme alespoň tyto hodnoty:

NFS_SECURITY_GSS="yes"
NFS4_SUPPORT="yes"
Fedora

Nastavení nfs-utils je v souboru /etc/sysconfig/nfs. Nastavíme alespoň tuto hodnotu:

SECURE_NFS="yes"
CentOS 6

Nastavení nfs-utils je v souboru /etc/sysconfig/nfs. Nastavíme alespoň tuto hodnotu:

SECURE_NFS="yes"

Kerberos lístek pro přístup k datům

Uživatel root k přístupu na svazek nepotřebuje speciální lístek, stačí lístek pro příjení či keytab ''/etc/krb5.keytab''

Postup pomocí uživatelských lístků s nutností zadávat heslo

Pro přístup na připojený svazek pod jiným uživatelem než root je nutné získat uživatelský lístek pod identitou lokálního uživatele. To lze pomocí příkazu kinit.

$localuser@localhost > kinit USER@EINFRA
Password for USER@EINFRA: 

kde USER je Vaše jméno v EINFRA.

Vypsat platnost lístku lze následovně:

$localuser@localhost > klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: USER@EINFRA

Valid starting    Expires           Service principal
27/06/2012 13:52  28/06/2012 13:52  krbtgt/EINFRA@EINFRA
$USER@localhost >
Přístup pod tímto uživatelem do připojeného svazku je možný pouze po dobu platnosti lístku. Poté je nutné lístek získat znovu.

Postup pomocí keytabu bez nutností zadávat heslo

V některých speciálních případech (typicky pro zálohování) může být výhodné, aby speciální (servisní) uživatel mohl přistupovat k svazku bez nutnosti získávat lístek s nutností zadávat heslo. Toho lze docílit získáním uživatelského lístku z keytab souboru používaném pro přípojení svazku. V následujícím postupu budeme předpokládat, že jméno lokálního servisního uživatele je bacula.

Nejdříve zkopírujeme soubor /etc/krb5.keytab, který by měl být přístupný jen pro uživatele root do jiné lokace a nastavíme práva tak, aby uživatel bacula měl k souboru přístup:

root@localhost > cp /etc/krb5.keytab /etc/krb5.keytab.bacula
root@localhost > chown bacula:bacula /etc/krb5.keytab.bacula

Z tohoto souboru pak lze periodicky získávat lístek pomocí příkazu (pod uživatelem bacula):

bacula@localhost > kinit -k -t /etc/krb5.keytab.bacula nfs/USER@EINFRA 

Takto získáme lístek pod uživatelem bacula s platností jeden den. Příkaz již nevyžaduje zadávat heslo, jde proto automatizovat např. pomocí cronu.

Pokud Vám byla přiřazena speciální servisní identita, může se formát princpipálu trochu lišit, lze však získat postupem níže.

Správný formát principálu (řetězec nfs/USER@EINFRA) lze získat pomocí příkazu:

klist -k /etc/krb5.keytab.bacula
Keytab name: WRFILE:/etc/krb5.keytab.bacula
KVNO Principal
---- --------------------------------------------------------------------------
   1 nfs/USER@EINFRA

Nastavení /etc/fstab

Do souboru /etc/fstab dopsat řádek:

nfs.du1.cesnet.cz:/ /storage/cesnet-du1   nfs4   sec=krb5,rsize=1048576,wsize=1048576   0 0

díky čemuž pak není nutné svazky ručně připojovat příkazem mount.

Aktuální IPv4 adresy serverů (hostů) pro jednotlivá datacentra:
Jihlava nfs.du2.cesnet.cz
Brno nfs.du3.cesnet.cz
Ostrava nfs.du4.cesnet.cz
Jihlava nfs.du5.cesnet.cz
Aktuální IPv6 adresy serverů (hostů) pro jednotlivá datacentra:
Jihlava nfs6.du2.cesnet.cz
Brno nfs6.du3.cesnet.cz
Ostrava nfs6.du4.cesnet.cz
Služby na IPv6 jsou provozovány v pilotním režimu.
Volby rsize=1048576,wsize=1048576 mohou zlepšit výkon NFS zejména na delší vzdálenosti, jsou doporučené a není nezbytné je uvádět.

Potom je třeba spustit službu nfs a zajistit její automatický start po rebootu:

openSUSE

/etc/init.d/nfs start 
insserv /etc/init.d/nfs

Debian

/etc/init.d/nfs-common start

Ubuntu

service portmap start
service gssd start

CentOS 6

chkconfig rpcbind on
chkconfig nfs on
chkconfig rpcsvcgssd on
chkconfig rpcidmapd on
service nfs

CentOS 7

systemctl enable nfs-idmap
systemctl start nfs-idmap
systemctl enable nfs-secure
systemctl start nfs-secure

Nastavení /etc/idmapd.conf

Soubor /etc/idmapd.conf nastavuje mapování NFSv4 identit na lokální uživatele (NFSv4 pracuje s textovými principaly kerbera, POSIX rozhraní souborového systému pracuje s číselnou reprezentací uživatelů a skupin).

Jednoduché mapování

Jednoduché nastavení v souboru /etc/idmapd.conf spočívá v nastavení konfiguračního řádku do sekce [General]:

  Domain = EINFRA
Pokud používáte k přístupu lístek získaný z keytabu nebo speciálně přidělený servisní účet, budete ke správnému mapování potřebovat využít statického mapování.
Pokud Vám byl vytvořen servisní účet, použijte stejný realm EINFRA.
Od verze libnfsidmap 0.21 (debian 5 a vys) lze mit v sekci [General] v /etc/idmapd.conf polozku:
Local-Realms = realm1,realm2,realm3
pro více realmů (pouze speciální případy).
např.: Domain = META a Local-Realms = EINFRA

Pro správnou funkčnost je však potřeba mít nainstalovány naše klientské nástroje.


Pak budou uživatelé z domény @EINFRA mapováni pomocí souborů /etc/passwd a /etc/group. To znamená že pro identitu login@EINFRA musí existovat záznam v /etc/passwd se jménem login. Běžné nástroje (ls -l) budou zobrazovat jména a skupiny z domény EINFRA správně, bude-li pro jejich principal existovat jméno v daných souborech. Pro neexistující jméno se vybere mapování na uživatele nobody a skupinu nogroup.

Velmi pravděpodobně budete vidět vlastníka pouze u svých souborů (máte-li na svém počítači stejný login jako v EINFRA, v opačném případě uvidíte u všech souborů vlastníka nobody a skupinu nogroup), a u ostatních souborů vlastníka nobody a skupinu nogroup. Toto zobrazení nemá může mít vliv na přístupová práva k souborům, v závislosti na optimalizaci jádra klienta, ačkoliv je práva přístupu řeší až server podle jeho nastavení. Může se tedy stát, že při špatném nastavení mapování nepůjde některé operace provést, ačkoliv z pohledu serveru je vše v pořádku - klient žádost vůbec na server nepošle. Nemůže se však stát, že by vlivem špatného mapování klient dostal více práv, než ve skutečnosti má.

Současné verze nfs-utils sice nabízí možnost statického mapování uživatelů (užitečné ve chvíli, kdy je login na vašem počítači jiný než jaký používáte v EINFRA), ale implementace je zcela nefunkční. Nastavení funkčního statického mapování je složitější a je popsáno níže. Standardně podporovaná je pouze metoda mapování nsswitch, je tedy nutné mít v příslušnou sekci následovně:

[Translation]

Method = nsswitch

A nebo ji tam nemít vůbec, metoda nsswitch je implicitní.

Statické mapování

V některých případech není možné zajistit stejné uživatelské jméno uživatele na klientské straně jako na úložišti. Potom nemusí některé operace fungovat správně, například není možné využívat ENCFS nad svazkem připojeným přes NFS. Pro funkční statické mapování je nutné použít novější verzi programu libnfsidmapd, která již obsahuje tento patch.

Pokud jste instalovali klientské nástroje z našich repozitářů, budete mít libnfsidmap s tímto patchem již nainstalován.
Pokud vaše distribuce obsahuje balík nfs-utils (někdy nfs-common) ve verzi nižší než 1.2.6, je velmi pravděpododbné, že nebude opravena chyba způsobující špatné parsování konfiguračního souboru idmapd.conf

Pro kompilaci je nejprve potřeba stáhnout poslední verzi libnfsidmap:

cd ~/
git clone git://git.linux-nfs.org/projects/steved/libnfsidmap.git

Poté provést kompilaci:

cd libnfsidmap
./autogen.sh 
./configure
make
Ke kompilaci potřebujete mít nainstalovány balíky automake a libtool.

Dále je nutné s právy superuživatele provést instalaci pomocí make install, při dalším spuštění rpc.idmapd daemonu se již použije tato verze knihovny.

Poté je nutné upravit příslušné sekce v konfiguračním souboru /etc/idmapd.conf:

[Translation]
Method = static, nsswitch

[Static]

uzivatel@EINFRA = lokalniuzivatel
uzivatel2@EINFRA = jinylokalniuzivatel
storage@EINFRA = users

Takto se provede statické mapováni uživatelů uzivatel@EINFRA, uzivatel2@EINFRA a skupiny storage@EINFRA, u ostatních uživatelů a skupin se pak provede mapování dle pluginu nsswitch, které je popsané výše. Uživatelé, kteří se nenamapují žádnou z těchto dvou metod budou namapování jako nobody.

Při použití přístupových lístků získaných z keytabu nebo pomocí speciálně přidělený servisních účtů je potřeba zadat mapování ve tvaru:
nfs/USER@EINFRA = lokalniuzivatel

případně

nfs/backup_VO@EINFRA = lokalniuzivatel

Připojení svazku

Připojení svazku není nutné provádět ručně (u Ubuntu a u openSUSE 11.1 a vyšších), protože spuštění služby nfs jej automaticky připojí podle záznamu v /etc/fstab.

Pokud se připojení neprovede automaticky, lze ho udělat ručně. Připojení svazku je nutné provádět s root oprávněními. Ujistěte se, že máte správný /etc/krb5.keytab nebo vytvořený uživatelský lístek pod rootem. Dále se ujistěte, že vám běží portmap nebo rpcbind a nfs-common (nfs-utils). Lze ověřit následovně:

ps ax | grep rpc.gssd
ps ax | egrep "portmap|rpcbind"

Připojení provedeme takto:

mount -t nfs nfs.du1.cesnet.cz:/ /storage/cesnet-du1 -o vers=4 -o sec=krb5 -o rsize=1048576,wsize=1048576

Místo /storage/cesnet-du1 je možno zadat jakýkoliv jiný lokální adresář, kam chceme NFS svazek připojit. Uvedeme-li místo sec=krb5 volbu sec=krb5i bude při přenosech kontrolována integrita dat, uvedeme-li sec=krb5p budou data přenášena šifrovaně.

Aktuální IPv4 adresy serverů (hostů) pro jednotlivá datacentra:
Jihlava nfs.du2.cesnet.cz
Brno nfs.du3.cesnet.cz
Ostrava nfs.du4.cesnet.cz
Jihlava nfs.du5.cesnet.cz
Aktuální IPv6 adresy serverů (hostů) pro jednotlivá datacentra:
Jihlava nfs6.du2.cesnet.cz
Brno nfs6.du3.cesnet.cz
Ostrava nfs6.du4.cesnet.cz
Služby na IPv6 jsou provozovány v pilotním režimu.

Závěr

Pokud jste postupovali podle návodu, v tomto okamžiku máte svazek připojený a můžete na něm pracovat z uživatelského účtu, pod kterým jste udělali přístupový lístek.

Potíže

V případě potíží se obraťte na naši uživatelskou podporu viz FAQ. Pro urychlení řešení můžete uživatelské podpoře poslat informace o systému následujícím způsobem (vše pod uživatelem root, pokud používáte sudo, je nutné pustit sudo /bin/bash a v příkazové řádce pustit následující)

wget http://www.fi.muni.cz/~xhejtman/check-nfs.sh
mount nfs4 [příkaz pro mount, který následně selže nebo jiný příkaz, který se chová jinak, než by dle návodu měl]
. ./check-nfs.sh &> /tmp/report.log

a následně uživatelské podpoře odešlete soubor report.log.

FAQ

Připojení více svazků s krb5 identitami

Popis problému: Mohu připojit více svazků s různými krb5 identitami?

Řešení: Od verze Kerberos 1.10 je v možné používat složku pro uchování lístků vašich identit namísto samotného souboru a mít tak více aktivních identit současně, mezi kterými lze přepínat. Standardně se vytváří samostatný soubor v /tmp/ (např. /tmp/krb5cc_0_dX1u6IH8jO). Pomocí jednoduché úpravy je možné změnit cestu do vybrané složky.

Pro tento režim použití je nezbytné, aby gssd běžel s volbou „-n“.
Zde uváděné úpravy nejsou permanentní a po restartu stroje bude potřeba stejným způsobem cache inicializovat znovu.

Nejprve si připravíme složku, do které chceme ukládat lístky identit. Zvolíme umístění této složky do /run/, protože při restartu bude tato složka vyčištěna.

# mkdir -p /run/user/0/krb5cc
# chmod og-rwx /run/user/0/krb5cc

Nastavíme do proměnné KRB5CCNAME cestu k dané složce.

# export KRB5CCNAME=DIR:/run/user/0/krb5cc

Nyní máme složku pro ukládání lístku připravenou a můžeme inicializovat identity.

# kinit user@DOMAIN1
# kinit user@EINFRA

Pro výpis všech dostupných lístků identit můžeme použít příkazů klist -A nebo klist -l.

# klist -A
Ticket cache: DIR::/run/user/0/krb5cc/tkta0Hysv
Default principal: user@DOMAIN1

Valid starting     Expires            Service principal
9.6.2015 13:54:44  9.6.2015 23:54:38  krbtgt/DOMAIN1@DOMAIN1
	renew until 24/06/2015 13:54 

Ticket cache: DIR::/run/user/0/krb5cc/tkt5PDllX
Default principal: user@EINFRA

Valid starting     Expires            Service principal
9.6.2015 13:54:22  9.6.2015 23:54:16  krbtgt/EINFRA@EINFRA
	renew until 16/06/2015 13:54 


# klist -l
Principal name                 Cache name
--------------                 ----------
user@DOMAIN1                   DIR::/run/user/0/krb5cc/tkta0Hysv
user@EINFRA                    DIR::/run/user/0/krb5cc/tkt5PDllX

Použitím samotného příkazu klist vidíme, která identita je aktivní.

# klist
Ticket cache: DIR::/run/user/0/krb5cc/tkta0Hysv
Default principal: user@DOMAIN1

Valid starting     Expires            Service principal
9.6.2015 13:54:44  9.6.2015 23:54:38  krbtgt/DOMAIN1@DOMAIN1
	renew until 24/06/2015 13:54

Pro přepínání identit slouží příkaz kswitch.

# kswitch -p user@EINFRA

# klist
Ticket cache: DIR::/run/user/0/krb5cc/tkt5PDllX
Default principal: user@EINFRA

Valid starting     Expires            Service principal
9.6.2015 13:54:22  9.6.2015 23:54:16  krbtgt/EINFRA@EINFRA
	renew until 16/06/2015 13:54

Pokud tedy chceme připojit dva NFSv4 svazky s různými identitami, pak stačí spustit příkaz mount s aktivní první identitou, přepnout identity pomocí kswitch a následně připojit druhý svazek s aktivní druhou identitou.

# mount -o sec=krb5i,proto=tcp,port=2049,intr storage-jihlava1-cerit.metacentrum.cz:/ /mnt/storage-cerit
# kswitch -p user@EINFRA
# mount -o rw,nfsvers=4,hard,intr,sec=krb5i nfs.du4.cesnet.cz:~/ /mnt/storage-du4
Aktuální IPv4 adresy serverů (hostů) pro jednotlivá datacentra:
Jihlava nfs.du2.cesnet.cz
Brno nfs.du3.cesnet.cz
Ostrava nfs.du4.cesnet.cz
Jihlava nfs.du5.cesnet.cz
Aktuální IPv6 adresy serverů (hostů) pro jednotlivá datacentra:
Jihlava nfs6.du2.cesnet.cz
Brno nfs6.du3.cesnet.cz
Ostrava nfs6.du4.cesnet.cz
Služby na IPv6 jsou provozovány v pilotním režimu.

Problém s připojením NFS k novému úložišti

Popis problému: Zkouším se připojit k novému úložišti pomocí NFS, avšak stále se mi to nedaří.

Řešení: Pro případ připojení k úložišti v Ostravě by měl být v krb5.conf záznam pro [domain_realm] pro úložiště v Ostravě, obdobně pro další úložiště.

.du4.cesnet.cz = EINFRA-SERVICES

Problém s připojením k NFS pomocí Kerberos lístku

Popis problému: Zkouším se připojit k úložišti pomocí NFS, avšak dostávám chybové hlášení.

mount.nfs: Network is unreachable

Řešení: Problém je způsoben neběžící službou rpc-gssd, pokud se podíváte na status služby:

systemctl status rpc-gssd

Dostanete následující výpis:

Condition: start condition failed at Thu 2018-05-06 06:12:22 CET; 20s ago
           └─ ConditionPathExists=/etc/krb5.keytab was not met

Řešením může být tedy například to, že vytvoříte prázdný soubor v /etc pomocí následujícího příkazu:

touch /etc/krb5.keytab

Následně stačí službu rpc-gssd restartovat a znovu provést mount.

Poslední úprava: 16.05.2019 17:30