Proxmox仮想環境(VE)は、ウェブブラウザのユーザーフレンドリーなグラフィカルインターフェースで管理できます。しかし、特定のシナリオでは、コマンドラインインターフェース(CLI)を使用する方が良いです。CLIは、より詳細な設定、バッチ処理、スクリプト作成および自動化などの利点を提供します。
Proxmox仮想環境を管理するための標準LinuxコマンドとProxmox特有のコマンドがあります。このブログ記事では、効果的な管理のためのトップ10のProxmox特有のコマンドとその例を紹介します。
1. qm
コマンドは、主要なProxmox CLIコマンドの1つであり、qmはQEMUマネージャの略です。このコマンドは、Proxmox仮想環境(Proxmox VE)内の仮想マシン(VM)を管理するために使用されます。Proxmoxの仮想マシンはQEMU/KVMベースであり、qmコマンドはそれらと対話します。このコマンドを使用して、VMを作成、編集、構成、起動、停止、およびマイグレーションすることができます。
コマンドの一般的な構文は次の通りです:
qm [options] <command> [arguments]
仮想マシンの一覧表示
VMのステータスとIDを確認できます。このVMをProxmox CLIで管理するには、IDが必要です。
qm list
新しい仮想マシンの作成
一般的な構文:
qm create <vmid> [options]
例:
qm create 103 --name "DebianVM" --memory 2048 --net0 virtio,bridge=vmbr0 --sockets 1 --cores 2 --ostype l26
以下のProxmox CLIコマンドは、ID 103 の「DebianVM」という名前のVMを作成します。RAMは2GB、ソケットは1、コアは2、Virtioネットワークインターフェースは vmbr0 にブリッジ接続されています。OSタイプはLinux(l26で示されています)。
VMにディスクを接続する
qm set 105 --scsi0 local-lvm:32G
このコマンドは、SCSIインターフェースを使用してVMに32GBのディスクを接続します。
OSインストール用のCD-ROMを接続する
qm set 105 --ide2 local:iso/debian-10.7.0-amd64-netinst.iso,media=cdrom
このコマンドは、ゲストオペレーティングシステムのインストールやその他の目的のために、VMのIDE CD-ROMドライブにDebian ISOを接続します。
ブート順序の設定
qm set 105 --boot order=ide2;scsi0
この例で使用されるコマンドは、VMが最初にCD-ROM(IDE2)から起動し、次にディスク(SCSI0)から起動するように設定します。
仮想マシンの起動
構文:
qm start <vmid>
例:
qm start 103
ID 103のVMを起動します。
VMの停止
qm stop <vmid>
このコマンドは、実行中のVMを直ちに停止します。この方法でVMを停止するのは、物理マシンの電源プラグを抜くのと同じです。
qm stop 103
ID 103のVMを停止します。
Proxmox CLIでVMをシャットダウンする
qm shutdown <vmid>
このコマンドは、ゲストOSがファイルを閉じ、プロセスを適切に終了できるように、VMを優雅にシャットダウンします。
qm shutdown 101
VM ID 101にシャットダウン信号を送信しています。
VMを別のノードに移行する
qm migrate <vmid> <targetnode>
このコマンドは、VMを現在のノードから同じProxmoxクラスター内の別のノードに移行します。
たとえば、ID 103のVMをnode2に移行するには、次のコマンドを使用します:
qm migrate 103 node2
VMのスナップショットを取得する
qm snapshot <vmid> <snapshotname>
このコマンドは、VMのスナップショットを作成し、メモリ、ディスク、およびデバイスの状態を含む現在の状態をキャプチャします。
qm snapshot 103 "before_upgrade"
このコマンドは、ID 103のVMのスナップショットを取得し、「before_upgrade」という名前を付けます。スナップショットを取得するコマンドを使用することは、ソフトウェアのアップグレードなどのリスクの高い操作を行う前に便利です。
スナップショットからVMの状態を復元する
qm rollback <vmid> <snapshotname>
このコマンドは、VMを以前のスナップショットにロールバックし、スナップショットが取得された時点の状態に復元します。
たとえば、VM内のソフトウェアアップグレードが失敗した場合、次のコマンドでVMの状態を復元できます:
qm rollback 103 "before_upgrade"
スナップショットが作成されて以来の変更は破棄されます(元に戻されます)。
仮想マシンのクローン作成
qm clone <vmid> <newid> [--name <newname>] [--full]
qm clone
コマンドは、既存のVMをクローンして異なるIDの新しいVMを作成します。ディスク全体をクローンする(フルクローン)か、リンクされたストレージのみをクローンするかを選択できます。
qm clone 103 104 --name "DebianClone" --full
このコマンドは、ID 103のVMをID 104の新しいVMにクローンし、名前を「DebianClone」にします。––fullオプションはフルクローンを作成し、すべてのデータをコピーします。
仮想マシンのディスクのサイズ変更
qm resize <vmid> <disk> <size>
qm resize
コマンドは、VMに接続されている仮想ディスクのサイズを変更するために使用され、サイズを拡張または縮小します。ゲストOSが変更を処理できることを確認してください。
qm resize 103 scsi0 +10G
このProxmox CLIコマンドは、ID 103のVMのscsi0ディスクのサイズを10GB増加させます。
2. pve-firewall
pve-firewall
コマンドは、Proxmox仮想環境内、特にProxmoxクラスターのファイアウォール設定を管理するために使用されます。このProxmox CLIコマンドは、ファイアウォールルールの設定に対して使いやすいオプションを提供し、管理者がProxmoxノード、仮想マシン、コンテナへのネットワークトラフィックを制御できるようにします。Proxmoxファイアウォールは、Proxmox管理インターフェースと密接に統合されており、Proxmox環境全体でのファイアウォール管理をより便利にします。pve-firewallツールは、特にProxmox VEのために開発されており、iptablesで使用されるより細かく手動のアプローチに比べて、ファイアウォールルールを管理するために高レベルの抽象化を使用します。
構文:
pve-firewall <command> [options]
主なコマンドの使用法を確認するには、pve-firewall
コマンドを実行してください。
ステータスの確認
Proxmox VEファイアウォールサービスのステータスを確認するには:
pve-firewall status
出力は、現在のノードでファイアウォールが実行中かどうかを表示します。
ファイアウォールの開始
現在のProxmoxノードでファイアウォールサービスを開始するには:
pve-firewall start
ファイアウォールの再読み込み
ファイアウォールサービスを再読み込みし、ファイアウォール設定の変更を適用します。ファイアウォールサービスを停止して再起動する必要はありません。
pve-firewall reload
SSHトラフィックの受け入れ
SSHトラフィックを受け入れるファイアウォールルールを作成します:
pve-firewall create rule -action accept -macro ssh
このコマンドは、Proxmox環境へのSSHアクセスを許可するルールを作成します。
場所:create <object>は、ルール、セキュリティグループ、またはIPセットなどの新しいファイアウォールオブジェクトを作成します。
ルールを削除する
ルールを削除するには、次のコマンドを使用します:
pve-firewall delete rule <rule-id>
ログを表示する
トラフィックとルールの一致を示すファイアウォールログを表示します:
pve-firewall log
出力には、最も最近のファイアウォールログエントリが表示されます。
HTTPトラフィックを拒否する
HTTPトラフィックを拒否するファイアウォールルールを作成するには、次のコマンドを使用します:
pve-firewall create rule -action drop -macro http
3. pvesm
Proxmox CLIのpvesm
コマンドは、Proxmox VEのストレージ構成を管理するために使用されるコマンドラインユーティリティです。このコマンドラインツールを使用すると、ストレージプールを作成、削除、変更、管理できます。また、ディレクトリの作成、ストレージデバイスの追加、コンテンツタイプの管理など、さまざまなストレージ関連のタスクを実行できます。
構文:
pvesm <command> [options]
ストレージをリストする
pvesm list <storage>
ここで、<storage>はリストするストレージプール(データストア)の名前です。
すべてまたは特定のストレージプールの状態を確認する
pvesm status
出力はストレージプールの状態を表示し、アクティブか非アクティブか、ストレージタイプ、現在の使用状況に関する情報を含みます。
新しいストレージプールの作成
pvesm create <type> <storage-id> --options
ここで:
<type>は作成するストレージバックエンドのタイプ(例えば、dir、lvm、nfs、zfs)です。
<storage-id>はストレージプールの一意の名前またはIDです。
––optionsはストレージタイプに特有の追加オプションを定義します。
例:
VMイメージやISOファイルを保存できる、new-datastore1という名前のディレクトリベースのストレージプールを、/mnt/storage-nameに作成する:
pvesm create dir new-datastore1 --path /mnt/storage-name --content images,iso
既存のストレージバックエンドをProxmox VEに追加する
このコマンドの原則はpvesm create
コマンドと似ていますが、新しいストレージを作成するのではなく、既に存在するストレージをProxmoxの設定に追加して利用できるようにします。
例:
192.168.101.100の/export/dataにある既存のNFS共有を、test-nfs-storageという名前でProxmox VEに追加する:
pvesm add nfs test-nfs-storage --server 192.168.101.100 --export /export/data --path /mnt/pve/test-nfs-storage --content images,iso
既存のストレージプールの設定を変更する
pvesm set <storage-id> --options
例:
local-storage01プールを変更して、VMイメージ、ISOファイル、バックアップファイルを保存できるようにする:
pvesm set local-storage01 --content images,iso,backup
指定されたストレージプールにVMまたはコンテナ用の新しいボリュームを割り当てる
pvesm alloc <storage-id> <vmid> <size>
例:
VM 100のためにlocal-storage-nameプールに10 GBのボリュームを割り当てるコマンド:
pvesm alloc local-storage-name 100 10G
4. pveum
Proxmox Virtual Environmentでは、Proxmox VEを管理するために複数のユーザーを作成できます。これは、pveum
(ユーザー管理)コマンドを使用してProxmox CLIコマンドで行うことができます。Proxmox管理者は、ユーザーやグループを管理し、アクセス制御や権限を設定できます。これにより、誰がアクセスでき、Proxmoxインフラのさまざまな部分でアクションを実行することが許可されているかが定義されます。管理者は、仮想マシン、ストレージ、クラスターノードなどのオブジェクトにアクセスするための権限を割り当てることができます。
構文:
pveum <command> [options]
Proxmox VEに新しいユーザーを追加する
pveum useradd <userid> --password <password> --comment <comment> --groups <group>
ここで:
––パスワード <password>は新しいユーザーのパスワードです。
––コメント <comment>はユーザーに対するオプションのコメントまたは説明です。
––グループ <group>はユーザーが所属するべきグループ(またはグループ)です。
例:
pveum useradd user2@pve --password UserSecretPassword111 --comment "user2 – admin group" --groups admin
このコマンドは、user2という名前のユーザーを説明付きでadminグループに追加し、このユーザーのパスワードを設定するために使用されます。
ユーザーの削除
ユーザーを削除するには、ユーザーを追加するのと同じ論理でpveum
コマンドを使用します。例えば:
pveum userdel user3@pve
このコマンドは、Proxmoxホスト上のuser3を削除するために使用されます。
グループの作成
Proxmox CLIで新しいグループを作成するには、groupadd
コマンドを使用します。
構文:
pveum groupadd <groupname> --comment <comment>
例:
pveum groupadd support --comment "Support Team Group"
このコマンドは、説明“Support Team Group”を持つ新しいグループsupportを作成します。
グループの削除
ユーザーを削除するのと同様に、グループを削除することができます。例えば、guestsグループを削除するには、次のコマンドを使用できます:
pveum groupdel guests
ロールの追加
ロールは、このロールが割り当てられたユーザーやグループに対する一連の権限を定義するために使用されます。
構文:
pveum roleadd <rolename> --privs <privileges>
ここで:
<rolename> は作成するロールの名前です。
––privs <privileges> は、ロールに割り当てる権限のカンマ区切りリストです(例:VM.PowerMgmt,VM.Config.Disk)。
例:
pveum roleadd vmmanager --privs VM.PowerMgmt,VM.Config.CDROM
このコマンドは、VMの電源設定を管理し、CD-ROMを構成する権限を持つ「vmmanager」というロールを作成します。
既存のロールの変更
管理者は、rolemod
コマンドを使用して、既存のロールと権限を変更できます(権限の追加または削除)。
構文:
pveum rolemod <rolename> --privs <privileges>
例:
pveum rolemod vmmanager --privs +VM.Config.Network
このコマンドは、「VM.Config.Network」の権限を「vmmanager」ロールに追加します。
ACLの変更
Proxmoxの管理者は、特定のProxmoxオブジェクトに対してユーザーやグループにロールを割り当てることでアクセス制御リスト(ACL)を変更できます。
構文:
pveum aclmod <path> --roles <rolename> --users <userid> --groups <groupname>
ここで:
<path>はACLを設定するオブジェクトのパスです(例えば、特定のVMのための/vms/100や、クラスタ全体のための/)。
––roles <rolename>は割り当てる役割です。
––users <userid>はその役割が割り当てられるユーザーです。
––groups <groupname>はその役割が割り当てられるグループです。
例:
pveum aclmod /vms/104 --roles vmmanager --users user4@pve
このコマンドは、VM 104に対してvmmanager役割をuser4@pveに割り当て、ユーザー(user4)がその特定のVMをvmmanager役割の特権に従って管理できるようにします。aclremove
コマンドは、オブジェクトからACLを削除するために使用されます。
認証領域管理
認証領域は、ユーザーがシステムに認証する方法を定義します(例:PAM、LDAP、またはActive Directoryを使用)。Proxmox VEでは、realm
コマンドで認証領域を管理できます。
構文:
pveum realm <command> [options]
コマンドは次のようになります:
listは利用可能なすべての領域をリスト表示します
addは新しい領域を追加します
modifyは既存の領域を修正します
削除して既存のレルムを削除する
たとえば、Proxmox VE に設定されているすべての認証レルムを一覧表示するには、次のコマンドを使用します:
pveum realm list
既存のユーザーの管理
このユーザーコマンドを使用して、既存のユーザーを一覧表示、編集、削除できます。
構文:
pveum user <command> <userid> [options]
コマンドは次のようになります:
listですべてのユーザーを一覧表示
modifyしてユーザーの詳細を変更(パスワードの変更やコメントの更新など)
deleteしてユーザーを削除
たとえば、Proxmox ホスト上のすべてのユーザーを一覧表示するには、次のコマンドを使用します:
pveum user list
より多くの利用可能なコマンドとオプションを確認するには、Proxmox CLI でpveum help
コマンドを実行します。
5. pvesh
管理者はpvesh
コマンドを使用して、Proxmox REST API と対話できます。このコマンドラインツールを使用すると、Proxmox CLI から直接 Proxmox ウェブインターフェースを介して行うことができるほぼすべてのアクションを実行できます。pvesh
コマンドは、Proxmox VE REST API のシェルとして機能し、コマンドラインから直接コマンドを使用して API 呼び出しを行うことができます。このコマンドを使用すると、仮想マシン、ストレージ、ネットワーク、および Proxmox 仮想インフラストラクチャの他の要素を管理できます。
構文:
pvesh <command> [options]
リソースまたは API エンドポイントの一覧表示
このコマンドはLinuxのlsコマンドに似ていますが、Proxmox VE環境内の利用可能なAPIパスやリソースをリストします。
pvesh ls /path
例:
pvesh ls /cluster/resources
このコマンドは、VM、コンテナ、ストレージを含むProxmoxクラスタ内のすべてのリソースをリストします。
情報の取得
このgetコマンドは、特定のAPIエンドポイントから情報を取得します。このコマンドは、リソースの詳細を照会するために使用されます。
pvesh get /path
ここで、pathは情報を取得したいAPIパスです。
例えば、ノードpve-node1のCPU負荷、メモリ使用量、稼働時間などのステータス情報を取得するには、次のコマンドを使用できます:
pvesh get /nodes/pve-node1/status
設定の変更
このset コマンドは、リソースの設定を変更または更新するために使用されます。これはREST APIでのPOSTまたはPUTリクエストに相当します。
構文:
pvesh set /path --key value [--key value ...]
––key valueは、変更したい設定のキーと値のペアです。
例:
pvesh set /nodes/pve-node1/qemu/100/config --name new-vm-name
このコマンドは、ノードpve-node1上のVM100の名前をnew-vm-nameに変更します。
リソースの作成
createコマンドは、新しいリソース、例えば新しいVMやストレージボリュームを作成することを可能にします。
構文:
pvesh create /path --key value [--key value ...]
例えば、特定のパラメータを使用して新しいVMを作成するコマンドは次の通りです:
pvesh create /nodes/pve-node1/qemu --vmid 106 --name new-vm-name --memory 2048 --cores 2
このコマンドは、ノード pve-node1 にID 106 の新しいVMを作成し、名前は new-vm-name、RAMは2GB、CPUコアは2です。
VMの起動
VMまたはコンテナを起動するためのコマンドは pvesh です:
pvesh start /path
例えば、ノード pve-node1 にあるID 101 のVMを起動するには、次のコマンドを実行します:
pvesh start /nodes/pve-node1/qemu/101
VMのシャットダウン
stopコマンドとは異なり、shutdownコマンドはVMまたはコンテナを優雅にシャットダウンします:
pvesh shutdown /path
例えば、ProxmoxホストでID 101のVMをシャットダウンするには、その名前が pve-node1 であるコマンドを使用します:
pvesh shutdown /nodes/pve-node1/qemu/101
すべてのVMの起動
ノードまたはクラスタ全体のすべてのVMを起動または停止するには、対応するコマンドを使用できます:
pvesh startall /nodes/<nodename>
pvesh stopall /nodes/<nodename>
6. pvecm
pvecm
コマンドは、Proxmoxクラスタ管理のためのツールであり、Proxmoxクラスタの管理と構成に使用されます。このツールを使用して、クラスタを作成したり、Proxmoxクラスタ内のノードを追加・管理したりできます。クラスタは、高可用性、ライブVMマイグレーション、共有ストレージなどの機能を構成する単一のエンティティとして管理されます。
構文:
pvecm <command> [options]
サポートされているすべてのpvecm
コマンドを表示するには、次のコマンドを実行します:
man pvecm
クラスタの作成
新しいProxmox VEクラスタを作成するには、createコマンドを使用します。このコマンドは、クラスタを形成する最初のノード(マスターノード)で実行する必要があります。
pvecm create <clustername>
例:
以下のコマンドは、cluster01という名前のクラスタを作成します。このノード(コマンドを実行するノード)は、クラスタのマスターノードになります。
pvecm create cluster01
クラスタへのノードの追加
既存のProxmoxクラスタに新しいノードを追加するには、addnodeコマンドを使用します。このコマンドは、クラスタに追加したいノードで実行します。
pvecm add <master-node-ip>
例:
IPアドレス192.168.101.121を持つマスターノードが管理するクラスタに現在のProxmoxホストを追加する:
pvecm add 192.168.101.121
クラスタからのノードの削除
delnodeコマンドは、Proxmox CLIでクラスターからノードを削除するために使用されます。
構文:
pvecm delnode <ノード名>
例:
クラスターからノード名pve-node2を削除するコマンドは:
pvecm delnode pve-node2
クラスターのすべてのノードを一覧表示する
クラスターのすべてのノードを一覧表示し、ノード名やIPアドレスを含むステータスを表示するコマンドは:
pvecm nodes
新しいマスターノードの設定
Proxmoxクラスターで別のクラスターのノードをマスターとして設定できます:
pvecm setmaster <ノード名>
ここで、<ノード名>はマスターとして指定したいノードの名前です。
クラスターのステータスを表示
Proxmoxクラスターのステータスを表示し、クォーラム、ノードの数、およびそれらの役割に関する情報を含めることができます。
pvecm status
期待されるノード数の設定
クラスター内でクォーラムを達成するために期待されるノード数を確認するには、expectedコマンドを使用できます。一部のクラスターのノードが一時的にオフラインの場合、混乱を避けるためにこのコマンドを使用する必要があります。クォーラムは、異なるクラスターのノードがクラスターの状態に関して対立する情報を持っている場合のスプリットブレイン状況を避けるために使用されます。
pvecm expected <数>
7. hamanager
hamanager
コマンドは、Proxmox クラスターを作成した後に仮想マシンの高可用性 (HA) 機能を管理するために使用されます。このコマンドラインユーティリティを使用すると、重要な VM の高可用性を構成し、それらが実行されているノードが失敗した場合にクラスタ内で再起動する方法を設定できます。Proxmox CLI の hamanager ツールは、Proxmox 高可用性マネージャーと対話します。
構文:
ha-manager <command> [options]
ステータスの表示
HA リソースの現在のステータスを表示するには、次のコマンドを使用できます:
ha-manager status
出力は、HA に構成されている VM または CT、現在の状態 (開始、停止)、HA ステータスおよびフェイルオーバーステータス、実行されているノードについての情報を表示します。
VM の HA を有効にする
構文:
ha-manager add <vmid> --group <groupname> --max-restarts <n> --max-migrate-tries <n>
ここで:
<vmid> は、HA に追加したい VM または CT の ID です。
––group <groupname> は、リソースを追加する HA グループ (オプション) です。
––max-restarts <n> は、リソースが失敗した場合の最大再起動試行回数です。
––max-migrate-tries <n> は、リソースが再起動できない場合の別のノードへの最大移行試行回数です。
例:
VM ID 105 を HA マネージャーに追加し、最大 3 回の再起動試行と 1 回の移行試行を設定します:
ha-manager add 105 --max-restarts 3 --max-migrate-tries 1
VM の HA ステータスを無効にする
高可用性のステータスを無効にするには、remove コマンドを使用して、仮想マシンを HA マネージャーから削除します。
ha-manager remove <vmid>
たとえば、ID 105 の VM の HA ステータスを無効にするには、次のコマンドを実行します:
ha-manager remove 105
コマンドを実行した後、その VM は高可用性リソースとして管理されなくなります。
VM マイグレーション
高可用性の VM をクラスター内の別のノードに手動で移行するには、migrate コマンドを使用します:
ha-manager migrate <vmid> <targetnode>
たとえば、ID 106 の VM を pve-node2 というノードに移行するには、次のコマンドを実行します:
ha-manager migrate 106 pve-node2
8. vzdump
コマンド vzdump
は、Proxmox VE でネイティブの Proxmox ツールを使用してバックアップを作成するために使用されます。このコマンドは、VM とコンテナのバックアップをサポートしています。バックアップは .vma、.tgz または .lzo 形式で保存できます。
構文:
vzdump [options] <vmid> [<vmid2> ...]
ここで:
vmid は、バックアップしたい VM またはコンテナの ID です。
––mode <mode> はバックアップモードを定義します。サポートされているバックアップモードは3つあります:
- スナップショット – Proxmoxの仮想マシンまたはコンテナのライブスナップショットを取得します。このモードはデフォルトで使用されており、VMやコンテナが実行中の場合にバックアップを実行することができます。
- サスペンド – このモードはバックアップ前にVMまたはコンテナを一時停止するために使用され、データの整合性を確保します。このモードによる短時間のダウンタイムは欠点です。
- 停止 – バックアップを実行する前に仮想マシンまたはコンテナを停止します。このアプローチはバックアップデータの整合性を保つことができますが、より長いダウンタイムが必要です。
––compress <type> は圧縮方法を指定するために使用されます。サポートされている圧縮オプションは3つあります:
- lzo – Proxmoxバックアップ用の軽量で高速な圧縮(デフォルトで使用)。
- gzip – これはより効率的な圧縮方法ですが、データの圧縮により多くの時間を要します(圧縮が遅い)。
- zstd – この圧縮タイプは、最適なパフォーマンスを提供する高圧縮率の現代的な圧縮アルゴリズムを使用します。
––storage <storage> はバックアップファイルの保存先を指定します。これにはローカルディレクトリ、NFS共有、またはProxmoxストレージプールが含まれます。
––maxfiles <n> は保持するバックアップファイルの数を制限します。制限に達した場合、古いバックアップは自動的に削除されます。
––remove <mode> は、指定されたモードに従ってバックアップファイルを自動的に削除します。モードには次のものが含まれます:
- old – 新しいバックアップが作成されると、古いバックアップを削除します。
- fail – 失敗したバックアップのみを削除します。
複数のVMをバックアップする
VMのID 101、102、103を順にバックアップします:
vzdump 101 102 103
圧縮を用いてバックアップを保存する
vzdump 101 --storage local --compress gzip --maxfiles 3
このオプションを使用したvzdumpコマンドは、次の操作を行います:
- VM 101のバックアップを「local」という名前のストレージに保存します。ローカルストレージは、Proxmoxホスト上のローカルディレクトリまたはストレージプールである可能性があります。
- 圧縮にはgzipが使用されます。gzip圧縮で暗号化されたバックアップを作成するには時間がかかる場合がありますが、結果としてバックアップファイルのサイズが小さくなります。
- 最新の3つのバックアップのみが保持され、古いものは自動的に削除されます。
ログファイルを省略する
vzdump 102 --exclude-path /var/log
VM 102をバックアップしますが、/var/log ディレクトリは除外し、ログファイルを省略することでバックアップのサイズを削減します。
古いバックアップを削除する
vzdump 101 --storage nfs-backup --maxfiles 5 --remove old
これは古いバックアップを削除する自動バックアップです。VM 101 をバックアップし、バックアップを nfs-backup ストレージに保存し、最新の5つのバックアップのみを保持し、それより古いバックアップは自動的に削除します。
スナップショットモードでバックアップ
vzdump --all --mode snapshot --storage nfs-backup --bwlimit 20480 --remove old --maxfiles 7
すべてのVMおよびコンテナのバックアップ(夜間バックアップなど)をスナップショットバックアップモードを使用して作成します。バックアップは nfs-backup というNFS共有に保存されます。帯域幅は20480 Kbytes毎秒(20 MBps)に制限され、ネットワークの過負荷を防ぎます。最後の7つのバックアップのみが保持され、それより古いバックアップは自動的に削除されます。
9. qmrestore
qmrestore
コマンドは、Proxmox仮想環境で vzdump
コマンドを使用して作成されたバックアップから仮想マシンを復元するために使用されます。これらの vzdump と qmrestore コマンドは、VMのバックアップと復元のためのネイティブなProxmoxツールです。バックアップは新しいVMまたは既存のVMに復元できます。
構文:
qmrestore [options] <backupfile> <vmid>
ここで:
<backupfile> は、復元したいバックアップファイルのパスです。このファイルは通常、vzdump
コマンドによって生成され、ディレクトリまたはネットワークストレージデバイスに保存されます。
<vmid> は、復元したいVMのIDです。VM IDが既に存在する場合、特定のオプションを使用してこれを防がない限り、既存のVMが上書きされます。
コマンドオプション:
––forceは、同じIDを持つ既存のVMを上書きするために使用され、確認の質問はありません。このオプションを使用すると、同じIDの仮想マシンの現在の状態を失うことを気にせずにVMを復元できます。
––uniqueは、復元されたVMのために新しい一意のVM IDを生成するために使用されます。このオプションを使用して、既存のVMを上書きせずに新しいVMを作成してバックアップを復元することを検討してください。
––storage <storage>は、復元されたVMの仮想ディスクイメージのターゲットストレージ位置を指定します。このオプションが指定されていない場合、VMは元のストレージまたはデフォルトのストレージに復元されます。
––pool <pool>は、復元されたVMをProxmox仮想環境の特定のリソースプールに割り当てることを許可します。リソースプールは、仮想マシンを管理しやすくするためにグループ化するために使用されます。
––hostname <name>は、復元されたVMのホスト名を設定します。このオプションは、復元されたVMのホスト名を元のホスト名とは異なるものに設定したい場合に便利です。
––name <name>は、復元されたVMのカスタム名(Proxmoxユーザーインターフェースに表示される名前)を設定します。これは、バックアップされた元のVM名とは異なります。
元のIDにVMを復元する
VMを元のIDに復元する:
qmrestore /var/lib/vz/dump/vzdump-qemu-101-2023_08_27-00_00_00.vma 101
このコマンドはバックアップファイル vzdump-qemu-101-2023_08_27-00_00_00.vma を ID 101 の VM に復元します。もし ID 101 の VM が既に存在する場合は、上書きされます。
新しい VM にバックアップを復元する
新しい VM にバックアップを復元する:
qmrestore /mnt/pve/nfs-backup/dump/vzdump-qemu-101-2023_08_27-00_00_00.vma 102 --storage local-lvm
このコマンドは ID 102 の新しい VM にバックアップを復元し、そのディスクイメージを local-lvm ストレージに保存します。
ホスト名と VM 名を変更して復元する
バックアップを復元し、ホスト名と名前を変更する:
qmrestore /mnt/pve/nfs-backup/dump/vzdump-qemu-101-2023_08_27-00_00_00.vma 103 --hostname restored-vm --name "MyRestoredVM"
バックアップを ID 103 の新しい VM に復元し、VM の名前を MyRestoredVM に変更し、ホスト名を restored-vm に設定します。
10. proxmox-backup-client
proxmox-backup-client
コマンドは、バックアップと復元操作に使用されるネイティブな Proxmox バックアップソリューションである Proxmox Backup Server と連携して使用されるコマンドラインユーティリティです。このツールは、管理者が仮想マシン、コンテナ、その他のデータタイプを保護することを可能にします。proxmox-backup-client ツールは、バックアップを管理するために Proxmox Backup Server (PBS) と対話します。
構文:
proxmox-backup-client <command> [options]
バックアップコマンドの基本構文
proxmox-backup-client backup <アーカイブ名> <パス> --repository <リポジトリ> [オプション]
ここで:
<アーカイブ名>はバックアップアーカイブに付けたい名前です。
<パス>はバックアップしたいディレクトリまたはファイルへのパスを定義します。
––repository <リポジトリ>はProxmox Backup Server上のターゲットリポジトリで、通常はuser@pbs:datastoreの形式です。
例:
proxmox-backup-client backup etc.pxar /etc --repository root@[email protected]:datastore1
このコマンドは、/etcディレクトリを10.10.10.101にあるProxmox Backup Serverのdatastore1にバックアップします。バックアップはetc.pxarという名前のアーカイブとして保存されます。
復元コマンドの基本構文
プロクスモックスバックアップクライアントコマンドラインツールの復元コマンドは、Proxmox Backup Serverからローカルシステムにデータを復元するために使用されます。
proxmox-backup-client restore <アーカイブ名> <パス> --repository <リポジトリ> [オプション]
ここで:
<アーカイブ名>は復元したいアーカイブの名前です。
<パス>はデータを復元する場所のパスです。
––repository <リポジトリ>はバックアップが保存されているリポジトリです。
例:
proxmox-backup-client restore etc.pxar /restore/etc --repository root@[email protected]:datastore1
このコマンドは、Proxmox Backup Server(10.10.10.101)上のdatastore1からetc.pxarアーカイブをローカルディレクトリ/restore/etcに復元します。
結論
Proxmox CLIコマンドは、ストレージ、仮想マシン、クラスター、VMバックアップなどを含むProxmox仮想環境を管理するための強力なツールセットです。包括的なVMバックアップ戦略を実装したい場合は、NAKIVO Backup & Replicationをインストールし、Proxmox VE VM用のエージェントレスバックアップ機能を利用してください。
Source:
https://www.nakivo.com/blog/top-10-proxmox-cli-commands-every-admin-should-know/