Proxmox VE에서 KVM vSocket 구성 (EA)

Prev Next

참고: 이것은 제한적인 릴리스를 위해서만 사용할 수 있는 초기 사용(EA) 기능입니다. 자세한 정보를 원하시면 Cato Networks 담당자에게 문의하시거나 ea@catonetworks.com으로 이메일을 보내십시오.

개요

이 문서는 Proxmox 가상 환경(Proxmox VE)으로 관리되는 호스트에 KVM vSocket을 배포하는 방법을 설명합니다. Proxmox VE는 QEMU/KVM을 사용하므로, vSocket 배포 모델은 표준 Linux KVM(libvirt/QEMU) 호스트와 동일합니다: vSocket은 QCOW2 이미지로 배포되며 cloud-init으로 부트스트랩됩니다. 차이점은 관리 계층입니다 — virt-install이나 virsh 대신 Proxmox 웹 UI에서 VM을 생성하고 관리합니다.

일반적인 KVM vSocket 요구 사항, cloud-init user-data 설정, Cato 관리 애플리케이션(CMA)에서 사이트 생성 흐름에 대한 자세한 내용은 KVM vSocket 사이트 구성를 참조하십시오.

Proxmox VE에 KVM vSocket을 배포하는 주요 단계는 다음과 같습니다:

  1. CMA에서 vSocket 사이트를 생성하고 시리얼 번호(S/N)를 복사합니다.
  2. QCOW2 이미지를 다운로드하고 cloud-init seed ISO를 생성합니다.
  3. QCOW2 이미지와 seed ISO를 Proxmox 스토리지에 업로드합니다.
  4. UEFI 펌웨어와 virtio 장치를 사용하여 Proxmox 웹 UI에서 VM을 생성합니다.
  5. VM에 시리얼 포트와 추가 네트워크 인터페이스를 추가합니다.
  6. VM을 시작하고 vSocket이 CMA에 연결되는지 확인합니다.

Proxmox VE에서 KVM vSocket을 프로비저닝 준비하기

KVM vSocket을 생성하여 Cato Cloud에 연결하기 위해 준비해야 할 전제 조건은 다음과 같습니다:

  • KVM(하드웨어 가상화)이 활성화되고 게스트용 UEFI(OVMF) 지원이 있는 Proxmox VE 호스트.
  • Proxmox 호스트 CPU가 하스웰급 아키텍처 또는 그 이상입니다.
  • Cato Networks 리포지토리에서 다운로드한 KVM vSocket용 QCOW2 이미지.
  • 사이트의 시리얼 번호로 미리 생성된 cloud-init seed ISO (자세한 내용은 cloud-init Seed ISO 생성 참조).
  • seed ISO를 생성하기 위한 도구(예: mkisofs 또는 genisoimage).
  • vSocket의 WAN1 인터페이스에 대한 인터넷 연결 및 공용 DNS 서비스.
  • WAN, LAN 및 선택적 관리 인터페이스를 관련 네트워크에 연결하는 Proxmox 다리(예: vmbr0).
  • vSocket에 최대 4개의 네트워크 인터페이스(NIC)만 연결하십시오. 4개 이상의 NIC를 연결하면 vSocket에 문제가 발생할 수 있습니다.

참고: 하드웨어 NIC 패스 스루(PCI 패스 스루) 및 SR-IOV는 지원되지 않습니다.

추천 VM 설정

설정 권장 값
기계 유형 q35
BIOS / 펌웨어 OVMF (UEFI), EFI 디스크 없음
CPU 유형 호스트(하스웰급 아키텍처 또는 최신 호스트 CPU)
vCPU 2개 이상
메모리 4096 MB 이상
기본 디스크 가져온 QCOW2 이미지, VirtIO 블록 버스 (8 GB 얇은 지원 저장소)
Cloud-init 미디어 시드 ISO, CD-ROM 드라이브로 부착된 상태
NIC 모델 VirtIO (준가상화)
NIC 수량 2개에서 4개의 인터페이스

Proxmox VE에서 KVM vSocket 배포 모범 사례

  • 하드웨어 호환성 문제를 피하고 모든 필수 하드웨어 설정이 올바르게 적용되도록 Cato QCOW2 이미지에서 직접 vSocket을 배포합니다.
  • 원본 QCOW2 이미지의 변형되지 않은 복사본을 유지하고 각 vSocket VM에 대해 깨끗한 복사본을 가져옵니다. cloud-init seed ISO는 첫 번째 부팅 시에만 작동합니다. 구성이 올바르게 적용되지 않았을 경우, 부분적으로 초기화된 VM을 수정하기보다 깨끗한 이미지에서 VM을 다시 생성하는 것이 일반적으로 더 빠릅니다.
  • 첫 번째 부팅 전에 VM의 Proxmox 스냅샷을 찍어 부트스트랩 구성이 올바르지 않은 경우 초기 상태로 되돌릴 수 있도록 합니다.
  • 각 vSocket VM(HA 쌍의 각 구성원 포함)에 대해 관련 사이트의 시리얼 번호가 포함된 고유한 seed ISO를 생성하십시오.
  • 네트워크와 디스크 장치 모두에서 virtio를 사용하십시오 — NIC 에뮬레이션이 필요하지 않습니다.
  • VM이 완전히 구성될 때까지 VM을 시작하지 마십시오. cloud-init seed ISO는 첫 번째 부팅 시에만 읽힙니다.

KVM vSocket 사이트 생성

CMA에서 vSocket KVM 연결 유형으로 새 사이트를 생성하고 사이트 설정 > 소켓에서 시리얼 번호(S/N)를 복사합니다. 이 시리얼 번호(대시 포함)를 cloud-init user-data 파일에 입력해야 합니다.

전체 절차는 KVM vSocket 사이트 구성에서 참조하십시오.

Proxmox VE에서 vSocket VM 배포

1단계 – Proxmox 네트워크 준비

Proxmox 호스트가 vSocket에 연결하는 각 인터페이스에 대한 Linux 브리지가 있는지 확인하십시오:

  • WAN1 – 인터넷 연결 및 공용 DNS 서비스에 대한 액세스가 있는 브리지(예: vmbr0). 필수 인터페이스입니다.
  • LAN1 – vSocket 뒤의 LAN 세그먼트를 위한 브리지. 필수 인터페이스입니다.
  • MGMT (선택 사항) – vSocket에 대한 관리 액세스를 위한 브리지.
  • WAN2 (선택 사항) – 두 번째 WAN 링크를 위한 브리지.

네트워크 장치에서 VLAN 태그를 사용하여 동일한 브리지를 공유하는 LAN 세그먼트를 분리할 수 있습니다.

HA 배포의 경우, 두 vSocket의 LAN 인터페이스는 동일한 브로드캐스트 도메인(동일한 브리지 및 VLAN)에 있어야 합니다.

2단계 – cloud-init Seed ISO 생성

KVM vSocket은 NoCloud 시드 ISO를 사용하여 cloud-init으로 부트스트랩됩니다. 하나의 파일이 있는 디렉토리를 생성합니다:

TMPDIR=$(mktemp -d)
touch $TMPDIR/user-data

사이트 구성으로 user-data를 채웁니다. 파일은 간단한 TOML (key = value) 형식을 사용하며, 주석을 지원합니다. 시리얼 번호는 필수이며, 인터페이스별 네트워크 설정은 선택 사항입니다(인터페이스는 기본적으로 DHCP입니다).

# 필수: CMA 사이트에서 시리얼 번호 (사이트 설정 > 소켓)
serial = "XXXX-XXXX-XXXX-XXXX"

# 인터페이스별 네트워크 설정은 선택 사항입니다.
# 각 인터페이스에 대해 [[network]] 블록을 반복합니다; 이름은 고유해야 하며
# 실제 인터페이스(WAN1, WAN2, LAN1, ...)와 일치해야 합니다.

[[network]]
name = "WAN1"                       # 필수
addressing_type = "Static"          # "Static" 또는 "DHCP"
address = "192.168.50.201"          # Static일 경우 필수
netmask = "255.255.255.0"           # Static일 경우 필수
default_gw = "192.168.50.1"         # Static일 경우 필수
primary_dns = "192.168.50.1"        # Static일 경우 필수
secondary_dns = "8.8.4.4"           # 선택 사항

# DHCP가 기본값이므로 이 블록은 선택사항/중복됩니다.
[[network]]
name = "WAN2"
addressing_type = "DHCP"

cidata라는 라벨로 시드 ISO에 파일을 압축합니다:

pushd $TMPDIR
mkisofs -output seed.iso -volid cidata -joliet -rock user-data
popd

ISO의 이름을 이를 사용하는 vSocket VM을 식별할 수 있도록 지정합니다(예: seed-<site-name>.iso). VM을 생성할 때 올바른 ISO를 선택할 수 있습니다.

3단계 – 파일을 Proxmox 스토리지에 업로드

  1. 시드 ISO를 VM을 호스팅하는 노드의 ISO 이미지 저장소에 업로드합니다(예: ISO 이미지 섹션의 로컬 저장소).
  2. vSocket QCOW2 이미지를 같은 노드의 스토리지 가져오기(Import) 섹션에 업로드합니다. 스토리지는 가져오기 콘텐츠 유형이 활성화되어 있어야 합니다.

각 vSocket VM을 위해 QCOW2 이미지의 깨끗한 복사본을 사용하십시오.

스크린샷 자리표시자 – Proxmox 스토리지에 시드 ISO 업로드.

스크린샷 자리표시자 – QCOW2 이미지 업로드 또는 가져오기.

4단계 – VM 생성

Proxmox 웹 UI에서 VM 생성을 클릭하고 마법사의 탭을 다음과 같이 구성합니다.

vSocket VM 생성하기:

  1. 일반 탭에서 노드를 선택하고, VM ID 및 vSocket VM의 이름을 입력합니다. HA에 추가 체크박스를 해제 상태로 유지하십시오 (자세한 내용은 고가용성(HA) 배포 참조).

  2. OS 탭에서:

    1. CD/DVD 디스크 이미지 파일(iso) 사용을 선택합니다.
    2. 스토리지 및 ISO 이미지에서 이 vSocket을 위해 생성한 시드 ISO를 선택합니다.
    3. 게스트 OS는 기본값을 유지합니다 (유형: Linux, 버전: 6.x - 2.6 Kernel).

    스크린샷 자리표시자 – OS 탭에서 cloud-init 시드 ISO를 선택합니다.

  3. 시스템 탭에서:

    1. BIOS로 **OVMF (UEFI)**를 선택합니다.
    2. EFI 디스크 추가 체크박스를 선택 취소합니다. vSocket 이미지는 EFI 디스크가 필요하지 않습니다.
    3. 머신으로 q35를 선택합니다.
    4. 기본 SCSI 컨트롤러 (VirtIO SCSI single)를 유지합니다.

    스크린샷 자리표시자 – UEFI 펌웨어 선택 및 EFI 디스크 추가 선택 취소.

  4. 디스크 탭에서:

    1. 기본 디스크 (virtio0)를 삭제합니다.
    2. 가져오기를 클릭한 후 이미지 선택에서 vSocket QCOW2 이미지를 선택합니다.
    3. 버스/장치에서는 VirtIO 블록을 선택하고 디스크의 대상 저장소를 선택합니다.

    스크린샷 자리표시자 – 기본 디스크 제거.

    스크린샷 자리표시자 – VM 디스크로 QCOW2 이미지 가져오기.

  5. CPU 탭에서는 적어도 2개의 코어를 구성하고 유형으로 호스트를 선택합니다.

    스크린샷 자리표시자 – CPU 코어 및 호스트 CPU 유형.

  6. 메모리 탭에서 적어도 4096 MB를 입력합니다.

  7. 네트워크 탭에서 첫 번째 네트워크 장치 (net0)를 구성합니다. 이 인터페이스는 vSocket의 WAN1 인터페이스입니다:

    1. 브리지에서는 인터넷 연결이 있는 브리지를 선택합니다.
    2. 모델에서는 **VirtIO (준가상화)**를 선택합니다.
    3. 선택 사항으로, 방화벽 체크박스를 선택 취소하십시오.
  8. 확인 탭에서 생성 후 시작이 선택되지 않도록 하고 완료를 클릭합니다.

중요! VM이 완전히 구성될 때까지 시작하지 마십시오. cloud-init 시드 ISO는 첫 번째 부팅 시에만 읽힙니다.

5단계 – 시리얼 포트 및 나머지 인터페이스 추가

VM 생성 후, VM의 하드웨어 섹션에서 나머지 하드웨어를 추가합니다.

VM 하드웨어 구성을 완료하려면:

  1. 추가 > 시리얼 포트를 클릭하고 시리얼 포트 0 (serial0)을 추가합니다. 시리얼 포트는 vSocket에 대한 콘솔 액세스에 사용됩니다.
  2. 추가 > 네트워크 장치를 클릭하고 LAN1 인터페이스를 추가합니다:
    1. 브리지에서는 LAN 브리지를 선택합니다.
    2. 모델에서는 **VirtIO (준가상화)**를 선택합니다.
    3. 선택 사항으로, 동일한 브리지를 사용하는 LAN 세그먼트를 분리하기 위해 VLAN 태그를 입력하십시오.
  3. 이전 단계는 총 4개의 추가 인터페이스(관리 또는 WAN2) 각각에 대해 반복합니다.

네트워크 장치는 순서에 따라 vSocket 인터페이스에 매핑됩니다: net0은 WAN1, net1은 LAN1이며, 이후 장치는 선택적 인터페이스입니다.

스크린샷 자리표시자 – 시리얼 포트 추가.

스크린샷 자리표시자 – 추가 네트워크 장치 추가.

스크린샷 자리표시자 – vSocket VM 하드웨어 목록 완료.

6단계 – (추천) 스냅샷 찍기

첫 번째 부팅 전에 스냅샷 섹션의 VM에서 스냅샷 찍기를 클릭하고 초기 상태의 스냅샷(예: pristine)을 생성합니다. 첫 번째 부팅 구성이 올바르지 않은 경우, VM을 다시 생성하는 대신 이 스냅샷으로 롤백할 수 있습니다.

스크린샷 자리표시자 – 초기 VM 상태의 스냅샷 찍기.

7단계 – VM 시작

VM을 시작합니다. 첫 번째 부팅 시, vSocket은 시드 ISO에서 구성을 읽고 Cato Cloud에 등록을 시작합니다.

vSocket을 CMA에 연결

CMA는 자동으로 vSocket을 감지하고 (cloud-init의 user-data에서) 시리얼 번호를 사용하여 사이트에 연결합니다. 등록하려면 WAN1 인터페이스에 인터넷 연결 및 공용 DNS에 대한 액세스가 있어야 Cato Cloud 및 CMA에 도달할 수 있습니다.

  • WAN1이 DHCP를 통해 동적 IP 주소를 받으면 vSocket이 자동으로 Cato Cloud 등록을 시작합니다.
  • DHCP가 사용 불가능한 경우, cloud-init의 user-data에서 WAN1에 대해 정적 IP 주소를 구성하십시오(2단계를 참조하십시오).
  • 기본적으로 WAN2 인터페이스는 비활성화되어 있으며, vSocket은 등록을 위해 WAN1만을 사용합니다.

부팅 절차와 등록을 따라가려면 Proxmox 웹 UI의 VM에 있는 콘솔 섹션을 사용하십시오. vSocket은 시리얼 콘솔로 부팅 출력을 보내므로 이 출력을 보려면 하드웨어 > 디스플레이 > 그래픽 카드를 시리얼 터미널 0으로 설정하십시오.

높은 가용성(HA) 배포

HA는 물리적 HA 쌍과 같이 작동하며, 두 KVM vSocket 사이에서 VRRP를 사용합니다. 이 기능은 다른 노드에서 VM을 재시작하고 vSocket HA에는 사용되지 않는 Proxmox 클러스터 HA 기능( HA에 추가 옵션)과는 별개입니다.

  • 각각 그 자체의 QCOW2 이미지와 시드 ISO(주 또는 보조 소켓의 시리얼 번호 포함)를 가지고 있는 두 개의 vSocket VM을 배포하십시오.
  • 두 VM의 LAN 인터페이스는 동일한 브로드캐스트 도메인(동일한 브리지와 VLAN 태그)에 있어야 하며, VRRP가 작동할 수 있습니다. VM이 다른 Proxmox 노드에 있는 경우, LAN 브리지는 동일한 Layer 2 세그먼트에 연결되어야 합니다.
  • CMA에서 사이트에 보조 소켓을 추가합니다. 두 구성원이 HA 쌍을 형성하고 상태/건강 정보를 교환하며 제품 HA 설계에 따라 장애를 넘어섭니다.
  • HA 건강과 상태는 CMA에서 확인할 수 있습니다.

추가 vSocket VM 배포

같은 Proxmox 호스트나 클러스터에서 하나 이상의 vSocket VM을 실행하려면:

  • 각 VM을 위한 QCOW2 이미지의 깨끗한 복사본을 가져옵니다.
  • 관련 사이트의 시리얼 번호로 새로운 시드 ISO를 생성합니다.
  • 고유한 VM 이름과 VM ID를 사용합니다.
  • 격리가 필요한 경우 별도의 LAN 브리지 또는 VLAN 태그를 사용하십시오.

vSocket VM 구성 변경

새로운 구성이 지원되는 값을 사용할 경우 일부 VM 설정을 변경할 수 있습니다. 변경 사항이 적용되도록 vSocket VM을 재시작합니다.

다음 VM 설정을 변경할 수 있습니다:

  • CPU 사용량
  • 메모리
  • 네트워크 인터페이스 추가 또는 제거 등 네트워킹

문제 해결

VM이 부팅되지만 vSocket이 등록되지 않습니다

  • 시드 ISO가 CD-ROM으로 부착되어 있는지 확인하세요.
  • ISO에 'user-data' 파일이 포함되어 있는지 확인하세요.
  • CMA 사이트의 시리얼 번호와 일치하는 'serial' 값인 것을 확인하세요.
  • WAN1이 인터넷에 접속할 수 있고, 공개 DNS 서비스에 액세스할 수 있는지 확인하세요.
  • 첫 번째 네트워크 장치 (net0)가 지정된 WAN 브리지에 연결되어 있는지 확인하세요.

cloud-init 구성의 변경 사항은 무시됩니다.

vSocket 부트스트랩은 첫 번째 부팅 시에만 실행됩니다. VM이 초기화된 후 'user-data'를 변경하면, 기존의 부트 디스크에 변경 사항이 적용되지 않습니다. 초기 상태의 스냅샷으로 되돌리거나, QCOW2 이미지의 깨끗한 복사본과 새로운 시드 ISO로 VM을 재생성하세요.

콘솔 출력이 없습니다

  • VM에 시리얼 포트 (serial0)가 추가되었는지 확인하세요.
  • 웹 UI 콘솔에서 시리얼 출력을 확인하려면, 하드웨어 > 디스플레이 > 그래픽 카드를 시리얼 터미널 0으로 설정하세요.

네트워크가 기대대로 작동하지 않습니다

  • 각 네트워크 장치가 연결된 브리지를 확인하세요.
  • VM 구성에서 네트워크 장치의 순서를 확인하세요 (net0는 WAN1, net1은 LAN1입니다).
  • 'user-data' 파일의 '네트워크' 섹션이 DHCP 또는 정적 설정을 의도대로 사용하는지 확인하세요.

관련 문서