Cách sử dụng powershell để quản lý Hyper-v Cluser


12

Tôi có 2 máy chủ cả với Trung tâm dữ liệu máy chủ 2016

Trên mỗi máy chủ, tôi có 2 máy ảo hiện đang sử dụng bộ nhớ chia sẻ

Tôi có thể thực hiện tất cả các cụm cụm tức là., Di chuyển trực tiếp, di chuyển lưu trữ,

Tôi đã tìm kiếm trên toàn bộ google một tập lệnh để có thể lưu tất cả các vm trong cụm cùng một lúc.

Nếu tôi chạy cái này:

$clusterNodes = Get-ClusterNode;
$Name = ForEach($item in $clusterNodes){Get-VM -ComputerName $item.Name; }
{save-VM -ComputerName $item.Name; }

Nó sẽ lưu vm tuy nhiên Nó sẽ nhắc tôi hai lần cho tên của VM một lần cho mỗi máy chủ.

Mục tiêu của tôi là có thể cấu hình lại tất cả các VM trong cụm từ một PC, cũng là di chuyển của vm rất nhiều để chúng không phải lúc nào cũng ở trên cùng một máy chủ.

Thí dụ:

Lưu tất cả các vm

Di chuyển khỏi hệ thống lưu trữ chia sẻ:

Set-VM pv02 -SnapshotFileLocation C:\ClusterStorage\Volume1\pv02
Set-VM pv02 -SmartPagingFilePath C:\ClusterStorage\Volume1\pv02
Set-VMHardDiskDrive -VMName  pv02 -ControllerType SCSI -Path C:\ClusterStorage\Volume1\pv02\pv02.vhdx

Bắt đầu máy ảo

Nếu tôi đăng nhập vào từng máy chủ thì lệnh sẽ chạy tốt, tuy nhiên trong sản xuất của tôi, tôi có 7 máy chủ với khoảng 100 VM.

Câu trả lời:


8

Nếu bạn muốn giải quyết toàn bộ cụm từ PowerShell, giải pháp tốt nhất có lẽ là mô-đun PowerShell trong Trình quản lý máy ảo trung tâm hệ thống. Nó được xây dựng cho việc này.

Mô-đun PowerShell mà bạn đang sử dụng được dành cho kịch bản một máy chủ lưu trữ. Nó vẫn có thể được thực hiện để làm việc. Bạn có thể cấu trúc lại mã của bạn ở trên. Ví dụ:

$clusterNodeNames = (Get-ClusterNode -Cluster ClusterName).Name
$AllVMsInCluster = Get-VM -ComputerName $clusterNodeNames
$AllVMsInCluster | Save-VM -Confirm:$false

Jake bạn có thể giải thích cho tôi cách '$ AllVMsInCluster | Save-VM -Xác nhận: $ false 'đang lặp qua từng VM, tôi đang cố gắng hoàn thành phần thứ hai của nhiệm vụ của mình,' $ AllVMsInCluster | Set-VM -SnapshotFileLocation C: \ ClusterStorage \ Volume1 \ 'nhưng tôi không thể tìm ra cách đặt Thư mục ở cuối, tức là. 'C: \ ClusterStorage \ Volume1 \ VM1', 'C: \ ClusterStorage \ Volume1 \ VM2'
Anthony Fornito

Bạn cần đọc một cuốn sách về PowerShell. Khái niệm cơ bản là "đường ống" và các đối tượng chảy qua nó. Một "lệnh ghép ngắn" tác động lên từng đối tượng truyền đến nó trên đường ống. Nếu bạn muốn thay đổi hành vi khi mọi thứ đi qua, bạn có thể muốn một cấu trúc như: $ AllVMsInCluster | Foreach-Object {Set-VM -SnapshotFileLocation C: \ ClusterStorage \ Volume1 \ $ _. Name}
Jake Oshins
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.