‘壹’ 教你探测虚拟环境是物理机、虚拟机还是容器
目前裸机(物理机)、虚拟机、容器是云计算提供计算服务的三种主流形式。那么如何判断一个虚拟shell环境到底是物理机、虚拟机还是容器呢?
更进一步,如果是物理机,这个物理机厂商是什么,虚拟机到底是KVM还是XEN,容器是Docker还是rkt、lxc等?
更进一步,如果是虚拟机,是否可以判断这个虚拟机是运行在AWS还是阿里或者OpenStack,是否能够获取虚拟机的UUID、instance-type、vpc-id、安全组等信息?
如果使用了systemd,则可以直接通过 systemd-detect-virt 命令判断是否物理机:
如上可以看出这台是物理机,厂商为LENOVO,型号为ThinkServer RD640,序列号为NC01711670
当然如果是虚拟机,如上命令会执行失败。另外也可以通过其他命令查看物理信息,如 lshw 命令。
其实前面已经提到了,如果使用了systemd,则可以直接通过 systemd-detect-virt 命令判断是否虚拟机:
如果是虚拟机,则会输出虚拟机类型,如kvm、oracle(virtualbox)、xen等。
参考物理机的获取方式,我们可以通过dmidecode命令获取更多的虚拟机信息。比如我在一台KVM虚拟机运行如下命令:
如上Proct Name为KVM,说明运行在KVM平台,而UUID即虚拟机的UUID。
XEN上的一台虚拟机输出为:
如上Manufacturer为XEN,说明运行在XEN平台,而UUID即虚拟机的UUID。
腾讯云的虚拟机如下:
华为云的虚拟机如下:
如上Manufacturer为 OpenStack Foundation ,说明运行在OpenStack平台,而UUID即虚拟机的UUID。
可见虽然可以从system信息中获取云厂商的线索,但其实虚拟机的system信息并没有统一的标准,有的在version中体现,有的在Proct Name中表现,完全取决于云厂商自己的配置。
目前还没有什么方法能够100%准确判断虚拟环境是否是容器
如果环境有 systemd-detect-virt 命令,则可以直接通过 systemd-detect-virt -c 命令判断,如果输出为 none 则不是容器,否则会输出昌段容器类型,比如lxc。目前很少容耐芹誉器里面放 systemd 的,我见过的就只有LXD的 ubuntu 镜像,因首此此这种方法适用性不广。
1.查看目前默认的启动默认
2.设置为图形界面模式
3.设置为命令行模式
svm - Secure virtual machine, AMD的虚拟化技术AMD-V
vmx - Intel的虚拟化技术Intel-VT
‘贰’ 虚拟机和物理机的区别,物理机是自己的电脑吗。求大神
虚拟机只是用软件的方式在你的物理机上模拟出一个新的电脑,硬件等都是模拟出来的,所以性能等会受到物理机的影响,物理机就是你的实体电脑。
‘叁’ 判断当前主机是物理机还是虚拟机
提供3种方法:
Linux
1: fdisk -l 查看资盘是sda还是vda,xda,一般物理机器都是sda
2:dmidecode|more 查看所有硬件信息
说明如果提示 -bash: dmidecode: command not found,可以先 yum install dmidecode
从而判断出是否为物理机,出现--More--时,一直按回车键(Enter)就可以看到所有的硬件信息,如果是虚拟机(云主机VPS)一下就可以看出来!
3:重启速度,云主机/VPS重启都很快,一般1分钟之内,物理机器由于有很多自检步骤,重启要5分钟左右
Windows
在CMD里运行 Systeminfo ,就可以看到一些系统信息,主要看:系统制造商(这个就是主板生产商)、系统型号(主板的型号)(系统型号结果中有Virtual字样,100%是虚拟机)、网卡型号
另外我在用的是主机公园的主机,速度很不错,服务好
‘肆’ Linux判断当前机器是虚拟机还是物理机
可以从硬件型号上来判断,虚拟机的硬件型号是特定的,而且就那么几种,从硬件型号上甚至还能知道是哪种虚拟机;还有驱动,虚拟机中有特定的驱动,也可以辅助判断;另外还可以通过网关类型来判断,比如VMware Workstation虚拟机的网关就很有特点(类似于vmnet-8这样),物理机的网关绝对不会是VMware Workstation虚拟机那样。
‘伍’ 怎么去判断某台机器是物理机还是虚拟机
打开设备管理器或者点击我的电脑的属性里面都有那些硬件设备名称都是VMware
‘陆’ 虚拟机跟物理机的区别
通过 使用软件,虚拟机就表现得如同物理机,拥有自己的一套虚拟硬件,包括其上载入的操作系统和应用。使用虚拟化,不管下面主机服务器所运行的操作系统如何,每台虚拟机都拥有一致的虚拟硬件。 说白了,就是虚拟机在一个环境下用硬件虚拟了另一个环境,类似一个物理机,但是它借助硬件支持来完成,但是物理机就是那种本能就具有环境。
‘柒’ 软件测试:关于性能测试中使用物理机和虚拟机的区别
需要说明的情况,以下对比表格主要针对性能测试:
举例的物理机和虚拟机的数值
CPU 2Ghz
内存 4GB
网卡 100M
硬盘 200G
虚拟机所在的物理机器称之为“宿主机”,单独的物理机和虚拟机是在数值等同的情况下进行以下比对:
其他:
VM实现:
VMware 虚拟化的工作原理是,直接在计算机硬件或主机操作系统上面插入一个精简的软件层,用软件模拟计算机软硬件环境,占用物理机本身的资源,将这部分资源“硬件化”--划分了一个特定的可以格式化的分区,在其中包含cpu的应用资源、内存、硬盘、网络资源等等,建立完整的运行环境。
1、虚拟机的CPU实现:
由于虚拟机是基于一个软件层实现的,CPU的处理能力实际上是物理机进程调度虚拟机组件来实现的,虚拟机的CPU取决于宿主机的CPU分配。
2、虚拟机的内存分配:
无论怎样分配,推荐的内存的大小值不能超过所在的物理宿主机的内存,而且物理机的内存动态调整会直接影响到虚拟机的内存使用率;如果内存值大于宿主机的物理内存值,最终还是会导致宿主机本身在内存和硬盘间调度。
同时,虚拟机的内存实际使用率低于虚拟机的内存分配值,仍有一部分用于虚拟机的运作-以上两个原因决定了虚拟机的内存值是一个时刻变动的动态值,并且在物理机内存恶化的情况下,表现更糟糕。
3,虚拟机的网络使用:
1、桥接Bridge
bridge方式里面,就是利用网卡的这种功能为每一个VM分配一个外网的IP;每个VM在网络上的地位与宿主机是对等的。可认为每一个VM都是一个网络上的物理机。
2、Host only
第3种的NAT方式实际上是在这种方式上加了一个功能而已(增加一项NAT服务)。host only 用的是vmnet1,它包括两个组件,一个虚拟的网卡(Host Virtual Adapter),一个网拟的交换机(Virtual Switch),虚拟的网卡自动连到这个交换机上。Host Virtual Adapter和各个虚拟机的网卡一起已经组成了一个局域网,而且Host Virtual Adapter所在的宿主机还有一个网卡(物理网卡)连接着外网—不过这个宿主机上的两个网卡间不能通信。虚拟网卡不能和物理网卡通讯,导致了VM不能访问外网,但通过Host Virtual Adapter,VM们可以访问host,所以叫做 host only。
另外,让VM们能够访问外网的方法:
把host 配置成一个简单的NAT服务器:在Windows XP 下使用的方法:打开网络连接,右击物理网卡的连接,属性,高级,找到 Internet Connection Sharing(ICS),勾选,VMware默认装了两个网卡:vmnet1和。确定vmnet1共享物理网卡的IP,XP会弹出一个对话框,提示再用共享文件--使用ICS后,不能在局域网里共享文件---系统会将vmnet1上的 Host Virtual Adapter的IP设为 192.168.0.1,未提供DHCP,将VM的IP静态地设为192.168.0.x,网关设成Host Virtual Adapter(192.168.0.1),VM们的DNS也要设置成静态的,最好设置成宿主机的DNS。
3、NAT
增加一项NAT服务,而这个NAT服务并不连接 Host Virtual Adapter与物理网卡, 它相当于又虚拟出来一个网卡--默认情况下,这个未命名的网卡插到mnet8的交换机的第二个插槽上。VMware虚拟机配置的网络号192.168.221.0,那么这个无名网卡就是192.168.221.2,而Host Virtual Adapter是192.168.221.1,你的VM们的网络连接的配置要设成自动获取IP和DNS,这是因为这个NAT服务还提供了DHCP服务,DHCP服务除了给VM们提供IP外,还可以给它们提供DNS服务器的IP。NAT方式中,Host Virtual Adapter并没有提供特殊的作用,Host Virtual Adapter在各种配置中都起了一个相同的作用,就是与主机进行通信。
4、虚拟机应用程序的运行:
这个涉及到虚拟机的硬盘、内存和CPU,由于虚拟机是一个“特殊”的应用程序,本身就运行在物理机的抽象层上,除硬盘的访问方式/速度完全一致外,VM访问CPU和内存、网络这几大块,都是离不开宿主机的分配和影响的,特别是在性能测试中,多个因素的综合影响,会导致资源的争用,而无法具体分析在哪一个环节出现了瓶颈:如访问数据库或是中间件,只知道反应缓慢,请求超时,而无法确实是因为CPU的处理速度跟不上还是因为网络拥塞导致,抑或是内存紧张而调度失败,在VM中宿主机的动态对VM这组进程的调整,更是无法掌控和预测的。
由此,可以看到,确保性能测试能顺利有效的进行,选择物理机的实体测试,可以宿主机对其上运行VM的干扰及影响,提升性能测试的有效性。
2、Host only
第3种的NAT方式实际上是在这种方式上加了一个功能而已(增加一项NAT服务)。host only 用的是vmnet1,它包括两个组件,一个虚拟的网卡(Host Virtual Adapter),一个网拟的交换机(Virtual Switch),虚拟的网卡自动连到这个交换机上。Host Virtual Adapter和各个虚拟机的网卡一起已经组成了一个局域网,而且Host Virtual Adapter所在的宿主机还有一个网卡(物理网卡)连接着外网—不过这个宿主机上的两个网卡间不能通信。虚拟网卡不能和物理网卡通讯,导致了VM不能访问外网,但通过Host Virtual Adapter,VM们可以访问host,所以叫做 host only。
另外,让VM们能够访问外网的方法:
把host 配置成一个简单的NAT服务器:在Windows XP 下使用的方法:打开网络连接,右击物理网卡的连接,属性,高级,找到 Internet Connection Sharing(ICS),勾选,VMware默认装了两个网卡:vmnet1和。确定vmnet1共享物理网卡的IP,XP会弹出一个对话框,提示再用共享文件--使用ICS后,不能在局域网里共享文件---系统会将vmnet1上的 Host Virtual Adapter的IP设为 192.168.0.1,未提供DHCP,将VM的IP静态地设为192.168.0.x,网关设成Host Virtual Adapter(192.168.0.1),VM们的DNS也要设置成静态的,最好设置成宿主机的DNS。
3、NAT
增加一项NAT服务,而这个NAT服务并不连接 Host Virtual Adapter与物理网卡, 它相当于又虚拟出来一个网卡--默认情况下,这个未命名的网卡插到mnet8的交换机的第二个插槽上。VMware虚拟机配置的网络号192.168.221.0,那么这个无名网卡就是192.168.221.2,而Host Virtual Adapter是192.168.221.1,你的VM们的网络连接的配置要设成自动获取IP和DNS,这是因为这个NAT服务还提供了DHCP服务,DHCP服务除了给VM们提供IP外,还可以给它们提供DNS服务器的IP。NAT方式中,Host Virtual Adapter并没有提供特殊的作用,Host Virtual Adapter在各种配置中都起了一个相同的作用,就是与主机进行通信。
4、虚拟机应用程序的运行:
这个涉及到虚拟机的硬盘、内存和CPU,由于虚拟机是一个“特殊”的应用程序,本身就运行在物理机的抽象层上,除硬盘的访问方式/速度完全一致外,VM访问CPU和内存、网络这几大块,都是离不开宿主机的分配和影响的,特别是在性能测试中,多个因素的综合影响,会导致资源的争用,而无法具体分析在哪一个环节出现了瓶颈:如访问数据库或是中间件,只知道反应缓慢,请求超时,而无法确实是因为CPU的处理速度跟不上还是因为网络拥塞导致,抑或是内存紧张而调度失败,在VM中宿主机的动态对VM这组进程的调整,更是无法掌控和预测的。
由此,可以看到,确保性能测试能顺利有效的进行,选择物理机的实体测试,可以宿主机对其上运行VM的干扰及影响,提升性能测试的有效性。
‘捌’ 什么是物理机和虚拟机
物理机就是你的实物计算机虚拟机就是在实物计算机内构建的虚拟计算机虚拟计算机的功能可以由你设定 但不能过分超出实物计算机的承载度 就像你的物理内存和你的虚拟机的硬盘容量有密切联系 谢谢采纳