Dell PowerStore: Sao chép vVol với PowerCLI

Tổng quan

Trong PowerStoreOS 2.0, chúng tôi đã giới thiệu tính năng sao chép không đồng bộ các VM dựa trên vVol. Ngoài việc sử dụng VMware SRM để quản lý và kiểm soát việc sao chép các VM dựa trên vVol, bạn cũng có thể sử dụng VMware PowerCLI để sao chép các VM vVol. Blog này sẽ hướng dẫn bạn cách thực hiện.

Để bảo vệ các VM dựa trên vVol, bản sao tận dụng các chính sách lưu trữ vSphere cho kho dữ liệu. Đặt các VM trong một vùng chứa lưu trữ vVol với chính sách lưu trữ vSphere sẽ tạo ra một nhóm sao chép. Giải pháp sử dụng cấu hình nhà cung cấp lưu trữ VASA 3.0 trong vSphere để kiểm soát việc sao chép tất cả các vVol cấu hình, hoán đổi và dữ liệu riêng lẻ trong một nhóm sao chép vSphere trên PowerStore. Tất cả các vVol trong một nhóm sao chép vSphere được quản lý trong một phiên sao chép PowerStore duy nhất.

Yêu cầu đối với bản sao vVol không đồng bộ PowerStore với PowerCLI:

**Giống như trong VMware SRM, tôi sử dụng thuật ngữ “site” để phân biệt giữa cài đặt chính và DR. Tuy nhiên, 
 tùy thuộc vào trường hợp sử dụng, tất cả các hệ thống cũng có thể được đặt tại một vị trí duy nhất.

Hãy bắt đầu với một số thuật ngữ được sử dụng trong blog này.

Cụm PowerStore Hệ thống PowerStore được cấu hình bao gồm một đến bốn thiết bị PowerStore.
Thiết bị PowerStore Một thực thể PowerStore duy nhất đi kèm với hai nút (nút A và nút B).
Hệ thống từ xa PowerStore (cặp) Định nghĩa mối quan hệ của hai cụm PowerStore, được sử dụng để sao chép.
Quy tắc sao chép PowerStore Cấu hình sao chép được sử dụng trong các chính sách để chạy sao chép không đồng bộ. Quy tắc cung cấp thông tin về cặp hệ thống từ xa và thời gian mục tiêu điểm khôi phục mục tiêu (RPO).
Phiên bản sao lưu PowerStore Một hoặc nhiều đối tượng lưu trữ được cấu hình với chính sách bảo vệ bao gồm quy tắc sao chép. Phiên sao chép kiểm soát và quản lý sao chép dựa trên cấu hình quy tắc sao chép.
Chính sách lưu trữ VM VMware vSphere Chính sách để cấu hình các đặc điểm cần thiết cho đối tượng lưu trữ VM trong vSphere. Đối với sao chép vVol với PowerStore, chính sách lưu trữ tận dụng quy tắc sao chép PowerStore để thiết lập và quản lý phiên sao chép PowerStore. VM dựa trên vVol bao gồm một vVol cấu hình, vVol hoán đổi và một hoặc nhiều vVol dữ liệu.
Nhóm sao chép VMware vSphere Trong vSphere, quá trình sao chép được kiểm soát trong một nhóm sao chép. Đối với sao chép vVol, một nhóm sao chép bao gồm một hoặc nhiều vVol. Mức độ chi tiết cho các hoạt động chuyển đổi dự phòng trong vSphere là nhóm sao chép. Một nhóm sao chép sử dụng một phiên sao chép PowerStore duy nhất cho tất cả các vVol trong nhóm sao chép đó.
Trình quản lý khôi phục trang web VMware (SRM) Một công cụ tự động chuyển đổi dự phòng từ địa điểm sản xuất sang địa điểm DR.

Chuẩn bị cho việc sao chép

Để chuẩn bị, tương tự như VMware SRM, có một số bước cần thiết cho các máy ảo dựa trên vVol được sao chép:

Lưu ý : Khi thường xuyên chuyển đổi giữa vSphere và PowerStore, một mục có thể không khả dụng như mong đợi. Trong trường hợp này, có thể cần đồng bộ hóa thủ công nhà cung cấp lưu trữ trong vCenter để mục đó khả dụng ngay lập tức. Nếu không, bạn phải đợi đồng bộ hóa tự động tiếp theo.

  1. Sử dụng PowerStore UI, thiết lập mối quan hệ hệ thống từ xa giữa các cụm PowerStore tham gia. Chỉ cần thực hiện cấu hình này trên một hệ thống PowerStore. Khi mối quan hệ hệ thống từ xa được thiết lập, nó có thể được sử dụng bởi cả hai hệ thống PowerStore.

Chọn Bảo vệ > Hệ thống từ xa > Thêm hệ thống từ xa .

Khi chỉ có một vùng chứa lưu trữ duy nhất trên mỗi PowerStore trong mối quan hệ hệ thống từ xa, PowerStoreOS cũng tạo cặp bảo vệ vùng chứa cần thiết cho quá trình sao chép vVol.

Để kiểm tra cấu hình hoặc tạo cặp bảo vệ vùng chứa lưu trữ khi nhiều vùng chứa lưu trữ được cấu hình, hãy chọn Lưu trữ > Vùng chứa lưu trữ > [Tên vùng chứa lưu trữ] > Bảo vệ .

2. VMware Storage Policy (được tạo ở bước sau) yêu cầu các quy tắc sao chép hiện có  trên cả hai hệ thống PowerStore , lý tưởng nhất là có cùng đặc điểm. Đối với ví dụ này, quy tắc sao chép sao chép từ PowerStore-A sang PowerStore-B với RPO là một giờ và 30 phút cho Ngưỡng cảnh báo RPO.

Chọn Bảo vệ > Chính sách bảo vệ > Quy tắc sao chép .

3. Như đã đề cập trong Tổng quan, VASA 3.0 được sử dụng để giao tiếp giữa PowerStore và vSphere. Nếu chưa được cấu hình, hãy đăng ký PowerStore cục bộ trong cả hai vCenter  làm nhà cung cấp lưu trữ trong phiên bản vSphere vCenter tương ứng.

Trong vSphere Client, chọn máy chủ vCenter] > Cấu hình > Nhà cung cấp lưu trữ .

Sử dụng https://<PowerStore>:8443/version.xml làm URL với người dùng và mật khẩu PowerStore để đăng ký cụm PowerStore.

Ngoài ra, hãy sử dụng PowerStore để đăng ký hai chiều. Khi vCenter được đăng ký trong PowerStore, PowerStoreOS sẽ hiểu rõ hơn về việc chạy VM cho vCenter đó. Tuy nhiên, trong bản phát hành hiện tại, PowerStoreOS chỉ có thể xử lý một kết nối vCenter duy nhất để tra cứu VM. Khi PowerStore được sử dụng bởi nhiều vCenter, vẫn có thể đăng ký PowerStore trong vCenter thứ hai làm nhà cung cấp lưu trữ, như đã đề cập trước đó.

Trong giao diện người dùng PowerStore, chọn Compute > Kết nối máy chủ vCenter .

4. Thiết lập chính sách lưu trữ VMware với quy tắc sao chép PowerStore  trên cả hai vCenter 

Ví dụ về tập lệnh trong phần Sử dụng PowerCLI và trên myScripts4u@github  yêu cầu cùng một tên Chính sách lưu trữ cho cả hai vCenter.

Trong vSphere Client, chọn Chính sách và Hồ sơ > Chính sách Lưu trữ VM > Tạo .

Bật bộ lưu trữ “Dell EMC PowerStore” cho các quy tắc cụ thể của kho dữ liệu:

sau đó chọn quy tắc sao chép PowerStore:

5. Tạo VM trên vùng lưu trữ vVol và chỉ định chính sách bảo vệ lưu trữ với tính năng sao chép.

Khi thiết lập chính sách lưu trữ có sao chép cho VM, bạn phải chỉ định nhóm sao chép. Chọn “tự động” sẽ tạo nhóm sao chép có tên VM. Nhiều VM có thể được bảo vệ trong một nhóm sao chép.

Khi triển khai một VM khác trên cùng kho dữ liệu vVol, tên của VM được sao chép khác sẽ xuất hiện trong danh sách Nhóm sao chép.

Tất cả các hoạt động sao chép vVol đều nằm trong phạm vi chi tiết của Nhóm sao chép. Ví dụ, không thể chuyển đổi dự phòng chỉ một VM duy nhất của một nhóm sao chép.

Vậy là xong phần chuẩn bị! Chúng ta hãy tiếp tục với PowerCLI.

Sử dụng PowerCLI

Tuyên bố miễn trừ trách nhiệm:  Các đoạn mã PowerShell được hiển thị bên dưới chỉ được phát triển cho mục đích giáo dục và chỉ được cung cấp dưới dạng ví dụ. Dell Technologies và tác giả blog không đảm bảo rằng mã này hoạt động trong môi trường của bạn hoặc có thể cung cấp hỗ trợ chạy các đoạn mã.

Để có được các mô-đun PowerStore cần thiết cho PowerCLI, hãy khởi động PowerShell hoặc PowerShell ISE và sử dụng Install-Module để cài đặt VMware.PowerCLI:

PS C:\> Cài đặt-Module -Tên VMware.PowerCLI

Ví dụ sau sử dụng nhóm sao chép “vvol-repl-vm1”, bao gồm các máy ảo “vvol-repl-vm1” và “vvol-repl-vm2”. Vì tên nhóm sao chép có thể không nhất quán với VM để chuyển đổi dự phòng, nên tập lệnh sử dụng tên máy ảo “vvol-repl-vm2” để lấy nhóm sao chép để chuyển đổi dự phòng.

Chuyển đổi dự phòng

Phần này trình bày ví dụ về chuyển đổi dự phòng của VM “vvol-vm2” dựa trên vVol từ vCenter nguồn sang vCenter đích. 

1. Tải các mô-đun, cho phép PowerStore kết nối với nhiều phiên bản vCenter và đặt các biến cho VM, vCenter và thông tin xác thực vCenter. Hai lệnh cuối cùng trong bước này thiết lập kết nối với cả hai vCenter.

Nhập-Module VMware.VimAutomation.Core
Nhập-Module VMware.VimAutomation.Common
Nhập-Module VMware.VimAutomation.Storage
Đặt-PowerCLIConfiguration -DefaultVIServerMode 'Nhiều' -Phạm vi ([VMware.VimAutomation.ViCore.Types.V1.ConfigurationScope]::Session) -Xác nhận:$false | Out-Null
$virtualmachine = "vvol-vm2" # Nhập tên VM của VM vVol cần chuyển đổi dự phòng                     
$vcUser = 'administrator@vsphere.local' # Thay đổi thành tên người dùng VC của bạn
$vcPass = 'xxxxxxxxx' # Mật khẩu VC
$siteA = "vcsa-a.lab" # vCenter đầu tiên
$siteB = "vcsa-b.lab" # vCenter thứ hai
Connect-VIServer -Người dùng "$vcUser" -Mật khẩu "$vcPass" -Máy chủ $siteA -Cảnh báoHành động im lặngTiếp tục
Connect-VIServer -Người dùng "$vcUser" -Mật khẩu "$vcPass" -Máy chủ $siteB -Cảnh báoHành động im lặngTiếp tục

2. Lấy nhóm sao chép ($rg), cặp nhóm sao chép ($rgPair) và chính sách lưu trữ ($stoPol) cho VM. Vì nhóm sao chép có thể có thêm VM, nên tất cả VM trong nhóm sao chép đều được lưu trữ trong $rgVMs.

$vm = lấy-vm $virtualmachine
# tìm nguồn vCenter – điều này cho phép tập lệnh chuyển đổi dự phòng (Site-A -> Site-B) và chuyển đổi dự phòng trở lại (Site-B -> Site-A)
$srcvCenter=$vm.Uid.Split(":")[0].Split("@")[1]
nếu ( $srcvCenter -like $siteA ) {
     $siteSRC=$siteA
     $siteDST=$siteB
} khác {
     $siteSRC=$siteB
    $siteDST=$siteA
}
$rg = get-spbmreplicationgroup -máy chủ $siteSRC -VM $vm
$rgPair = Get-SpbmReplicationPair -Nguồn $rg
$rgVMs=(Get-SpbmReplicationGroup -máy chủ $siteSRC -Tên $rg| get-vm)
$stoPol = ( $vm | Get-SpbmEntityConfiguration).StoragePolicy.Name

3. Thử tắt VM một cách nhẹ nhàng trong $rgVMs và đợi mười giây. Tắt VM sau ba lần thử.

$rgVMs | Đối với mỗi đối tượng {
     nếu ((get-vm $_).PowerState -eq "PoweredOn")
     {
         stop-vmguest -VM $_ -confirm:$false -ErrorAction tiếp tục một cách im lặng | Out-Null
         bắt đầu-ngủ -Giây 10
         $cnt=1
         trong khi ((get-vm $_).PowerState -eq "PoweredOn" -AND $cnt -le 3 ) {
            Bắt đầu-Ngủ-Giây 10
            $cnt++
         }
         nếu ((get-vm $_).PowerState -eq "PoweredOn") {
            stop-vm $_ -Xác nhận:$false | Out-Null
         }
     }
}

4. Bây giờ có thể chuẩn bị và thực hiện chuyển đổi dự phòng. Cuối cùng, $vmxfile chứa các tệp vmx cần thiết để đăng ký VM tại đích. Trong quá trình chuyển đổi dự phòng, một lần đồng bộ hóa cuối cùng trước khi thực hiện chuyển đổi dự phòng đảm bảo rằng tất cả các thay đổi được sao chép vào PowerStore đích. Khi quá trình chuyển đổi dự phòng hoàn tất, các vVol tại đích chuyển đổi dự phòng sẽ khả dụng cho các bước tiếp theo.

$syncRg = Sync-SpbmReplicationGroup -PointInTimeReplicaName "prePrepSync" -ReplicationGroup $rgpair.target
$prepareFailover = start-spbmreplicationpreparefailover $rgPair.Source -Xác nhận:$false -RunAsync
Nhiệm vụ chờ $prepareFailover
$startFailover = Start-SpbmReplicationFailover $rgPair.Target -Xác nhận:$false -RunAsync
$vmxfile = Nhiệm vụ chờ $startFailover

5. Để dọn dẹp trên nguồn chuyển đổi dự phòng vCenter, chúng tôi xóa các đăng ký VM bị lỗi. Trên mục tiêu chuyển đổi dự phòng, chúng tôi tìm kiếm máy chủ ($vmhostDST) và đăng ký, khởi động và đặt Chính sách vSphere trên VM. Mảng @newDstVMs sẽ chứa thông tin VM tại đích cho bước cuối cùng.

$rgvms | Đối với mỗi đối tượng {
     $_ | Remove-VM -ErrorAction SilentlyContinue -Xác nhận:$false
}
$vmhostDST = get-vmhost -Máy chủ $siteDST | chọn -Đầu tiên 1
$newDstVMs= @()
$vmxfile | Đối với mỗi đối tượng {
     $newVM = VM mới -VMFilePath $_ -VMHost $vmhostDST
     $newDstVMs += $newVM
}
$newDstVms | cho từng đối tượng {
     $vmtask = start-vm $_ -ErrorAction SilentlyContinue -Xác nhận:$false -RunAsync
     wait-task $vmtask -ErrorAction Tiếp tục im lặng | out-null
     $_ | Get-VMQuestion | Set-VMQuestion -Tùy chọn 'button.uuid.movedTheVM' -Xác nhận:$false
 
     $hdds = Get-HardDisk -VM $_ -Server $siteDST
     Set-SpbmEntityConfiguration -Cấu hình $_ -StoragePolicy $stopol -ReplicationGroup $rgPair.Target | out-null
     Set-SpbmEntityConfiguration - Cấu hình $hdds -StoragePolicy $stopol -ReplicationGroup $rgPair.Target | out-null
}

6. Bước cuối cùng cho phép bảo vệ khỏi nguồn mới.

bắt đầu-spbmreplicationreverse $rgPair.Target | Out-Null
$newDstVMs | foreach-object {
    Get-SpbmEntityConfiguration -HardDisk $hdds -VM $_ | format-table -AutoSize   
}

Các hoạt động bổ sung

Các hoạt động khác cho VM là chuyển đổi dự phòng thử nghiệm và chuyển đổi dự phòng không theo kế hoạch trên đích. Chuyển đổi dự phòng thử nghiệm sử dụng vVols được đồng bộ hóa gần đây nhất trên hệ thống đích và cho phép chúng tôi đăng ký và chạy VM tại đó. Các vVols trên đích sao chép nơi thử nghiệm đang chạy không bị thay đổi. Tất cả các thay đổi được lưu trữ trong ảnh chụp nhanh. Ảnh chụp nhanh có thể ghi được sẽ bị xóa khi chuyển đổi dự phòng thử nghiệm dừng lại.

Kiểm tra lỗi chuyển đổi

Đối với thử nghiệm chuyển đổi dự phòng, hãy làm theo Bước 1 đến Bước 3 từ ví dụ chuyển đổi dự phòng và tiếp tục với thử nghiệm chuyển đổi dự phòng. Một lần nữa, $vmxfile chứa thông tin VMX để đăng ký VM thử nghiệm tại đích sao chép.

$sync=Sync-SpbmReplicationGroup -PointInTimeReplicaName "kiểm tra" -ReplicationGroup $rgpair.target
$prepareFailover = start-spbmreplicationpreparefailover $rgPair.Source -Xác nhận:$false -RunAsync
$startFailover = Start-SpbmReplicationTestFailover $rgPair.Target -Xác nhận:$false -RunAsync
$vmxfile = Nhiệm vụ chờ $startFailover

Bây giờ có thể đăng ký VM thử nghiệm. Để tránh xung đột mạng IP, hãy tắt NIC, như được hiển thị ở đây.

$newDstVMs= @()
$vmhostDST = get-vmhost -Máy chủ $siteDST | chọn -Đầu tiên 1
$vmxfile | Đối với mỗi đối tượng {
    ghi-host $_
    $newVM = VM mới -VMFilePath $_ -VMHost $vmhostDST 
    $newDstVMs += $newVM
}
$newDstVms | cho từng đối tượng {
    get-vm -name $_.name -server $siteSRC | Start-VM -Confirm:$false -RunAsync | out-null # Khởi động VM trên Nguồn
    $vmtask = start-vm $_ -server $siteDST -ErrorAction Tiếp tục im lặng -Xác nhận:$false -RunAsync
    wait-task $vmtask -ErrorAction Tiếp tục im lặng | out-null
    $_ | Get-VMQuestion | Set-VMQuestion -Tùy chọn 'button.uuid.movedTheVM' -Xác nhận:$false
    trong khi ((get-vm -name $_.name -server $siteDST).PowerState -eq "PoweredOff" ) {
        Bắt đầu-Ngủ-Giây 5 
    }
    $_ | get-networkadapter | Set-NetworkAdapter -máy chủ $siteDST -đã kết nối:$false -Bắt đầu kết nối:$false -Xác nhận:$false
}

Sau khi dừng và xóa các VM thử nghiệm tại đích sao chép, hãy sử dụng stop-SpbmReplicationFailoverTest để dừng thử nghiệm chuyển đổi dự phòng. Trong phiên PowerShell hoặc PowerCLI mới, hãy thực hiện Bước 1 và 2 từ phần chuyển đổi dự phòng để chuẩn bị môi trường, sau đó tiếp tục với các lệnh sau.

$newDstVMs | foreach-object { 
    stop-vm -Xác nhận:$false $_
    remove-vm -Xác nhận:$false $_ 
}
Dừng-SpbmReplicationTestFailover $rgpair.target

Sự cố không mong muốn

Đối với một failover không theo kế hoạch, cmdlet Start-SpbmReplicationFailover cung cấp tùy chọn -unplanned có thể được thực thi đối với một nhóm sao chép trên đích sao chép để failover ngay lập tức trong trường hợp DR. Vì mỗi cơ sở hạ tầng và kịch bản DR là khác nhau, tôi chỉ trình bày cách chạy failover không theo kế hoạch của một nhóm sao chép duy nhất trong trường hợp DR. 

Để chạy failover không theo kế hoạch, tập lệnh yêu cầu nhóm mục tiêu sao chép trong $RgTarget. Thông tin cặp nhóm chỉ khả dụng khi được kết nối với cả hai vCenter. Để có được bản đồ của các nhóm sao chép, hãy sử dụng Bước 1 từ phần Failover  và thực hiện lệnh ghép ngắn Get-SpbmReplicationPair:

PS> Get-SpbmReplicationPair | Định dạng-Bảng -tự động kích thước
Nhóm nguồn Nhóm mục tiêu                         
------------ ------------                        
vm1           c6c66ee6-e69b-4d3d-b5f2-7d0658a82292

Phần sau đây cho thấy cách thực hiện chuyển đổi dự phòng không theo kế hoạch cho một nhóm sao chép đã biết. Ví dụ kết nối với DR vCenter và sử dụng ID nhóm sao chép làm mã định danh cho chuyển đổi dự phòng không theo kế hoạch. Sau khi chuyển đổi dự phòng được thực hiện, tập lệnh sẽ đăng ký VMX trong vCenter để đưa VM trực tuyến.

Nhập-Module VMware.VimAutomation.Core
Nhập-Module VMware.VimAutomation.Common
Nhập-Module VMware.VimAutomation.Storage              
$vcUser = 'administrator@vsphere.local' # Thay đổi thành tên người dùng VC của bạn
$vcPass = 'xxxxxxxxx' # Mật khẩu VC
$siteDR = "vcsa-b.lab" # DR vCenter
$RgTarget = " c6c66ee6-e69b-4d3d-b5f2-7d0658a82292 " # Mục tiêu nhóm sao chép – được yêu cầu từ Nguồn sao chép trước khi chạy chuyển đổi dự phòng không theo kế hoạch
                                                       # để lấy thông tin chạy get-SpbmReplicationPair | froamt-table -autosize khi kết nối với cả vCenter
Connect-VIServer -Người dùng "$vcUser" -Mật khẩu "$vcPass" -Máy chủ $siteDR -Cảnh báoHành động im lặngTiếp tục
# khởi tạo quá trình chuyển đổi dự phòng và bảo toàn vmxfiles trong $vmxfile
$vmxfile = Start-SpbmReplicationFailover -máy chủ $siteDR -Không có kế hoạch -ReplicationGroup $RgTarget
$newDstVMs= @()
$vmhostDST = get-vmhost -Máy chủ $siteDR | chọn -Đầu tiên 1
$vmxfile | Đối với mỗi đối tượng {
    ghi-host $_
    $newVM = VM mới -VMFilePath $_ -VMHost $vmhostDST 
    $newDstVMs += $newVM
}
$newDstVms | cho từng đối tượng {
    $vmtask = start-vm $_ -server $siteDST -ErrorAction Tiếp tục im lặng -Xác nhận:$false -RunAsync
    wait-task $vmtask -ErrorAction Tiếp tục im lặng | out-null
    $_ | Get-VMQuestion | Set-VMQuestion -Tùy chọn 'button.uuid.movedTheVM' -Xác nhận:$false
}

Để phục hồi sau khi cả hai vCenter được sao lưu, hãy thực hiện các bước bắt buộc sau:

  • Thêm chính sách lưu trữ với nhóm khôi phục mục tiêu trước đó vào VM và ổ cứng HDD liên quan.
  • Tắt máy (phòng ngừa) và xóa các máy ảo trên nguồn trước đó.
  • Bắt đầu bảo vệ lại máy ảo (VM) và ổ cứng (HDD) liên quan.
  • Sử dụng Spmb-ReplicationReverse để thiết lập lại khả năng bảo vệ máy ảo (VM). 

Phần kết luận

Mặc dù Dell PowerStore và VMware vSphere không cung cấp khả năng xử lý chuyển đổi dự phòng vVol gốc, ví dụ này cho thấy các hoạt động chuyển đổi dự phòng vVol có thể thực hiện được với một số công việc tập lệnh. Blog này sẽ cung cấp cho bạn phần giới thiệu nhanh về cơ chế vVol dựa trên tập lệnh, có thể là để chứng minh khái niệm trong môi trường của bạn. Lưu ý rằng nó sẽ cần được mở rộng, chẳng hạn như với khả năng xử lý lỗi bổ sung, khi chạy trong môi trường sản xuất.