如何找出Linux VPS的虚拟化类型?

Sam*_* P. 14 virtualization linux vps terminal

可以访问 VPS,我需要知道它正在从终端运行哪种类型的虚拟化。

如何确定我的 VM 正在运行的虚拟化平台?(OpenVZ、Xen、KVM 等?)

小智 29

hostnamectl是你的朋友(需要systemd)。

几个例子:

没有任何虚拟化的笔记本电脑

$ hostnamectl status
   Static hostname: earth.gangs.net
         Icon name: computer-laptop
           Chassis: laptop
        Machine ID: 18a0752e1ccbeef09da51ad17fab1f1b
           Boot ID: beefdc99969e4a4a8525ff842b383c62
  Operating System: Ubuntu 16.04.2 LTS
            Kernel: Linux 4.4.0-66-generic
      Architecture: x86-64
Run Code Online (Sandbox Code Playgroud)

$ hostnamectl status
   Static hostname: pluto.gangs.net
         Icon name: computer-vm
           Chassis: vm
        Machine ID: beef39aebbf8ba220ed0438b54497609
           Boot ID: beefc71e97ed48dbb436a470fe1920e1
    Virtualization: xen
  Operating System: Ubuntu 16.04.2 LTS
            Kernel: Linux 3.13.0-37-generic
      Architecture: x86-64
Run Code Online (Sandbox Code Playgroud)

OpenVZ

$ hostnamectl status
   Static hostname: mars.gangs.net
         Icon name: computer-container
           Chassis: container
        Machine ID: 55296cb0566a4aaca10b8e3a4b28beef
           Boot ID: 1bb259b0eb064d9eb8a22d112211beef
    Virtualization: openvz
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 2.6.32-042stab120.16
      Architecture: x86-64
Run Code Online (Sandbox Code Playgroud)

KVM

$ hostnamectl status
   Static hostname: mercury.gangs.net
         Icon name: computer-vm
           Chassis: vm
        Machine ID: beeffefc50ae499881b024c25895ec86
           Boot ID: beef9c7662a240b3b3b04cef3d1518f0
    Virtualization: kvm
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-514.10.2.el7.x86_64
      Architecture: x86-64
Run Code Online (Sandbox Code Playgroud)

  • 我只是得到“无法创建总线连接:没有这样的文件或目录” (2认同)

and*_*dol 8

除非 VM 主机对您撒谎,否则通常可以通过检查 VM 来宾看到的“硬件”来弄清楚。

最简单的可能是使用像virt-what这样的程序,它会为您进行解析。顺便说一下,我在这里盲目假设您正在运行某种基于 Linux 的发行版。

可能还值得一看 puppet 的facter,它也使用类似的技术来确定它在什么样的 VM 环境中运行。

或者你可以问问你碰巧从谁那里租了 VPS?:-)


eww*_*ite 5

使用该virt-what命令确定系统正在使用的虚拟化技术的类型。

请参阅: http: //people.redhat.com/~rjones/virt-what/