Pourquoi un serveur nfs est-il monté en tant que rw retournant des erreurs de système de fichiers en lecture seule

18

Je travaille sur un serveur Ubuntu 64 bits. J'ai monté un nfs en tant que rw, mais chaque fois que j'essaie de modifier quoi que ce soit sur le point de montage en question, j'obtiens une erreur de système de fichiers en lecture seule

mes etc/fstablectures:

# <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 Retour:

/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 Retour:

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

Les fichiers sur le mnt se lisent très bien, mais chaque fois que j'essaie de changer quoi que ce soit, j'obtiens une erreur:

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

Je peux me connecter au nfs en question à partir d'autres serveurs et lire et écrire très bien. Le seul problème est sur ce serveur. J'ai essayé mount -o remount,rw vnxnfs1.company.com:/NFS2 /mnt/nfs2comme le suggèrent les réponses aux questions connexes, mais en vain.

Désolé pour le vidage des données, j'ai juste essayé d'inclure tout ce qui pourrait donner des indices.

ÉDITER:

plus de détails

J'ai testé de l' rootutilisateur sur la machine avec des problèmes, et écrit sur des œuvres nfs depuis rootet userdepuis un autre serveur (nfs-write-is-working).

du serveur de travail: 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

depuis le 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
stupac8908
la source
Avez-vous / etc / exports depuis le serveur vnxnfs1? L'utilisateur avec lequel vous testez a-t-il le droit d'y écrire (root squash / UID inconnu, etc.)? Si vous pouvez faire un "ls -la" sur un serveur de travail du répertoire NFS2, cela pourrait aider
TheFiddlerWins

Réponses:

9

L'erreur «Système de fichiers en lecture seule» indique que le système de fichiers est exporté en lecture seule. L'option de montage rw indique au client que «WRITE» est autorisé à être envoyé au serveur. Sur les systèmes Unix standard, vérifiez le fichier / etc / exports:

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

sur les appliances, consultez la documentation à exporter en lecture-écriture.

kofemann
la source
1
/ etc / exports est vide sur mon serveur nfs, je pense que c'est parce que notre ancien administrateur l'a configuré de telle sorte que l' server_exportutilitaire gère cette fonctionnalité. Et vous aviez raison de dire que le serveur en question n'était pas inclus dans le bloc IP désigné comme rw dans la server_export server -lliste. Merci!
stupac8908
7

L'exportation d'un dossier parent (ro) annulera une exportation enfant (rw).

Exemples d'export:

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

SHARE1 sera en lecture seule car NFS_ROOT est en lecture seule. Vous avez des contraintes sur un répertoire racine exporté qui peuvent être à l'origine du problème.

Brian Walton
la source
6

Comme l'a dit Brian, une exportation parent peut remplacer une exportation enfant. Mais vous pouvez résoudre ce problème en ajoutant des priorités à vos exportations. Donc, en utilisant l'exemple de Brian, cela résoudrait le problème:

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

Si votre point de montage sur le client est /var/share, assurez-vous qu'il est créé avec des droits définis sur 777:

chmod 777 /var/share

Sinon, vous pourriez avoir d'étranges erreurs étranges où vous ne pouvez écrire qu'avec root mais avoir RO avec tous les autres utilisateurs, les droits des fichiers montés comme ---------ou tout autre comportement étrange.

sjas
la source
1
Dans mon cas, le dossier parent du partage n'était pas 777 - merci.
hdave