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.. Ví dụ như, Nếu ta muốn ping một máy ảo có
Trang 1Giám sát Hyper-V bằng dòng lệnh (Phần 3): Kiểm tra
trạng thái máy ảo Bài viết trước đã 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
Trang 2Có 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
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à:
Trang 3Get-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 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
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
Trang 4Nế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ì
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 DC” ; Test-VmHeartBeat DC” –Timeout 300; Start-vm
“Lab-E2K10”
Ở 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
Trang 5Kế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