web-dev-qa-db-ja.com

マウントされたファイルシステムに散発的にアクセスしているプロセスは何ですか?

Autofsにマウントされたホームディレクトリを備えたSolaris10サーバーがあります。 1つのサーバーでは、10分のタイムアウト期間後にマウントが解除されません。 AUTOMOUNT_TIMEOUT=600/etc/default/autofsがあり、automount -t 600を実行し、svc:/system/filesystem/autofs:defaultサービスを無効にしてから再度有効にしましたが、何も機能していないようです。

私の疑惑は、システム上のsomethingが、マウントされたすべてのファイルシステムに定期的にアクセスしており、アクセス可能かどうかを確認しているため、オートマウンターのタイムアウトがリセットされ、期限切れになることはないということです。これは私が行ったテストでサポートされています-タイムアウトを10秒に設定すると、マウントポイントがアンマウントされ、10秒はその何かがチェックとタイマーを実行している期間よりも短いように見えます期限切れになる可能性があります。

問題は、どのプロセスがそれを行っているかをどのように見つけることができるかということです。サーバーは頻繁に使用される本番システムであり、危険な実験を行うことはできません。

ファイルシステムはnot開いたままであり、手動でアンマウントできることに注意してください。その何かはおそらくマウントポイントごとにマウントポイントに移動し、cd in、cd out、移動します。多くの場合、automountがマウント解除するのを防ぐのに十分です。ただし、開いたままにしないため、lsofまたはfuser -cでは表示されません。マウントポイントにアクセスしたらすぐにキャッチまたは記録して、何が行われているのかを知りたいです。

FWIWは、かなり頑丈なSolaris 10ホスト(Sparc/M5000)上のSolaris10ゾーンです。

5
MLu

Rwsnoop( http://dtracebook.com/index.php/File_System:rwsnoop )を試して、dtraceを使用してI/Oアクセスを監視できます。

# rwsnoop - snoop read/write events.
#           Written using DTrace (Solaris 10 3/05).
#
# This is measuring reads and writes at the application level. This matches
# the syscalls read, write, pread and pwrite.

幸運を!

4
mrc

ツールlsofを使用して、ファイルシステム上の特定のファイルにアクセスしているプロセスを判別できます。この場合、これを使用して、自動マウントのマウントポイントにアクセスしているプロセスを検出できます。

/vz_backupsディレクトリ用に次のautomountがあります。

$ showmount -e krycek
Export list for krycek:
/export/raid1/vz_backups 192.168.1.0/24

次に、マウントポイントの下の自動マウントにcdします。

$ cd /vz_backups/images

マウントしたことを確認してください。

$ mount | grep /vz
krycek:/export/raid1/vz_backups/images on /vz_backups/images type nfs (rw,intr,tcp,rsize=16384,wsize=16384,addr=192.168.1.4)

次に、lsofを使用してファイルアクセスを問い合わせることができます。

$ lsof -l | grep /vz
automount  3359        0   16r      DIR       0,24           0      11960 /vz_backups
bash      28635        0  cwd       DIR       0,30        4096    2981890 /vz_backups/images (krycek:/export/raid1/vz_backups/images)
lsof      31040        0  cwd       DIR       0,30        4096    2981890 /vz_backups/images (krycek:/export/raid1/vz_backups/images)
grep      31041        0  cwd       DIR       0,30        4096    2981890 /vz_backups/images (krycek:/export/raid1/vz_backups/images)
lsof      31042        0  cwd       DIR       0,30        4096    2981890 /vz_backups/images (krycek:/export/raid1/vz_backups/images)

次に、そのディレクトリからcd出て、何もアクセスしないようにします。自動マウントがタイムアウトするのを待つか、手動でumountしてから、もう一度確認します。

$ cd ~
$ umount /vz_backups/images

$ lsof -l | grep /vz
automount  3359        0   16r      DIR       0,24           0      11960 /vz_backups

参考文献

2
slm

おそらく、オートマウンターのタイムアウトよりも短い間隔で「df」コマンドを実行する監視ソフトウェアが実行されています。 Solarisでは、statvfsシステムコールはファイルシステムを使用中としてマークします。解決策:df -lを使用します。

0
Frank