Chuyển đến nội dung chính

Triển khai

Để triển khai Glasswall Halo trong một VM Proxmox, bạn có thể chọn một trong hai tùy chọn sau:

Vui lòng tham khảo khắc phục sự cố & câu hỏi thường gặp hoặc tài liệu Proxmox để biết thêm thông tin.


Triển khai từ OVA/VMDK

Bước 1 - Cập nhật máy chủ Proxmox VE

Đảm bảo máy chủ Proxmox của bạn được cập nhật bằng cách chạy lệnh sau để tránh các vấn đề về tương thích.

01_Proxmox

  • Cập nhật khi có kết nối trực tuyến:
apt-get update
apt-get dist-upgrade

Bước 2 - Tạo một vỏ VM mới

  1. Truy cập giao diện web Proxmox và nhấp vào Create Virtual Machine.

02_Proxmox

  1. Trong tab General, cung cấp tên VM (ví dụ: Glasswall-Halo).

03_Proxmox

  1. Trong tab OS, chọn loại Linux chung (ví dụ: Linux 5.x/6.x). Bạn không cần ISO.

04_Proxmox

  1. System:
    • BIOS: đặt thành seaBIOS.
    • SCSI controller: VirtIO SCSI.

05_Proxmox

  1. Hard disk: xóa đĩa mặc định (chúng ta sẽ gắn một đĩa đã chuyển đổi sau).

06_Proxmox

  1. CPU: đặt loại thành host để đạt hiệu năng tối đa; phân bổ ít nhất 16 lõi.

07_Proxmox

  1. Memory: phân bổ 32–64 GB.

08_Proxmox

  1. Network: gắn một NIC vào bridge mong muốn (ví dụ: vmbr0), thường dùng model VirtIO.

09_Proxmox

  1. Trong tab Confirm, xem phần tóm tắt và nhấp vào Finish.

Note: chưa khởi động VM lúc này.

10_Proxmox

Bước 3 - Giải nén và chuyển OVA

  1. Giải nén OVA trên hệ thống cục bộ của bạn bằng cách chạy lệnh sau:

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

11_Proxmox

  1. Xác định tệp .vmdk (ví dụ: Halo-full-<version>-disk1.vmdk).

  2. Tải .vmdk lên proxmox, ví dụ:

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

12_Proxmox

Bước 4 - Chuẩn bị bộ nhớ lưu trữ (LVM-Thin tùy chọn)

Tại sao là LVM-Thin? Nó cung cấp khả năng cấp phát mỏng và hỗ trợ snapshot, khiến nó trở nên lý tưởng cho các đĩa VM lớn hơn hoặc được cập nhật thường xuyên. Tuy nhiên, bạn cũng có thể gắn đĩa vào bộ nhớ lưu trữ dạng thư mục hoặc các loại lưu trữ khác trong Proxmox.

Các bước ví dụ để tạo 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

Sau khi tạo thin pool, hãy thêm nó qua Datacenter -> Storage -> Add -> LVM-Thin. Chọn vg-Halo làm volume group và Thin-Halo làm thin pool.

14_Proxmox

Bước 5 - Chuyển đổi và gắn đĩa Halo

Tùy chọn A: qm importdisk

SSH vào máy chủ Proxmox của bạn

Nếu sử dụng storage hỗ trợ import (ví dụ: directory hoặc LVM-Thin), hãy chạy:

qm importdisk <VM_ID> /root/Halo-FULL-...disk1.vmdk <StorageName> --format qcow2
  • <Vm_id> là ID được gán cho VM của bạn (ví dụ: 100).
  • <Storagename> là đích storage Proxmox (ví dụ: local-lvm, Halo-lvmthin).
  • Sau khi hoàn tất, vào vm -> hardware, tìm “unused disk”, sau đó edit và chọn ide0.

SSH vào máy chủ Proxmox của bạn

Nếu qm importdisk gặp lỗi (ví dụ: “zeroinit”), hoặc nếu bạn muốn quản lý trực tiếp hơn:

  1. Tạo một volume thin-provisioned cho đĩa Halo:

    lvcreate -n vm-<VM_ID>-disk-0 -V 200G --thinpool thin-halo vg-halo
  2. Chuyển đổi .vmdk thành đĩa raw:

    qemu-img convert -f vmdk -O raw /root/Halo-FULL...disk1.vmdk /dev/vg-halo/vm-<VM_ID>-disk-0
  3. Gắn đĩa vào VM:

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

15_Proxmox

Bước 6 - Cấu hình VM cuối cùng

  1. In VM -> Hardware:
    • IDE0 phải là đĩa Halo chính của bạn.
    • Xác nhận “Virtio SCSI” được liệt kê là bộ điều khiển SCSI.

16_Proxmox

  1. Trong VM -> Options:

    • Đảm bảo Boot order đặt IDE0 ở vị trí đầu tiên.
    • Xác minh BIOSseaBIOS.
    • KVM hardware virtualizationACPI phải được bật.
  2. Tùy chọn: QEMU guest agent có thể được cài đặt bên trong Halo VM để có chức năng nâng cao.

17_Proxmox

Bước 7 - Khởi động ban đầu

  1. Khởi động VM trong giao diện người dùng Proxmox.

  2. Theo dõi bảng điều khiển; ở lần khởi động đầu tiên, có thể mất tới một phút để vượt qua “Probing EDD…”.

  3. Cấu hình mạng bên trong Halo VM:

    • Đối với IP tĩnh: hãy làm theo hướng dẫn cấu hình Network Manager để tiếp tục thiết lập Halo. Quay lại đây khi hoàn tất.
    • Đối với DHCP: hãy đảm bảo máy chủ DHCP của bạn đang hoạt động.
  4. Hoàn tất các cấu hình ở cấp ứng dụng (ví dụ: start_halo.sh, máy chủ syslog, tls).

18_Proxmox

Triển khai từ bản sao lưu Glasswall (.vma.zst)

Nếu đội ngũ Glasswall của chúng tôi đã cung cấp cho bạn một bản sao lưu Proxmox được cấu hình sẵn, bạn có thể bỏ qua các bước OVA/VMDK.

Bước 1 - Tải lên và khôi phục bản sao lưu

  1. Sao chép tệp sao lưu .vma.zst vào thư mục sao lưu của máy chủ Proxmox:

    scp glasswall-halo-backup.vma.zst root@<Proxmox-IP>:/var/lib/vz/dump/
  2. Trong giao diện người dùng Proxmox, đi tới Node -> Local -> Backup.

  3. Tìm tệp .vma.zst và chọn Restore.

  4. Gán một VM ID mới (ví dụ: 101) và bộ nhớ đích.

19_Proxmox

Bước 2 - Xác minh việc gắn đĩa

  1. Sau khi khôi phục, mở VM -> Hardware.
  2. Xác nhận rằng đĩa chính được gắn vào IDE0.
  3. Đảm bảo BIOS được đặt thành seaBIOS trong VM -> Options.

Bước 3 - Khởi động VM

  1. Bật nguồn cho VM.
  2. Theo dõi bảng điều khiển để phát hiện bất kỳ lỗi nào.
  3. Cấu hình cài đặt mạng, nếu chưa được thiết lập.
  4. Tiếp tục với mọi bước cấu hình cuối cùng trong Halo.

20_Proxmox


Khắc phục sự cố và Câu hỏi thường gặp

Lỗi zeroinit

Điều này có thể xảy ra khi sử dụng qm importdisk với một số loại lưu trữ nhất định hoặc các phiên bản QEMU cũ hơn.

Giải pháp: sử dụng chuyển đổi thủ công với qemu-img.

Sự cố cấu hình mạng

  • Nếu giao diện VM được đặt tên khác (ví dụ: ens18 so với eth0), hãy điều chỉnh các tệp ifcfg- của bạn cho phù hợp.
  • Sử dụng nmcli device show hoặc ip a để xác nhận tên giao diện.

Tại sao là IDE + seaBIOS?

  • Các image RHEL được tăng cường bảo mật theo STIG yêu cầu BIOS kế thừa cho một số cấu hình khởi động nhất định.
  • IDE đảm bảo khả năng tương thích rộng và tránh các sự cố đã biết với một số trình điều khiển ảo.

Các phương pháp hay bổ sung

  • Snapshots: tận dụng snapshot của Proxmox hoặc snapshot LVM-Thin để quay lui nhanh.
  • Sao lưu: thường xuyên sử dụng vzdump để tạo các bản sao lưu nén (.vma.zst).
  • Giám sát tài nguyên: theo dõi mức sử dụng CPU và bộ nhớ đối với tải production.

Khởi tạo các dịch vụ Glasswall Halo

  • Thực thi lệnh sau để khởi chạy Glasswall Halo:
sudo start_halo.sh
  • Sau khi script hoàn tất, hãy xác nhận rằng tất cả các dịch vụ và pod của Glasswall Halo đang chạy bằng lệnh sau:
kubectl get pods

Truy cập Glasswall Portal

  • Tùy thuộc vào cấu hình mạng và/hoặc cấu hình miền của bạn, giờ đây bạn có thể làm sạch tệp bằng cách truy cập cổng thông tin Glasswall thông qua tên miền và/hoặc địa chỉ ip được gán cho máy ảo của bạn.

  • Chạy lệnh sau để xác nhận trạng thái mạng:

sudo netstat -tlnp