주요 콘텐츠로 건너뛰기

배포

Proxmox VM에 Glasswall Halo를 배포하려면 다음 두 가지 옵션 중에서 선택할 수 있습니다:

자세한 내용은 문제 해결 및 FAQ 또는 Proxmox 문서를 참조하세요.


OVA/VMDK에서 배포

1단계 - Proxmox VE 호스트 업데이트

호환성 문제를 방지하려면 다음 명령을 실행하여 Proxmox 호스트가 최신 상태인지 확인하세요.

01_Proxmox

  • 온라인 연결 업데이트:
apt-get update
apt-get dist-upgrade

2단계 - 새 VM 셸 생성

  1. Proxmox 웹 UI에 접속한 다음 Create Virtual Machine을 클릭합니다.

02_Proxmox

  1. General 탭에서 VM 이름(예: Glasswall-Halo)을 입력합니다.

03_Proxmox

  1. OS 탭에서 일반 Linux 유형(예: Linux 5.x/6.x)을 선택합니다. ISO는 필요하지 않습니다.

04_Proxmox

  1. System:
    • BIOS: seaBIOS로 설정합니다.
    • SCSI controller: VirtIO SCSI.

05_Proxmox

  1. Hard disk: 기본 디스크를 제거합니다(변환된 디스크는 나중에 연결합니다).

06_Proxmox

  1. CPU: 최대 성능을 위해 유형을 host로 설정하고, 최소 16코어를 할당합니다.

07_Proxmox

  1. Memory: 32–64 GB를 할당합니다.

08_Proxmox

  1. Network: 원하는 브리지(예: vmbr0)에 NIC를 연결하며, 일반적으로 VirtIO 모델을 사용합니다.

09_Proxmox

  1. Confirm 탭에서 요약을 확인한 다음 Finish를 클릭합니다.

참고: 아직 VM을 시작하지 마십시오.

10_Proxmox

3단계 - OVA 추출 및 전송

  1. 다음 명령을 실행하여 로컬 시스템에서 OVA를 추출합니다:

    tar -xvf Halo-FULL-<version>.ova

11_Proxmox

  1. .vmdk 파일(예: Halo-full-<version>-disk1.vmdk)을 식별합니다.

  2. .vmdk를 proxmox에 업로드합니다. 예:

    scp Halo-FULL-...disk1.vmdk root@<Proxmox-IP>:/root/

12_Proxmox

4단계 - 스토리지 준비 (선택 사항: LVM-Thin)

왜 LVM-Thin인가요? 씬 프로비저닝과 스냅샷 지원을 제공하므로, 더 크거나 자주 업데이트되는 VM 디스크에 이상적입니다. 하지만 Proxmox에서 디스크를 디렉터리 기반 스토리지나 다른 스토리지 유형에 연결할 수도 있습니다.

LVM-Thin 생성 예시 단계:

# Identify a free disk, e.g. /dev/sdb
pvcreate /dev/sdb
vgcreate vg-halo /dev/sdb
# Create a thin pool consuming all space
lvcreate -l 100%FREE -T -n thin-halo vg-halo

13_Proxmox

thin pool을 생성한 후 Datacenter -> Storage -> Add -> LVM-Thin을 통해 추가합니다. 볼륨 그룹으로 vg-Halo를 선택하고 thin pool로 Thin-Halo를 선택합니다.

14_Proxmox

5단계 - Halo 디스크 변환 및 연결

옵션 A: qm importdisk

Proxmox 호스트에 SSH로 접속합니다

가져오기를 지원하는 스토리지(예: directory 또는 LVM-Thin)를 사용하는 경우 다음을 실행합니다:

qm importdisk <VM_ID> /root/Halo-FULL-...disk1.vmdk <StorageName> --format qcow2
  • <Vm_id>는 VM에 할당된 ID입니다(예: 100).
  • <Storagename>은 Proxmox 스토리지 대상입니다(예: local-lvm, Halo-lvmthin).
  • 완료 후 vm -> hardware로 이동하여 “unused disk”를 찾은 다음 edit를 선택하고 ide0를 선택합니다.

Proxmox 호스트에 SSH로 접속합니다

qm importdisk에서 오류(예: “zeroinit”)가 발생하거나 더 직접적으로 관리하려는 경우:

  1. Halo 디스크용으로 씬 프로비저닝된 볼륨을 생성합니다:

    lvcreate -n vm-<VM_ID>-disk-0 -V 200G --thinpool thin-halo vg-halo
  2. .vmdk를 raw 디스크로 변환합니다:

    qemu-img convert -f vmdk -O raw /root/Halo-FULL...disk1.vmdk /dev/vg-halo/vm-<VM_ID>-disk-0
  3. 디스크를 VM에 연결합니다:

    qm set <VM_ID> --ide0 halo-lvmthin:vm-<VM_ID>-disk-0

15_Proxmox

6단계 - 최종 VM 구성

  1. In VM -> Hardware:
    • IDE0는 기본 Halo 디스크여야 합니다.
    • SCSI 컨트롤러로 “Virtio SCSI”가 표시되는지 확인합니다.

16_Proxmox

  1. VM -> Options에서:

    • Boot order에서 IDE0가 첫 번째로 설정되어 있는지 확인합니다.
    • BIOSseaBIOS인지 확인합니다.
    • KVM hardware virtualizationACPI가 활성화되어 있어야 합니다.
  2. 선택 사항: 고급 기능을 위해 Halo VM 내부에 QEMU guest agent를 설치할 수 있습니다.

17_Proxmox

7단계 - 초기 부팅

  1. Proxmox UI에서 VM을 시작합니다.

  2. 콘솔을 확인하세요. 첫 부팅 시 “Probing EDD…”를 지나가는 데 최대 1분이 걸릴 수 있습니다.

  3. Halo VM 내부에서 네트워크를 구성합니다:

    • 고정 IP의 경우: Halo 설정을 계속하려면 Network Manager configuration guide를 따르십시오. 완료되면 여기로 돌아오십시오.
    • DHCP의 경우: DHCP 서버가 정상적으로 작동하는지 확인하십시오.
  4. 애플리케이션 수준 구성을 마무리합니다 (예: start_halo.sh, syslog server, tls).

18_Proxmox

Glasswall 백업(.vma.zst)에서 배포하기

Glasswall 팀이 사전 구성된 Proxmox 백업을 제공한 경우 OVA/VMDK 단계는 건너뛸 수 있습니다.

1단계 - 백업 업로드 및 복원

  1. .vma.zst 백업 파일을 Proxmox 호스트의 백업 디렉터리로 복사합니다:

    scp glasswall-halo-backup.vma.zst root@<Proxmox-IP>:/var/lib/vz/dump/
  2. Proxmox UI에서 Node -> Local -> Backup으로 이동합니다.

  3. .vma.zst 파일을 찾아 Restore를 선택합니다.

  4. 새 VM ID(예: 101)와 대상 스토리지를 지정합니다.

19_Proxmox

2단계 - 디스크 연결 확인

  1. 복원 후 VM -> Hardware를 엽니다.
  2. 기본 디스크가 IDE0에 연결되어 있는지 확인합니다.
  3. VM -> Options에서 BIOS가 seaBIOS로 설정되어 있는지 확인합니다.

3단계 - VM 시작

  1. VM의 전원을 켭니다.
  2. 오류가 있는지 콘솔을 확인합니다.
  3. 아직 설정되지 않았다면 네트워크 설정을 구성합니다.
  4. Halo 내에서 최종 구성 단계를 진행합니다.

20_Proxmox


문제 해결 및 FAQ

zeroinit 오류

특정 스토리지 유형 또는 이전 QEMU 버전에서 qm importdisk를 사용할 때 이 문제가 발생할 수 있습니다.

해결 방법: qemu-img를 사용해 수동 변환을 수행합니다.

네트워크 구성 문제

  • VM 인터페이스 이름이 다르게 지정된 경우(예: ens18eth0), 이에 맞게 ifcfg- 파일을 조정합니다.
  • 인터페이스 이름을 확인하려면 nmcli device show 또는 ip a를 사용합니다.

왜 IDE + seaBIOS인가요?

  • STIG로 강화된 RHEL 이미지는 특정 부팅 구성에서 레거시 BIOS를 필요로 합니다.
  • IDE는 폭넓은 호환성을 보장하고 일부 가상 드라이버에서 알려진 문제를 방지합니다.

추가 모범 사례

  • 스냅샷: 빠른 롤백을 위해 Proxmox 스냅샷 또는 LVM-Thin 스냅샷을 활용합니다.
  • 백업: 정기적으로 vzdump를 사용하여 압축 백업(.vma.zst)을 생성합니다.
  • 리소스 모니터링: 프로덕션 부하에 대한 CPU 및 메모리 사용량을 지속적으로 모니터링합니다.

Glasswall Halo 서비스 시작

  • 다음 명령을 실행하여 Glasswall Halo를 시작합니다:
sudo start_halo.sh
  • 스크립트가 완료되면 다음 명령을 사용하여 모든 Glasswall Halo 서비스와 pod가 실행 중인지 확인합니다:
kubectl get pods

Glasswall Portal 접속

  • 네트워크 구성 및/또는 도메인 구성에 따라, 이제 가상 머신에 할당된 도메인 이름 및/또는 ip address를 통해 Glasswall portal에 접속하여 파일을 정화할 수 있습니다.

  • 네트워크 상태를 확인하려면 다음 명령을 실행합니다:

sudo netstat -tlnp