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.

- 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
- Truy cập giao diện web Proxmox và nhấp vào Create Virtual Machine.

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

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

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

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

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

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

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

- 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.

Bước 3 - Giải nén và chuyển OVA
-
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

-
Xác định tệp
.vmdk(ví dụ:Halo-full-<version>-disk1.vmdk). -
Tải
.vmdklên proxmox, ví dụ:scp Halo-FULL-...disk1.vmdk root@<Proxmox-IP>:/root/

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

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.

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.
Tùy chọn B (khuyến nghị): chuyển đổi thủ công (qemu-img)
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:
-
Tạo một volume thin-provisioned cho đĩa Halo:
lvcreate -n vm-<VM_ID>-disk-0 -V 200G --thinpool thin-halo vg-halo -
Chuyển đổi
.vmdkthành đĩa raw:qemu-img convert -f vmdk -O raw /root/Halo-FULL...disk1.vmdk /dev/vg-halo/vm-<VM_ID>-disk-0 -
Gắn đĩa vào VM:
qm set <VM_ID> --ide0 halo-lvmthin:vm-<VM_ID>-disk-0

Bước 6 - Cấu hình VM cuối cùng
- 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.

-
Trong VM -> Options:
- Đảm bảo Boot order đặt IDE0 ở vị trí đầu tiên.
- Xác minh BIOS là seaBIOS.
- KVM hardware virtualization và ACPI phải được bật.
-
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.

Bước 7 - Khởi động ban đầu
-
Khởi động VM trong giao diện người dùng Proxmox.
-
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…”.
-
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.
-
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).

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
-
Sao chép tệp sao lưu
.vma.zstvà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/ -
Trong giao diện người dùng Proxmox, đi tới Node -> Local -> Backup.
-
Tìm tệp
.vma.zstvà chọn Restore. -
Gán một VM ID mới (ví dụ: 101) và bộ nhớ đích.

Bước 2 - Xác minh việc gắn đĩa
- Sau khi khôi phục, mở VM -> Hardware.
- Xác nhận rằng đĩa chính được gắn vào IDE0.
- Đảm bảo BIOS được đặt thành seaBIOS trong VM -> Options.
Bước 3 - Khởi động VM
- Bật nguồn cho VM.
- Theo dõi bảng điều khiển để phát hiện bất kỳ lỗi nào.
- Cấu hình cài đặt mạng, nếu chưa được thiết lập.
- Tiếp tục với mọi bước cấu hình cuối cùng trong Halo.

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ụ:
ens18so vớieth0), hãy điều chỉnh các tệpifcfg-của bạn cho phù hợp. - Sử dụng
nmcli device showhoặcip 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