操作
バグ #56
完了CentOS 6でnfs mountした領域に書き込みすると「読み込み専用ファイルシステムです」とエラー
ステータス:
終了
優先度:
通常
担当者:
-
カテゴリ:
-
対象バージョン:
-
開始日:
2016/03/30
期日:
進捗率:
100%
予定工数:
重要度:
説明
実験サーバー armando は、NFSv4サーバーとして2つのディレクトリを公開している。
- iSCSIイニシエータとして、別マシン(iSCSIターゲット)のディスクをマウントし、そこを公開
- 自身のローカルディスクを公開
このサーバー 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
高橋 徹 さんが約9年前に更新
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
高橋 徹 さんが約9年前に更新
- ステータス を 新規 から 進行中 に変更
- 進捗率 を 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サービスは起動しないので、自動起動するように設定します。
操作