Proxmox VEのSSD割り当てプラン
Proxmox VEを自宅サーバーとして運用するにあたり、いろいろな実験を行いました。手元にテストケースとして小さなPCのSSD領域割り当てについてその理由とともに書き記しておきます。
- Debian 12
- Proxmox VE 8.3.3
- SSD 64GB
- 主記憶 8GB
前提として、
- ブート領域を除くすべてのSSD領域がLVM管理下にある。
- / (root)とswapを先に確保し、残りはすべてLVM thinプールに割り当てる。
という構成であるとします。下の図を参考にしてください。
なお、インストールにはProxmox VEのインストーラISOは使っていません。Debianをインストールし、その上にProxmoxをインストールしています。
Proxmox VEのインストーラを使う場合には、後述のLVM-thinプール用の領域を空けてインストールし、そのあとにLVM-thinプールを作るとよいでしょう。
割り当ての概要
SSDの総容量は64GBとします。
領域 | 容量等 |
---|---|
/ | 10GB LVM論理ボリューム |
swap | 4GB LVM論理ボリューム |
VMの仮想ディスク置き場 | 50GB LVM-thin プール |
ISOイメージ置き場 | 20GB LVM-thin 論理ボリューム |
root(/)
rootボリュームは、Proxmox VEの管理WEB画面上ではlocal
と表示されます。そのため、Proxmox VEコミュニティではlocalと呼ばれていることもあります。
rootボリュームのサイズをどのくらい確保すればよいのかは、実はProxmox VE Administration Guideにははっきり書いていません。
手元での使用量を見ると、DebianとProxmox VE合わせて4GB以下です。
Proxmoxのコミュニティには長期運用者でも8GB以下しか使用していないと言う声もあます。16GBもあれば十分でしょう。今回はSSDの容量が小さめななので、けちって10GBとしました。
swap
swapサイズのサイズは先の公式ガイドによれば4GBから8GB、SSDの1/8を超えないサイズが推奨値です。
swapサイズはDebianのインストーラ任せなだと1GBしかありません。メモリ使用量が少ないうちに手作業で増量しておきました。
手順としては、まずスワップ論理ボリュームの名前を突き止めます。
cat /etc/fstab | grep swap
/dev/mapper/curie--vg-swap_1 none swap sw 0 0
/dev/mapper/curie--vg-swap_1
がスワップ論理ボリュームの名前です。いったんスワップを停止し、増量してから再度スワップを始めます。
sudo swapoff -a /dev/mapper/curie--vg-swap_1
sudo lvextend -L 4G /dev/mapper/curie--vg-swap_1
sudo mkswap /dev/mapper/curie--vg-swap_1
sudo mount -a
sudo swapon /dev/mapper/curie--vg-swap_1
VMの仮想ディスク置き場
Proxmox VEでVMを作る時には、同時にVMの仮想ディスクも作ります。そのための領域としてLVMの機能であるLVM-thinのプールを50GB確保しています。
LVM-thinプールはL、thin provisioningと呼ばれる「ファイルシステムのサイズの宣言と実装を分離する」技術を提供します。これを使うと「将来10TBのディスク・ボリュームが必要になるかもしれないが、当面は512GBしか使わない」といった場合にあらかじめ10TBのファイルシステムとして宣言しつつ段階的にディスクを増設しながら運用することが可能になります。
Proxmox VEはVMの仮想ディスクとしてLVM-thin論理ボリュームを使うことができます。これによって、「実際何GB必要かはわからないので大きめの仮想ディスクを作っておこう」という場合にも、実際に使用した領域分しか消費しないコンパクトな運用が可能になります。
さらに、LVM-thinの論理ボリュームにはスナップショット機能があり、これを利用したVMのスナップショットも提供されています。そういうわけで仮想ディスクの置き場にはLVM論理ボリュームではなくLVM-thinプールを使うべきです。
LVM thinプールの割り当てはProxmox VEのインストール前でも後でも構いません。
LVM thinプールを作るにはlvcreateコマンドを使います。-T
オプションを忘れないでください。
sudo lvcreate -l 100%FREE -T -n <作るLVM thinプールの名前> <ボリューム・グループの名前>
ボリュームグループcurie-vg
にthinpool01
を作る場合は次のコマンドを打ちます。
sudo lvcreate -l 100%FREE -T -n thinpool01 curie-vg
ISOイメージ置き場
Proxmox VEは、OSインストール用のISOイメージをホスト(ノード)内部に置くことができます。このISOイメージ置き場にはLVM-thin機能で作った大きめの論理ボリュームを割り当てています。
先のthin provisioning機能を使っているため、20GBの論理ボリュームであっても利用するストレージ容量は実際に置いているISOイメージの総量だけです。
これによってストレージの容量を有効利用できます。
LVM thinプールを使ってLVM論理ボリュームを作るにはlvcreateコマンドを使います。
sudo lvcreate -V <サイズ> -n <作るLVM論理ボリュームの名前> <ボリューム・グループ/thinプール>
ボリュームグループcurie-vg
のthinpool01
を使って20GBの論理ボリュームiso
を作る場合は次のコマンドを打ちます。
sudo lvcreate -V 20G -n iso curie-vg/thinpool01
仕上げに論理ボリュームをext4でフォーマットします。まず、作った論理ボリュームの名前は、/mapper/mapper
の中に見つけることができます。
ls /dev/mapper | grep thinpool01
curie--vg-iso
というボリュームが見つかります。
curie--vg-iso
これをフォーマットしてお終いです。
sudo mkfs.ext4 /dev/mapper/curie--vg-iso
Proxmox VEの設定
用意したLVM-thinプールとLVM論理ボリュームをProxmoxに追加します。
LVM-thinプールの追加
まず、LVM-thinプールをProxmoxに追加します。
Datacenter
->Storage
と進んでAddプルダウンメニューからLVM-thin
を選びます。
するとAdd:LVM-thin
ダイアログが現れます。
-
ID
に"local-LVM"とタイプする。 -
Volume group
には自動で値が入っている。値が今回使いたいLVM VGでなければ、希望するものに変更する。 -
Thin pool
には自動で値が入っている。値が今回使いたいLVM-thinプールでなければ、希望するものに変更する。 -
Content
には"Disk image, Container"が自動で設定されている。変更する必要はない。
Add
ボタンを押すと入力が適用されて、Proxmox VEのServer Viewに"local-LVM"が現れます。
ISO保存用論理ボリュームの追加
上で作ったISOイメージ置き場用論用ボリュームを例にとって説明します。
まず、このボリュームをマウントしなければなりません。マウントポイントは/var/mnt/iso
とします。次のコマンドを実行すると、論理ボリュームをマウントできます。
sudo mkdir -p /var/mnt/iso
echo '/dev/mapper/curie--vg-iso /var/mnt/iso ext4 defaults 0 0' | sudo tee -a /etc/fstab
sudo mount -a
次にボリュームをマウントしたディレクトリをISO保存用ストレージとして登録します。
Datacenter
->Storage
と進んでAddプルダウンメニューからDirectory
を選びます。
するとAdd:LVM-thin
ダイアログが現れます。
-
ID
に"local-ISO"とタイプする。 -
Directory
に"/var/mnt/iso"(上でLVMボリュームをマウントしたディレクトリ)と入力します。 -
Content
には"ISO image"を設定する。
Add
ボタンを押すと入力が適用されて、Proxmox VEのServer Viewに"local-ISO"が現れます。
localボリュームのContent調整
デフォルトではlocalボリュームには何でも置けるようになっています。
しかしながら、既にVMのディスクとISOイメージの置き場を作ったので、間違ってlocalボリュームにそれらを配置しないよう、禁止しておきます。
Datacenter
->Storage
と進んでlocalボリュームを選択し、Edit
ボタンを押します。
するとEdit directory
ダイアログが現れます。
-
Content
の中から、"Disk image", "ISO image", "Container"をディセーブルします。
以上で終わりです。
履歴
- 2025/Feb/22 : "Proxmox VEの設定"を追加。
Discussion