У меня есть набор машин, и я хочу знать, как узнать, виртуализирована ли данная машина или нет. Какие-нибудь команды?
Это может зависеть от используемой виртуализации, но если вы используете «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
Имейте в виду, что стабильность интерфейса этой команды классифицируется как «Неиспользованная» и может быть изменена в следующем второстепенном выпуске.
Если Solaris работает в контейнере / зоне / именованной зоне, команда uname -v скажет «Generic_Virtual».
[ "`/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
используйте команду prtdiag. Если вы находитесь в зоне, вы можете увидеть сообщение об ошибке prtdiag can only buy run in the global zone
если команда работает, вы находитесь на реальной машине (реальной или 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 или нет. Solaris может работать с различными типами контейнеров (собственными или фирменными зонами) независимо от архитектуры. На x86 / x64 Solaris также может работать как минимум поверх VirtualBox, VMware, Xen, Parallels и, возможно, еще нескольких. На SPARC, LDOM на серии T и физические домены на серии 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