ファイルシステムがnfsにマウントされている場合、Linuxを使用してファイルシステムの実際のブロックサイズ情報にどのようにアクセスできますか?

ファイルシステムがnfsにマウントされている場合、Linuxを使用してファイルシステムの実際のブロックサイズ情報にどのようにアクセスできますか?

Centos 6.5とSolaris 5システムがあります。 statvfsのf_frsizeメンバーからファイルシステムブロックサイズに関する情報を取得しようとしています。最初はCentosで試しましたが、ファイルシステムをnfsにマウントすると、32768や65536などの値が得られます。この値はブロックサイズではなくnfsブロックサイズだと思います。

Sun Solarisで同じnfsファイルシステムのブロックサイズ情報を取得しようとすると、1024と同じ値が得られます。

それでは、SolarisとLinuxでstatvfsを呼び出すと、なぜブロックサイズ(f_frsize)が異なるのか?

このnfsブロックサイズの代わりにnfsファイルシステムのf_frsize情報を取得する方法はありますか?私が望むことが可能かどうかはわかりませんが、これについてもっと知りたいです。

ありがとう

ベストアンサー1

私の問題に対する解決策を見つけました。これは単に数学の問題です!数字が異なる場合でも、同じ結果が出ることがあります。したがって、f_frsizeメンバーはLinuxとSolarisの間で異なる値を持ちます。ただし、両方のオペレーティングシステムでf_frsizeを使用してブロックをバイトに変換する場合、式は次のように取得されるため重要ではありません。ここ:

static unsigned long kscale(unsigned long b, unsigned long bs)
{
     return (b * (unsigned long long) bs + 1024/2) / 1024;
}

両方のオペレーティングシステムでdfコマンドを使用すると、同じ結果が得られます。したがって、実際の質問はありません。ただ私の想像にすぎません:) 申し訳ありません。

おすすめ記事