리눅스 커널 기반(데비안)에 KVM 과 OpenVZ를 얹고 웹 콘솔을 붙여 놓은 솔루션. Docker 까지 구성하면 삼위일체 가상머신 완성!
VM 뿐 아니라 LxD 컨테이너를 지원하므로 VM만 지원하는 ESXi에 비해 램소모가 적은 장점이 있다1)
https://forum.proxmox.com/threads/proxmox-live-migration-no-network-after-migration-is-done.45427/
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) {"로 바꿉니다.
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
클릭 한두번이면 가능하다. 5)
로컬 > Contents > Upload
가상머신 (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
해당 가상머신 재시작.
로컬 > 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
# proxmox에 관리자 그룹 admin을 만들고 방금 추가한 사용자를 등록한다.
pveum groupadd admin -comment "System Administrators" # Define the group
pveum aclmod / -group admin -role Administrator # Then add the permission
pveum usermod [email protected] -group admin # You can finally add users to the new ‘admin’ group
도커 웹관리를 위해 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