差分
このページの2つのバージョン間の差分を表示します。
次のリビジョン | 前のリビジョン | ||
blog:2023:2023-05-07 [2023-05-07 22:33] Decomo 作成 |
blog:2023:2023-05-07 [2023-05-29 16:37] Decomo |
||
---|---|---|---|
行 3: | 行 3: | ||
Proxmox VEの仮想ディスクは、仮想マシンから512バイトセクタのストレージとして見える。正確にはQEMUのデフォルト挙動で、仮想環境における極々一般的な挙動なので普通に使う分には困らないし、意識すらしないだろう。 | Proxmox VEの仮想ディスクは、仮想マシンから512バイトセクタのストレージとして見える。正確にはQEMUのデフォルト挙動で、仮想環境における極々一般的な挙動なので普通に使う分には困らないし、意識すらしないだろう。 | ||
- | じゃあどんな時に困るかというと、物理・論理セクタサイズの両方が4096バイトの、いわゆる4KnデバイスをRDMでVMにアタッチする場合に困る。同じ理屈で、4Kn環境をそのままP2Vした時のディスクイメージとかも。例えばパーティションテーブルはLBA(セクタ番号)で管理されているので、4kセクタ環境で1GiBのパーティションを確保した場合262144セクタとなるが、これを512Bセクタ環境で解釈すると128MiBしか確保されてないように見え、色々とマズいわけですよ(実際はGPTそのものが正しく認識されなくなる。) | + | じゃあどんな時に困るかというと、物理・論理セクタサイズの両方が4096バイトの、いわゆる4KnデバイスをRDMでVMにアタッチする場合や、4Kn環境をそのままP2Vした時のディスクイメージとかで困る。例えばパーティションテーブルなんかはLBA(セクタ番号)で管理されているので「パーティション1はセクタ1~262144」という設定は、4kセクタ環境なら1GiB、512バイトセクタ環境なら128MiBのパーティションを表すことになり、だいぶマズいわけですよ。(そもそも、GPTの配置自体が“LBA 1”と規定されているのでセクタサイズが合ってないとパーティションテーブル自体が正しく認識されない。) |
- | 仮想ディスクを4Knとして認識させるには、''/ | + | というわけで、仮想ディスクを4Knとして認識させるには、''/ |
< | < | ||
args: -set device.scsi0.physical_block_size=4096 -set device.scsi0.logical_block_size=4096 | args: -set device.scsi0.physical_block_size=4096 -set device.scsi0.logical_block_size=4096 | ||
- | < | + | </code> |
'' | '' |