hoatranlab.io.vn Zalo: 0917516878 Hotline: 0917516878 [email protected]
HoaTranLab Logo HoaTranLab
Phase 1 / 7 Bắt buộc — Chặn tất cả phase khác Cập nhật: 2026-05-03

1. Tổng Quan & Mục Tiêu

Mức độ ưu tiên
QUAN TRỌNG
Chặn tất cả phase khác
Thời gian ước tính
3–5 ngày
Tùy quy mô hạ tầng
Phụ thuộc
Không có
Đây là phase đầu tiên
Tại sao Phase 01 là bắt buộc?

Phase 01 là nền tảng — nếu bỏ qua bất kỳ checklist nào, các phase sau sẽ thất bại hoặc phải làm lại từ đầu. Veeam v13 có nhiều thay đổi breaking changes (gRPC, PostgreSQL, NTLM removal) đòi hỏi chuẩn bị kỹ lưỡng hơn v12.

Mục tiêu Phase 01:

2. Breaking Changes v13 — Phải Biết Trước

CẢNH BÁO: Các thay đổi này không tương thích ngược với v12

Nếu đang nâng cấp từ v12, đọc kỹ từng dòng bảng sau trước khi tiến hành bất kỳ bước nào.

Thành phần v12 (cũ) v13 (mới) Tác động
Communication Protocol WMI/RPC (port 135 + dynamic) gRPC (port 9399, 9392) Firewall rules thay đổi hoàn toàn — phải mở port mới, đóng port cũ
Database Engine SQL Server (bắt buộc license) PostgreSQL 17.6 (mặc định, miễn phí) Tiết kiệm chi phí SQL license; migration path có sẵn nếu có dữ liệu v12
Authentication NTLM được hỗ trợ NTLM bị xóa — chỉ Kerberos + Certificate Hệ thống không join domain sẽ cần certificate auth; kiểm tra SPNs
Service Accounts Password-based accounts OK gMSA bắt buộc (DISA STIG) Tạo gMSA trước khi deploy; không thể đổi sau khi HA cluster đã hình thành
Boot Mode BIOS boot chấp nhận được UEFI bắt buộc cho JeOS VM template phải UEFI; Secure Boot khuyến nghị; BIOS sẽ từ chối deploy
OS Platform (JeOS) Photon OS (VMware) Rocky Linux 9 (DISA STIG compliant) Không backward compatible; phải redeploy JeOS VMs, không upgrade tại chỗ

3. Hướng Dẫn Kích Thước Chi Tiết

VSA Nodes x2 — Node chính (Site Chính) + Node DR (Site DR)

Tài nguyên Tối thiểu (< 100 VMs) Khuyến nghị (100–500 VMs) Enterprise (500+ VMs)
vCPU4816
RAM16 GB32 GB64 GB
OS Disk (SSD)100 GB200 GB200 GB
PostgreSQL Data Disk50 GB150 GB500 GB+
NIC2×1GbE2×10GbE2×25GbE
Replication Link (WAL sync)1 Gbps10 Gbps10 Gbps dedicated

Proxy JeOS Backup Proxy (Rocky Linux JeOS)

Công thức tính:
# vCPU = số concurrent tasks (jobs chạy đồng thời)
vCPU = concurrent_tasks

# RAM = base 2GB + 1GB cho mỗi concurrent task
RAM_GB = 2 + (1 × concurrent_tasks)

# concurrent_tasks phụ thuộc backup window
concurrent_tasks = ceil(total_VMs / backup_window_hours × change_rate_factor)
Ví dụ thực tế: 100 VMs, backup window 8h, change rate 10%
  • • VMs cần backup/ngày = 100
  • • Throughput cần = 100 VMs ÷ 8h = 12.5 VMs/h → làm tròn 8 tasks đồng thời
  • • vCPU = 8
  • • RAM = 2 + (1 × 8) = 10 GB (làm tròn lên 12 GB)
  • • NIC tối thiểu: 10GbE để không bị bottleneck
Môi trườngvCPURAMSố Proxy Node
< 50 VMs46 GB1 (HA = 2)
50–200 VMs812 GB2
200–500 VMs1620 GB3–4

Hardened Repository JeOS — Immutable Linux Repository

Công thức tính dung lượng:
# Storage = (daily_change_GB × retention_days × 1.2) + full_backup_GB
# 1.2 = overhead factor cho dedupe metadata + journal

# Ví dụ: 500 VMs, avg VM 100GB, change rate 5%/ngày, giữ 30 ngày
daily_change_GB = 500 VMs × 100 GB × 5% = 2,500 GB/ngày
full_backup_GB  = 500 VMs × 100 GB × 0.4 (sau dedupe/compress ~40%)
                = 20,000 GB = ~20 TB

storage_needed = (2,500 GB × 30 days × 1.2) + 20,000 GB
               = 90,000 GB + 20,000 GB
               = 110,000 GB ≈ 110 TB

# Kết quả: Cần ~110 TB cho Hardened Repo tier này

Storage Tiers SOBR 3-Tier Architecture

TierLoại StorageFilesystemRetentionMục đích
PerformanceNAS SSD / iSCSIXFS (reflink)14–30 ngàyRestore nhanh, hot data
CapacityS3 Compatible / ObjectObject Storage90 ngàyCold data, tiết kiệm chi phí
ArchiveTape LibraryGFS rotation1 năm / 7 nămCompliance, legal hold, DR

4. Cấu Hình Mạng & Firewall v13

Tin vui: v13 đơn giản hóa firewall đáng kể

v13 loại bỏ WMI (port 135/TCP + 49152-65535 dynamic) — giảm attack surface và đơn giản hóa firewall rules. Toàn bộ traffic chạy qua gRPC.

Source Destination Port Protocol Mục đích
Admin ConsoleVSA Node9392TCPVBR Console → VSA gRPC API
VSAProxy / Repo / Guest9399TCPVSA → Components (gRPC control)
ProxyRepository2500–3300TCPData transport (backup streams)
VSAVSA Node 2 (HA)10443TCPHA cluster inter-node sync
VSAvCenter Server443HTTPSvSphere API calls
VSA / ProxyESXi hosts902TCPvSphere data port (NBDSSL)
VSAPostgreSQL5432TCPDB connection (local/remote)
All Veeam VMsDNS Server53UDP/TCPName resolution (FQDN required)
All Veeam VMsNTP Server123UDPTime sync (Kerberos requirement: ±5 min)
Ports CẦN ĐÓNG (không cần nữa trong v13)
135/TCP (WMI RPC) 49152-65535/TCP (Dynamic RPC) 445/TCP (SMB — nếu chỉ dùng Veeam)
Cluster IP & DNS Requirements
  • • Cluster IP: Pre-reserve 1 IP trong cùng subnet với Node 1 và Node 2 (L2 requirement)
  • • DNS A record: veeam-cluster.domain.local → Cluster IP (cập nhật tự động khi failover)
  • • Node 1 A record: veeam-node1.domain.local
  • • Node 2 A record: veeam-node2.domain.local
  • • QUAN TRỌNG: Tất cả admin console và API calls phải trỏ vào Cluster IP, KHÔNG phải IP của node riêng lẻ

5. Thiết Lập Active Directory

Khuyến nghị: Management Forest riêng biệt

Để tuân thủ DISA STIG và Zero Trust, triển khai Veeam trong một AD forest riêng (management forest) không trust lẫn nhau với production forest. Điều này đảm bảo compromise production AD không ảnh hưởng đến backup infrastructure.

PowerShell — Tạo gMSA và Security Groups:

# ============================================================
# Step 1: Tạo KDS Root Key (cần 1 lần duy nhất per forest)
# Cần chờ 10h để replicate, hoặc dùng -EffectiveImmediately cho lab
# ============================================================
Add-KdsRootKey -EffectiveTime ((Get-Date).AddHours(-10))
# Verify:
Get-KdsRootKey

# ============================================================
# Step 2: Tạo gMSA account chính cho Veeam services
# ============================================================
New-ADServiceAccount `
    -Name "svc-veeam-backup" `
    -DNSHostName "svc-veeam-backup.domain.local" `
    -PrincipalsAllowedToRetrieveManagedPassword "VeeamServers-Group" `
    -ServicePrincipalNames "veeam/veeam-node1.domain.local","veeam/veeam-cluster.domain.local" `
    -Enabled $true `
    -Description "Veeam v13 Backup Service gMSA"

# Verify gMSA hoạt động từ Node 1 (chạy trên VSA VM sau khi join domain):
Test-ADServiceAccount -Identity "svc-veeam-backup"
# Expected output: True

# ============================================================
# Step 3: Tạo Security Groups
# ============================================================
$groups = @(
    @{Name="VeeamAdmins";          Description="Full VSA access — giới hạn 2-3 người"},
    @{Name="VeeamBackupOps";       Description="Create/edit backup jobs, no delete"},
    @{Name="VeeamRestoreOps";      Description="Restore only — helpdesk tier"},
    @{Name="VeeamSecurityOfficer"; Description="Approve 4-eyes actions — phải tách biệt khỏi VeeamAdmins"},
    @{Name="VeeamServers-Group";   Description="Computer accounts được phép lấy gMSA password"}
)

foreach ($g in $groups) {
    New-ADGroup `
        -Name $g.Name `
        -GroupScope Global `
        -GroupCategory Security `
        -Path "OU=VeeamGroups,OU=ServiceAccounts,DC=domain,DC=local" `
        -Description $g.Description
    Write-Host "Created: $($g.Name)" -ForegroundColor Green
}

# ============================================================
# Step 4: Thêm VSA computer accounts vào VeeamServers-Group
# ============================================================
Add-ADGroupMember -Identity "VeeamServers-Group" `
    -Members (Get-ADComputer "VEEAM-NODE1"), (Get-ADComputer "VEEAM-NODE2")

# ============================================================
# Step 5: Thêm admin users vào groups
# ============================================================
Add-ADGroupMember -Identity "VeeamAdmins" -Members "htran","admin-veeam"
Add-ADGroupMember -Identity "VeeamSecurityOfficer" -Members "sec-officer"  # Người khác!
Lưu ý quan trọng về Security Officer

VeeamSecurityOfficer KHÔNG được là thành viên của VeeamAdmins — đây là nguyên tắc separation of duties. Security Officer là người phê duyệt các thao tác nguy hiểm (xóa repo, vô hiệu hóa immutability), không phải người thực hiện.

6. Cấp Phép (Licensing)

Tính năng Standard Enterprise Enterprise Plus / VUL
HA Cluster (2-node)
SOBR Capacity Tier (S3)
SOBR Archive Tier (Tape/Glacier)
Veeam ONE Monitoring
M365 Backup Integration
Instant Recovery bất kỳ workloadGiới hạn
Kết luận: Phải có Enterprise Plus hoặc VUL

Deployment plan này dùng HA Cluster + SOBR 3 tiers + Veeam ONE → bắt buộc Enterprise Plus hoặc Universal License (VUL). VUL linh hoạt hơn vì tính theo workload units, không phải socket-based.

7. Danh Sách Kiểm Tra Lưu Trữ

NAS/SAN format với XFS + reflink
# Format disk với XFS reflink (bắt buộc cho synthetic full)
mkfs.xfs -m reflink=1 -m crc=1 /dev/sdX

# Mount với recommended options
echo "/dev/sdX /backups xfs defaults,noatime,nodiratime 0 0" >> /etc/fstab
mount /backups

# Verify reflink được bật
xfs_info /backups | grep reflink
# Expected output: reflink=1  rmapbt=1
Lỗi hay gặp: Format xong nhưng không verify reflink — synthetic full backup sẽ chậm gấp 3-5x nếu reflink không bật.
S3 Bucket với Object Lock — Compliance mode
PHẢI dùng Compliance mode, KHÔNG phải Governance mode. Governance mode cho phép root user override lock — không đáp ứng yêu cầu immutability theo DISA STIG và SEC Rule 17a-4. Compliance mode: ngay cả root cũng không thể xóa trước khi retention hết hạn.
# AWS CLI — tạo bucket với Object Lock
aws s3api create-bucket \
    --bucket veeam-backup-immutable \
    --region us-east-1 \
    --object-lock-enabled-for-bucket

# Set default retention — Compliance mode, 30 ngày
aws s3api put-object-lock-configuration \
    --bucket veeam-backup-immutable \
    --object-lock-configuration '{
        "ObjectLockEnabled": "Enabled",
        "Rule": {
            "DefaultRetention": {
                "Mode": "COMPLIANCE",
                "Days": 30
            }
        }
    }'
Tape Library trong Veeam HCL

Verify thiết bị tape tại: veeam.com/hardware-compatibility-list — lọc theo "Tape" và model cụ thể. Tape drives không có trong HCL sẽ không được hỗ trợ.

IAM Permissions tối thiểu cho S3
{
    "Version": "2012-10-17",
    "Statement": [{
        "Effect": "Allow",
        "Action": [
            "s3:PutObject",        // Ghi backup
            "s3:GetObject",        // Đọc để restore
            "s3:DeleteObject",     // Xóa expired backups (vẫn bị Compliance mode chặn nếu chưa hết hạn)
            "s3:ListBucket",       // Liệt kê files trong bucket
            "s3:GetObjectRetention", // Đọc retention info
            "s3:PutObjectRetention"  // Set/extend retention
        ],
        "Resource": [
            "arn:aws:s3:::veeam-backup-immutable",
            "arn:aws:s3:::veeam-backup-immutable/*"
        ]
    }]
}

8. Checklist Trước Triển Khai (15+ Items)

Hardware & VM
DNS & Network
Active Directory
License & Storage
Tiêu chí hoàn thành Phase 01

Tất cả 15 checkboxes trên đều tích xong. Không được tiến sang Phase 02 nếu còn item nào chưa hoàn thành.

9. Đánh Giá Rủi Ro

Rủi ro Mức độ Biện pháp giảm thiểu
NTLM removal gây break xác thực với legacy systems CAO Audit tất cả service accounts xem có dùng NTLM không; chuyển sang Kerberos trước
S3 Governance mode nhầm thành Compliance — backup không immutable CAO Verify bằng AWS CLI get-object-lock-configuration sau khi tạo bucket
Node 1 & Node 2 không cùng L2 subnet — HA cluster không form được TRUNG BÌNH Verify cùng VLAN/subnet trước; xét HA stretch cluster nếu cross-site
XFS reflink=0 — synthetic full backup rất chậm TRUNG BÌNH Chạy xfs_info | grep reflink ngay sau format và ghi vào checklist
KDS Root Key chưa replicate — gMSA không deploy được TRUNG BÌNH Dùng -EffectiveTime AddHours(-10) hoặc chờ 10h sau khi tạo KDS key
License Enterprise (không phải Plus) — HA cluster bị lock THẤP Xác nhận tier license với Veeam account team trước khi deploy
Enterprise Index Index Phase 02: Cài Đặt VSA