Thiết lập Storage QoS trên Hyper-V Windows 2016

Để limit IOPS storage của VM thực hiện như sau:
1. Chọn VM -> click chuột phải chọn Setting

2. Check Enable Quality of Service management trong mục SCSI Controller.

3. Thiết lập giá trị cần thiết ở mục Minumum và Maximum. Thiết lập giá trị 0 tương đương không limit.

Ngoài ra, bạn có thể thiết lập bằng cách sử dụng lệnh Set-VMHardDiskDrive.

Ví dụ thiết lập giới hạn maximum 1500 IOPS cho VM Test-Lab

Set-VMHardDiskDrive -VMName Test-Lab -MaximumIOPS 1500 -ControllerType SCSI

Thiết lập Network QoS trên Hyper-V Windows 2016

Để limit bandwidth network của VM thực hiện như sau:
1. Chọn VM -> click chuột phải chọn Setting
2. Ở phần Network Adapter -> Check chọn Enable bandwidth management

3. Điền thông tin limit mà bạn muốn, đơn vị tính bằng Mbps. Sau đó click OK để áp dụng.

Hoặc bạn có thể dùng lệnh powershell sau, đơn vị tính bằng bits per second. Ví dụ limit maximum network VM 200Mbps:

Set-VMNetworkAdapter -VMName <VM_Name> -MaximumBandwidth 200000000

Nested virtualization trên Hyper-V Windows 2016

Bạn cần dựng lab ảo hóa nhưng không có phần cứng để chạy hoặc muốn sử dụng Windows Container trên Virtual Machine Hyper-V ? Rất đơn giản, Windows 2016 hỗ trợ tính Nested virtualization trên Hyper-V (ảo tung chảo :D). Chỉ cần bật tính năng trên VM cần sử dụng bạn có thể chạy được ảo hóa trên VM Hyper-V, bằng cách sử dụng lệnh sau:

Set-VMProcessor -VMName <VM_Name> -ExposeVirtualizationExtensions $true

Bật tính năng ảo hóa thôi cũng chưa đủ, vì bạn chỉ cho phép tạo và chạy VM trên đó thôi, VM bên trong VM Nested virtualization vẫn chưa thể access network ra bên ngoài. Cần phải bật tính năng “Enable MAC address spoofing” trên Hyper-V VM. Bạn có thể cấu hình bằng cách:

  • Chọn VM -> Setting -> Ở phần Advanced Features của Network Adapter
  • Check vào Enable MAC address spoofing -> Nhấn OK.

Xử lý trình trạng VM “Stopping” trên Hyper-V

Lấy  GUID của  VM với tên SVM-GUARDEDHOST1:

$VMGUID = (Get-VM "SVM-GUARDEDHOST1").ID

Tìm tiến trình vmwp.exe của VMGUID này:

$VMWMProc = (Get-WmiObject Win32_Process | ? {$_.Name -match 'VMWP' -and $_.CommandLine -match $VMGUID})

Tiến hành cưỡng ép dừng tiến trình với lệnh Stop-Process:

Stop-Process ($VMWMProc.ProcessId) –Force

Shared Nothing Live Migration on Windows Server 2016

Từ phiên bản Windows 2012 đã được hỗ trợ Live Migrate mà không cần phải sử dụng shared storage. Bạn có thể thực hiện live migrate trên Windows 2016 chỉ cần thông qua cáp mạng ;).

Trong trường hợp của tôi, Live migrate giữa cluster với một host standalone và thuộc 2 domain khác nhau. Để live migrate bạn cần phải:

1. Trusted giữa 2 forest domain cả outgoing và incomming

2. Thêm user Administrator của 2 domain vào group administrators local trên tất cả các node cần migrate

3. Tiến hành thêm Delegate 2 service SMB và Migration cho các node. Ví dụ bên dưới tôi thêm node LAB160 delegate vào node HV160.

$HostName = "LAB160"
$HostFQDN = "$HostName.lab.ods"
Get-ADComputer HV160| Set-ADObject -Add @{"msDS-AllowedToDelegateTo"="Microsoft Virtual System Migration Service/$HostFQDN", "Microsoft Virtual System Migration Service/$HostName", "cifs/$HostFQDN", "cifs/$HostName"}

4. Tiến hành migrate với powershell. Đến bây giờ tôi vẫn chưa thể migration thông qua giao diện Hyper-V Manger. Bạn có thể sử dụng script bên dưới của tôi:

$vm = Get-VM -Name "Template-2k16"
$username = "LAB\administrator"
$computer = "LAB160.lab.ods"
$password = convertto-securestring -String "password" -AsPlainText -Force
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username, $password

Invoke-Command -ComputerName $computer -ScriptBlock {
param($vmName)
New-Item -Path "C:\ClusterStorage\HYPERV\$vmName" -ItemType Directory -Force
} -credential $cred -ArgumentList $($vm.Name)

$vm | Move-VM -DestinationHost $computer -IncludeStorage -DestinationStoragePath "C:\ClusterStorage\HYPERV\$($vm.Name)"

Xóa toàn bộ cấu hình Storage Spaces Direct

Lưu ý khi làm các bước sau sẽ xóa toàn bộ dữ liệu của cluster, bạn nên cân nhắc kỹ trước khi thực hiện.

1. Download script tại https://gallery.technet.microsoft.com/scriptcenter/Completely-Clearing-an-ab745947

2. Thiết lập lại Excute Policy trên mỗi node

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

3. Chạy script Clear-SpacesConfig.ps1 trên mỗi node cluster:

.\Clear-SpacesConfig.ps1

Monitor Hyper-V Dynamic Memory trên Windows 2016

Để monitor Dynamic Memory của VM trên Hyper-V có thể sử dụng tool Performanca Monitor của MS. Tool này cung cấp nhiều thông tin bổ ích như Guest Visible Physical Memory, Physical Memory, Current Pressure.

Quick Monior: Bạn nhấn Ctl + N để thêm Hyper-V Dynamic Memmory VM. Chọn VM cần monitor -> click Add. Sau đó click OK.

Continue reading “Monitor Hyper-V Dynamic Memory trên Windows 2016”

Thiết lập giá trị mặc định trên Storage Pool

Storage Space trên Windows cho phép Admin thiết lập các giá trị mặc định cho Storage Pool. Tuy nhiên, Microsoft không cho phép bạn thực hiện điều này trên giao diện GUI.

Server Manager GUI không cung cấp cách thiết lập các giá trị khi tạo virtual disk như:

– Write back cache
– Interleave
– Physical disks to use
– Rebuild options
– Missing disks response
– Column size

Continue reading “Thiết lập giá trị mặc định trên Storage Pool”