virtualization:proxmox_ve_6_2_rdm

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
virtualization:proxmox_ve_6_2_rdm [2022-01-27 09:51]
Decomo
virtualization:proxmox_ve_6_2_rdm [2022-04-07 11:51] (現在)
Decomo
行 1: 行 1:
-====== Proxmox VE 6.2でHDDをRDM (Raw Device Mapping) ======+====== Proxmox VEのVMからHDDを直接読み書き(いわゆるRDM) ======
  
-物理HDDやSSDをVMに直接アタッチしてストレージとして使う、VMwareで言うところのRDMをProxmox VEで行う方法。+物理HDDやSSDをVMに直接アタッチしてストレージとして使う、いわゆるRDM (Raw Device Mapping)をProxmox VEで行う方法。
  
-RDMはVMware用語っぽ、Proxmoxではディスクパススルーと呼んでいる。厳密には仕組みも違うっぽい気がするけど、RDMの方が通りがいいので本記事ではRDMと呼ぶことにする。+RDMはVMware用語っぽい雰囲気で、Proxmoxではディスクパススルーと呼んでいる。厳密には仕組みも違うっぽい気がするけど、RDMの方が通りがいいので本記事ではRDMと呼ぶことにする。
  
 ===== 試した環境 ===== ===== 試した環境 =====
行 11: 行 11:
 ===== 手順 ===== ===== 手順 =====
  
-RDMしたいディのホスト側デバイスファイルを、仮想ディスクまたは仮想ブロックデバイスとしてゲストにくっつけるだけで良いっぽい+RDMしたいストレージのホスト側デバイスファイルを、仮想ディスクまたは仮想ブロックデバイスとしてゲストにくっつけるだけで行ける
  
 Proxmoxのストレージ画面でRDM対象のHDDを確認する。重要なのはHDDのモデル名とシリアル番号。 Proxmoxのストレージ画面でRDM対象のHDDを確認する。重要なのはHDDのモデル名とシリアル番号。
行 31: 行 31:
 </code> </code>
  
-シェルを開いてHDDをVMにくっつける。+PVEのシェルを開き''qm set''コマンドでHDDをVMにくっつける。書式は見れば分かると思うが、''qm set 仮想マシンID アタッチ先仮想デバイス アタッチ元ホスト側デバイス''である。
  
 <code> <code>
行 40: 行 40:
 </code> </code>
  
-HDDを指定するパスは、上記のように''/dev/disk/by-id/''以下の製品名・シリアル番号を含むパスを使うのが良いとされている。+アタッチ元のHDDのデバイファイルは、上記のように''/dev/disk/by-id/''以下の製品名・シリアル番号を含むパスを使うのが良いとされている。
  
-''/dev/sda''のような昔ながらのデバイスファイルRDMは可能であ。ただし、sdXと物理HDDの対応は変ことがあるので(例えばHDDを繋ぐ物理SATAポートが変わった時とか)、確実に一意に定まる''by-id''の方が安全というわけ。+''/dev/sda''のような昔ながらのデバイスファイルも使え''sdX''と物理HDDの対応は変化す可能性があるので(例えばHDDを繋ぐ物理SATAポートが変わった時とか)、確実に一意に定まる''/dev/dis/by-id/ata-MODELNAME_SERIALNO''の方が安全というわけ。アタッチしたデバイスはVM側で直接読み書きされちゃうので(それを望んでるわけだけど)、あずかり知らぬところで意図せぬストレージが読み書きされたら目も当てられない状況になってしまう
  
-''-virtio0''の部分はVMへの接続方法を表す。上記ブロックデバイスとして接続しているが、SCSIで繋ぎたければ''-scsi0''、SATAなら''-sata0''う風に適宜変更する+アタッチ先仮想デバイスは、上記では''-virtio0''でブロックデバイスとして接続しているSCSIなら''-scsi0''、SATAなら''-sata0''って感じで使いたい方式で置き換えてください。
  
-2021年現在、接続方法はvirtio-scsiによるSCSI接続がよさげな雰囲気。理由は以下のとおり。+なお、2021年現在、RDMに限らず仮想ディスクの接続はvirtio-scsiによるSCSI接続がよさげな雰囲気。理由は以下のとおり。
  
   * virtio-blkの開発が停滞しており、性能面でvirtio-scsiが優位になってきた。   * virtio-blkの開発が停滞しており、性能面でvirtio-scsiが優位になってきた。
-  * virtio-blkはPCIデバイス扱いなのでデバイス数制限がキツイ。 +  * virtio-blkはPCIデバイス扱いなのでデバイス数制限がキツイく、virtio-scsiの方がユルイ。 
-  * virtio-scsiはゲスト側でのホットプラグが望めることが理由+  * virtio-scsiはゲスト側でのホットプラグ対応が望める。
  
 問題なくアタッチできれば、VM管理画面で「ハードディスク」が追加されているのが確認できる。 問題なくアタッチできれば、VM管理画面で「ハードディスク」が追加されているのが確認できる。
行 58: 行 58:
 以上で、VM側から追加したHDD全体が仮想ストレージとして見える。 以上で、VM側から追加したHDD全体が仮想ストレージとして見える。
  
-ちなみに勘の良い人はお気づきだろうが、同じ方法で物理ディスク全体だけではなく、特定のパーティションのみをRDMすることもできる。この場合も、VM側からは1台の仮想ディスクに見えるため、VM側でパーティションを切ると物理パーティションの中に仮想パーティションテーブルが存在する入れ子状態となる(仕組み上当然ですわな。)+勘の良い人はお気づきだろうが、同じ方法で物理ディスク全体だけではなく、特定のパーティションのみをRDMすることもできる。この場合も、VM側からは1台の仮想ディスクに見えるため、VM側でパーティションを切ると物理パーティションの中に仮想パーティションテーブルが存在する入れ子状態となる(仕組み上当然ですわな。)
  
-既存のデータ入りパーティションをVMにRDMし、仮想ディスク上の有効なパーティションとしてそのまま使いたい場合は、Linuxのデバイスマッパーを使うと実現できる。参考記事:[[virtualization:how_to_simulate_ppartition_as_one_of_vpartitions_in_vdisk]]+既存のデータ入りパーティションをVMにRDMし、仮想ディスク上の有効なパーティションとしてそのまま使いたい場合は、Linuxのデバイスマッパーを使うと実現できる。手前みそですけど参考記事:[[virtualization:how_to_simulate_ppartition_as_one_of_vpartitions_in_vdisk]]
  
 ===== 参考サイト ===== ===== 参考サイト =====
  • virtualization/proxmox_ve_6_2_rdm.1643244701.txt.gz
  • 最終更新: 2022-01-27 09:51
  • by Decomo