Quản Trị Mạng - Trong số các tài nguyên phần cứng thường được ấn định cho máy ảo thì có lẽ bộ nhớ mang tính quết định nhất. Bài viết sẽ hướng dẫn các bạn cách quản lý bộ nhớ máy ảo thông qua Windows PowerShell.
Trước khi bắt đầu, hãy nhớ nhập thư viện giám sát Hyper-V vào PowerShell mỗi lần sử dụng câu lệnh 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 lệnh đầy đủ để tải về và cài đặt thư viện giám sát Hyper-V được trình bày trong phần 1 chuỗi bài viết này.
Tạo báo cáo sử dụng bộ nhớ
Do tài nguyên bộ nhớ là hữu hạn nên việc xác định lượng bộ nhớ cấp cho các máy ảo là rất quan trọng. Tuy việc này thực hiện tương đối đơn giản từ Hyper-V nhưng trình giám sát này lại không có chức năng báo cáo. May mắn là, người dùng vẫn có thể tự xây dựng cho mình các bản báo cáo hiệu năng sử dụng bộ nhớ một cách trực tiếp từ Windows PowerShell.
Câu lệnh được sử dụng để kiểm tra kích thước bộ nhớ một máy ảo đang sử dụng là Get-VMMemory. Cú pháp lệnh như sau:
Get-VMMemory –VM”<tên máy ảo>” –Server “<tên server chủ chạy Hyper-V>”
Về lý thuyết, “-Server” là tham số cần thiết, nhưng nếu bỏ tham số này thì lệnh Get-VMMemory sẽ truy vấn tới server cục bộ theo mặc định. Thường thì người dùng sẽ chỉ định một server nhất định những cũng có thể chỉ định nhiều server. Nếu truy vấn tới nhiều máy chủ chạy Hyper-V, ta phải nhập đầy đủ tên các server. Wildcard không có tác dụng ở đây.
Tham số tên máy ảo thì lại khác. Tham số này là không bắt buốc. Nếu bỏ nhập tên máy ảo thì PowerShell sẽ hiển thị tình hình cấp phát bộ nhớ cho mọi máy ảo trên server chủ chỉ định. Nếu muốn rút gọn phạm vi danh sách, hãy chỉ định một hay nhiều máy ảo.
Nếu chỉ nhập lệnh Get-VMMemory không thôi mà không có tham số đi kèm thì câu lệnh sẽ hiển thị tình hình cấp phát bộ nhớ cho mỗi máy ảo trong server cục bộ.
Như ta thấy trên hình, câu lệnh đã liệt kê kích thước bộ nhớ ảo, giới hạn và bộ nhớ dự trữ cho mỗi máy ảo.
Mặc dù rất tiện dụng khi có thể xem kích thước bộ nhớ ảo, giới hạn và bộ nhớ dự trữ cho mỗi máy ảo, nhưng bạn cũng có thể thực sự sử dụng Get-VMMemory để nhận được nhiều thông tin liên quan bộ nhớ hơn nữa. Để làm điều này, ta sẽ cần biết tên các thuộc tính được hỗ trợ bởi cmdlet Get-VMMemory.
Để xem danh sách tất cả các thuộc tính có sẵn, nhập câu lệnh sau:
Get-VMMemory | Get-Member –MemberType *Property | Select-Object Name
Như hình trên, VirtualQuantity, Limit và Reservation nằm trong số các thuộc tính được liệt kê, nhưng có rất nhiều thuộc tính khác. Bạn có thể sử dụng lệnh Get-VMMemory để hiển thị bất kỳ tập thuộc tính nào. Giả sử khi muốn xem VMElementName, Address và AllocationUnits, nhập câu lệnh sau:
Get-VMMemory | FT VMElementName, Address, AllocationUnits
Tạo báo cáo bộ nhớ
Nếu muốn lưu lại thông tin bộ nhớ để sử dụng sau đó thì có một giải pháp là xuất kết quả đầu ra của cmdlet Get-Memory thành một file HTML.
Sử dụng câu lệnh sau:
Get-VMMemory | ConvertTo-HTML | Out-File C:\temp\Test.HTM
Như hình dưới, câu lệnh này không hiện kết quả đầu ra. Đó là do đầu ra câu lệnh đang được chuyển hướng thành một file HTML tên là C:\temp\test.htm. Bạn có thể sử dụng Windows Explorer để cấp phát và mở file nhưng thay vào đó ta cũng có thể mở file mà không phải rời khỏi PowerShell. Chỉ cần nhập lệnh sau:
Invoke-Expression C:\temp\test.htm
Nếu quan sát hình dưới đây, ta sẽ thấy rằng lệnh này khởi chạy Internet Explorer và hiển thị file HTML mà chúng ta đã tạo ra. Hơn nữa, các báo cáo dưới dạng HTML trông khác rất nhiều so với báo cáo bên trên mặc dù cả hai lệnh đều sử dụng Get-VMMemory mà không có bất kỳ tham số phụ nào. Trên thực tế, nếu nhìn xuống cuối màn hình báo cáo, bạn sẽ thấy một thanh cuộn chỉ thị rằng còn nhiều dữ liệu được hiển thị hơn.
Những thông tin này có thể hữu ích để tạo ra một file CSV để có thể xem được bằng Excel dưới dạng bảng trong Excel hơn là một trang Web. May mắn là, PowerShell cũng có khả năng này. Câu lệnh mà ta sẽ sử dụng để thực hiện việc này gần giống với câu lệnh được dùng để tạo báo cáo dạng HTML. Tuy nhiên ở đây, thay vì sử dụng ConvertTo-HTML chúng ta đang sử dụng ConvertTo-CSV. Câu lệnh đầy đủ là:
Get-VMMemory | ConvertTo-CSV | Out-File C:\temp\test.csv
Sau khi file CSV được tạo, bạn có thể kích đúp vào file để mở bằng Excel. Tuy nhiên, nó sẽ không hiện ra chính xác thông tin. Để nhận đầy đủ và chính xác thông tin, hãy mở Excel trước, sau đó mới mở file. Excel sẽ khởi chạy Text Import Wizard. Thiết lập cho Wizard bắt đầu nhập file với Row 2 và thực hiện phân cách dữ liệu như hình bên dưới.
Tiếp theo, đặt tùy chọn phân tách dữ liệu là dấu phẩy. Sau đó kích vào Finish. Dữ liệu sẽ được nhập như hình dưới đây.
Như vậy, các bạn đã biết cách lấy thông tin dữ liệu về tình hình bộ nhớ máy ảo từ PowerShell. Ở bài tiếp theo, chúng ta sẽ tìm hiểu cách thay đổi bộ nhớ cấp phát cho các máy này.