ソースの表示以前のリビジョンバックリンク全て展開する/折り畳む文書の先頭へ Share via Share via... Twitter LinkedIn Facebook Pinterest Telegram WhatsApp Yammer Reddit Teams最近の変更Send via e-Mail印刷パーマリンク × 目次 Proxmox VE 6.2のZFSストレージで仮想ディスクをイメージファイルで使う 試した環境 手順 localストレージの設定変更 仮想HDDファイルの作成 localストレージにイメージを配置 VMにイメージファイルを取り込み 落ち葉拾い 参考サイト Proxmox VE 6.2のZFSストレージで仮想ディスクをイメージファイルで使う Proxmox VEをZFS環境として構築すると、仮想マシンのディスクイメージはzvolとして作成される。zvolはブロックデバイス扱いなので、仮想ディスク用途にはピッタリである。 しかし個人的には、ZFSのスナップショットとの相性や、バックアップのし忘れがないとかのしょーもない理由で、仮想ディスクもイメージファイルで扱いたい。 ネット上の情報を参考にしながら試行錯誤したところ割と簡単に実現できた。ZFS環境のみならず、PVE管理外の外部のディスクイメージを使うような場合にも有用だと思う。 試した環境 Proxmox VE 6.2-4 ZFS環境 ディスクイメージ専用のZFSプール zvm を使う 手順 Proxmox VEは仮想マシン用のデータ保管ストレージとして、ローカルストレージやNFS, iSCSIなど様々なタイプのストレージを扱う事ができ、それぞれ機能や特性が異なる。 PVEシステムに必ず存在するlocalストレージとは、それらの一種であるDirectoryタイプのストレージで、その実体は/var/lib/vz/ディレクトリである。 基本的な考え方としては、このディレクトリ以下にディスクイメージファイルを置けば、ZFS環境でもディスクイメージとしてファイルが使えるようになる。 localストレージの設定変更 ZFS環境では、localストレージでイメージファイルを扱わない設定となっているため、まずはここをどうにかする。 Proxmox VE 6.3-3で確認したところ、GUIで設定できるようになっていた。 データセンター>ストレージでlocalをダブルクリックし、コンテンツに「Disk image」を含める。 PVE 6.2の時はDisk imageを追加しようとしてもできなかった気が… /etc/pve/storage.cfgを編集し、localストレージでファイルイメージを扱えるようにする。 dir: local path /var/lib/vz content vztmpl,iso,backup,images # imagesを追加 仮想HDDファイルの作成 仮想ディスクイメージファイルは専用のZFSプール&データセット、zvm/R/imagesに置くとする。場所はお好みで。 データセットの作成 # zfs create zvm/R/images 空のディスクイメージを作る。ここでは、いわゆるRAW形式で900GiBで確保している。 # dd if=/dev/zero of=/zvm/R/images/hdd.raw bs=1M count=921600 現時点では単なるゼロ埋めデータなので、圧縮率が半端ない。 # ls -alh /zvm/R/images/ total 1.5K drwxr-xr-x 2 root root 3 Dec 26 16:12 . drwxr-xr-x 3 root root 3 Dec 26 16:01 .. -rw-r--r-- 1 root root 900G Dec 26 16:24 hdd.raw # zfs list -r zve NAME USED AVAIL REFER MOUNTPOINT zvm 3.66M 1.06T 96K /zvm zvm/R 192K 1.06T 96K /zvm/R zvm/R/images 96K 1.06T 96K /zvm/R/images localストレージにイメージを配置 localストレージに作成したディスクイメージファイルを置く。といっても、コピーしたのでは専用プールに作った意味がないので、localストレージからzvmプール上のイメージファイルにシンボリックリンクを張ってやる。 # mkdir -p /var/lib/vz/images/101 # ln -s /zvm/R/images/hdd.raw /var/lib/vz/images/101/vm-101-hdd.raw 上記パス内の「101」はVMのIDなので適宜読み替えのこと。また、イメージファイル(ここではシンボリックリンクだが)の命名規則は「vm-VMのID-任意の英数字.イメージ形式(raw/qcow2/vmdk)」である。 VMにイメージファイルを取り込み qm rescanを実行するとイメージファイルのスキャンが行われる。 # qm rescan rescan volumes... VM 101: add unreferenced volume 'local:101/vm-101-hdd.raw' as 'unused0' to config 問題がなければ、VM管理画面のハードウェア構成に「未使用ディスク」として追加される。 こいつをダブルクリックしてVMに接続すれば完了。 落ち葉拾い localストレージは/var/lib/vz/で辿れさえすればいいので、fstabで別ディスクをマウントしても問題ない。公式リファレンスにも書いてあったりする。 今回のようにZFS環境なら、それこそmountpointプロパティを使う方が簡単だったりして。 /etc/pve/qemu-server/にある仮想マシン設定ファイルを編集して、「sata0: /full/path/to/imagefile.raw」という感じで書けば、何も考えずに任意のディスクイメージファイルをVMに接続できる。 まぁ、ちゃんと公式のお作法に則っておきましょうってことで。 参考サイト How to add an existing virtual disk to Proxmox | Dae’s blog Storage: Directory - Proxmox VE Storage - Proxmox VE qm(1) virtualization/proxmox_ve_6_2_use_external_disk_image_file.txt 最終更新: 2021-01-20 12:58by Decomo