🎯 Mục Tiêu Lab
Tạo Recovery Services Vault tại region DR (East Asia) để lưu replication data
Tạo VM nguồn tại Southeast Asia và bật replication cross-region
Cấu hình replication policy: RPO 1 ngày, app-consistent snapshot 6 giờ
Giám sát trạng thái replication qua ASR dashboard trong Vault
Thực hiện Test Failover để kiểm tra DR plan mà không gián đoạn production
Hiểu rõ RPO, RTO và cách ASR đáp ứng các chỉ số SLA doanh nghiệp
🏗️ Kịch Bản & Tài Nguyên
Công ty bạn có VM web server chạy tại Southeast Asia (Singapore). Yêu cầu: nếu Singapore datacenter xảy ra sự cố, hệ thống phải tự động failover sang East Asia (Hong Kong) với RPO ≤ 24 giờ và RTO ≤ 2 giờ. Azure Site Recovery là giải pháp đáp ứng yêu cầu này.
- • Location: Southeast Asia (Singapore)
- • VM: VMLab13 (Windows Server 2019)
- • RG Source: rg-asr-source
- • Ports: RDP 3389, HTTP 80
- • Location: East Asia (Hong Kong)
- • Recovery Vault: vault-asr-lab13
- • RG Vault: rg-asr-vault
- • RG Target (auto): rg-asr-source-asr
Lượng dữ liệu tối đa có thể mất khi disaster xảy ra. RPO = 1 ngày nghĩa là hệ thống có thể mất tối đa 24 giờ dữ liệu gần nhất. ASR replication liên tục giúp RPO thực tế thường < 5 phút.
Thời gian tối đa để khôi phục hệ thống sau disaster. RTO = 2 giờ nghĩa là trong vòng 2 giờ sau sự cố, hệ thống phải hoạt động trở lại tại vùng DR. ASR automated failover thường đạt RTO < 30 phút.
📋 Chuẩn Bị
- Azure subscription với quyền Contributor
- Azure CLI đã đăng nhập (az login)
- VM nguồn tại Southeast Asia (tạo ở bước 1)
- ASR tính phí per VM được bảo vệ (~$25/VM/tháng)
- Replication lần đầu (initial sync) mất 30-60 phút
- Vault và VM nguồn phải khác region
- Disable replication trước khi xóa tài nguyên
🧪 Các Bước Thực Hiện
Tạo VM Nguồn & Recovery Services Vault
- 1.1Portal → Virtual machines → + Create → Azure virtual machine
- 1.2RG mới:
rg-asr-source, VM name:VMLab13, Region: Southeast Asia - 1.3Image: Windows Server 2019 Datacenter, Size: Standard_D2s_v3
- 1.4Admin: Myuser / Password phức tạp → Inbound ports: RDP (3389) và HTTP (80) → Review + Create
- 1.5Tạo RG thứ 2:
rg-asr-vaulttại East Asia - 1.6Portal → Recovery Services vaults → + Create → RG: rg-asr-vault, Name:
vault-asr-lab13, Region: East Asia → Review + Create
# Tạo RG nguồn tại Southeast Asia
az group create --name rg-asr-source --location southeastasia
# Tạo VM Windows Server 2019
az vm create \
--resource-group rg-asr-source \
--name VMLab13 \
--image Win2019Datacenter \
--size Standard_D2s_v3 \
--admin-username Myuser \
--admin-password "P@ssw0rd2024!!" \
--public-ip-sku Standard \
--location southeastasia
# Mở port RDP và HTTP
az vm open-port \
--resource-group rg-asr-source \
--name VMLab13 \
--port 3389 --priority 100
az vm open-port \
--resource-group rg-asr-source \
--name VMLab13 \
--port 80 --priority 200
# Tạo RG cho Recovery Vault tại East Asia
az group create --name rg-asr-vault --location eastasia
# Tạo Recovery Services Vault
az backup vault create \
--resource-group rg-asr-vault \
--name vault-asr-lab13 \
--location eastasia
Cấu Hình Replication Policy & Bật Replication
Replication policy xác định tần suất snapshot và thời gian giữ recovery points — đây là yếu tố trực tiếp ảnh hưởng RPO.
- 2.1Vào vault-asr-lab13 → Site Recovery → Enable replication
- 2.2Source region: Southeast Asia → Deployment model: Resource Manager → Next
- 2.3Chọn VM: VMLab13 → Next
- 2.4Target location: East Asia → Target resource group: (new) rg-asr-source-asr (tự tạo)
- 2.5Target VNet: (new) rg-asr-source-vnet-asr → Storage: giữ default
- 2.6Replication policy → Create new: Name:
1-day-retention-policy, Recovery point retention: 1 day, App-consistent snapshot: 6 Hours, Multi-VM consistency: No - 2.7Review + Enable replication → Chờ initial replication ~30-60 phút
Replication Policy: 1-day-retention-policy
-------------------------------------------
Recovery point retention: 24 hours (1 day)
App-consistent snapshot freq: Every 6 hours
Multi-VM consistency: Disabled
RPO threshold: 24 hours
Replication type: Continuous (async)
Giám Sát Trạng Thái Replication
- 3.1Vault → Site Recovery → Replicated items → click vào VMLab13
- 3.2Theo dõi: Replication health (Healthy/Warning/Critical), Replication progress (% hoàn thành)
- 3.3Mục Recovery points: xem crash-consistent và app-consistent points
- 3.4Vault → Overview → xem Infrastructure view: Source → ASR → Target topology
- 3.5Chờ status chuyển sang "Protected" trước khi thực hiện Test Failover
# Xem replication items trong vault
az site-recovery replication-protected-item list \
--resource-group rg-asr-vault \
--vault-name vault-asr-lab13 \
--fabric-name asr-fabric-southeastasia \
--protection-container-name asr-container-southeastasia \
--query "[].{Name:name, Health:properties.replicationHealth, State:properties.replicationState}" \
--output table
Test Failover — Kiểm Tra DR Không Ảnh Hưởng Production
Test Failover tạo VM bản sao tại East Asia từ recovery point đã chọn. VM production tại Southeast Asia vẫn chạy bình thường — không có downtime, không ảnh hưởng replication.
- 4.1Vault → Replicated items → VMLab13 → Test failover
- 4.2Recovery point: Latest app-consistent (khuyến nghị cho app chạy bình thường)
- 4.3Azure virtual network: chọn VNet DR tại East Asia → OK
- 4.4Chờ ~10-15 phút → VM test xuất hiện trong rg-asr-source-asr với tên VMLab13-test
- 4.5Vào VM test → gán Public IP Standard → RDP kiểm tra OS hoạt động, kiểm tra services
- 4.6Sau khi verify xong → Vault → Replicated items → VMLab13 → Cleanup test failover → Notes: "Test passed" → OK
# Tạo Public IP Standard (SKU bắt buộc với VM mới)
az network public-ip create \
--resource-group rg-asr-source-asr \
--name pip-vmlab13-test \
--sku Standard \
--allocation-method Static \
--location eastasia
# Gán vào NIC của VM test (thay tên NIC thực tế)
az network nic ip-config update \
--resource-group rg-asr-source-asr \
--nic-name <NIC_VM_TEST> \
--name ipconfig1 \
--public-ip-address pip-vmlab13-test
# Lấy Public IP
az network public-ip show \
--resource-group rg-asr-source-asr \
--name pip-vmlab13-test \
--query ipAddress -o tsv
- VM tại East Asia khởi động thành công (status: Running)
- RDP kết nối được, đăng nhập OS thành công
- Web server (IIS/app) chạy bình thường
- Dữ liệu application nhất quán (app-consistent point)
- VM production tại SEA vẫn chạy, replication vẫn healthy
Production Failover (Khái Niệm & Quy Trình)
Khác với Test Failover, Production Failover (Planned/Unplanned) thực sự chuyển workload sang DR region. Lab này mô tả quy trình — không thực hiện thật để tiết kiệm chi phí.
Dùng khi cần maintenance có lịch. VM nguồn tắt trước, replicate lần cuối, VM DR start. Downtime = thời gian shutdown + failover (~5-15 phút).
Dùng khi disaster thật sự xảy ra. VM DR start từ recovery point gần nhất. Có thể mất dữ liệu chưa kịp replicate (tùy RPO config).
# CẢNH BÁO: Chỉ chạy khi thực sự cần DR failover
# Bước 1: Khởi tạo failover (thay tên fabric/container thực tế)
az site-recovery replication-protected-item failover-commit \
--resource-group rg-asr-vault \
--vault-name vault-asr-lab13 \
--fabric-name asr-fabric-southeastasia \
--protection-container-name asr-container-southeastasia \
--replicated-protected-item-name VMLab13
# Sau failover: Commit để hoàn tất
# Vault → Replicated items → VMLab13 → Commit Failover
# Reprotect (bắt đầu replicate ngược lại từ DR → Primary)
# Vault → Replicated items → VMLab13 → Re-protect
🧹 Dọn Dẹp Tài Nguyên
# Bước 1: Disable replication qua Portal trước
# Vault → Replicated items → VMLab13 → Disable Replication → OK
# (Chờ ~5 phút để hoàn tất)
# Bước 2: Xóa resource groups theo thứ tự
az group delete --name rg-asr-source --yes --no-wait
az group delete --name rg-asr-vault --yes --no-wait
az group delete --name rg-asr-source-asr --yes --no-wait
# Xác nhận tất cả đã xóa
az group list --output table | grep asr
📊 Kết Quả Đầu Ra Lab 13
vault-asr-lab13 tại East Asia với geo-redundant storage
RPO 24h, app-consistent snapshot mỗi 6h
Replication health: Healthy — recovery points available
VM DR tại East Asia chạy đúng, RDP kết nối được
VMLab13 tại SEA vẫn running trong suốt Test Failover
RPO thực tế < 5 phút, RTO failover < 15 phút với ASR
❓ Câu Hỏi Ôn Tập
1. RPO và RTO khác nhau như thế nào? Tại sao doanh nghiệp cần xác định cả hai trước khi thiết kế DR?
Gợi ý: RPO = dữ liệu chấp nhận mất (time-based), RTO = thời gian khôi phục tối đa. Hai chỉ số này quyết định chi phí DR — RPO/RTO càng thấp, chi phí càng cao.
2. Tại sao Recovery Services Vault phải đặt ở region KHÁC với VM nguồn?
Gợi ý: Nếu cùng region, khi region đó bị sự cố thì cả VM lẫn Vault đều mất — mục đích DR không đạt được
3. Sự khác nhau giữa Crash-consistent và App-consistent recovery point là gì?
Gợi ý: Crash-consistent = snapshot tại một thời điểm (như rút điện). App-consistent = ứng dụng được thông báo để flush data, đảm bảo nhất quán DB/app.
4. Test Failover khác Production Failover ở điểm nào quan trọng nhất?
Gợi ý: Test không ảnh hưởng replication và không dừng VM production. Production failover thực sự chuyển workload và cần commit/reprotect sau đó.
5. Azure Site Recovery khác Azure Migrate ở điểm gì? Khi nào dùng ASR, khi nào dùng Azure Migrate?
Gợi ý: ASR = Disaster Recovery liên tục (bảo vệ production đang chạy). Azure Migrate = migration một lần từ on-premises lên cloud. ASR cũng từng dùng để migrate nhưng Azure Migrate là công cụ hiện hành cho migration.