Fórum Root.cz
Hlavní témata => Server => Téma založeno: MP 11. 04. 2017, 11:25:42
-
Ahoj,
uz to vubec nechapu. Dokumentace je jasna, ale stejne si to funguje po svem. Takze, jde o nfs4 (o v3 ani neuvazuju do provozu).
Konfigurace serveru je tato (krb5 neni vubec zprovoznen/nakonfigurovan):
/srv/nfs *(rw,fsid=0,sync,subtree_check,root_squash,crossmnt,sec=krb5)
/srv/nfs/export2/proxmox_vmstore2 192.168.X.0/24(rw,fsid=1,sync,subtree_check,no_root_squash,crossmnt,sec=krb5:sys)
/srv/nfs/export3/proxmox_vmstore3 192.168.X.0/24(rw,fsid=2,sync,subtree_check,no_root_squash,crossmnt,sec=krb5:sys)
/srv/nfs/export3/datastore3 192.168.Y.0/24(rw,fsid=2,sync,subtree_check,root_squash,crossmnt,sec=krb5:sys)
Klient z Y:
mount -vv -t nfs4 192.168.X.X:/export3/datastore3 /var/www/wwwroot -o vers=4,minorversion=2,sec=sys
mount.nfs4: timeout set for Tue Apr 11 11:09:48 2017
mount.nfs4: trying text-based options 'minorversion=2,sec=sys,vers=4,addr=192.168.X.X,clientaddr=192.168.Y.Y'
mount.nfs4: mount(2): Operation not permitted
mount.nfs4: trying text-based options 'minorversion=2,sec=sys,addr=192.168.X.X'
mount.nfs4: prog 100003, trying vers=4, prot=6
mount.nfs4: trying 192.168.X.X prog 100003 vers 4 prot TCP port 2049
mount.nfs4: prog 100005, trying vers=3, prot=17
mount.nfs4: trying 192.168.X.X prog 100005 vers 3 prot UDP port 55804
mount.nfs4: mount(2): Operation not permitted
mount.nfs4: Operation not permitted
Log serveru:
Apr 11 11:00:15 stor-01 rpc.mountd[13577]: Received NULL request from 192.168.Y.Y
Apr 11 11:00:15 stor-01 rpc.mountd[13577]: check_default: access by 192.168.Y.Y ALLOWED (cached)
Apr 11 11:00:15 stor-01 rpc.mountd[13577]: nfsd_export: found 0x564dafac98c0 path /srv/nfs
Apr 11 11:00:15 stor-01 rpc.mountd[13577]: nfsd_export: inbuf '*,192.168.Y.0/24 /srv/nfs'
Apr 11 11:00:15 stor-01 rpc.mountd[13577]: auth_unix_ip: client 0x564dafae9290 '*,192.168.Y.0/24'
Apr 11 11:00:15 stor-01 rpc.mountd[13577]: auth_unix_ip: inbuf 'nfsd 192.168.Y.Y'
Klient z Y to nenamountuje. Pokud pouziju:
/srv/nfs *(rw,fsid=0,sync,subtree_check,root_squash,crossmnt,sec=krb5:sys)
Tak to klient z Y namountuje. Ale to umozni pristup pres sec=sys do celeho nfs4 stromu a to nechci. Nechapu to hlavne z toho duvodu, ze klient z X (proxmox node, taktez nfs4) s tim problem absolutne nema?! Proxmox muzu (un)mountovat sec=sys libovolne a absolutne v tomhle je bezproblemovy. Proc klient Y nedokaze pouzit sys?
-
Jeste bych doplnil:
showmount -e (srv i klient) (nfs3 check)
Export list for X.X:
/srv/nfs *
/srv/nfs/export3/datastore3 192.168.Y.0/24
/srv/nfs/export3/proxmox_vmstore3 192.168.X.0/24
/srv/nfs/export2/proxmox_vmstore2 192.168.X.0/24
-
Máte stejné fsid pro /srv/nfs/export3/proxmox_vmstore3 a /srv/nfs/export3/datastore3, takže NFS server si myslí, že se klient pokouší připojit /srv/nfs/export3/proxmox_vmstore3, k čemuž nemá oprávnění, tak to fallbackuje na /srv/nfs.
-
Máte stejné fsid pro /srv/nfs/export3/proxmox_vmstore3 a /srv/nfs/export3/datastore3, takže NFS server si myslí, že se klient pokouší připojit /srv/nfs/export3/proxmox_vmstore3, k čemuž nemá oprávnění, tak to fallbackuje na /srv/nfs.
Takze to fsid se tedy pouziva v pripade debianu presne pro jake ucely? Myslel jsem, ze pouze pro rozliseni rozdilnych fs/disku.
Ceho se snazim dosahnout. Mam na serveru 2xR1 pole, muze jich byt vice. Jedno pole je ciste pro VM, druhe pole je VM a data. Dalsi budouci R1 bud opet kombinace, nebo specificky ucel.
Takze v pripade pole per ucel by to melo by takhle?
/srv/nfs fsid=0
/srv/nfs/R1_A fsid=1
/srv/nfs/R1_B fsid=2
atd...
V pripade pole s vice ucely by to melo byt takhle?
/srv/nfs fsid=0
/srv/nfs/R1_A fsid=1
/srv/nfs/R1_B_subdir1 fsid=2
/srv/nfs/R1_B_subdir2 fsid=3
Diky, uz se s tim morim peknych par dnu.
-
fsid je unikátní identifikátor exportu, v NFS paketech se neposílá cesta k exportu, ale jen fsid. NFS server pak na základě toho aplikuje nastavení (ověří autorizaci ap.) a převede relativní cestu na absolutní.
Pokud fsid nezadáte, NFS načte nějaké ID z fyzického FS (typicky UUID či číslo zařízení). Pokud je každý export na jiném fyzickém FS, pak bude mít každý unikátní fsid a nemusíte nic uvádět. Ale pokud jde o podadresáře v jednom fyzickém FS, pak by oba měly stejné fsid a je nutné je uvést explicitně.
-
OK. Zkouska:
/srv/nfs/export3/datastore3 192.168.Y.0/24(rw,fsid=3,sync,subtree_check,root_squash,crossmnt,sec=krb5:sys)
Stale nic :/ stejna chyba, resp. zaznam v logu.
-
Tak po restartu proxmoxoveho node se taky nemohl pripojit. Takze jsem zmenil na
/srv/nfs *(...sec=krb5,sys)
Coz je ale v kolizi s potrebou mit blokovany pristup z hlediska dat a zaroven mit pro hypervizory neblokovany. Pokud dobre nfs4 chapu, tak s timto nastavenim lze namountovat libovolnou cast stromu, ktera neni definovana v /etc/export...