如何找出Solaris机器是否被虚拟化?

我有一套机器,并想知道如何找出给定的机器是否虚拟化。 任何命令?

如果Solaris运行在容器/区域/标记区域中,则命令“uname -v”将会显示“Generic_Virtual”

这可能取决于所使用的虚拟化,但如果您使用的是“Oracle VM for SPARC”(以前称为LDOM),则“virtinfo”工具(位于核心SUNcsu软件包中)提供您所需的信息。

例如:

user@server1> virtinfo Domain role: LDoms control I/O service root user@server2> virtinfo Domain role: LDoms guest user@zone > virtinfo 

virtinfo只能从全局区域运行

 user@M4000 > virtinfo Virtual machines are not supported user@x3650 > virtinfo command not found 

请注意,该命令的接口稳定性被分类为“Uncommited”,可能会对下一个次要版本进行修改。

仅用于区域:

堆的顶部

[ "`/usr/bin/zonename`" = 'global' ] && echo "im global"

在一个区域

[ ! "`/usr/bin/zonename`" = 'global' ] && echo "im in a zone"

更通用的目的

如果你想要一些function更全面的东西,(像其他虚拟机pipe理程序的编辑/反馈/火焰帮助;是的,目前很多边缘情况下)….

/usr/sbin/prtconf -dv | /usr/bin/egrep -i '(vmw|qemu|xen|hyper-v|openvz|virtualbox|oracle vm|parallels|virtuoso)' >/dev/null

信用: http : //compgroups.net/comp.unix.solaris/how-to-detect-if-solaris-is-running-as-a-gu/281238

使用prtdiag命令。 如果你在一个区域,你可以看到错误消息prtdiag只能买全球区域运行

如果这个命令有效,那么你是在一个真正的机器上(真实的或者ldom)

Solaris有类似lspci或/ proc / cpuinfo的东西吗?

以下是其他工具如何解决检测的一些示例:

http://github.com/reductivelabs/facter/blob/master/lib/facter/util/virtual.rb

http://imvirt.svn.sourceforge.net/viewvc/imvirt/trunk/perl/lib/ImVirt/VMD/

没有一种方法可以确定您是否运行虚拟化的Solaris。 不pipe架构如何,Solaris都可以在各种容器(本地或品牌区域)上运行。 在x86 / x64上,Solaris也可以运行在VirtualBox,VMware,Xen,Parallels之上,可能还有其他几个。 在SPARC上,T系列上的LDOM和M系列上的物理域

看看这个Perl库: http : //search.cpan.org/~doneill/Sys-Detect-Virtualization-0.105/lib/Sys/Detect/Virtualization.pm

如果你想深入探讨它的组装方式: http : //talhatariq.wordpress.com/2006/05/14/detecting-virtualization-2/

以下是手动执行时要查找的内容的概述: http : //www.dmo.ca/blog/detecting-virtualization-on-linux/ 。

HTH

psrinfo会给你一些你的处理器的答案:

 $ psrinfo -v Status of virtual processor 0 as of: 07/09/10 10:41:32 on-line since 06/01/04 13:30:59. The sparcv9 processor operates at 1002 MHz, and has a sparcv9 floating point processor. 

看看这个链接 ,它可能会给你更多的信息。

cfgadm命令适用于所有Solaris系统除非非全局区域:

 cfgadm > /dev/null 2>&1 if [ $? -ne 0 ]; then #cfgadm command failed, must be a non-global zone: echo "This is a non-global zone". fi