Perché un server nfs è montato come rw che restituisce errori di file system di sola lettura


18

Sto lavorando su un Ubuntu Server a 64 bit. Ho montato un nfs come rw, ma ogni volta che provo a modificare qualcosa sul mountpoint in questione, ottengo un errore del file system di sola lettura

le mie etc/fstabletture:

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    nodev,noexec,nosuid 0       0
/dev/mapper/product-root /               ext4    errors=remount-ro 0       1
UUID=1cae6948-ca9d-4f0b-aec6-9e7a60bbbad8 /boot           ext2    defaults        0       2
/dev/mapper/product-swap_1 none            swap    sw              0       0
/dev/fd0        /media/floppy0  auto    rw,user,noauto,exec,utf8 0       0
vnxnfs1.company.com:/NFS2         /mnt/nfs2                        nfs     defaults       0       0

mount ritorna:

/dev/mapper/product-root on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
/dev/sda1 on /boot type ext2 (rw)
rpc_pipefs on /run/rpc_pipefs type rpc_pipefs (rw)
vnxnfs1.company.com:/NFS2 on /mnt/nfs2 type nfs (rw)

cat /proc/mounts ritorna:

rootfs / rootfs rw 0 0
sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
udev /dev devtmpfs rw,relatime,size=16465812k,nr_inodes=4116453,mode=755 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
tmpfs /run tmpfs rw,nosuid,relatime,size=6590172k,mode=755 0 0
/dev/mapper/product-root / ext4 rw,relatime,errors=remount-ro,data=ordered 0 0
none /sys/fs/fuse/connections fusectl rw,relatime 0 0
none /sys/kernel/debug debugfs rw,relatime 0 0
none /sys/kernel/security securityfs rw,relatime 0 0
none /run/lock tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k 0 0
none /run/shm tmpfs rw,nosuid,nodev,relatime 0 0
/dev/sda1 /boot ext2 rw,relatime,errors=continue 0 0
rpc_pipefs /run/rpc_pipefs rpc_pipefs rw,relatime 0 0
vnxnfs1.company.com:/NFS2 /mnt/nfs2 nfs rw,relatime,vers=3,rsize=32768,wsize=32768,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=172.x.y.z,mountvers=3,mountport=1234,mountproto=udp,local_lock=none,addr=172.x.y.z 0 0

I file sul mnt leggono bene ma ogni volta che provo a cambiare qualcosa ottengo un errore:

touch: cannot touch `/mnt/nfs2/path/to/test_file.txt': Read-only file system

Posso collegarmi a nfs in questione da altri server e leggere e scrivere bene. L'unico problema è su questo server. Ho provato mount -o remount,rw vnxnfs1.company.com:/NFS2 /mnt/nfs2come suggeriscono le risposte alle domande correlate, ma senza risultati.

Ci scusiamo per il dump dei dati, ho appena provato a includere tutto ciò che potrebbe fornire indizi.

MODIFICARE:

più dettagli

Ho testato l' rootutente sulla macchina con problemi e scrivendo su nfs funziona rootcosì come userda altri server (nfs-write-is-working).

dal server funzionante: ls -la /mnt/nfs2/

total 76
drwxrwxrwx 12 root root   1024 2013-04-18 10:14 .
drwxr-xr-x 24 root root   4096 2013-04-17 10:42 ..
drwxrwxr-x  2 user user   80 2013-04-18 10:14 archives
drwxrwxrwx  2 user user   1024 2012-08-15 10:13 assignee_dealiasing_temp_folder
drwxrwxr-x  9 user user   1024 2013-03-11 13:50 data_runs
drwxrwxrwx  2 user user   2048 2013-04-19 14:54 db_transfer_dumps
drwxrwxrwx  2 root daemon 1024 2013-08-22 01:00 .etc
drwxrwxrwx  2 root root   8192 2012-08-16 14:47 lost+found
drwxr-xr-x 13 user user   1024 2013-08-16 13:37 projects
drwxr-xr-x 35 user user   2048 2013-05-10 16:34 reports
drwxrwxrwx  6 root root   1024 2013-04-17 16:47 saved_logs

da vnxnfs1 server_export server_2 -list

server_2 :
export "/NFS3" rw=172.16.0.0/24 root=172.16.0.0/24
export "/NFS2" rw=172.16.0.0/24:172.16.9.0/24 root=172.16.0.0/24:172.16.9.0/24
export "/NFS1" rw=172.16.0.0/24:172.16.9.0/24 root=172.16.0.0/24:172.16.9.0/24
export "/ISO" rw=172.16.9.16:172.16.9.18:172.16.9.20 root=172.16.9.16:172.16.9.18:172.16.9.20
export "/NFS0" rw=172.16.0.0/24 root=172.16.0.0/24
export "/" anon=0 access=128.221.252.100:128.221.253.100:128.221.252.101:128.221.253.101

Hai / etc / exports dal server vnxnfs1? L'utente con il quale stai testando ha i diritti per scrivere lì (root squash / UID sconosciuto ecc.)? Se riesci a fare una "ls -la" su un server funzionante della directory NFS2 potrebbe essere d'aiuto
TheFiddlerWins

Risposte:


9

Errore "File system di sola lettura" indica che il file system viene esportato in sola lettura. L'opzione mount rw dice al client che 'WRITE' può essere inviato al server. Sui normali sistemi unix, controlla il file / etc / exports:

/NFS2 172.x.y.z(rw)

sugli apparecchi, controllare la documentazione da esportare come lettura / scrittura.


1
/ etc / exports è vuoto sul mio server nfs, penso che ciò sia dovuto al fatto che il nostro vecchio amministratore lo ha impostato in modo tale che l' server_exportutilità gestisca questa funzionalità. E avevi ragione nel dire che il server in questione non era incluso nel blocco IP designato come rw server_export server -ldall'elenco. Grazie!
stupac8908,

7

L'esportazione di una cartella principale (ro) sostituirà un'esportazione secondaria (rw).

Esempio di esportazioni:

/NFS_ROOT *(ro)
/NFS_ROOT/SHARE1 *(rw)

SHARE1 sarà di sola lettura perché NFS_ROOT è di sola lettura. Hai dei vincoli su una directory root esportata che potrebbe causare il problema.


6

Come ha detto Brian, un'esportazione padre può sovrascrivere un'esportazione figlio. Ma puoi risolverlo aggiungendo priorità alle tue esportazioni. Quindi, usando l'esempio di Brian, questo risolverebbe il problema:

/NFS_ROOT *(ro,fsid=2)
/NFS_ROOT/SHARE1 *(rw,fsid=1)

2

Se il tuo mountpoint sul client è /var/share, assicurati che sia stato creato con i diritti impostati su 777:

chmod 777 /var/share

Altrimenti potresti avere strani strani errori in cui puoi scrivere solo con root ma avere RO con tutti gli altri utenti, diritti di file montati come ---------o altri comportamenti strani.


1
Nel mio caso la cartella principale della condivisione non era 777 - grazie.
hdave,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.