よくわからないエンジニア

よく分からないエンジニアの日々の記録

よくわからないエンジニア

v4でマウントしたNFSの管理者権限を変更すると失敗する

そういえば、このブログって一応技術ブログとして始めたんですよ。
自分でも忘れそうになるので、久しぶりにlinux関連の記事でも書きます。

目次

NFSを入れ替えました

最近仕事で使用しているNFSを入れ替えました。
入れ替え作業自体は滞りなく完遂したのですが、後日特定のサーバで以下のような挙動が発生します。

管理者権限が変更出来ない

特定のサーバからNFS内のディレクトリやファイルの管理者権限を変更しようとするとエラーが出て変更が出来ない。

# chown apache:apache /nfs/test/nfs4.txt
chown: changing ownership of `/nfs/test/nfs4.txt': Invalid argument

Invalid argumentって、エラー文おかしいだろ。
とりあえず調査を開始しました。

原因

上記が発生するサーバは特定の傾向があり、ざっくり言えばCentOS 6系の割りと古いやつ(6.2前後)だと発生します。
nfs-utilsのバージョン上げればいけるかな?と思ったけど全然解消せず。

ググっていくとココらへんの記事に行き当たる。

serverfault.com

labs.timedia.co.jp

どうやら新しく導入したNFSがv4で動いているらしく、マッピング方法の問題で古いkernelだと権限変更が許可されない模様。(イマイチわかってない)

解決策

1.mountをv3でやるように、明示的に指定する。
2.kernelのバージョンを上げる。

本番機は1で解決しましたが、複製した検証環境で2を実施しました。

# uname -r 
2.6.32-220.13.1.el6.x86_64
# yum install kernel*

Error Summary
-------------
Disk Requirements:
  At least 29MB more space needed on the /boot filesystem.

/bootの空き領域が少なくて怒られた。仕方がないので、古いkernelを削除してからバージョン上げる。

# package-cleanup --oldkernels --count=1
# yum install kernel*
# reboot

再起動してから、kernelのバージョンを確認。chownを実行するとエラーがでなくなりました。

# uname -r
2.6.32-754.14.2.el6.x86_64
# chown apache:apache /nfs/test/nfs4.txt

一応原因と解決策はわかったので、めでたし!