ネットワークドライブからファイルを読み取り、それらを処理するLinuxサーバーがあります。一般的なシナリオでは、ユーザーはログインして同じファイルに何度もアクセスします。ファイルのサイズはさまざまですが、大きいファイルのサイズは約50Mb以上になる可能性があります。ファイルはめったに変更されません。
どういうわけかファイルを透過的にキャッシュすることが可能かどうか疑問に思いました。ファイルを読み取るプログラムを変更したくない(または変更できない)し、ファイルにアクセスするためのプロトコルを制御したくない。特定のパスにアクセスしたことを検出し、ファイルをローカルにコピーして(必要な場合)、ローカルドライブからファイルを読み取るだけです。
Bcacheについて読んだことがありますが、それが必要かどうかわかりません。
何か提案はありますか?
ありがとう、Vadim。
cachefilesd を調べてください。ほぼ自動的に動作します。あなたがする必要があるのはこれです:
キャッシュを格納するために、クライアント上にext3ファイルシステムを作成します。必要なローカルメディア(専用パーティション、LVM LVなど)に配置し、キャッシュのサイズを変更します。
このファイルシステムを/var/cache/fscache
にマウントします。 /etc/fstab
に入れると、起動時に常にマウントされます。
インストールcahefilesd
( Debianパッケージcachefilesd )
これはすでにデフォルトだと思いますが、/var/cache/fscache
でdir
が/etc/cachefilesd.conf
に設定されていることを確認してください。
キャッシュを有効にするファイルシステムのマウントオプションに「fsc」を追加します。例:「rw、hard、fsc」。これらのファイルシステムをアンマウントして再マウントします。