문서의 이전 판입니다!


Proxmox

리눅스 커널 기반(데비안)에 KVM 과 OpenVZ를 얹고 웹 콘솔을 붙여 놓은 솔루션. Docker 까지 구성하면 삼위일체 가상머신 완성!

VM 뿐 아니라 LxD 컨테이너를 지원하므로 VM만 지원하는 ESXi에 비해 램소모가 적은 장점이 있다1)

프로젝트홈 다운로드 페이지 (Proxmox VE)

log2ram

설치

업데이트

Proxmox는 라이센스 없이도 잘 작동함. 라이선스가 없는 버전은 테스트 된 "엔터프라이즈"업데이트 저장소에 대한 액세스 권한이 없다는 점을 제외하고는 유료 버전과 동일한 기능을 함. Update를 하려면 기본 설정된 subsription Repository를 다른 저장소로 변경한다.

nano /etc/apt/sources.list.d/pve-enterprise.list
#엔터프라이즈 소스는 커멘트 처리
#deb https://enterprise.proxmox.com/debian buster pve-enterprise
nano /etc/apt/sources.list.d/pve-no-subscription.list
#공짜용 (buster는 자신의 데비안에 맞게 변경)
deb http://download.proxmox.com/debian/pve buster pve-no-subscription
apt-get update && apt-get dist-upgrade

로 업데이트

컨테이너 템플릿 업데이트

pveam update
pveupgrade
pveam available

구독 알림 끄기

Web 접속시 계속 Subscription 하라고 알림이 뜨는데,

 /usr/share/pve-manager/js/pvemanagerlib.js
"if (data.status !== 'Active') {" 를 "if (false) {"로 바꿉니다.

UDP Multicast 설정

VM 서버에 TV 서버가 있는 경우 UDP Multicasting이 되어야하는데 ProxMox의 경우 Bridge로 동작하여 Multicasting을 하려면 추가로 설정해야함.

 /etc/network/interfaces 의 iface vmbr0 inet static 끝에 다음을 추가함.
      post-up echo 0 > /sys/devices/virtual/net/vmbr0/bridge/multicast_snooping

사용자 추가

  1. proxmox에 다른 사용자 추가 - 리눅스 사용자 admin을 추가한다. 3)

한글

도커설치

Proxmox with docker (Eng)

  1. proxmox에 Dockerwebui 설치
  2. Portainer 설치 4)

백업

클릭 한두번이면 가능하다. 5)

  • local 영역은 설치디스크의 일부 용량을 사용하며 설치디스크인 ISO 파일등을 업로드 가능함. 공용으로 사용가능한 용량임 리눅스의 root영역과 비슷한 영역임.
  • local-lvm 백업이나 스냅샷을 지원하는 포맷임.

가상 머신 만들기

ISO 파일 업로드

로컬 > Contents > Upload
  1. Goto server view from drop down on left hand side.
  2. Expand datacenter menu until you see local then click it.
  3. Right hand side select Contents tab.
  4. click upload button.
  5. Click select file, find your ISO, click upload.

Cache

  • No cache(Default): 안전함
  • Write back: 성능. 유사시 자료 손상의 위험이 있으므로 듀얼파워, UPS가 있어 안정적인 동작이 가능한 경우 사용한다.

Network

  • Bridged: 기본. 각각의 VM이 각각의 네트워크 카드를 갖고 있는 것처럼 작동됨. 별도의 MAC이 있고, DHCP에서 (공유기) 각자 IP를 받게 됨.
  • Route: Proxmox노드가 공유기처럼 작동함. VM은 별도 내부 IP를 갖게됨.
  • Masquerading: 노드와 VM이 같은 IP하나만 쓴다. VM을 외부에 노출 시키려면, portforwarding을 해야함.

HDD

Image

  • raw format: dd로 만든다 6)
  • qcow2: 만들고7), 압축가능 8)
  • vmdk

하드디스크를 이미지로 변환하는 방법

물리하드 붙이기

가상머신 (VM)에 물리하드 (Physical hdd)를 통채로 붙이는 방법. (컨테이너에는 안됨)

시작하기 전에 반드시 해당 하드의 제품명, 시리얼번호를 다른 곳에 적어 놓는다. 중간에 헷갈리지 않도록한다.

https://pve.proxmox.com/wiki/Physical_disk_to_kvm

ls -l /dev/disk/by-id

확인

# ls -l /dev/disk/by-id | grep PURZ
lrwxrwxrwx 1 root root 9 Sep 18 22:33 ata-WDC_WD20PURZ-85GU6Y0_WD-WCC4M2TTJU88 → ../../sde

이제 qm 명령어로 해당 가상머신에 하드디스크를 할당한다. VM 번호를 알아야함.

qm set 105 -sata0 /dev/disk/by-id/ata-SAMSUNG_HD203WI_S27KJ1LZ202590
qm set 106 -sata0 /dev/disk/by-id/ata-Samsung_SSD_840_PRO_Series_S12TNEAD203401D
qm set 106 -sata1 /dev/disk/by-id/ata-TOSHIBA_DT01ACA300_46H2H8NGS
qm set 105 -sata0 /dev/disk/by-id/ata-WDC_WD20EZRX-00D8PB0_WD-WMC4M2791725
qm set 105 -sata1 /dev/disk/by-id/ata-WDC_WD20PURZ-85GU6Y0_WD-WCC4M2TTJU88
qm set 105 -sata2 /dev/disk/by-id/ata-WDC_WD20PURZ-85GU6Y0_WD-WCC4M6TZJK2N

해당 가상머신 재시작.

UUID로 물리하드 붙이기

컨테이너 만들기

템플릿 다운로드

로컬 > Contents > Templates 

요금

상용 서비스 아니면 no subscription repository 쓰면 된다. 안정화 패키지 말고 다른 특별한 제한은 없다. 가끔씩 최신 업데이트해보면 버그로 일부 패키지들이 동작이 안되었던 경험이 있다. (docker-ce등)

subscription alert 무력화 스크립트임.. (업데이트 할때마다 실행 필요함)

sed -i.bak 's/NotFound/Active/g' /usr/share/perl5/PVE/API2/Subscription.pm && systemctl restart pveproxy.service
lspci #하드웨어 정보


dmesg

writes

systemctl stop pve-ha-lrm
systemctl stop pve-ha-crm
systemctl disable pve-ha-crm
systemctl disable pve-ha-lrm

systemctl edit --full pvesr.timer
change to OnCalendar=monthly
systemctl daemon-reload
1)
VM과 컨테이너는 당연히 퍼먹는 리소스 차이가 있을 수 밖에 없다
2)
SSD같은 경우 메인드라이브로 사용하기에는 OS구동만으로도 수명에 무리가 있다. 간단하게 USB등에 설치하는 Vmware의 ESXi 와는 다르게 Proxmox는 반드시 하드디스크에 설치해서 사용하는게 유리함. 속도가 필요한 가상머신(VM) 자체는, 따로 SSD 위에서 구동한다.
3)
adduser admin
  # proxmox에 관리자 그룹 admin을 만들고 방금 추가한 사용자를 등록한다.
  pveum groupadd admin -comment "System Administrators"   # Define the group
  pveum aclmod / -group admin -role Administrator  # Then add the permission
  pveum usermod admin@pam -group admin  # You can finally add users to the new ‘admin’ group
4)
mkdir -p /root/portainer/data
      도커 웹관리를 위해 Portainer 설치
      docker run -d --restart=always -p 9000:9000 -v /root/portainer/data:/data -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer
     웹관리자 접속
http://192.168.0.2:9000
5)
ESXi에서 사실상 불가능
6)
dd if=/dev/hdd1 of=hdd.img bs=4M
7)
qemu-img convert -f raw -O qcow2 hdd.img hdd.qcow2
8)
qemu-img convert -c -O qcow2 hdd.qcow2 hdd-shrunk.qcow2

역링크