Содержание

VMware

VMware Server - бесплатная и мощная платформа виртуализации для малого бизнеса.

Поддержка VMware Server закончилась 30 июня 2011 года. Пользователям рекомендуется перейти на другие продукты VMware.

Бесплатный продукт VMware Server является довольно мощной платформой виртуализации, которая может быть запущена на серверах под управлением хостовых операционных систем Windows и Linux. Основное предназначение VMware Server – поддержка малых и средних виртуальных инфраструктур небольших предприятий. В связи с небольшой сложностью его освоения и установки, VMware Server может быть развернут в кратчайшие сроки, как на серверах организаций, так и на компьютерах домашних пользователей.

Ранее этот продукт распространялся по коммерческой лицензии и носил название VMware GSX Server 3, однако, с ростом возможностей и продаж мощной платформы виртуализации VMware ESX Server, компания VMware не увидела перспектив в продажах платформы VMware Server, сделав в конечном итоге продукт бесплатным. Стоит отметить, что в отношении этого продукта VMware рассчитывает в основном на доходы от продаж Virtual Center for VMware Server, эффективного средства для управления виртуальной инфраструктурой на основе VMware Server, который обладает широкими возможностями по взаимодействию с виртуальными машинами и консолидации виртуальных серверов.

Вот основные варианты использования продукта VMware Server:

VMware Server обладает широкими возможностями по работе с виртуальными машинами, включающими в себя:

VMDK

VMDK (Virtual Machine Disk) это формат файла разработанный VMware для использования в качестве образа диска в своих виртуальных машинах. VMDK схож по структуре и содержанию с жестким диском, является открытым и документированным.

Инсталляция

VMware Server на Fedora

Для виртуализации будет использоваться бесплатный vmware Server.

В случае успешного завершения установки VMware скрипт выведет:

The configuration of VMware Server 2.0.2 build-203138 for Linux for this 
running kernel completed successfully.

On Fedora you must follow these steps in order to make VMware Server to work properly:
	1. edit /etc/services and replace the entry located on TCP/902 port with vmware-authd
	2. disable SELinux by editing the /etc/selinux/config file
	3. reboot your system
Housekeeping...
Thank you for using the script!
Patch provided by: 
	Ramon de Carvalho Valle
	http://risesecurity.org
Script author: 
	Radu Cotescu
	http://radu.cotescu.com

VMware Server 2 управляется через WEB-интерфейс. Доступ к WEB-интерфейсу через HTTPS(https:<IP ADDRESS>:8333) или HTTP (http:<IP ADDRESS>:8222).

Установка закончилось успешно, но перестал работать Web -интерефйс. В целом на 2011.01.31 связка Fedora 14 и VMware-server-2.0.2-203138.x86_64 не стабильна.
      The directory of kernel headers (version @@VMWARE@@ UTS_RELEASE) does not match
      your running kernel (version 2.6.35.10-74.fc14.x86_64).  Even if the module 
      were to compile successfully, it would not load into the running kernel.

Лечим ее созданием константы с версией в исходниках ядра. Добавляем #define UTS_RELEASE «версия ядра» в конец файла.

# nano /usr/src/kernels/2.6.35.10-74.fc14.x86_64/include/linux/version.h
#define UTS_RELEASE "2.6.35.10-74.fc14.x86_64"

или перепишем эту константу из файла utsrelease.h

# cat /usr/src/kernels/2.6.35.10-74.fc14.x86_64/include/generated/utsrelease.h >> /usr/src/kernels/2.6.35.10-74.fc14.x86_64/include/linux/version.h
или
# cat /usr/src/kernels/$(uname -r)/include/generated/utsrelease.h >> /usr/src/kernels/$(uname -r)/include/linux/version.h

VMware Server на CentOS

# cat /etc/issue
CentOS release 5.5 (Final)
# uname -a
Linux vm.net 2.6.18-194.32.1.el5 #1 SMP Wed Jan 5 17:52:25 EST 2011 x86_64 x86_64 x86_64 GNU/Linux

Для виртуализации будет использоваться бесплатный VMware Server.

VMware Server 2 управляется через WEB-интерфейс. Доступ к WEB-интерфейсу через HTTPS(https:<IP ADDRESS>:8333) или HTTP (http:<IP ADDRESS>:8222).

VMware Server и USB

К USB нужно подключить выход от ATC и источника бесперебойного питания.

Инструкция ниже не позволила увидеть эти устройства в гостевой Win XP

Для того чтобы VMware Server 2.0.2 разрешил гостевым системам подключать usb устройства, нужно:

Snapshot снимок состояния VM

VMware Server 2 умеет делать только один snapshot. Старый snapshot перезаписывается.

Источник официальный server_faq.pdf: How many snapshots can I take with Server 2 hosts?

Server 2 hosts support a single snapshot per virtual machine. In order to take a new snapshot, the previous snapshot needs to be overwritten.

Снапшот (Snapshot) - это снимок состояния виртуальной машины (содержимое памяти, настройки ВМ, содержимое дисков) в определенный момент времени. Возврат к снапшоту (revert to snapshot) восстанавливает текущее состояние виртуальной машины до сохраненного.

Снапшоты можно делать много раз, один за другим, причем можно создать достаточно развесистое дерево состояний, до 32 уровней вложенности. В линейном процессе снапшотов каждый снапшот имеет родительский и дочерний, за исключением последнего снапшота, не имеющего дочернего по понятным причинам. В дереве снапшотов сразу несколько дочерних имеют родительским один и тот же снапшот.

Выбирать точку для создания снапшота следует с осторожностью, и крайне желательно в момент, когда никакие процессы не ведут сетевой активности. Просто потому что если вы создадите снапшот в момент копирования файла по сети, то при откате до этого снапшота восстановится состояние виртуальной машины в момент копирования - и соотв. какие-то процессы могут упасть.

Идеальный вариант для снапшотов - выключенная ВМ.

В силу существования снапшотов существуют различные режимы для работы виртуальных дисков. А именно существуют независимые диски (independent), на которые снапшоты никак не влияют. Независимые диски могут работать в persistent (все изменения немедленно записываются на диск, и не откатываются даже при возврате к snapshot) и nonpersistent (все изменения откатываются автоматически при выключении машины или возврате к снапшоту). Обращаю ваше внимание, что nonpersistent диск будет возвращен к тому состоянию, в котором находился, когда мы поставили соотв. галочку в свойствах диска, а не к состоянию на момент снапшота.

Работа с ВМ через интерфейс командной строки: vmrun

Утилита vmrun позволяет автоматизировать управление виртуальными машинами. Кроме управления питанием виртуальных машин, с помощью этой утилиты можно взаимодействовать с файловой системой гостевой ОС, а также организовывать обмен файлами посредством общих папок, либо копируя их напрямую. Синтаксис использования vmrun.exe следующий:

vmrun <команда> [<параметры>]

Утилита vmrun может использоваться не только для локального, но и для удаленного управления виртуальными машинами. Для этого в качестве дополнительных параметров необходимо указать следующие флаги аутентификации:

-h <имя удаленного компьютера>
-P <порт удаленного компьютера>
-u <имя пользователя в хостовой ОС>
-p <пароль в хостовой ОС>
-gu <имя пользователя в гостевой ОС>
-gp <пароль в гостевой ОС>
Команда Параметры Описание
start <путь к файлу *.vmx> Запуск виртуальной машины или VM Team
stop <путь к файлу *.vmx> [hard soft] Остановка виртуальной машины или VM Team (программная или аппаратная)
reset <путь к файлу *.vmx> [hard soft] Перезагрузка виртуальной машины или VM Team(программная или аппаратная)
suspend <путь к файлу *.vmx> [hard soft] Сохранение состояния виртуальной машины или VM Team (постановка на «паузу», программная или аппаратная)
listSnapshots <путь к файлу *.vmx> Вывод списка снапшотов виртуальной машины
snapshot <путь к файлу *.vmx> <имя снапшота> Создание снапшота виртуальной машины с заданным именем
deleteSnapshot <путь к файлу *.vmx> <имя снапшота> Удаление снапшота с заданным именем
revertToSnapshot <путь к файлу *.vmx> <имя снапшота> Откат виртуальной машины к заданному снапшоту

Команды для операций в гостевой ОС:

runProgramInGuest <путь к файлу *.vmx> <программа> [параметры]
fileExistsInGuest <путь к файлу *.vmx> <путь к файлу в гостевой системе> Проверка наличия заданного файла в гостевой системе
setSharedFolderState <путь к файлу *.vmx> <имя общей папки> <новый путь в хостовой системе> Изменение пути к общей папке в хостовой системе
addSharedFolder <путь к файлу *.vmx> <имя общей папки> <новый путь в хостовой системе> Добавление общей папки для виртуальной машины и хостовой системы
removeSharedFolder <путь к файлу *.vmx> <имя общей папки> Удаление общей папки
listProcessesInGuest <путь к файлу *.vmx> Получение списка процессов в гостевой ОС
killProcessInGuest <путь к файлу *.vmx> <PID процесса> Завершение процесса в гостевой ОС с заданным идентификатором
runScriptInGuest <путь к файлу *.vmx> <путь к интерпретатору сценариев> <текст сценария> Запуск сценария в гостевой ОС
deleteFileInGuest <путь к файлу *.vmx> <путь к файлу в гостевой ОС> Удаление файла в гостевой ОС
createDirectoryInGuest <путь к файлу *.vmx> <путь к папке в гостевой ОС> Создание папки в гостевой ОС
deleteDirectoryInGuest <путь к файлу *.vmx> <путь к папке в гостевой ОС> Удаление папки в гостевой ОС
listDirectoryInGuest <путь к файлу *.vmx> <путь к папке в гостевой ОС> Получение списка содержимого заданной папки в гостевой ОС
copyFileFromHostToGuestOS <путь к файлу *.vmx> <путь к файлу в хостовой ОС> <путь к файлу в гостевой ОС> Копирование файла из хостовой в гостевую систему
copyFileFromGuestToHostOS <путь к файлу *.vmx> <путь к файлу в гостевой ОС> <путь к файлу в хостовой ОС> Копирование файла из гостевой в хостовую систему
renameFileInGuest <путь к файлу *.vmx> <старое имя файла> <новое имя файла> Переименование файла в гостевой ОС

Общие команды

list Получение списка всех запущенных виртуальных машин
upgradevm <путь к файлу *.vmx> Улучшение виртуальной машины (продвижение поколения аппаратного обеспечения)
installtools <путь к файлу *.vmx> Установка VMware Tools в гостевой ОС

Примеры использования.

Скрипт для запуска и остановки гостевых виртуальных машин на сервере VMware

#!/bin/bash 
# This script will start/stop/status VMware machine
#
# Written by Ez-Aton
# http://www.tournament.org.il/run
#
# Modified for VMware server 2.0 by doka@wepoca.net
# http://www.wepoca.net
#
#
# Hardcoded. Change to match your own settings!
# the VMware storage name
VMSTORAGE="[standard]"
 
# the VM guest to be started/stopped
VMGUEST="YOUR_GUEST_VM/YOUR_GUEST_VM.vmx"
 
# the URL of the VMware host
HOST="https://URL_OF_VMWARE_HOST:8333/sdk"
 
# admin user on VMware host
HOST_USER="YOUR_ADMIN"
HOST_PWD="ADMIN_PWD"
 
# the VMware script 
VMRUN="/usr/bin/vmrun"
TIMEOUT=60
 
function status () { 
 
# This function will return success if the VM is up
$VMRUN -T server -h $HOST -u $HOST_USER -p $HOST_PWD list | grep "$VMGUEST" &>/dev/null
 
if [[ "$?" -eq "0" ]]
 
then
 
echo "VM $VMGUEST is up"
 
return 0
 
else
 
echo "VM $VMGUEST is down"
 
return 1
 
fi
 
}
 
function start () {
 
# This function will start the VM
 
$VMRUN -T server -h $HOST -u $HOST_USER -p $HOST_PWD start "$VMSTORAGE $VMGUEST"
 
if [[ "$?" -eq "0" ]]
 
then
 
echo "VM $VMGUEST is starting"
 
return 0
 
else
 
echo "$VMGUEST VM failed"
 
return 1
 
fi
 
}
 
function stop () {
 
# This function will stop the VM
 
$VMRUN -T server -h $HOST -u $HOST_USER -p $HOST_PWD suspend "$VMSTORAGE $VMGUEST"
 
for i in `seq 1 $TIMEOUT` do 
 
if status then 
 
echo
 
else
 
echo "VM $VMGUEST Stopped"
 
return 0
 
fi
 
sleep 1 done
 
# $VMRUN stop "$VMGUEST" soft
 
$VMRUN -T server -h $HOST -u $HOST_USER -p $HOST_PWD stop "$VMSTORAGE $VMGUEST" soft
 
}
 
case "$1" in
 
start) start
 
;;
 
stop) stop
 
;;
 
status) status
 
;; esac
 
RET=$?
 
exit $RET 

Скрипт snapshot.sh остановки VM, моментального снимка, запуска

Script VM stop, snapshot, start.

# nano /scripts/vmware/snapshot.sh
#!/bin/bash 
#
# This script snapshots VMware machine
#
VMSTORAGE="[standard]"
# the URL of the VMware host
HOST="https://localhost:8333/sdk"
# admin user on VMware host
HOST_USER="root"
HOST_PWD="your password"
# the VMware script 
VMRUN="/usr/bin/vmrun"

#----------- VM VisiCAR Windows XP Pro SP3 + VMware tools
# Stop. If install VMware tools
$VMRUN -T Server -h $HOST -u $HOST_USER -p $HOST_PWD stop "[standard] WinXpSP3_visicar/WinXpSP3_visicar.vmx" soft
# Delete snapshot
#$VMRUN -T Server -h $HOST -u $HOST_USER -p $HOST_PWD deleteSnapshot "[standard] WinXpSP3_visicar/WinXpSP3_visicar.vmx"
# Create snapshot
$VMRUN -T Server -h $HOST -u $HOST_USER -p $HOST_PWD snapshot "[standard] WinXpSP3_visicar/WinXpSP3_visicar.vmx"
# Start
$VMRUN -T Server -h $HOST -u $HOST_USER -p $HOST_PWD start "[standard] WinXpSP3_visicar/WinXpSP3_visicar.vmx"

#----------- VM FreeBSD 6.2 NOT install VMware tools
# Stop. If NOT install VMware tools
$VMRUN -T Server -h $HOST -u $HOST_USER -p $HOST_PWD stop "[standard] FreeBSD_visicar/FreeBSD_visicar.vmx"
# Create snapshot
$VMRUN -T Server -h $HOST -u $HOST_USER -p $HOST_PWD snapshot "[standard] FreeBSD_visicar/FreeBSD_visicar.vmx"
# Start
$VMRUN -T Server -h $HOST -u $HOST_USER -p $HOST_PWD start "[standard] FreeBSD_visicar/FreeBSD_visicar.vmx"

#----------- VM Ubuntu Ubuntu 10.04.2 LTS GIT
# Stop. If NOT install VMware tools
$VMRUN -T Server -h $HOST -u $HOST_USER -p $HOST_PWD stop "[standard] Ubuntu1004LTS_GIT/Ubuntu1004LTS_GIT.vmx"
# Create snapshot
$VMRUN -T Server -h $HOST -u $HOST_USER -p $HOST_PWD snapshot "[standard] Ubuntu1004LTS_GIT/Ubuntu1004LTS_GIT.vmx"
# Start
$VMRUN -T Server -h $HOST -u $HOST_USER -p $HOST_PWD start "[standard] Ubuntu1004LTS_GIT/Ubuntu1004LTS_GIT.vmx"

#----------- VM Ubuntu Ubuntu 10.04.2 LTS Monitor
# Stop. If NOT install VMware tools
$VMRUN -T Server -h $HOST -u $HOST_USER -p $HOST_PWD stop "[standard] Ubuntu1004TLS_monitor/Ubuntu1004TLS_monitor.vmx"
# Create snapshot
$VMRUN -T Server -h $HOST -u $HOST_USER -p $HOST_PWD snapshot "[standard] Ubuntu1004TLS_monitor/Ubuntu1004TLS_monitor.vmx"
# Start
$VMRUN -T Server -h $HOST -u $HOST_USER -p $HOST_PWD start "[standard] Ubuntu1004TLS_monitor/Ubuntu1004TLS_monitor.vmx"

Подключение VM через vmware-vmrc

Для подключения к виртуальным машинам можно использовать vmware-vmrc. Синтаксис команды vmware-vmrc

Linux:

vmware-vmrc -h [<hostname>] [-u <username> -p <password>] [-M <vmid> | <datastore path>]

Windows:

vmware-vmrc.exe -h <hostname> [-u <username> -p <password>] -M <vmid> | <datastore path>

где <ip> ip адрес машины с VMware Server 2 и <vmid> идентификационный номер виртуальной машины. Значение vmid можно увидеть в файл vmInventory.xml на сервер VMware, в теге <objID>XXX</objID>.

VmWare: ошибка Failed to lock the file

Для устранения это ошибки нужно в директории виртуальной машины удалить все директории с расширением .lck.