모든 관리자가 알아야 할 상위 10개 Proxmox CLI 명령어

Proxmox 가상 환경(VE)은 웹 브라우저에서 사용자 친화적인 그래픽 인터페이스로 관리할 수 있습니다. 그러나 특정 시나리오에서는 명령 줄 인터페이스(CLI)를 사용하는 것이 더 나을 수 있습니다. CLI는 더 자세한 구성, 일괄 처리, 스크립팅 및 자동화와 같은 장점을 제공합니다.

Proxmox 가상 환경을 관리하기 위한 표준 Linux 명령어와 Proxmox 특정 명령어가 있습니다. 이 블로그 포스트에서는 효율적인 관리를 위한 상위 10개의 Proxmox 특정 명령어와 예제를 다룹니다.

1. qm

qm 명령어는 주요 Proxmox CLI 명령어 중 하나이며 qm은 QEMU Manager의 약자입니다. 이 명령어는 Proxmox 가상 환경(Proxmox VE)에서 가상 머신(VM)을 관리하는 데 사용됩니다. Proxmox의 가상 머신은 QEMU/KVM 기반이며 qm 명령어가 이와 상호 작용합니다. 이 명령어를 사용하여 VM을 생성, 편집, 구성, 시작, 중지 및 이동할 수 있습니다.

명령어의 일반적인 구문은:

qm [옵션] <명령어> [인수]

가상 머신 목록 표시

VM 상태 및 ID를 확인할 수 있습니다. 이 VM을 Proxmox CLI에서 관리하기 위해 ID가 필요할 수 있습니다.

qm list

새 가상 머신 생성

일반적인 구문:

qm create <vmid> [옵션]

예시:

qm create 103 --name "DebianVM" --memory 2048 --net0 virtio,bridge=vmbr0 --sockets 1 --cores 2 --ostype l26

다음 Proxmox CLI 명령은 ID 103인 ” DebianVM “이라는 이름의 VM을 생성하며, 2GB RAM, 1 소켓, 2 코어 및 vmbr0에 브리지된 Virtio 네트워크 인터페이스를 갖습니다. 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

이 명령은 Debian ISO를 VM의 IDE CD-ROM 드라이브에 연결하여 게스트 운영 체제 설치 또는 기타 용도로 사용합니다.

부팅 순서 구성

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>

이 명령은 VM을 정상적으로 종료하여 게스트 OS가 파일을 닫고 프로세스를 제대로 종료할 수 있도록 합니다.

qm shutdown 101

ID가 101인 VM에 종료 신호를 보내고 있습니다.

VM을 다른 노드로 마이그레이션하기

qm migrate <vmid> <targetnode>

이 명령은 현재 노드에서 Proxmox 클러스터 내의 다른 노드로 VM을 마이그레이션합니다.

예를 들어, 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 액세스를 허용하는 규칙을 생성합니다.

Where: create <object>는 규칙, 보안 그룹 또는 IP 세트와 같은 새 방화벽 객체를 생성합니다.

Delete rule

규칙을 삭제하려면 다음 명령을 사용하십시오:

pve-firewall delete rule <rule-id>

Display log

트래픽 및 규칙 일치를 보여주는 방화벽 로그를 표시합니다:

pve-firewall log

출력에는 가장 최근의 방화벽 로그 항목이 표시됩니다.

Deny HTTP traffic

HTTP 트래픽을 거부하는 방화벽 규칙을 생성하려면 다음 명령을 사용하십시오:

pve-firewall create rule -action drop -macro http

3. pvesm

Proxmox CLI의 pvesm 명령은 Proxmox VE에서 스토리지 구성을 관리하는 데 사용되는 명령줄 유틸리티입니다. 이 명령행 도구를 사용하여 스토리지 풀을 생성, 삭제, 수정 및 관리할 수 있습니다. 또한 디렉터리 생성, 스토리지 장치 추가 및 콘텐츠 유형 관리와 같은 다양한 스토리지 관련 작업을 수행할 수 있습니다.

Syntax:

pvesm <command> [options]

List storage

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의 NFS 공유/export/data에서 Proxmox VE에 test-nfs-storage라는 이름으로 추가하기:

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

예제:

VM 이미지, ISO 파일 및 백업 파일을 저장할 수 있도록 local-storage01 풀을 수정:

pvesm set local-storage01 --content images,iso,backup

VM 또는 컨테이너를 위한 지정된 스토리지 풀에 새 볼륨 할당

pvesm alloc <storage-id> <vmid> <size>

예제:

VM 100을 위해 local-storage-name 풀에 10GB 볼륨을 할당하는 명령:

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 <경로> --roles <역할명> --users <사용자ID> --groups <그룹명>

여기서:

<경로>는 ACL을 설정할 객체의 경로입니다 (예: 특정 VM에 대한 /vms/100 또는 전체 클러스터에 대한 /).

roles <역할명>은 할당할 역할입니다.

users <사용자ID>는 역할이 할당될 사용자입니다.

groups <그룹명>은 역할이 할당될 그룹입니다.

예:

pveum aclmod /vms/104 --roles vmmanager --users user4@pve

이 명령은 vmmanager 역할을 user4@pve에게 VM 104에 할당하여 사용자가 (user4) vmmanager 역할에 따른 권한에 따라 해당 특정 VM을 관리할 수 있게 합니다. aclremove 명령은 해당 객체에서 ACL을 제거하는 데 사용됩니다.

인증 영역 관리

인증 영역은 사용자가 시스템에 인증하는 방법을 정의합니다 (예: PAM, LDAP 또는 Active Directory 사용). Proxmox VE에서 realm 명령을 사용하여 인증 영역을 관리할 수 있습니다.

구문:

pveum realm <명령> [옵션]

여기서 명령은 다음과 같습니다:

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 웹 인터페이스를 통해 수행할 수 있는 거의 모든 작업을 Proxmox CLI에서 직접 수행할 수 있습니다. pvesh 명령어는 Proxmox VE REST API의 셸 역할을 하여 명령줄에서 직접 API 호출을 할 수 있게 합니다. 이 명령어로 가상 머신, 스토리지, 네트워크 및 Proxmox 가상 인프라의 다른 요소를 관리할 수 있습니다.

구문:

pvesh <command> [options]

리소스 또는 API 엔드포인트 나열

이 명령은 Linux의 ls 명령과 유사하지만 Proxmox VE 환경에서 사용 가능한 API 경로나 리소스를 나열합니다.

pvesh ls /경로

예시:

pvesh ls /cluster/resources

이 명령은 Proxmox 클러스터의 모든 자원, VM, 컨테이너 및 저장소를 나열합니다.

정보 검색

get 명령은 특정 API 엔드포인트에서 정보를 검색합니다. 이 명령은 세부 정보를 쿼리하기 위해 사용됩니다.

pvesh get /경로

경로는 정보를 검색하려는 API 경로입니다.

예를 들어 노드 pve-node1의 상태 정보(예: CPU 부하, 메모리 사용량, 가동 시간)를 검색하려면 다음 명령을 사용할 수 있습니다:

pvesh get /nodes/pve-node1/status

구성 변경

set 명령은 자원의 구성을 수정하거나 업데이트하는 데 사용됩니다. 이는 REST API에서 POST 또는 PUT 요청을 하는 것과 동등합니다.

구문:

pvesh set /경로 --키 값 [--키 값 ...]

값은 변경하려는 설정의 키-값 쌍입니다.

예시:

pvesh set /nodes/pve-node1/qemu/100/config --name new-vm-name

이 명령은 노드 100의 VM 이름을 new-vm-name(으)로 변경합니다.

리소스 생성

create 명령은 새로운 자원을 생성하는 데 사용됩니다. 예를 들어, 새로운 가상 머신 또는 저장소 볼륨을 만들 수 있습니다.

구문:

pvesh create /경로 --키 값 [--키 값 ...]

예를 들어, 다음 명령을 사용하여 특정 매개변수로 새로운 가상 머신을 만들 수 있습니다:

pvesh create /nodes/pve-node1/qemu --vmid 106 --name new-vm-name --memory 2048 --cores 2

이 명령은 노드 pve-node1에서 ID가 106이고 이름이 new-vm-name인 새로운 가상 머신을 2GB의 RAM과 2개의 CPU 코어로 만듭니다.

가상 머신 시작

pvesh start /경로

예를 들어, 노드 pve-node1에서 ID가 101인 가상 머신을 시작하려면 다음 명령을 실행할 수 있습니다:

pvesh start /nodes/pve-node1/qemu/101

가상 머신 종료

pvesh shutdown /경로

예를 들어, Proxmox 호스트에서 이름이 pve-node1이고 ID가 101인 가상 머신을 종료하려면 다음 명령을 사용합니다:

pvesh shutdown /nodes/pve-node1/qemu/101

모든 가상 머신 시작

pvesh startall /nodes/<노드이름>

pvesh stopall /nodes/<노드이름>

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 <nodename>

예시:

클러스터에서 pve-node2라는 이름의 노드를 제거하는 명령은:

pvecm delnode pve-node2

클러스터의 모든 노드 나열

클러스터 노드를 모두 나열하고 노드 이름 및 IP 주소를 포함한 상태를 표시하는 명령은:

pvecm nodes

새 마스터 노드 설정

Proxmox 클러스터에서 다른 클러스터 노드를 마스터로 설정할 수 있습니다:

pvecm setmaster <nodename>

<nodename>은 마스터로 지정하려는 노드의 이름입니다.

클러스터 상태 표시

Proxmox 클러스터의 상태를 표시할 수 있으며, 여기에는 정족수, 노드 수 및 역할에 대한 정보가 포함됩니다.

pvecm status

예상 노드 수 설정

클러스터에서 정족수를 달성하는 데 예상되는 노드 수를 expected 명령으로 확인할 수 있습니다. 일부 클러스터 노드가 일시적으로 오프라인일 때 중단을 피하기 위해 이 명령을 사용할 수 있습니다. 정족수는 서로 다른 클러스터 노드가 클러스터의 상태에 대한 상충하는 정보를 가질 때 분할 뇌 상황을 피하는 데 사용됩니다.

pvecm expected <number>

7. hamanager

hamanager 명령어는 Proxmox 클러스터를 생성한 후 가상 머신의 고가용성(HA) 기능을 관리하는 데 사용됩니다. 이 명령줄 유틸리티는 중요한 VM에 대한 고가용성을 구성하고, 실행 중인 노드에서 장애가 발생할 경우 클러스터에서 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 상태 비활성화

가상 머신의 고가용성 상태를 비활성화하고 HA 관리자에서 VM을 제거하려면 remove 명령어를 사용하십시오.

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>는 백업 모드를 정의합니다. 지원되는 백업 모드는 세 가지입니다:

  • 스냅샷 – Proxmox 가상 머신 또는 컨테이너의 실시간 스냅샷을 생성합니다. 이 모드는 기본적으로 사용되며 VM 또는 컨테이너가 실행 중일 때 백업을 수행할 수 있습니다.
  • 일시중지 – 이 모드는 백업 전에 VM 또는 컨테이너를 일시중지하는 데 사용되며, 데이터의 일관성을 보장할 수 있습니다. 이 모드로 인한 짧은 다운타임은 단점입니다.
  • 중지 – 백업을 수행하기 전에 가상 머신 또는 컨테이너를 중지합니다. 이 접근 방식은 백업 데이터의 일관성을 유지할 수 있지만 더 긴 다운타임이 필요합니다.

compress <type>는 압축 방법을 지정하는 데 사용됩니다. 지원되는 압축 옵션은 세 가지입니다:

  • lzo – Proxmox 백업을 위한 경량 및 빠른 압축(기본적으로 사용됨).
  • gzip – 더 효율적인 압축 방법이지만 데이터를 압축하는 데 더 많은 시간이 소요됩니다(느린 압축).
  • zstd – 이 압축 유형은 최적의 성능을 제공하는 최신 압축 알고리즘을 사용하여 높은 압축 비율을 제공합니다.

storage <storage>는 백업 파일의 저장 대상을 지정합니다. 이곳은 로컬 디렉토리, NFS 공유 또는 Proxmox 스토리지 풀일 수 있습니다.

maxfiles <n>는 유지할 백업 파일의 수를 제한합니다. 제한에 도달하면 이전 백업이 자동으로 삭제됩니다.

제거 <mode>는 지정된 모드에 따라 자동으로 백업 파일을 제거합니다. 모드에는:

  • old – 새로운 백업이 생성될 때 오래된 백업을 제거합니다.
  • fail – 실패한 백업만 제거합니다.

여러 VM 백업

VM ID 101, 102 및 103을 순차적으로 백업합니다:

vzdump 101 102 103

압축하여 백업 저장

vzdump 101 --storage local --compress gzip --maxfiles 3

이러한 옵션을 가진 vzdump 명령은 다음 작업을 수행합니다:

  • VM 101의 백업을 로컬이라는 이름의 스토리지에 저장합니다. 로컬 스토리지는 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 Kbyte(20 MBps)로 제한됩니다. 마지막 7개의 백업만 유지되며, 오래된 백업은 자동으로 제거됩니다.

9. qmrestore

qmrestore 명령은 Proxmox 가상 환경에서 vzdump 명령을 사용하여 생성된 백업에서 가상 머신을 복원하는 데 사용됩니다. 이러한 vzdumpqmrestore 명령은 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 이름과 다릅니다.

VM을 원래 ID로 복원하기

원래 ID로 VM 복원:

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 Backup Server와 함께 사용되는 명령줄 유틸리티로, 원주율 Proxmox 백업 솔루션으로 백업 및 복원 작업에 사용됩니다. 이 도구는 관리자가 가상 머신, 컨테이너 및 기타 데이터 유형을 보호할 수 있도록 합니다. proxmox-backup-client 도구는 Proxmox Backup Server (PBS)와 상호작용하여 백업을 관리합니다

구문:

proxmox-backup-client <command> [options]

백업 명령의 기본 구문

proxmox-backup-client backup <archive-name> <path> --repository <repository> [options]

어디서:

<archive-name>은 백업 아카이브에 지정할 이름입니다.

<path>는 백업할 디렉터리 또는 파일의 경로를 정의합니다.

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-client 명령줄 도구를 사용하여 Proxmox Backup Server에서 로컬 시스템으로 데이터를 복원하는 데 사용됩니다.

proxmox-backup-client restore <archive-name> <path> --repository <repository> [options]

어디서:

<archive-name>은 복원하려는 아카이브의 이름입니다.

<path>는 데이터가 복원될 경로입니다.

repository <repository>는 백업이 저장된 리포지토리입니다.

예:

proxmox-backup-client restore etc.pxar /restore/etc --repository root@[email protected]:datastore1

이 명령은 etc.pxar 아카이브를 datastore1에서 Proxmox Backup Server의 10.10.10.101로부터 로컬 디렉토리 /restore/etc로 복원합니다.

결론

Proxmox CLI 명령은 스토리지, 가상 머신, 클러스터, VM 백업 등을 포함하여 Proxmox 가상 환경을 관리하기 위한 강력한 도구 세트입니다. 포괄적인 VM 백업 전략을 구현하고 싶다면 NAKIVO Backup & Replication을 설치하고 Proxmox VE VM을 위한 에이전트 없는 백업 기능을 사용하세요.

Source:
https://www.nakivo.com/blog/top-10-proxmox-cli-commands/