プロジェクト

全般

プロフィール

バグ #56

CentOS 6でnfs mountした領域に書き込みすると「読み込み専用ファイルシステムです」とエラー

高橋 徹 さんがほぼ5年前に追加. 4年以上前に更新.

ステータス:
終了
優先度:
通常
担当者:
-
カテゴリ:
-
対象バージョン:
-
開始日:
2016/03/30
期日:
進捗率:

100%

予定工数:
重要度:

説明

実験サーバー armando は、NFSv4サーバーとして2つのディレクトリを公開している。

  1. iSCSIイニシエータとして、別マシン(iSCSIターゲット)のディスクをマウントし、そこを公開
  2. 自身のローカルディスクを公開

このサーバー armando をNFSサーバーとしてNFSマウントするクライアント側で、読み書き可能な権限でマウントしたのに、実際にファイルを書き込みしようとするとエラーとなった。

~$ sudo mount -t nfs armando:/data /mnt/data
~$ mount|grep data
armando:/data on /mnt/data type nfs (rw,vers=4,addr=192.168.xxx.xxx,clientaddr=192.168.xxx.yyy)
~$ touch /mnt/data/canwrite
touch: cannot touch `/mnt/data/canwrite': 許可がありません

このとき、NFSサーバーの/var/log/messagesには次のログが出ていた

Mar 30 06:22:22 armando rpc.mountd[1150]: /srv/nfs/data and /srv/nfs/data have same filehandle for 192.168.xxx.0/24, using first

NFSv4サーバーの設定

インストールされているNFS関連パッケージ

~$ rpm -qa|grep nfs
nfs-utils-1.2.3-64.el6.x86_64
nfs-utils-lib-1.1.5-11.el6.x86_64
nfs4-acl-tools-0.3.3-7.el6.x86_64

サービスの起動設定

~$ chkconfig | egrep "nfs|rpc" 
nfs             0:off   1:off   2:on    3:on    4:on    5:on    6:off
nfslock         0:off   1:off   2:off   3:on    4:on    5:on    6:off
rpcbind         0:off   1:off   2:on    3:on    4:on    5:on    6:off
rpcgssd         0:off   1:off   2:off   3:on    4:on    5:on    6:off
rpcsvcgssd      0:off   1:off   2:off   3:off   4:off   5:off   6:off

NFS公開設定

~$ cat /etc/exports
/srv/nfs        192.168.xxx.0/24(fsid=0,crossmnt)
/srv/nfs/data   192.168.xxx.0/24(rw,no_root_squash)

NFSサーバー armando の/etc/fstab(抜粋)

UUID=xxxxxxxxxxxxxxxxxxxx /data  ext4   _netdev 0 0
/data     /srv/nfs/data   none    _netdev,bind    0 0
/opt/sfw  /srv/nfs/sfw    none    bind    0 0

#1

高橋 徹 さんがほぼ5年前に更新

NFSサーバー armando でrpcidmapdがchkconfigに見当たらないが問題ではないか?
→ 下記のとおりで問題なし

/var/log/boot.log(抜粋)

iscsi を起動中: [  OK  ]
rpcbind を起動中: [  OK  ]
NFS statd を起動中: [  OK  ]
ネットワークにあるファイルシステムを検査中
[  OK  ]
Mounting filesystems:  [  OK  ]
acpi デーモンを起動中: [  OK  ]
失敗した udev イベントを再トリガーする[  OK  ]
NFS サービスを起動中:  [  OK  ]
NFS mountd を起動中:  [  OK  ]
NFS デーモンを起動中: [  OK  ]
RPC idmapd を起動中: [  OK  ]

~$ ps aux|grep [i]dmap
root      1194  0.0  0.0  23096   556 ?        Ss   07:04   0:00 rpc.idmapd
#2

高橋 徹 さんがほぼ5年前に更新

  • ステータス新規 から 進行中 に変更
  • 進捗率0 から 50 に変更

NFSクライアント側でrpcidmapdが起動されているかを調べてみる

~$ ps aux|grep [i]dmap
~$
~$ sudo service rpcidmapd status
rpc.idmapd は停止しています

あ、ない!

~$ sudo service rpcidmapd start
RPC idmapd を起動中:                                       [  OK  ]
~$

再度マウントします。

~$ sudo mount -t nfs4 armando:/data /mnt/data

書き込みします。

~$ cd /mnt/data/share
share$ touch alfa
share$ ls
alfa

書き込み可能!

rpcidmapdを自動起動設定します。

~$ sudo chkconfig rpcidmapd on
~$ chkconfig|egrep "netfs|nfs|rpc" 
netfs           0:off   1:off   2:off   3:on    4:on    5:on    6:off
nfs             0:off   1:off   2:off   3:off   4:off   5:off   6:off
nfslock         0:off   1:off   2:off   3:on    4:on    5:on    6:off
rpcbind         0:off   1:off   2:on    3:on    4:on    5:on    6:off
rpcgssd         0:off   1:off   2:off   3:on    4:on    5:on    6:off
rpcidmapd       0:off   1:off   2:on    3:on    4:on    5:on    6:off
rpcsvcgssd      0:off   1:off   2:off   3:off   4:off   5:off   6:off

NFSサーバー側では、nfsサービスが内部でrpcidmapdサービスを起動していましたが、NFSクライアント側ではNFSサービスは起動しないので、自動起動するように設定します。

#3

高橋 徹 さんが4年以上前に更新

  • ステータス進行中 から 解決 に変更
  • 進捗率50 から 80 に変更
#4

高橋 徹 さんが4年以上前に更新

  • ステータス解決 から 終了 に変更
  • 進捗率80 から 100 に変更

他の形式にエクスポート: Atom PDF