web-dev-qa-db-ja.com

LVM論理ボリュームのセクターサイズを指定する方法

Targetcli(iSCSI)を介してエクスポートする論理ボリュームを作成しています。

私はlvmのシンプロビジョニングされたボリュームを使用しています。

lvcreate -V 1T --thin -n vol_name storage/thin_pool

次に、作成した論理ボリュームをtargetcliのiblockバックストアに追加します。結果のデバイスは4096をget attribute hw_block_sizeとして示します

イニシエーターのサポート(VirtualBox)がないため、これらのLUNには512バイトのセクターが必要です。一貫性の理由から、fileioバックストア(おそらくセクターサイズの設定が可能)の使用は避けたいと思います。

ボリュームの作成時またはボリュームのバックストアへの割り当て時にセクターサイズを指定することはできますか?

7
velis

Fileioバッキングストアドライバーは、これを実現する方法です。一貫性が問題になるのは、fileioバックストアでライトバックキャッシュを有効にした場合(またはtargetcliがそれを参照する場合は「バッファモード」)を選択した場合のみです。

バッファなしモードは、Datera自体が示唆しているように、ディストリビューション上のほぼすべてのtargetcli実装のデフォルトです。これは大したことではありません。

ただし、特定のバッキングオブジェクトに対してバッファなしモードを強制する必要がある場合(そしておそらく安全のために)、次のように指定できます。

#> targetcli

/backstores/fileio/test_name> set attribute buffered=False

ブロックサイズの問題に対処するために、特定のfileioバッキングストアオブジェクトのblock_size属性を自由に編集することもできます。

/backstores/fileio/test_name> set attribute block_size=4096

Fileioバックストアを使用してシンLVM2(または実際には他のブロックデバイス)をアドレス指定し、ほぼすべての設定を変更できます。一方、ブロックまたはiblockバックストアは、デバイスとそのハードウェアプロパティをイニシエーターに「直接」渡すように最適化されています。ブロックはfileioよりもパフォーマンスが高くなるはずです。実装がスリム化されるためです-そのスリムな実装のため、このような機能が欠けているだけです。これらのパラメータを設定する必要がない場合は、ブロックデバイスに「block」を使用する必要があります。

6
Spooler

question を考慮して、ファイルシステムの作成時にブロックサイズを変更できます。したがって、mkfs.yourfs -b 512 /dev/mapper/<VGName>-<logical volume>_yourfsはファイルシステムのタイプです。

4
Mr. Raspberry