Trong Hyper-V, bạn có thể định cấu hình các tùy chọn khởi động và tắt tự động cho các máy ảo của mình khi bạn khởi động hoặc khởi động lại hệ điều hành chủ của mình. Trong bài viết này, chúng tôi sẽ hướng dẫn cách định cấu hình các hành động mà máy chủ Hyper-V sẽ thực hiện trên các máy ảo khi nó được bật hoặc tắt một cách duyên dáng và cách đặt thứ tự khởi động của các máy ảo.
Định cấu hình Hành động Khởi động và Tắt Tự động cho Máy ảo Hyper-V
Theo mặc định, máy chủ Hyper-V lưu trạng thái của các máy ảo đã đăng ký khi khởi động lại. Có nghĩa là nếu một máy ảo đang chạy trước khi khởi động lại, Hyper-V sẽ tự động khởi động nó. Cài đặt khởi động tự động được định cấu hình cho từng máy ảo riêng lẻ.
Chạy bảng điều khiển Hyper-V, mở thuộc tính của bất kỳ máy ảo nào và đi tới Cài đặt -> Hành động bắt đầu tự động . Ba tùy chọn để quản lý quá trình khởi động tự động của máy ảo có sẵn:
- Không có gì - khi máy chủ được khởi động, máy ảo không tự động khởi động (bất kể trạng thái của nó trước khi máy chủ khởi động lại)
- Tự động bắt đầu nếu nó đang chạy khi dịch vụ dừng - một máy ảo sẽ chỉ tự động khởi động nếu nó đã chạy trước khi máy chủ tắt / khởi động lại
- Luôn tự động khởi động máy ảo này - luôn khởi động máy ảo này khi máy chủ Hyper-V khởi động.
Một tham số khác có sẵn cho tùy chọn cuối cùng - Độ trễ khởi động . Tại đây bạn có thể chỉ định thời gian trễ khởi động cho máy ảo (tính bằng giây). Sử dụng độ trễ, bạn có thể quản lý thứ tự khởi động của các máy ảo của mình (ví dụ:khởi động bộ điều khiển miền trước khi khởi động máy ảo với SQL Server) và giảm tải trên bộ nhớ đĩa do lần lượt khởi động nhiều máy ảo.
Điều thú vị là không có tùy chọn nào trong Trung tâm quản trị Windows (WAC) để quản lý quá trình khởi động tự động của máy ảo Hyper-V.
Ngoài ra, trong Hành động dừng tự động , bạn có thể đặt những việc cần làm với các máy ảo của mình nếu máy chủ tắt hoặc khởi động lại.
Cài đặt ngụ ý khởi động lại chính xác máy chủ Hyper-V khi các máy ảo có thời gian tắt một cách duyên dáng, không giống như các tình huống khẩn cấp (mất điện đột xuất, BSOD).- Lưu trạng thái máy ảo - trạng thái đầy đủ của một máy ảo được lưu (bao gồm cả bộ nhớ của nó). Ở lần khởi động tiếp theo, máy ảo sẽ hoạt động trở lại từ thời điểm này. Lưu ý rằng bạn phải có thêm dung lượng trống trên đĩa để giữ bộ nhớ máy ảo (tệp * .BIN). Hệ điều hành khách không được khởi động lại;
- Tắt máy ảo - khi máy chủ Hyper-V tắt, máy ảo cũng sẽ bị dừng (giống như cách máy tính vật lý tắt). Trạng thái máy ảo không được lưu, hệ điều hành khách sẽ được khởi động với chu kỳ khởi động đầy đủ. Ở chế độ này, có một số rủi ro nhận được dữ liệu không nhất quán trong các ứng dụng chạy trong máy ảo.
- Tắt hệ điều hành khách - hệ điều hành khách đang tắt bằng cách sử dụng dịch vụ tích hợp Hyper-V (tắt nhanh). Tất cả các ứng dụng đang chạy trong máy ảo đều bị dừng và nguy cơ nhận được dữ liệu không nhất quán là rất thấp.
Bạn có thể xem và thay đổi cài đặt tự động khởi động và tắt máy ảo Hyper-V của mình bằng PowerShell.
Hiển thị cài đặt khởi động và tắt máy hiện tại của tất cả các máy ảo:
Get-VM –VMname * | Select-Object VMname,AutomaticStartAction,AutomaticStartDelay,AutomaticStopAction
Bạn có thể thay đổi cài đặt khởi động tự động của máy ảo bằng cách sử dụng AutomaticStartAction Lựa chọn. Các giá trị có thể có của nó là Nothing
, StartIfRunning
, Start
.
Get-VM –VMname lon-win10| Set-VM –AutomaticStartAction Start
Để thiết lập độ trễ khởi động cho tất cả các máy ảo ngoại trừ một máy ảo (ví dụ:bộ điều khiển miền có vai trò FSMO):
Get-VM –VMname * | Where-object –FilterScript {$_.vmname –notlike “lon-dc*”} | Set-VM –AutomaticStartDelay 90
Sử dụng - AutomaticStopAction tùy chọn, bạn có thể đặt cài đặt tắt máy ảo (Save
, TurnOff
, ShutDown
).
Thứ tự Khởi động (Khởi động) của Máy ảo Hyper-V
Khi khởi động một máy chủ Hyper-V độc lập, quản trị viên phải quản lý thứ tự khởi động của các máy ảo trên đó. Ví dụ:bạn cần Exchange VM chỉ khởi động sau khi bộ điều khiển miền khả dụng và máy chủ ứng dụng để khởi động sau máy chủ cơ sở dữ liệu. Hyper-V không có bất kỳ công cụ tích hợp nào để quản lý thứ tự khởi động của máy ảo, ngoại trừ tùy chọn trì hoãn khởi động (AutomaticStartDelay
).
Trong trường hợp đơn giản nhất, bạn có thể định cấu hình thứ tự khởi động máy ảo bằng cách đặt các độ trễ khởi động khác nhau cho chúng:
Get-VM –VMname lon-dc01| Set-VM –AutomaticStartDelay 0
Get-VM –VMname lon-exch1,lon-db01 | Set-VM –AutomaticStartDelay 90
Get-VM –VMname lon-rds01,lon-app01 | Set-VM –AutomaticStartDelay 180
Một cách khác là khởi động các máy ảo lần lượt bằng cách sử dụng tập lệnh khởi động PowerShell. Trong tập lệnh, bạn có thể đặt thời gian trễ trước khi khởi động máy ảo tiếp theo và thực hiện kiểm tra bổ sung tính khả dụng của ứng dụng hoặc dịch vụ trong máy ảo (để đảm bảo rằng ứng dụng hoặc dịch vụ đã được khởi động). Để thuận tiện hơn, bạn có thể kết hợp nhiều máy ảo thành một nhóm bằng cách sử dụng các thẻ. Ví dụ:tôi đã đặt các thẻ sau cho máy ảo:
set-vm lon-dc01,lon-dc02 -Notes "Boot order 1"
set-vm lon-exch1, lon-db01 -Notes "Boot order 2"
set-vm lon-rds01,lon-app01 -Notes "Boot order 3"
Tập lệnh PowerShell sau đây khởi động các máy ảo theo một thứ tự cụ thể và chạy kiểm tra tính khả dụng bổ sung cho một số dịch vụ (cổng TCP) trong máy ảo bằng cách sử dụng lệnh ghép ngắn PowerShell Test-NetConnection:
$VMtoStart = Get-VM | where notes -contains 'Boot order 1'
foreach ($cn in $VMtoStart)
{Start-VM $cn.name -asjob}
While (!(Test-NetConnection lon-dc01 -Port 445 -WarningAction SilentlyContinue).tcpTestSucceeded ){
Start-Sleep 30
}
$VMtoStart = Get-VM | where notes -contains 'Boot order 2'
foreach ($cn in $VMtoStart)
{Start-VM $cn.name -asjob}
While ((Test-NetConnection lon-exch1 -Port 25 -WarningAction SilentlyContinue).tcpTestSucceeded ){
Start-Sleep 30
}
$VMtoStart = Get-VM | where notes -contains 'Boot order 3'
foreach ($cn in $VMtoStart)
{Start-VM $cn.name -asjob}
Sau đó, thêm tập lệnh PowerShell để tự động khởi động hoặc chạy nó bằng Trình lập lịch tác vụ (đừng quên tắt tự động khởi động cho tất cả các máy ảo được khởi động bằng tập lệnh này). Hãy nhớ rằng việc chạy các tập lệnh PowerShell bị hạn chế trong Windows theo mặc định. Nếu cần, hãy ký vào tập lệnh PS1 hoặc thay đổi chính sách thực thi tập lệnh PowerShell.