一部のファイルをファイルシステムの先頭に移動して、アクセス時間を短縮したいと思います。
タスク 1: fs の先頭にある特定のブロック範囲をクリアします (既存のファイルを他の空き領域に移動します)。
タスク 2: 問題のファイルをそのブロック範囲に移動します (少し拡張できるはずです)。
どうすればいいでしょうか?
答え1
これが重要になるという考えはどこから得たのですか?
ほとんどのハードドライブでは、内側のトラックよりも外側のトラックの方が読み取り速度が速いという事実を念頭に置いているのでしょうか? シーク時間やその他のオーバーヘッドを考慮すると、その差が重要かどうかはわかりません。たとえ重要だとしても、物理ディスクとファイルシステムの間にはいくつかの抽象化レイヤーがあるため、物理ディスクの特定の部分に確実にデータを配置できるかどうかさえわかりません。
ですから、まずは自分がやっていることが本当に実現可能で、実際に違いを生むかどうかを調べる必要があります。私はそうではないのではないかと心配しています...
答え2
最新のファイルシステムは、管理者がこれらの詳細を管理する手間を省くために存在します。一部のファイルを隔離したい場合は、パーティション分割を使用します。
答え3
ステップ 1: ファイルシステムをアンマウントします。ファイルシステムは通常、一度に 1 つのドライバーでアクセスできるように設計されており、Ext4 も例外ではありません。
ステップ 2: 変更するのは、inode ではなく、割り当てられたブロックです。空きブロック リストをメモリにキャッシュします。
ステップ 3: ブロックの内容をコピーし、i ノード内のエクステントを更新します。
答え4
質問に直接答えているわけではありませんが、これらのファイルを保存するには、ディスクの先頭にある小さなパーティションを使用する方が簡単かもしれません。