如何判断Linux系统是运行在物理机还是虚拟机

如何判断Linux系统是运行在物理机还是虚拟机

  • 1、概述
  • 2、检测命令
    • 2.1、systemd-detect-virt命令
    • 2.2、lscpu命令
  • 3、区别
  • 4、总结

1、概述

大家好,我是欧阳方超。今天看一看判断Linux是运行在物理机还是虚拟机的问题。其实要不是项目经理的追问,我都想不到这来。
一次很偶然的谈话,
项目经理问到:你们的系统是运行在物理机还是虚拟机上,
我:啥,这有什么关系吗?
项目经理:xxx,
于是项目经理假装严肃地教育了一番,完事我还得反馈结果给他。

2、检测命令

简单搜索后,发现是有命令进行判断的。

2.1、systemd-detect-virt命令

systemd-detect-virt命令用于检测当前系统是否正在运行于虚拟机中。
具体作用:
如果检测到当前系统正在虚拟机环境中运行,则返回对应虚拟平台名称,如:kvm、vmware、xen 等;
如果检测到当前系统正在物理机上直接运行,则返回none;
下面是在物理机上执行的结果:

[root@peer0 ~]# systemd-detect-virt
none

下面是在kvm虚拟机上执行的结果:

$ systemd-detect-virt 
kvm

2.2、lscpu命令

lscput命令主要作用是查看CPU信息,它有两方面的作用,一是显示CPU基本信息,包括:CPU架构(如x86_64)、CPU核数、CPU主频、是否支持多线程、L1/L2缓存大小、制造商和CPU型号;二是判断系统是否支持虚拟化技术以及所支持的虚拟化技术,具体来说,通过Virtualization字段表明CPU是否支持虚拟化技术(当运行在物理机上时显示VT-x或AMD-v),以及使用的时何种虚拟化技术(当运行在虚拟机上时显示KVM或VMware).
下面是当Linux系统运行在物理机上时,lscpu的执行效果:

[root@peer0 ~]# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                16
On-line CPU(s) list:   0-15
Thread(s) per core:    2
Core(s) per socket:    4
座:                 2
NUMA 节点:         2
厂商 ID:           GenuineIntel
CPU 系列:          6
型号:              85
型号名称:        Intel(R) Xeon(R) Gold 5122 CPU @ 3.60GHz
步进:              4
CPU MHz:             3600.000
BogoMIPS:            7200.00
虚拟化:           VT-x
L1d 缓存:          32K
L1i 缓存:          32K
L2 缓存:           1024K
L3 缓存:           16896K
NUMA 节点0 CPU:    0,2,4,6,8,10,12,14
NUMA 节点1 CPU:    1,3,5,7,9,11,13,15

3、区别

Linux系统运行在虚拟机或物理机上存在以下主要区别:

  • 资源使用 - 虚拟机的资源(CPU、内存、磁盘等)是分配给它的,而物理机可以直接使用它所有安装的物理资源。所以物理机的性能会更高。
  • 稳定性 - 物理机由于直接使用硬件,系统往往更稳定。虚拟机由于软件层面模拟硬件,稳定性会略差一些。
  • 硬件访问 - 虚拟机访问硬件需要通过虚拟机软件,速度可能更慢一些。物理机直接访问硬件。
  • 可移植性 - 虚拟机由于是软件层面的模拟,更易移植到不同的硬件和平台上。物理机限于自己的硬件。
  • 隔离性 - 虚拟机之间运行互不影响,隔离性好。而物理机直接运行在硬件上,相互影响较大。
  • 存储 - 虚拟机使用软件分配的虚拟磁盘,可以很容易地备份和迁移。 物理机的硬盘直接安装在硬件上,不易迁移。
  • 成本 - 虚拟机由于不需要额外的硬件,成本更低。物理机需要购买独立的硬件,成本较高。
    总的来说,虚拟机具有更高的隔离性、可移植性和成本效益,但相对来说资源使用效率和稳定性略逊于物理机。

4、总结

本文抛砖引玉,介绍了两个用于检测Linux系统时运行在物理机还是虚拟机上的命令,也许还有一些其他命令吧,大家可以在评论区讨论一下。
我是欧阳方超,把事情做好了自然就有兴趣了,如果你喜欢我的文章,欢迎点赞、转发、评论加关注。我们下次见。

你可能感兴趣的:(Linux,linux,bash,运维)