토. 7월 26th, 2025

#Proxmox 필수 명령어 30가지: 당신의 가상화 환경을 마스터하는 비법#


안녕하세요, Proxmox VE(Virtual Environment)를 사용하시는 모든 분들! 🚀 가상화 기술은 현대 IT 인프라의 핵심이며, Proxmox는 강력하고 유연한 오픈 소스 가상화 플랫폼입니다. Proxmox의 웹 UI가 편리하지만, 때로는 터미널 명령어를 사용하는 것이 훨씬 빠르고 효율적이며, 복잡한 문제 해결에 필수적일 때가 많습니다.

이 글에서는 Proxmox VE 환경을 완벽하게 제어하고 관리할 수 있도록 돕는 “필수 명령어 30가지”를 상세하게 설명해 드릴 것입니다. 각 명령어는 용도에 따라 분류되어 있으며, 자세한 설명과 실제 예시, 그리고 이해를 돕기 위한 이모지까지 포함되어 있습니다. 이 가이드가 여러분의 Proxmox 마스터 여정에 큰 도움이 되기를 바랍니다! 💡


목차

  1. VM (가상 머신) 관리 명령어
  2. CT (컨테이너) 관리 명령어
  3. 백업 및 복구 명령어
  4. 스토리지 관리 명령어
  5. 시스템 및 클러스터 관리 명령어
  6. 네트워크 및 진단 명령어
  7. 마무리하며

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
  • 팁: 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

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다