#Proxmox 필수 명령어 30가지: 당신의 가상화 환경을 마스터하는 비법#
안녕하세요, Proxmox VE(Virtual Environment)를 사용하시는 모든 분들! 🚀 가상화 기술은 현대 IT 인프라의 핵심이며, Proxmox는 강력하고 유연한 오픈 소스 가상화 플랫폼입니다. Proxmox의 웹 UI가 편리하지만, 때로는 터미널 명령어를 사용하는 것이 훨씬 빠르고 효율적이며, 복잡한 문제 해결에 필수적일 때가 많습니다.
이 글에서는 Proxmox VE 환경을 완벽하게 제어하고 관리할 수 있도록 돕는 “필수 명령어 30가지”를 상세하게 설명해 드릴 것입니다. 각 명령어는 용도에 따라 분류되어 있으며, 자세한 설명과 실제 예시, 그리고 이해를 돕기 위한 이모지까지 포함되어 있습니다. 이 가이드가 여러분의 Proxmox 마스터 여정에 큰 도움이 되기를 바랍니다! 💡
목차
- VM (가상 머신) 관리 명령어
- CT (컨테이너) 관리 명령어
- 백업 및 복구 명령어
- 스토리지 관리 명령어
- 시스템 및 클러스터 관리 명령어
- 네트워크 및 진단 명령어
- 마무리하며
1. VM (가상 머신) 관리 명령어 🖥️
Proxmox의 핵심 기능인 가상 머신(VM)을 생성하고, 실행하고, 관리하는 데 필요한 명령어들입니다.
1. qm list
- 용도: 현재 Proxmox 노드에 존재하는 모든 가상 머신(VM) 목록을 표시합니다.
- 설명: VM의 ID(VMID), 이름, 상태, CPU 사용량, 메모리 사용량 등을 한눈에 확인할 수 있습니다.
- 예시:
qm list
VMID NAME STATUS MEM(MB) CPU(%) NET(KB/s) DISK(KB/s) 100 Ubuntu22 running 4096 5.23 123 567 101 Windows10 stopped 8192 0.00 0 0
- 팁:
qm list --full
명령어를 사용하면 더 많은 상세 정보를 볼 수 있습니다.
2. qm status
- 용도: 특정 VM의 현재 상태를 확인합니다.
- 설명: VM이 실행 중인지(running), 중지되었는지(stopped), 일시 정지되었는지(paused) 등을 명확하게 보여줍니다.
- 예시:
qm status 100
status: running
3. qm start
- 용도: 특정 VM을 시작합니다.
- 설명: 중지된 VM을 다시 구동시킬 때 사용합니다.
- 예시:
qm start 101
4. qm stop
- 용도: 특정 VM을 강제 종료합니다.
- 설명: OS가 응답하지 않거나 정상적인 종료가 불가능할 때 비상용으로 사용합니다. 데이터 손실 위험이 있으므로 주의해야 합니다.
- 예시:
qm stop 100
- ⚠️ 경고: 이는 OS 내부의 전원 버튼을 길게 눌러 강제 종료하는 것과 유사합니다. 데이터 손실 가능성이 있습니다.
5. qm shutdown
- 용도: 특정 VM을 정상적으로 종료합니다.
- 설명: OS에 ACPI(고급 구성 및 전원 인터페이스) 신호를 보내 정상적으로 종료를 요청합니다. OS가 응답하지 않으면 타임아웃 후
qm stop
처럼 동작할 수 있습니다. - 예시:
qm shutdown 100
6. qm reset
- 용도: 특정 VM을 재부팅합니다.
- 설명: VM을 강제로 재시작합니다. OS가 응답하지 않을 때 재부팅하는 데 유용합니다.
- 예시:
qm reset 100
7. qm destroy
- 용도: 특정 VM을 영구적으로 삭제합니다.
- 설명: VM의 모든 설정 파일과 가상 디스크 파일을 삭제합니다. 복구가 불가능하므로 매우 신중하게 사용해야 합니다.
- 예시:
qm destroy 101
- 🚨 경고: 이 명령어는 되돌릴 수 없습니다. 삭제 전 반드시 백업 여부를 확인하세요.
8. qm create --name ...
- 용도: 새로운 VM을 생성합니다.
- 설명: VMID, 이름, OS 종류, 메모리, CPU 코어 수, 디스크 크기 등 다양한 매개변수를 지정하여 VM을 생성합니다. 명령어는 매우 길어질 수 있습니다.
- 예시 (간략):
qm create 102 --name "TestVM" --memory 2048 --cores 2 --net0 virtio,bridge=vmbr0 --scsi0 local-lvm:32,format=raw
- 팁: 실제 환경에서는 ISO 파일 경로, 네트워크 설정 등 더 많은 옵션이 필요합니다. 웹 UI를 통해 생성 후
qm config
로 설정을 확인하는 것이 좋습니다.
9. qm clone
- 용도: 기존 VM을 복제하여 새로운 VM을 생성합니다.
- 설명: 기존 VM의 모든 설정과 디스크 내용을 복사하여 새로운 VM을 만듭니다. 테스트 환경 구축이나 동일한 VM을 여러 개 만들 때 유용합니다.
- 예시:
qm clone 100 103 --name "Ubuntu22-Clone"
10. qm snapshot
- 용도: 특정 VM의 스냅샷을 생성합니다.
- 설명: VM의 특정 시점 상태(디스크 내용, 메모리 상태 등)를 저장합니다. 시스템 변경 전 안전한 복구 지점을 만들 때 유용합니다.
- 예시:
qm snapshot 100 "BeforeUpdate"
11. qm rollback
- 용도: 특정 VM을 이전에 생성한 스냅샷 시점으로 되돌립니다.
- 설명: 스냅샷 생성 이후의 모든 변경 사항을 되돌립니다. 문제가 발생했을 때 이전 상태로 복구하는 데 사용됩니다.
- 예시:
qm rollback 100 "BeforeUpdate"
12. qm migrate
- 용도: 클러스터 내에서 실행 중인 VM을 다른 노드로 이동(마이그레이션)합니다.
- 설명: 서비스 중단 없이(또는 최소한의 중단으로) VM을 다른 물리적 서버로 옮길 수 있습니다. 부하 분산이나 하드웨어 유지 보수 시 유용합니다.
- 예시:
qm migrate 100 pve-node2
- 참고: 스토리지가 공유되는 환경(NFS, Ceph 등)에서 라이브 마이그레이션이 원활합니다.
2. CT (컨테이너) 관리 명령어 📦
Proxmox의 LXC 컨테이너(CT)를 관리하는 명령어들입니다. VM보다 가볍고 빠르지만, OS 종류나 커널 버전에 제약이 있습니다.
13. pct list
- 용도: 현재 Proxmox 노드에 존재하는 모든 컨테이너(CT) 목록을 표시합니다.
- 설명: VMID, 이름, 상태, CPU 사용량, 메모리 사용량 등을 VM과 유사하게 보여줍니다.
- 예시:
pct list
VMID NAME STATUS MEM(MB) CPU(%) NET(KB/s) DISK(KB/s) 200 WebCT running 512 0.12 56 123 201 DBCT stopped 1024 0.00 0 0
14. pct start
- 용도: 특정 컨테이너를 시작합니다.
- 설명: 중지된 컨테이너를 구동시킵니다.
- 예시:
pct start 201
15. pct stop
- 용도: 특정 컨테이너를 강제 종료합니다.
- 설명: 컨테이너가 응답하지 않을 때 사용합니다.
qm stop
과 유사하게 데이터 손실 위험이 있습니다. - 예시:
pct stop 200
16. pct destroy
- 용도: 특정 컨테이너를 영구적으로 삭제합니다.
- 설명: 컨테이너의 모든 설정과 파일 시스템을 삭제합니다. 복구가 불가능하므로 주의해야 합니다.
- 예시:
pct destroy 201
- 🚨 경고: 이 명령어는 되돌릴 수 없습니다.
3. 백업 및 복구 명령어 💾
Proxmox 환경의 중요한 VM 및 CT 데이터를 보호하기 위한 백업 및 복구 명령어입니다.
17. vzdump --storage [옵션]
- 용도: VM 또는 컨테이너를 백업합니다.
- 설명: Proxmox의 통합 백업 도구입니다. 특정 VMID를 지정하거나
all
을 사용하여 모든 VM/CT를 백업할 수 있습니다. 백업 저장소(storage)와 압축 방식, 모드(snapshot, suspend, stop) 등 다양한 옵션을 지정할 수 있습니다. - 예시:
- VMID 100을
local
스토리지에 스냅샷 모드로 백업:vzdump 100 --storage local --mode snapshot
- 모든 VM/CT를
backup_store
에 백업:vzdump all --storage backup_store
- VMID 100을
- 팁:
vzdump
명령은 Proxmox의 예약 백업 작업이 실행되는 내부 명령어이기도 합니다.
18. qmrestore
(VM 복원)pct restore
(CT 복원)
- 용도:
vzdump
로 생성된 백업 파일을 새로운 VM/CT로 복원합니다. - 설명: 백업 파일의 경로와 복원할 새로운 VM/CT의 ID를 지정합니다. 이미 존재하는 VM/CT ID는 사용할 수 없습니다.
- 예시 (VM 복원):
qmrestore /var/lib/vz/dump/vzdump-qemu-100-2023_10_26-14_30_00.vma.zst 104
- 예시 (CT 복원):
pct restore /var/lib/vz/dump/vzdump-lxc-200-2023_10_26-15_00_00.tar.zst 202
- 참고: 복원 시 원본 VM/CT의 네트워크 설정을 다시 확인해야 할 수 있습니다.
4. 스토리지 관리 명령어 🗄️
Proxmox에 연결된 다양한 유형의 스토리지를 관리하는 명령어입니다.
19. pvesm status
- 용도: Proxmox에 구성된 모든 스토리지의 상태를 확인합니다.
- 설명: 스토리지 ID, 유형, 상태(활성/비활성), 사용 가능한 공간 및 총 공간을 표시합니다.
- 예시:
pvesm status
Name Type Status Total Used Avail %Used local dir active 9881180 2345678 7535502 23.74% local-lvm lvmthin active 10240000 1234567 9005433 12.06% nfs-backup nfs active 20480000 5000000 15480000 24.41%
20. pvesm free
- 용도: 특정 스토리지의 여유 공간 정보를 확인합니다.
- 설명:
pvesm status
보다 특정 스토리지에 집중하여 상세한 공간 정보를 보여줍니다. - 예시:
pvesm free local-lvm
Type Available Total Used lvmthin 9005433 10240000 1234567
5. 시스템 및 클러스터 관리 명령어 ⚙️
Proxmox 자체의 시스템 상태를 확인하고, 업데이트하며, 클러스터 환경을 관리하는 데 사용됩니다.
21. pveversion -v
- 용도: 현재 Proxmox VE 시스템의 버전 및 설치된 패키지 정보를 상세하게 표시합니다.
- 설명: Proxmox VE 버전, 커널 버전, QEMU, LXC, Ceph 등 주요 구성 요소의 버전을 확인할 수 있습니다. 문제 발생 시 디버깅 정보로 유용합니다.
- 예시:
pveversion -v
proxmox-ve: 7.4-1 (running kernel: 5.15.102-1-pve) pve-manager: 7.4-3 (running version: 7.4-3/9002ab86717a65f0) # ... (생략) ...
22. apt update
- 용도: 시스템의 패키지 목록을 최신 상태로 업데이트합니다.
- 설명: 설치된 패키지를 실제로 업그레이드하기 전에, 패키지 저장소에서 사용 가능한 최신 패키지 정보를 가져옵니다.
- 예시:
apt update
- 참고: 이 명령어만으로는 실제 소프트웨어가 업그레이드되지 않습니다.
23. apt full-upgrade
- 용도: 시스템의 모든 설치된 패키지를 최신 버전으로 업그레이드합니다.
- 설명:
apt update
로 가져온 정보에 따라 모든 패키지를 업그레이드하며, 필요한 경우 새 패키지를 설치하거나 기존 패키지를 제거할 수도 있습니다. - 예시:
apt full-upgrade
- ⚠️ 경고: Proxmox 클러스터 환경에서는 업그레이드 전 신중한 계획과 함께 노드별로 순차적으로 진행하는 것이 권장됩니다. 또한, 엔터프라이즈 레포지토리를 사용하는 것이 안정적입니다.
24. systemctl restart pveproxy
- 용도: Proxmox 웹 UI 서비스를 재시작합니다.
- 설명: 웹 UI에 문제가 발생했거나, 특정 설정 변경 후 웹 UI를 새로고침해야 할 때 사용합니다. VM/CT 동작에는 영향을 주지 않습니다.
- 예시:
systemctl restart pveproxy
25. pvecm status
- 용도: Proxmox 클러스터의 현재 상태를 확인합니다.
- 설명: 클러스터 노드들의 연결 상태, 쿼럼(quorum) 상태, 클러스터 구성 버전 등을 보여줍니다. 클러스터 환경에서 문제가 발생했을 때 가장 먼저 확인해야 할 명령어 중 하나입니다.
- 예시:
pvecm status
Cluster information ------------------- Name: your-cluster ID: 1234abcd Nodecount: 3 # ... (생략) ...
26. pve-firewall status
- 용도: Proxmox 내장 방화벽의 현재 상태를 확인합니다.
- 설명: 방화벽이 활성화되어 있는지, 어떤 규칙이 적용되고 있는지 등에 대한 개요를 보여줍니다.
- 예시:
pve-firewall status
6. 네트워크 및 진단 명령어 🌐
Proxmox 서버의 네트워크 설정 확인 및 시스템 진단을 위한 기본적인 리눅스 명령어입니다. Proxmox는 데비안 기반이므로 일반적인 리눅스 명령어도 잘 작동합니다.
27. ip a
(또는 ip addr show
)
- 용도: 시스템의 모든 네트워크 인터페이스에 할당된 IP 주소 및 기타 네트워크 정보를 표시합니다.
- 설명: 네트워크 설정 문제를 진단할 때 가장 기본적으로 사용하는 명령어입니다. Proxmox 브리지(vmbrX)의 IP 주소도 확인할 수 있습니다.
- 예시:
ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 2: eno1: mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff 3: vmbr0: mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether aa:bb:cc:dd:ee:ff brd ff:ff:ff:ff:ff:ff inet 192.168.1.10/24 brd 192.168.1.255 scope global vmbr0 valid_lft forever preferred_lft forever
28. brctl show
- 용도: 리눅스 브리지(Linux Bridge)의 현재 상태를 표시합니다.
- 설명: Proxmox는 가상 머신 네트워크 연결을 위해 리눅스 브리지를 사용합니다.
vmbr0
,vmbr1
등과 같은 브리지에 어떤 물리적 네트워크 인터페이스나 가상 인터페이스가 연결되어 있는지 확인할 수 있습니다. - 예시:
brctl show
bridge name bridge id STP enabled interfaces vmbr0 8000.aabbccddeeff no eno1 vnet100i0 veth101i0
29. journalctl -xe
- 용도: 시스템 로그를 실시간으로 확인하고 자세한 오류 정보를 표시합니다.
- 설명: Proxmox뿐만 아니라 데비안 시스템 전반의 오류나 이벤트 로그를 볼 때 매우 유용합니다.
-f
옵션을 추가하면 실시간으로 새로운 로그를 확인할 수 있습니다.-xe
옵션은 상세 정보와 관련된 메시지를 표시합니다. - 예시:
journalctl -xe
- 팁: 특정 서비스의 로그만 보고 싶다면
journalctl -u pveproxy.service
처럼 서비스 이름을 지정할 수 있습니다.
30. lsblk
- 용도: 시스템에 연결된 모든 블록 장치(하드 디스크, SSD, USB 드라이브 등)의 목록과 그 계층 구조를 표시합니다.
- 설명: 저장 장치의 이름, 크기, 마운트 지점 등을 확인할 수 있어 스토리지 구성 문제를 진단할 때 유용합니다.
- 예시:
lsblk
NAME MAJ:MIN RM SIZE RO type MOUNTPOINTS sda 8:0 0 1.8T 0 disk ├─sda1 8:1 0 1007K 0 part ├─sda2 8:2 0 1G 0 part /boot/efi └─sda3 8:3 0 1.8T 0 part └─pve-root 253:0 0 80G 0 lvm / └─pve-swap 253:1 0 8G 0 lvm [SWAP] └─pve-data_tdata 253:2 0 1.7T 0 lvm └─pve-data_tmeta 253:3 0 16G 0 lvm └─pve-data 253:4 0 1.7T 0 lvm sdb 8:16 0 931G 0 disk └─sdb1 8:17 0 931G 0 part /mnt/data
마무리하며 🌟
지금까지 Proxmox VE 환경을 효율적으로 관리하기 위한 30가지 필수 명령어를 살펴보았습니다. 웹 UI가 제공하는 편리함에 더해, 이 명령어들을 숙지하시면 여러분의 Proxmox 관리 능력이 한 단계 더 발전할 것입니다.
명령어는 직접 입력해보면서 익숙해지는 것이 가장 중요합니다. 안전한 테스트 환경에서 이 명령어들을 연습하고, Proxmox 공식 문서나 커뮤니티에서 더 깊이 있는 정보를 탐색해 보세요.
가상화의 세계는 무궁무진합니다. 이 가이드가 여러분의 Proxmox 여정에 든든한 동반자가 되기를 바라며, 더욱 안정적이고 효율적인 가상화 환경을 구축하시길 응원합니다! 💪 궁금한 점이 있다면 언제든지 질문해 주세요. G