4Kセクター付きループ装置

4Kセクター付きループ装置

このlosetupコマンドを使用すると、通常のファイルを仮想ブロックデバイスに変換できます。その後、他のデバイスと同様にパーティションを分割してフォーマットできます。

Linuxでこの「デバイス」が4K論理セクタサイズを持っているように見せる方法はありますか?

答え1

fdisk複数のスイッチがあります。

-b セクタサイズ

ディスクのセクタサイズを指定します。有効な値は 512、1024、2048、または 4096 です。 (最近のカーネルはセクタサイズを知っています。古いカーネルでのみこの値を使用するか、カーネルのアイデアをオーバーライドします。)util-linux-2.17以降、fdiskは論理セクタサイズと物理セクタサイズを区別します。このオプションは、2 つのセクタサイズをセクタサイズに変更します。

-Cリング

ディスクのシリンダ数を指定します。なぜ誰かがこれをしたいのか分からない。

-Hヘッダ

ディスクのヘッド数を指定します。 (もちろん、物理的な数字ではなくパーティション表に使用される数字です。)妥当な値は255、16です。

これは私が編集したものではありません(「なぜ誰かがそのようなことをしたいのかわからない」)。やや良い人には、当時は使用していなかった機能が含まれています。

答え2

はい、可能です。実行すると

losetup --help 

このオプションが表示されます。

-b, --sector-size

direct-IOループブロックデバイスでもオプションを使用してテストすることをお勧めします。

ループデバイスの作成方法は次のとおりです。

losetup --sector-size 4096 --direct-io=on $loop_device $diskfile

しかし、おそらくあなたの場合はそれだけで--sector-size 4096十分でしょう。

その後、次を使用してループデバイスを表示できますlosetup -l

NAME          SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE                            DIO LOG-SEC
/dev/loop4000         0      0         0  0 /mnt/fbx/FBX-24T/testspeed2            1    4096
/dev/loop3000         0      0         0  0 /mnt/fbx/FBX-24T/testspeed             1    4096

4Kブロックセクタに注意してください。

また、現在のセクタサイズを512から4096まで指定できますが、たとえば8Kセクタ(8192)は使用できず、losetup4096より大きいセクタサイズを使用しようとするとコマンドは失敗します。

これがまさにdirect-IOオプションの使用を推奨する理由です。 --direct-io=on

ループデバイスを作成するために使用されるデフォルトファイルの上に4Kセクタ形式のファイルシステムがある場合(losetup -Pまたはlosetup --partscanオプションを参照)、このdirect-IOオプションを使用すると、IOをブロックデバイスに直接送信して、カーネルストアスタックジョブキューをバイパスします。

これは、ブロックデバイスと記録中のファイルシステムの整合性(整列)を維持するのに役立ちます。


また、CIFS共有でホストされているLUKSファイルからループデバイスを作成する場合(LUKS = Linux統合キー設定、Cryptsetupブロックデバイスと対応するホスティング間とも呼ばれます)などの場合、8〜10倍のパフォーマンスが向上します。間)ファイルシステム)

答え3

レベルは低くありません。フォーマット時に特定のブロックサイズを使用する必要があるといくつかのmkfsスケジューリングユーティリティに指示することは確かに可能です。mkfs.*詳細については、特定のツールのマニュアルページを参照してください。

答え4

関連情報