Xác định khách nào đang chạy trên XEN: HVM hoặc PV khách


9

Tôi đang làm việc với máy chủ Xen được cài đặt XenServer từ Citrix. Anh ta đã cài đặt rất nhiều khách CentOS 5.2 trên máy chủ. Tôi tự hỏi làm thế nào để kiểm tra những khách đó để biết họ là loại PV hay loại HVM?

Câu trả lời:


10

Lưu ý nhanh, thực tế có 3 chế độ, không phải hai chế độ khi nói đến trình điều khiển đang sử dụng:

  • HVM: kernel và trình điều khiển chưa được sửa đổi bằng các thiết bị mô phỏng phần mềm
  • PV-HVM: kernel chưa được sửa đổi với trình điều khiển mạng và đĩa paravirtualized (cụ thể Xen)
  • PV: sửa đổi kernel và trình điều khiển

Đối với khách Xen / DomU, bạn có thể thực hiện một thao tác rất cơ bản unamelsmodvới một grep để liệt kê các mô-đun đang sử dụng:

uname -a
lsmod | grep xen

Nếu uname -aliệt kê một hạt nhân có chuỗi "xen" trong đó, thì bạn có một hạt nhân đã được sửa đổi và đó có thể là một khách PV và bạn sẽ thấy đầu ra từ lsmodlệnh để xác nhận nó. Nếu bạn có đầu ra từ grep trên lsmodnhưng không có dấu hiệu của kernel đã sửa đổi thì bạn là PV-HVM. Không có bất kỳ dấu hiệu nào, đó là một HVM thẳng.

Lưu ý: Nói chung, bạn có thể làm nhiều hơn với các máy ảo có cài đặt công cụ PV, vì vậy đó có thể là một con trỏ khá rõ ràng, tuy nhiên bạn có thể giả mạo sự hiện diện của các công cụ PV để cho phép tạm dừng / tiếp tục, v.v. .


Cảm ơn @Adam. Đó là câu trả lời rõ ràng nhất mà tôi đã tìm thấy cho đến nay.
Hà Sơn Hải

10

Có một cách khác để phân tích uname -ađầu ra từ bên trong miền khách. Bạn nên kiểm tra hồ sơ VM trong chính trình ảo hóa.

XL

Với bộ công cụ XenLight hiện tại để cài đặt Xen độc lập, điều này có thể đạt được bằng cách chạy xl list --longlệnh:

# xl list
Name                   ID   Mem VCPUs      State   Time(s)
My-Virtual-Machine     42  1024     1     -b----    9001.0

# xl list -l 42
    or
# xl list --long My-Virtual-Machine

[
    {
        "domid": 6,
        "config": {
            "c_info": {
                "name": "My-Virtual-Machine",
                "uuid": "12345678-abcd-1234-abcd-12345678abcd",
                "type": "pv",
                ...
            },
            ...
        }
    }
]

Lưu ý typemục trong  c_infophần - nếu nó bằng  "pv", điều này có nghĩa là paravirtual.

XM

Với bản cài đặt Xen độc lập cũ hơn sử dụng bộ xmcông cụ quản lý truyền thống , mọi thứ đều tương tự:

# xm list --long My-Virtual-Machine
(domain
    (domid 42)
    (name My-Virtual-Machine)
    (image
        (linux
            (kernel ...)
            ...
        )
    )
    ...
)

Lưu ý (linux)phần tử trong  (image)phần - nó tương ứng với  builderchỉ thị cấu hình, trong đó, linux linux có nghĩa là Paravirtual tựa (chứ không phải kernel thực tế), trong khi đó, hvm là viết tắt của cụm từ ảo hóa đầy đủ.

XE

Với thiết bị XenServer hoặc XCP, bạn có thể sử dụng xe vm-list params=alllệnh hoặc một cái gì đó tương tự.

virsh

Có thể có (hoặc đã) một số cách để có được thông tin này từ  kho công cụ libvirt , nhưng tôi không biết.


Lưu ý rằng, bắt đầu với Xen 4.5, chế độ paravirtual trên x86-64 có hai hương vị:

  • paravirtualization cổ điển (PV) dựa trên các hệ thống khách được viết lại từ việc sử dụng vòng 0 đến vòng 1; kể từ khi AMD vứt bỏ vòng 1 và vòng 2 trong x86-64, Xen đã phải quay lại quản lý dựa trên phần mềm, thậm chí còn chậm hơn HVM;
  • paravirtualization hỗ trợ phần cứng (PVH), - không bị nhầm lẫn với  ảo hóa hoàn toàn với trình điều khiển paravirtual (PV-on-HVM), - dựa vào hỗ trợ phần cứng để xử lý các hướng dẫn đặc quyền và bảng trang bộ nhớ, nhưng sử dụng các kỹ thuật PV truyền thống cho mọi thứ khác , do đó, không có phần cứng nào được mô phỏng và đạt được hiệu năng gần như nguyên bản khi nó ở mức x86-32 cũ.

Để kiểm tra xem máy chủ có chạy với PVH được kích hoạt hay không, người ta có thể sử dụng xl info(mặc dù phương pháp này không tốt hơn kiểm tra grub.cfg ):

# xl info | grep xen_commandline
xen_commandline        : pvh=1 loglvl=all guest_loglvl=all console=com1,vga
                         ^^^^^

Để kiểm tra xem khách cụ thể có đang chạy trong chế độ PVH ( pvh=1trong tệp cấu hình) không, hãy tham khảo lại xl list -l:

            "c_info":{
                "name": "My-Virtual-Machine",
                "type": "pv",
                "pvh": "True",
                ...
            },

Tuy nhiên, từ góc độ quản trị, PVH không nên khác với PV.


Điều này không hoạt động trên 4.4.1 vì không có xmlệnh nhưng xlcó đầu ra khác nhau. Bất kỳ ý tưởng làm thế nào để có được thông tin trên 4.4.1 XEN. Cảm ơn.
Wakan Tanka

@WakanTanka Hiện tại tôi không có quyền truy cập vào máy chủ Xen đang hoạt động, nhưng theo kết quả đầu ra mẫu được tìm thấy trực tuyến thì cách tiếp cận về cơ bản là giống nhau. Xem câu trả lời cập nhật.
Anton Samsonov

Đây là một cách tiếp cận tốt hơn sau đó là câu trả lời của @ AdamC, bởi vì tôi có một số khách PV ub Ubuntu chắc chắn là PV theo xl, và chưa có đề cập đến xen trong tên hạt nhân hoặc mô-đun hạt nhân.
Tên giả

2
Điều này đòi hỏi quyền truy cập vào trình ảo hóa, làm thế nào người ta có thể biết nếu anh ta chỉ có quyền truy cập vào khách?
Tonin
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.