デバイスの論理ブロック サイズが一致しない 発生理由
問題は、Vgextend に新しく追加されたディスクの論理ブロック サイズが、VG 内の元のディスクの論理ブロック サイズと異なることです。 たとえば、元の VG が論理ブロック サイズ 512 のディスク デバイス上に構築されているが、Vgextend 中に新しく追加されたデバイスの論理ブロック サイズが 4K である場合、この問題が発生します。
解決策 1: lvm.conf でallow_mixed_block_sizes=1 を有効にする
/etc/lvm/lvm.conf ファイルを開き、allow_mixed_block_sizes=1 を変更します。
しかし、このように、同じ LV 上でブロック サイズを混在させても安全でしょうか? https://serverfault.com/questions/1150643/is-it-safe-to-use-allow-mixed-block-sizes-1-in-lvm-when-using-ext4-with-4k-blo
解決策 2: 一部のハード ドライブの論理ブロック サイズを変更して、すべてのハード ドライブの一貫性を保つ
ハードディスクの論理ブロックサイズを確認する
lsblk
|
|
PHY-SEC は物理セクタ サイズを示し、LOG-SEC は論理セクタ サイズを示します。
sysfs
|
|
sda はデバイス名です
fdisk
|
|
セクタサイズ物理は物理セクタサイズを示し、セクタサイズ論理は論理セクタサイズを示します。
smartctl
|
|
サポートされている LBA サイズを表示、サポートされている LBA、+ セクションは現在選択されている LBA サイズです
変更 セクター LBA サイズの変更
警告: ハードディスクのセクター サイズを変更すると、すべてのデータが消去され、回復不能になります。
一部の NVMe および「エンタープライズ」SATA ドライブは、それぞれ標準 NVMe (NVMe Command Set Standard 1.0 以降の場合は NVM のフォーマット) または ATA (ATA Command Set Standard 1.0 以降の場合は SET SECTOR CONFIGURATION EXT) を介して報告されたセクター サイズの変更をサポートします。機械式ハードディスクの場合、この操作は物理セクター サイズと一致するように論理セクター サイズを変更することにより、ハードディスクのパフォーマンスを最適化します。 NVMe SSD の場合、論理セクター サイズと物理セクター サイズの両方が変更されます。
SATA SSD は通常、セクター サイズの変更をサポートしていません。一部の Intel SATA SSD は、報告された物理セクター サイズのみを変更でき、論理セクター サイズは変更できません。 セクター サイズの変更には、低レベルのフォーマットを含む一連の複雑な操作が必要です。別の方法として、ハード ドライブ上にファイル システムを作成するときにセクター サイズを手動で指定することで、パフォーマンスを最適化することもできます。
機械式ハードドライブを変更する
hdparm ツールを使用して、ハード ドライブのセクター サイズを変更できるかどうかを判断します。
論理セクター サイズの変更をサポートしていないハード ドライブは、現在のセクター サイズのみを報告します。
|
|
ハードディスクの論理セクターサイズの変更をサポート
|
|
hdparm ツールを使用して、メカニカル ハードディスクのセクター サイズを変更します。
SATA メカニカル ハード ドライブが複数の論理セクター サイズとオプションの SET SECTOR CONFIGURATION EXT ATA コマンドをサポートしている場合 (たとえば、Seagate は FastFormat 機能を備えたハード ドライブを推進しています)、hdparm を使用して、サポートされているさまざまな論理セクター サイズを切り替えることができます。次のコマンドを使用して、これを 4096 バイト (つまり 4Kn) に設定できます。
|
|
変更後、hdparm は 4096 バイトの論理セクター サイズを報告するはずです。
|
|
NVMe SSDを変更する
ソリッド ステート ドライブ (SSD) は多くの場合、より大きな物理ブロック (通常は 4 KiB、8 KiB、場合によってはそれよりも大きい) を使用しますが、通常、論理ブロック サイズは 512 バイトとして報告されます。 nvme-cli パッケージで Identify Namespace コマンドを使用すると、NVMe ハード ドライブのフォーマットされた論理ブロック アドレス サイズ (FLBAS) を表示できます。
|
|
メタデータ サイズは、論理ブロック アドレス (論理ブロック アドレス、LBA) ごとの追加メタデータ バイトのサイズです。この機能は Linux ではまだ完全にはサポートされていないため、値 0 の形式を使用することをお勧めします。 相対パフォーマンスは、さまざまな形式で提供されるパフォーマンス レベル (劣化、良好、良好、最高など) を表します。
Smartctl は、デバイスがサポートする論理ブロック アドレス サイズも表示できます。
|
|
論理ブロック アドレス サイズは、–lbaf パラメーターを使用して nvme format コマンドにターゲット値を渡すことで変更できます。
|
|
lbaf は ID 値に対応し、変更が完了するまでに数秒かかります。