Giám sát Hyper-V bằng dòng lệnh (Phần 3): Kiểm tra trạng thái máy ảo

Trong phần 2 đã hướng dẫn các bạn cách bật và tắt máy ảo bằng dòng lệnh. Ở bài viết này sẽ giới thiệu hai phương pháp xác thực rằng các máy ảo đang chạy và có hồi đáp.

Lưu ý rằng những câu lệnh sử dụng không thuộc Hyper-V. Chúng nằm trong thư viện giám sát Hyper-V. hơn nữa, thư viện này phải được nhập vào trong PowerShell mỗi lần bạn định sử dụng bất kỳ câu lệnh nào liên quan đến Hyper-V. Câu lệnh nhập thư viện là:

Import-Module “C:\Program Files\Modules\Hyperv\Hyperv.psd1”

Các chỉ dẫn đầy đủ về cách tải và cài đặt thư viện giám sát Hyper-V đã được cung cấp trong phần 1 của chuỗi bài này.

Các câu lệnh tìm lỗi

Các nhà quản trị thường phụ thuộc vào lệnh ping để kiểm thử kết nối của máy chủ. Rất đơn giản. Thực hiện lệnh ping đến máy và xem có hồi đáp hay không. Mặc dù lệnh ping hoạt động tương đối tốt, nhưng có một lệnh trong PowerShell tên là Ping-VM cũng được thiết kế chuyên dụng để ping các máy ảo.

Trước hết, lệnh Ping-VM dường như dư thừa và cú pháp đôi chút phức tạp hơn so với lệnh ping thông thường, nhưng câu lệnh có những ưu điểm riêng. Lệnh ping-VM yêu cầu người dùng cung cấp tên máy ảo muốn ping và tên của server chủ. Ví dụ như, Nếu ta muốn ping một máy ảo có tên Lab-DC đang hoạt động trên một máy chủ tên là Hyper-V thì cấu trúc lệnh sẽ là:

Ping-VM “Lab-DC” –Server Hyper-V

Khi câu lệnh này được thực hiện, lệnh Ping-VM sử dụng các dịch vụ tích hợp trên máy ảo để tìm Fully Qualified Domain Name và sau đó nó thực hiện một lệnh ping ICMP.

Có hai lý do để sử dụng Ping-VM thay vì Ping. Đầu tiên, Ping-VM nhận diện được máy ảo. Thứ hai, Ping-VM có thể chạy cới nhiều máy ảo nhờ sử dụng các wildcard. Để minh họa cho những khái niệm này, hãy cùng quan sát hình dưới đây. Server chủ có một vài máy ảo (Lab-). Ta sẽ thực hiện lệnh đối với những máy ảo này. Ping-VM đã trả về thông tin trên 6 máy ảo và thậm chí có thể xác định những máy ảo nào đã bị tắt.

hyperv1

Cũng có thể sử dụng Ping-VM để kiểm tra trạng thái máy ảo nằm trên máy host. Để làm điều này, chỉ cần thay thế tên máy ảo bằng dấu hoa thị. Bạn thậm chí có thể làm nhiều hơn và hiển thị một bản tin cảnh báo cho bất kỳ máy ảo nào đang chạy, nhưng lại không ping được. Câu lệnh là:

Get-VM –r | foreach-object {if ((Ping-VM $_).StatusCode –ne 0) {“$($_.elementname) is inaccessible”} }

Câu lệnh không cho kết quả đầu ra nếu các máy ảo được ping thành công.

Ngoài ra, lệnh Ping-VM còn được dùng để ping những máy ảo trên nhiều host Hyper-V. Chỉ cần cấp tên của mỗi máy host mà bạn muốn ping. Các tên máy phải được ngăn cách bằng dấu phẩy. Ví dụ như, nếu bạn muốn ping tất cả những máy ảo trên Hyper-V1, Hyper-V2 và Hyper-V 3 thì câu lệnh sử dụng là:

Ping-VM*-Server Hyper-V1,Hyper-V2,Hyper-V3

Kiểm tra trạng thái máy ảo

Không những có thể sử dụng Ping-VM để xem máy ảo có hồi đáp hay không, người dùng còn có thể sử dụng lệnh Test-VmHeartBeat. Giống như Ping-VM, lệnh Test-VMHeartBeat phụ thuộc vào những dịch vụ tích hợp đang chạy trên máy ảo được kiểm thử.

Cú pháp lệnh tương đối đơn giản. Người dùng phải chỉ định tên máy ảo và thời hạn. Thời hạn được tính bằng giây. Lệnh Test-VmHeartBeat sẽ kiểm tra trạng thái mỗi 5 giây một lần cho đến khi hết thời gian qui định.Ví dụ như, Nếu bạn muốn kiểm tra trạng thái máy ảo trong 5 phút, hãy đặt thời hạn là 300. Quan sát hình bên dưới để thấy rõ hơn cho máy ảo Lab-DC.

hyperv2

Giống như lệnh Ping-VM, người dùng có thể sử dụng Wildcard của tên máy ảo và chỉ định nhiều server chủ.

Do Ping-VM và Test-VMHeartBeat đều sử dụng để kiểm tra đáp ứng máy ảo nên người dùng có thể phân vân nên sử dụng lệnh nào.

Nếu muốn một báo cáo trạng thái nhanh từ toàn bộ máy ảo (kể cả những máy không hoạt động) thì tốt hơn hết nên sử dụng Ping-VM. Lý do là Test-VMHeartBeat sẽ chặn và chờ hết thời hạn cho mỗi máy ảo mà hiện bị tắt. Ví dụ như, giả sử server chủ có 10 máy ảo, nhưng chỉ có 5 trong số đó đang hoạt động lúc này. Ta thực hiện lệnh sau:

Test-VmHeartBeat*-Timeout 300

Câu lệnh sẽ mất tới đúng 25 phút để hoàn thành do lệnh Test-VM sẽ đợi cho đủ 5 phút trong khi kiểm tra mỗi máy ảo bị tắt. Ngược lại, lệnh Ping-VM sẽ cung cấp thông tin trạng thái cơ bản tương tự, nhưng sẽ hoàn thành gần như tức thì.

hyperv3

Mặc dù vậy, Test-VmHeartBeat lại đặc biệt hữu dụng khi các máy ảo cần được khởi động lần lượt. Ví dụ như, Lab-DC cần được khởi chạy trước Exchange Server (Lab-E2K10). Sử dụng lệnh Test-VmHeartBeat để kiểm tra xem Lab-DC có đang chạy trước Exchange Server hay không. Để khởi động hai server này tuần tự, ta có thể sử dụng câu lệnh như sau:

Start-vm “Lab-DC” ; Test-VmHeartBeat “Lab-DC” –Timeout 300; Start-vm “Lab-E2K10”

hyperv4

Ở hình trên, người dùng có thể thấy PowerShell khởi động Lab-DC và sau đó dừng lại để chờ đợi trạng thái máy ảo được ghi nhận. sau khi Lab-DC hoạt động, Exchange Server được khởi động như hình dưới.

hyperv5

Kết luận

Bây giờ, bạn đã biết cách kiểm tra trạng thái máy ảo bằng dòng lệnh. Trong phần tiếp theo, chúng ta sẽ cùng xem một số thủ thuật điều chỉnh bộ nhớ cấp phát cho máy ảo.

CLOSE
CLOSE