Назад | Перейти на главную страницу

Как узнать, виртуализирована ли машина Solaris или нет?

У меня есть набор машин, и я хочу знать, как узнать, виртуализирована ли данная машина или нет. Какие-нибудь команды?

Это может зависеть от используемой виртуализации, но если вы используете «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