안녕하세요, 가상화의 세계에 오신 것을 환영합니다! 🚀 Proxmox VE(Virtual Environment)는 강력하고 유연한 오픈 소스 가상화 플랫폼으로, KVM(Kernel-based Virtual Machine) 기반의 가상 머신과 LXC(Linux Containers) 컨테이너를 통합하여 효율적인 서버 가상화를 제공합니다.
Proxmox는 직관적인 웹 인터페이스를 제공하지만, 진정한 마스터가 되기 위해서는 강력한 CLI(Command Line Interface) 명령어를 숙지하는 것이 필수적입니다. CLI는 작업을 더 빠르고 효율적으로 처리하며, 스크립팅을 통한 자동화, 그리고 웹 인터페이스로는 접근하기 어려운 깊은 문제 해결에 강력한 도구가 됩니다.
이 글에서는 Proxmox VE를 운영하며 가장 자주 사용하게 될 핵심 명령어 30가지를 엄선하여 상세한 설명과 함께 제공합니다. 각 명령어는 카테고리별로 분류하여 찾아보기 쉽게 구성했으며, 실제 사용 예시와 유용한 팁을 함께 담았습니다. 이 가이드가 여러분의 Proxmox 여정에 든든한 동반자가 되기를 바랍니다!
I. Proxmox 시스템 및 상태 관리 🖥️
Proxmox 자체의 상태를 확인하고 유지보수하는 데 필요한 명령어들입니다.
1. pveversion
- 설명: Proxmox VE 시스템의 버전 정보를 확인합니다. 설치된 Proxmox 버전, 커널 버전, PVE 패키지 버전 등을 보여줍니다.
- 예시:
pveversion
pve-manager/7.4-16/aa409c95 (running kernel: 5.15.107-1-pve)
- 💡 팁: 문제 발생 시 버그 보고나 지원 요청 시 가장 먼저 알려줘야 하는 정보입니다.
2. apt update && apt upgrade -y
- 설명: Debian 기반의 Proxmox 시스템의 패키지 목록을 업데이트하고, 설치된 모든 패키지를 최신 버전으로 업그레이드합니다.
-y
옵션은 모든 질문에 자동으로 ‘예’라고 응답합니다. - 예시:
apt update && apt upgrade -y
- 💡 팁: 정기적인 업데이트는 보안 취약점을 해결하고 최신 기능을 적용하는 데 중요합니다. 커널 업데이트 후에는 재부팅이 필요할 수 있습니다.
3. pveam update
- 설명: Proxmox Appliance Manager(PVEAM)에서 사용 가능한 템플릿 목록을 업데이트합니다. 컨테이너(LXC)를 생성하기 위한 템플릿을 다운로드하기 전에 항상 실행해야 합니다.
- 예시:
pveam update
- 💡 팁: 새로운 LXC 컨테이너 템플릿을 찾을 수 없을 때 이 명령어를 실행해보세요.
4. systemctl restart pveproxy.service
- 설명: Proxmox 웹 인터페이스를 담당하는
pveproxy
서비스를 재시작합니다. 웹 UI에 문제가 있거나 변경 사항이 즉시 반영되지 않을 때 유용합니다. - 예시:
systemctl restart pveproxy.service
- 💡 팁: 이 명령어를 실행하면 잠시 동안 웹 UI에 접근할 수 없게 됩니다.
5. systemctl status pveproxy.service
- 설명:
pveproxy
서비스의 현재 상태를 확인합니다. 서비스가 실행 중인지, 비활성화되었는지, 또는 오류가 발생했는지 등을 알 수 있습니다. - 예시:
systemctl status pveproxy.service
- 💡 팁: 웹 UI 접속이 안 될 때 가장 먼저 확인해야 할 명령어 중 하나입니다.
6. journalctl -f
- 설명: 시스템의 실시간 로그를 추적하여 보여줍니다.
-f
는 “follow”의 약자로, 새로운 로그가 기록될 때마다 터미널에 출력됩니다. 문제 발생 시 실시간으로 어떤 일이 벌어지는지 파악하는 데 매우 유용합니다. - 예시:
journalctl -f
- 💡 팁: 특정 VM/CT 작업 중 오류 메시지를 확인하거나 시스템의 비정상적인 동작을 모니터링할 때 사용합니다.
Ctrl+C
로 종료합니다.
II. VM (KVM) 가상 머신 관리 💻
Proxmox의 핵심인 KVM 가상 머신을 생성, 관리, 제어하는 명령어들입니다.
7. qm list
- 설명: 현재 Proxmox 서버에 존재하는 모든 KVM 가상 머신의 목록과 그 상태(ID, 이름, 상태, CPU/RAM 사용량 등)를 보여줍니다.
- 예시:
qm list
- 💡 팁: 가상 머신 관리의 시작점으로, 실행 중인 VM들을 한눈에 파악할 수 있습니다.
8. qm create --name --memory --cores --net0 virtio,bridge=vmbr0
- 설명: 새로운 KVM 가상 머신을 생성합니다. 필수적인 인자를 포함하여 기본 구성을 설정할 수 있습니다.
- 예시:
qm create 101 --name my-ubuntu-server --memory 2048 --cores 2 --net0 virtio,bridge=vmbr0 --scsi0 local-lvm:100G,cache=writeback --ide2 local:iso/ubuntu-22.04-live-server-amd64.iso,media=cdrom
- 💡 팁:
--scsi0
은 스토리지,--ide2
는 ISO 이미지 경로를 지정하는 예시입니다. 더 많은 옵션은man qm create
를 참조하세요.
9. qm start
- 설명: 지정된 VMID의 가상 머신을 시작합니다.
- 예시:
qm start 101
- 💡 팁: VM을 시작하기 전에 필요한 모든 설정이 완료되었는지 확인하세요.
10. qm stop
- 설명: 지정된 VMID의 가상 머신을 즉시 정지시킵니다. 이는 강제 종료에 해당하며, 데이터 손실 위험이 있습니다.
- 예시:
qm stop 101
- 💡 팁: 긴급 상황에만 사용하고, 데이터 보존을 위해서는
qm shutdown
을 먼저 시도하는 것이 좋습니다.
11. qm shutdown
- 설명: 지정된 VMID의 가상 머신에 ACPI 종료 신호를 보내 운영체제가 정상적으로 종료되도록 유도합니다.
- 예시:
qm shutdown 101
- 💡 팁: 가장 안전한 VM 종료 방법입니다. 운영체제가 응답하지 않으면 타임아웃 후
qm stop
처럼 강제 종료될 수 있습니다.
12. qm reset
- 설명: 지정된 VMID의 가상 머신을 재시작(리셋)합니다. 시스템 재부팅과 유사하며, 응답하지 않는 VM을 강제로 재시작할 때 유용합니다.
- 예시:
qm reset 101
- 💡 팁:
qm shutdown
이 작동하지 않을 때 시도할 수 있는 다음 단계입니다.
13. qm destroy
- 설명: 지정된 VMID의 가상 머신을 영구적으로 삭제합니다. 관련 디스크 이미지도 함께 삭제될 수 있으므로 매우 신중하게 사용해야 합니다.
- 예시:
qm destroy 101
- 💡 팁: 삭제하기 전에 항상 백업 유무를 확인하고, 올바른 VMID를 입력했는지 다시 확인하세요.
14. qm config
- 설명: 지정된 VMID의 가상 머신에 대한 현재 구성을 상세하게 출력합니다.
- 예시:
qm config 101
- 💡 팁: VM의 설정(CPU, 메모리, 네트워크, 디스크 등)을 확인하는 데 필수적인 명령어입니다.
15. qm set --
- 설명: 지정된 VMID의 가상 머신 설정을 변경합니다. 다양한 옵션을 통해 디스크, 네트워크, CPU, 메모리 등 거의 모든 설정을 수정할 수 있습니다.
- 예시:
- 메모리 변경:
qm set 101 --memory 4096
- CPU 코어 변경:
qm set 101 --cores 4
- 새로운 디스크 추가:
qm set 101 --scsi1 local-lvm:50G
- 메모리 변경:
- 💡 팁: 변경하려는 옵션에 따라 VM을 종료해야 할 수도 있습니다.
man qm set
으로 모든 옵션을 확인하세요.
III. CT (LXC) 컨테이너 관리 📦
Proxmox의 경량 가상화 기술인 LXC 컨테이너를 관리하는 명령어들입니다.
16. pct list
- 설명: 현재 Proxmox 서버에 존재하는 모든 LXC 컨테이너의 목록과 그 상태를 보여줍니다.
- 예시:
pct list
- 💡 팁:
qm list
와 유사하게, 컨테이너 환경을 한눈에 파악할 수 있습니다.
17. pct create --name --memory --rootfs : --net0 name=eth0,bridge=vmbr0,ip=dhcp
- 설명: 새로운 LXC 컨테이너를 생성합니다. 템플릿 경로를 반드시 지정해야 합니다.
- 예시:
pct create 201 local:vztmpl/ubuntu-22.04-standard_22.04-1_amd64.tar.zst --hostname my-lxc-web --memory 512 --rootfs local-lvm:8G --net0 name=eth0,bridge=vmbr0,ip=192.168.1.100/24,gw=192.168.1.1
- 💡 팁: 템플릿 경로는
pveam list
로 확인 가능합니다. LXC는 VM보다 훨씬 가볍고 빠릅니다.
18. pct start
- 설명: 지정된 CTID의 LXC 컨테이너를 시작합니다.
- 예시:
pct start 201
19. pct stop
- 설명: 지정된 CTID의 LXC 컨테이너를 즉시 정지시킵니다. VM의
qm stop
과 유사하게 강제 종료입니다. - 예시:
pct stop 201
20. pct shutdown
- 설명: 지정된 CTID의 LXC 컨테이너에 정상 종료 신호를 보냅니다.
- 예시:
pct shutdown 201
- 💡 팁: 컨테이너 내 프로세스가 정상적으로 종료될 시간을 줍니다.
21. pct destroy
- 설명: 지정된 CTID의 LXC 컨테이너를 영구적으로 삭제합니다. VM의
qm destroy
와 마찬가지로 매우 신중하게 사용해야 합니다. - 예시:
pct destroy 201
22. pct config
- 설명: 지정된 CTID의 LXC 컨테이너에 대한 현재 구성을 상세하게 출력합니다.
- 예시:
pct config 201
23. pct set --
- 설명: 지정된 CTID의 LXC 컨테이너 설정을 변경합니다.
- 예시:
- 메모리 변경:
pct set 201 --memory 1024
- CPU 코어 변경:
pct set 201 --cores 2
- 마운트 포인트 추가:
pct set 201 --mp0 /mnt/data,mp=/data
- 메모리 변경:
- 💡 팁: VM과 마찬가지로,
man pct set
을 통해 모든 옵션을 확인하세요.
IV. 스토리지 관리 💾
Proxmox의 다양한 스토리지 자원을 확인하고 관리하는 명령어들입니다.
24. pvesm status
- 설명: Proxmox에 구성된 모든 스토리지의 목록과 현재 상태(타입, 상태, 사용량 등)를 보여줍니다.
- 예시:
pvesm status
- 💡 팁: 새로운 가상 디스크를 생성하거나 백업을 저장할 공간을 확인할 때 유용합니다.
25. pvesm scan
- 설명: 특정 타입의 스토리지를 스캔하여 Proxmox에 추가 가능한 자원 목록을 보여줍니다. 예를 들어,
nfs
나cifs
스토리지를 스캔할 수 있습니다. - 예시:
pvesm scan nfs
- 💡 팁: 네트워크 스토리지를 Proxmox에 연결하기 전에 사용 가능한 공유 폴더를 탐색할 때 사용됩니다.
26. df -h
- 설명: Proxmox 서버의 디스크 사용량을 사람이 읽기 쉬운 형태로 보여줍니다. 파일 시스템별로 사용 가능한 공간, 총 공간, 사용률 등을 확인할 수 있습니다.
- 예시:
df -h
- 💡 팁: 시스템 디스크 또는 특정 스토리지 볼륨의 공간 부족 문제를 진단할 때 필수적인 명령어입니다.
V. 네트워크 및 백업/복원 🌐💾
네트워크 구성을 확인하고, 중요한 데이터를 백업하고 복원하는 데 사용되는 명령어들입니다.
27. ip a
(또는 ip addr show
)
- 설명: Proxmox 서버의 네트워크 인터페이스 목록과 할당된 IP 주소, MAC 주소 등의 상세 정보를 보여줍니다.
- 예시:
ip a
- 💡 팁: 네트워크 문제 해결의 시작점입니다.
vmbr0
와 같은 브리지 인터페이스의 상태를 확인하는 데 특히 중요합니다.
28. vzdump
- 설명: 지정된 VM 또는 컨테이너를 백업합니다. 기본적으로 Proxmox 웹 UI에서 설정된 백업 스토리지로 백업 이미지를 생성합니다.
- 예시:
- VM 백업:
vzdump 101
- 컨테이너 백업:
vzdump 201
- 특정 스토리지에 백업:
vzdump 101 --storage local --mode snapshot
- VM 백업:
- 💡 팁:
mode=snapshot
은 실행 중인 VM을 백업할 때 유용하며,mode=suspend
는 일시 중단 후 백업,mode=stop
은 정지 후 백업합니다.
29. qmrestore
- 설명:
vzdump
로 생성된 KVM 가상 머신 백업 파일을 지정된 VMID로 복원합니다. - 예시:
qmrestore /var/lib/vz/dump/vzdump-qemu-101-2023_10_26-10_00_00.vma 102
- 💡 팁: 기존 VMID에 덮어쓸 수도 있고, 새로운 VMID로 복원하여 복제본을 만들 수도 있습니다.
30. pctrestore
- 설명:
vzdump
로 생성된 LXC 컨테이너 백업 파일을 지정된 CTID로 복원합니다. - 예시:
pctrestore /var/lib/vz/dump/vzdump-lxc-201-2023_10_26-10_00_00.tar 202
- 💡 팁:
qmrestore
와 유사하게, 기존 CTID에 덮어쓰거나 새로운 CTID로 복원할 수 있습니다.
결론: CLI로 Proxmox 마스터하기! 🏆
지금까지 Proxmox VE를 운영하며 가장 핵심적으로 활용될 수 있는 30가지 CLI 명령어를 자세히 살펴보았습니다. 이 명령어들을 숙지하고 연습하면 웹 인터페이스만으로는 얻을 수 없는 깊이와 속도를 가지고 Proxmox 환경을 제어하고 관리할 수 있게 됩니다.
CLI는 단순한 입력 도구가 아니라, 복잡한 작업을 자동화하고, 문제 발생 시 신속하게 진단하며, 시스템의 깊숙한 곳까지 탐험할 수 있는 강력한 무기입니다. 처음에는 낯설고 어렵게 느껴질 수 있지만, 꾸준히 사용하다 보면 어느새 Proxmox를 자유자재로 다루는 전문가가 되어 있을 것입니다.
이 가이드가 여러분의 Proxmox 여정에 큰 도움이 되기를 바라며, 궁금한 점이 있다면 언제든지 관련 문서를 찾아보거나 커뮤니티에 질문해보세요. Happy Virtualization! ✨ G