안녕하세요! 🚀 가상화 환경 관리의 필수 도구, Proxmox VE(Virtual Environment)는 강력한 기능과 편리한 웹 인터페이스를 제공하지만, 진정한 마스터가 되기 위해서는 터미널 명령어를 능숙하게 다룰 줄 알아야 합니다. 명령줄 인터페이스(CLI)는 웹 UI에서 접근하기 어려운 세부 설정, 자동화 스크립트 작성, 그리고 긴급 상황에서의 문제 해결에 필수적입니다.
이 글에서는 Proxmox VE를 효율적으로 관리하는 데 필요한 핵심 명령어 30가지를 엄선하여 자세히 설명해 드립니다. 각 명령어의 사용법, 예시, 그리고 유용한 팁까지 함께 제공하여, 여러분이 Proxmox 환경을 더욱 완벽하게 제어할 수 있도록 돕겠습니다.
📚 목차
- 시스템 및 노드 관리 기본
- 가상 머신(VM) 및 컨테이너(CT) 기본 관리
- VM 및 CT 고급 관리 및 마이그레이션
- 스토리지 및 백업 관리
- 마무리하며
1. 시스템 및 노드 관리 기본
Proxmox 서버 자체의 상태를 확인하고 관리하는 데 사용되는 명령어들입니다.
1. pveversion
- 설명: 현재 Proxmox VE 시스템의 버전 정보를 확인합니다. 설치된 커널 버전, PVE 패키지 버전 등을 알 수 있습니다.
- 예시:
pveversion
- 💡팁: 문제 발생 시 Proxmox 포럼에 문의할 때 이 정보를 제공하면 도움이 됩니다.
2. apt update && apt upgrade
- 설명: Proxmox 시스템에 설치된 모든 패키지를 최신 버전으로 업데이트합니다.
apt update
는 패키지 목록을 새로고침하고,apt upgrade
는 실제로 업데이트를 진행합니다. - 예시:
apt update && apt upgrade -y
- 💡팁:
-y
옵션을 사용하면 모든 질문에 자동으로 ‘예’라고 응답합니다. 중요한 시스템 업데이트 전에는 백업을 권장합니다.
3. systemctl status
- 설명: 특정 시스템 서비스의 현재 상태를 확인합니다. Proxmox의 웹 UI 서비스(
pveproxy
), 스토리지 서비스(pvestatd
) 등에 유용합니다. - 예시:
systemctl status pveproxy systemctl status pvestatd
- 💡팁: 서비스가 비정상적으로 작동할 때,
systemctl restart
으로 재시작할 수 있습니다.
4. journalctl -f
- 설명: 시스템 로그를 실시간으로 출력합니다. 문제 발생 시 어떤 오류가 발생하는지 즉시 확인할 수 있습니다.
- 예시:
journalctl -f
- 💡팁: 특정 서비스의 로그만 보려면
journalctl -f -u
을 사용합니다. 예:journalctl -f -u pveproxy
5. df -h
- 설명: 파일 시스템의 디스크 공간 사용량을 사람이 읽기 쉬운 형태로 표시합니다. 각 마운트 포인트별로 사용 가능한 공간, 사용량, 사용률을 알 수 있습니다.
- 예시:
df -h
- 💡팁: Proxmox에서 VM 디스크 이미지 저장에 사용되는 스토리지가 충분한지 확인할 때 유용합니다.
6. free -h
- 설명: 시스템의 메모리(RAM) 사용량을 사람이 읽기 쉬운 형태로 표시합니다. 총 메모리, 사용 중인 메모리, 사용 가능한 메모리 등을 보여줍니다.
- 예시:
free -h
- 💡팁: Proxmox 노드의 전반적인 성능을 모니터링할 때 중요한 지표입니다.
7. lsblk
- 설명: 시스템에 연결된 블록 장치(하드 드라이브, SSD 등)의 목록과 그 구조를 트리 형태로 보여줍니다. 파티션 구성 등을 파악할 수 있습니다.
- 예시:
lsblk
- 💡팁: 새로운 디스크를 추가하거나 스토리지 문제를 진단할 때 유용합니다.
8. ip a
(또는 ip addr show
)
- 설명: 시스템의 모든 네트워크 인터페이스와 할당된 IP 주소 정보를 보여줍니다.
- 예시:
ip a
- 💡팁: 네트워크 연결 문제를 해결하거나 Proxmox 노드의 IP 주소를 확인할 때 사용합니다.
9. reboot
- 설명: Proxmox 노드를 재부팅합니다. 커널 업데이트 후 또는 시스템 문제를 해결하기 위해 사용됩니다.
- 예시:
reboot
- 🚨주의: 실행 중인 모든 VM/CT가 강제로 종료되므로, 사전에 모든 가상화 게스트를 정상 종료하는 것이 좋습니다.
10. shutdown -h now
- 설명: Proxmox 노드를 즉시 종료합니다.
- 예시:
shutdown -h now
- 🚨주의:
reboot
와 마찬가지로, 모든 가상화 게스트를 사전에 정상 종료해야 합니다.
2. 가상 머신(VM) 및 컨테이너(CT) 기본 관리
VM과 CT의 상태를 확인하고 시작/종료하는 데 사용되는 기본적인 명령어들입니다.
11. qm list
- 설명: Proxmox 노드에 생성된 모든 가상 머신(VM)의 목록을 보여줍니다. VMID, 이름, 상태 등을 한눈에 확인할 수 있습니다.
- 예시:
qm list
- 💡팁: 특정 VM을 찾아낼 때 유용합니다.
12. pct list
- 설명: Proxmox 노드에 생성된 모든 컨테이너(CT)의 목록을 보여줍니다. CTID, 이름, 상태 등을 확인할 수 있습니다.
- 예시:
pct list
- 💡팁: LXC 컨테이너 관리에 필수적인 명령어입니다.
13. qm start
- 설명: 특정 VMID를 가진 가상 머신을 시작합니다.
- 예시: (VMID 101인 VM 시작)
qm start 101
- 💡팁: 여러 VM을 스크립트로 일괄 시작할 때 활용할 수 있습니다.
14. pct start
- 설명: 특정 CTID를 가진 컨테이너를 시작합니다.
- 예시: (CTID 201인 CT 시작)
pct start 201
15. qm stop
- 설명: 특정 VM을 강제로 즉시 종료합니다. VM 내에서 운영체제가 정상적으로 종료되지 않고 전원이 차단되는 것과 같습니다. 데이터 손실의 위험이 있습니다.
- 예시: (VMID 101인 VM 강제 종료)
qm stop 101
- 🚨주의:
qm shutdown
이 실패하거나 VM이 응답하지 않을 때 최후의 수단으로 사용합니다.
16. pct stop
- 설명: 특정 CT를 강제로 즉시 종료합니다.
- 예시: (CTID 201인 CT 강제 종료)
pct stop 201
- 🚨주의:
pct shutdown
이 실패할 때 사용합니다.
17. qm shutdown
- 설명: 특정 VM에 ACPI 종료 신호를 보내 운영체제가 정상적으로 종료되도록 요청합니다.
qm stop
보다 안전한 방법입니다. - 예시: (VMID 101인 VM 정상 종료)
qm shutdown 101
- 💡팁: 대부분의 경우 이 명령어를 사용하여 VM을 종료하는 것이 좋습니다.
18. pct shutdown
- 설명: 특정 CT에 정상 종료 신호를 보냅니다.
- 예시: (CTID 201인 CT 정상 종료)
pct shutdown 201
19. qm reset
- 설명: 특정 VM을 강제로 재시작합니다. 전원 버튼을 눌러 재부팅하는 것과 유사합니다.
- 예시: (VMID 101인 VM 재시작)
qm reset 101
- 🚨주의:
qm stop
과 마찬가지로 데이터 손실 위험이 있습니다.
20. pct reset
- 설명: 특정 CT를 강제로 재시작합니다.
- 예시: (CTID 201인 CT 재시작)
pct reset 201
3. VM 및 CT 고급 관리 및 마이그레이션
VM 및 CT의 설정을 확인하고, 생성/복제/삭제/마이그레이션하는 고급 명령어들입니다.
21. qm config
- 설명: 특정 VMID를 가진 가상 머신의 모든 구성 정보를 보여줍니다. 하드웨어, 네트워크, 디스크 설정 등을 확인할 수 있습니다.
- 예시: (VMID 101인 VM의 설정 확인)
qm config 101
- 💡팁: VM 설정 변경 전후를 비교하거나, 문제 해결을 위해 설정값을 확인할 때 필수적입니다.
22. pct config
- 설명: 특정 CTID를 가진 컨테이너의 모든 구성 정보를 보여줍니다.
- 예시: (CTID 201인 CT의 설정 확인)
pct config 201
23. qm create --name --memory --net0 virtio,bridge=vmbr0 --scsi0 :100
- 설명: 새로운 가상 머신을 생성합니다. 다양한 옵션을 통해 CPU, 메모리, 네트워크, 디스크 등을 설정할 수 있습니다.
- 예시: (VMID 102, 이름 “MyVM”, 메모리 2GB, 네트워크 vmbr0, scsi0 디스크 100GB로 생성)
qm create 102 --name MyVM --memory 2048 --net0 virtio,bridge=vmbr0 --scsi0 local-lvm:100
- 💡팁: 실제 사용 시에는 더 많은 옵션(CPU 코어, OS 타입 등)을 추가하게 됩니다.
24. pct create --hostname --memory --disk0 : --net0 name=eth0,bridge=vmbr0,ip=dhcp
- 설명: 새로운 컨테이너를 생성합니다. Proxmox 스토리지에 미리 다운로드된 템플릿을 사용합니다.
- 예시: (CTID 202, 우분투 템플릿 사용, 호스트명 “MyCT”, 메모리 512MB, 디스크 4GB, DHCP 네트워크로 생성)
pct create 202 local:vztmpl/ubuntu-22.04-standard_22.04-1_amd64.tar.zst --hostname MyCT --memory 512 --disk0 local-lvm:4 --net0 name=eth0,bridge=vmbr0,ip=dhcp
- 💡팁:
pveam update
후pveam download
로 템플릿을 다운로드해야 합니다.
25. qm clone
- 설명: 기존 VM을 복제하여 새로운 VM을 생성합니다. 테스트 환경 구성이나 동일한 설정의 VM을 여러 개 만들 때 유용합니다.
- 예시: (VMID 101을 103으로 복제)
qm clone 101 103
- 💡팁: 복제 후에는 새 VM의 IP 주소, 호스트명 등 설정을 변경하는 것이 좋습니다.
26. pct clone
- 설명: 기존 CT를 복제하여 새로운 CT를 생성합니다.
- 예시: (CTID 201을 203으로 복제)
pct clone 201 203
27. qm destroy
- 설명: 특정 VM을 영구적으로 삭제합니다. 관련 디스크 이미지 등 모든 데이터가 제거됩니다.
- 예시: (VMID 101 삭제)
qm destroy 101
- 🚨주의: 이 명령어는 되돌릴 수 없습니다. 삭제 전에 백업 여부를 반드시 확인하십시오.
28. pct destroy
- 설명: 특정 CT를 영구적으로 삭제합니다.
- 예시: (CTID 201 삭제)
pct destroy 201
29. qm migrate
- 설명: 클러스터 환경에서 실행 중인 VM을 다른 Proxmox 노드로 마이그레이션합니다. VM을 중단하지 않고 옮길 수 있는 라이브 마이그레이션도 지원합니다.
- 예시: (VMID 101을
pve-node2
노드로 마이그레이션)qm migrate 101 pve-node2
- 💡팁: 라이브 마이그레이션은 공유 스토리지 또는 충분한 대역폭의 네트워크가 필요합니다.
30. pct migrate
- 설명: 클러스터 환경에서 실행 중인 CT를 다른 Proxmox 노드로 마이그레이션합니다.
- 예시: (CTID 201을
pve-node2
노드로 마이그레이션)pct migrate 201 pve-node2
4. 스토리지 및 백업 관리
Proxmox 환경에서 중요한 스토리지 상태를 확인하고, VM/CT 백업을 수행하는 명령어입니다.
31. pvesm status
- 설명: Proxmox에 등록된 모든 스토리지의 현재 상태를 보여줍니다. 각 스토리지의 타입, 사용 가능한 공간, 사용 중인 공간 등을 확인할 수 있습니다.
- 예시:
pvesm status
- 💡팁: VM/CT를 생성하거나 백업을 저장할 때 스토리지 공간이 충분한지 확인할 때 필수적입니다.
32. vzdump
- 설명: 특정 VM 또는 CT를 수동으로 백업합니다. Proxmox의 강력한 내장 백업 도구입니다. 백업 타입(스냅샷, 서스펜드 등), 압축 방식, 저장 위치 등을 지정할 수 있습니다.
- 예시: (VMID 101을 기본 백업 스토리지에 백업)
vzdump 101
- 예시: (CTID 201을
local-backup
스토리지에 압축 방식으로 백업)vzdump 201 --mode snapshot --compress zstd --storage local-backup
- 💡팁:
--all
옵션을 사용하여 모든 VM/CT를 백업할 수도 있습니다.man vzdump
명령어로 더 많은 옵션을 확인하세요.
마무리하며
Proxmox VE의 웹 UI는 편리하지만, 위에 소개된 30가지 명령어들은 시스템 관리자가 가상화 환경을 보다 깊이 이해하고, 효율적으로 운영하며, 위급 상황에 대응하는 데 필수적인 지식입니다. 각 명령어의 기능을 숙지하고 실제 환경에 적용해 본다면, 여러분은 Proxmox 마스터로 한 걸음 더 나아갈 수 있을 것입니다.
CLI 환경에 익숙해지는 것은 단순히 명령어를 외우는 것을 넘어, 시스템의 동작 원리를 이해하고 문제를 빠르게 진단하며, 반복적인 작업을 자동화하는 능력을 키우는 과정입니다. 👩💻👨💻
이 글이 여러분의 Proxmox 환경 관리에 큰 도움이 되기를 바랍니다. 궁금한 점이 있다면 언제든지 관련 문서를 찾아보거나 커뮤니티에 문의해 보세요. Happy virtualizing! ✨ G