我有一组机器,想知道如何确定某台机器是否已虚拟化。有什么命令吗?
答案1
如果 Solaris 在容器/区域/品牌区域中运行,则命令“uname -v”将显示“Generic_Virtual”
答案2
它可能取决于所使用的虚拟化,但如果您使用“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
请注意,此命令的接口稳定性被归类为“未提交”,并且可能会在下一个次要版本中发生修改。
答案3
仅适用于区域:
堆顶
[ "`/usr/bin/zonename`" = 'global' ] && echo "im global"
在区域中
[ ! "`/usr/bin/zonename`" = 'global' ] && echo "im in a zone"
更通用
如果您想要功能更齐全的东西,像这样(请帮助编辑/反馈/评论其他虚拟机管理程序;是的,目前有很多边缘情况)....
/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
答案4
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/