web-dev-qa-db-ja.com

autofsマウントのNFSエクスポートにマウントすると、空のコンテンツが表示されます

Autofsを使用して、フォルダー/ mnt/iso内のいくつかのisoファイルをマウントします。

Fedora-13-x86_64-DVD.iso
Fedora-14-x86_64-DVD.iso
Fedora-15-x86_64-DVD.iso

Autofsは正常に動作しており、isoファイルの内容を確認できます。

# ls /mnt/iso/Fedora.13/
# ls /mnt/iso/Fedora.14/
# ls /mnt/iso/Fedora.15/

Autofsテストが終了した後。すべてのisoフォルダーを強制的にアンマウントします。

# umount -l /mnt/iso/*

次に、/ etc/exportsに/ mnt/isoをエクスポートします。

/mnt/iso        192.168.0.0/24(ro,insecure,crossmnt,all_squash)

NFSサービスも正常に動作しています。 nfsクライアントを介して別のマシンから/ mnt/isoをマウントできます。

# mount -t nfs4 <nfs-server>:/mnt/iso /mnt

/ mnt /フォルダーにあるすべてのisoマウントを確認できます。

# ls /mnt
dr-xr-xr-x 15 nobody nobody 4096 2011-06-11 10:23 .
drwxr-xr-x 24 root   root   4096 2011-02-08 08:45 ..
drwxr-sr-x  7 nobody nobody 4096 2010-05-13 09:06 Fedora.13
drwxr-sr-x  7 nobody nobody 4096 2010-10-22 02:32 Fedora.14
drwxrwsr-x  7 nobody nobody 4096 2011-05-14 03:50 Fedora.15

ただし、各フォルダの内容を一覧表示しようとすると、次のようになります。

#  ls /mnt/Fedora.13

画面には何も表示されません。このようなコマンドを使用する

#  ls /mnt/Fedora.13/*

促す

ls: cannot access /mnt/Fedora.13/*: No such file or directory

Nfsクライアントマシンのisoフォルダーのコンテンツを一覧表示できる唯一のケースは、次の手順を使用することです。

クライアントマシンからNFS共有をアンマウントします。

# umount /mnt

lsを使用してnfsサーバーの/ mnt/isoのすべてのサブツリーを表示します。

# ls /mnt/iso/*

AutofsはすべてのISOファイルを自動的にマウントします。

クライアントマシンにnfsフォルダーをマウントします。

# mount -t nfs4 <nfs-server>:/mnt/iso /mnt

/ mntのサブツリーを一覧表示します。

# ls /mnt/*

その後、nfsクライアントマシンですべてのコンテンツを表示できます。

ただし、最初にautofsマシンでコンテンツを一度表示する必要があるため、これはautofsの目的を無効にします。

誰かアイデアはありますか?私は以下を使用しています:

  1. Fedora 13 x86_64
  2. autofs-5.0.5-28
  3. nfs-utils-1.2.2.2-2
6
Chau Chee Yang

NFSを使用してファイルシステムをエクスポートすると、ソースディレクトリにロックされるという点で、馬の問題の前にカートを持っていると思います。その時点でそのソースディレクトリを利用できないようにして、後でマウントを介して何かを配置しようとしています。

これは機能しません。NFSに共有するもののハンドルを与えると、マウントのレイヤーの下にある場合でも、常にそのことを共有するからです。

ファイル「frog」を使用してディレクトリを設定し、nfsを使用してエクスポートするとします。

[server] $ mkdir /mnt/test && touch /mnt/test/frog
[server] $ echo '/mnt/test *(ro)' >> /etc/exports
[server] $ exportfs -a

それをクライアントのどこかにマウントすると、ファイルカエルが期待どおりに表示されます。

[client] $ mkdir /mnt/test
[client] $ mount -t nfs server:/mnt/test /mnt/test
[client] $ ls $/mnt/test
frog

ここで、サーバー上のそのフォルダーの上に何か他のものをマウントするとします。

[server] $ mkdir /mnt/test2 && touch /mnt/test2/fish
[server] $ mount -o bind /mnt/test2 /mnt/test
[server] $ ls /mnt/test
fish

スパイフィー。しかし、nfsは何を提供していますか?

[client] $ ls /mnt/test
frog

サーバー上に別のものがマウントされているため、サーバー上のそのファイルカエルに到達することさえできませんが、NFSはその下のレイヤーを提供しています!

簡単に言うとファイルシステムをNFS経由でエクスポートする場合は、NFSの起動時にファイルシステムを適切にマウントしてエクスポートする必要があり、ファイルシステムを維持する必要があります。それ自体がautofsを使用してマウントされているファイルシステムのエクスポートは、正しく機能しません。 NFSを介してエクスポートするには、これらのISOを永続的にマウントする必要があります。

6
Caleb