VMware Server - бесплатная и мощная платформа виртуализации для малого бизнеса.
Бесплатный продукт 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 (Virtual Machine Disk) это формат файла разработанный VMware для использования в качестве образа диска в своих виртуальных машинах. VMDK схож по структуре и содержанию с жестким диском, является открытым и документированным.
Для виртуализации будет использоваться бесплатный vmware Server.
vmware-authd 902/tcp vmware-authd 902/udp
yum install kernel-devel-`uname -r` gcc gcc-c++
# wget --no-check-certificate http://codebin.cotescu.com/vmware/vmware-server-2.0.x-kernel-2.6.3x-install.sh # ls -l -rw-r--r-- 1 root root 8696 Янв 27 15:16 raducotescu-vmware-server-linux-2.6.3x-kernel-release-1.5-1-g71f8b66.tar.gz -rw-r--r--. 1 root root 474415801 Янв 24 15:30 VMware-server-2.0.2-203138.x86_64.tar.gz
Устанавливаем обновление, предварительно распаковав.
# tar xvfz raducotescu-vmware-server-linux-2.6.3x-kernel-release-1.5-1-g71f8b66.tar.gz # cp VMware-server-2.0.2-203138.x86_64.tar.gz raducotescu-vmware-server-linux-2.6.3x-kernel-71f8b66/ # cd raducotescu-vmware-server-linux-2.6.3x-kernel-71f8b66
Запускаем с правами root vmware-server-2.0.x-kernel-2.6.3x-install.sh. Он будет искать в текущей директории дистрибутив VMware Server, который мы туда предварительно скопировали.
# ./vmware-server-2.0.x-kernel-2.6.3x-install.sh ... Please specify a port for remote connections to use [902] Please specify a port for standard http connections to use [8222] Please specify a port for secure http (https) connections to use [8333] The current administrative user for VMware Server is ''. Would you like to specify a different administrator? [no] yes Please specify the user whom you wish to be the VMware Server administrator root Using root as the VMware Server administrator. In which directory do you want to keep your virtual machine files? [/var/lib/vmware/Virtual Machines] /home/vmware Please enter your 20-character serial number. Type XXXXX-XXXXX-XXXXX-XXXXX or 'Enter' to cancel:
В случае успешного завершения установки 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).
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
# 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-authd 902/tcp vmware-authd 902/udp
# yum install kernel-devel-`uname -r` gcc gcc-c++ # yum install xinetd
# tar xvfz VMware-server-2.0.2-203138.x86_64.tar.gz # cd vmware-server-distrib # ./vmware-install.pl ... Please specify a port for remote connections to use [902] Please specify a port for standard http connections to use [8222] Please specify a port for secure http (https) connections to use [8333] The current administrative user for VMware Server is ''. Would you like to specify a different administrator? [no] yes Please specify the user whom you wish to be the VMware Server administrator root Using root as the VMware Server administrator. In which directory do you want to keep your virtual machine files? [/var/lib/vmware/Virtual Machines] /home/vmware Please enter your 20-character serial number. Type XXXXX-XXXXX-XXXXX-XXXXX or 'Enter' to cancel: ...
VMware Server 2 управляется через WEB-интерфейс. Доступ к WEB-интерфейсу через HTTPS(https:<IP ADDRESS>:8333) или HTTP (http:<IP ADDRESS>:8222).
about:config security.enable_ssl2 = false -> true
Установить плагин для просмотра консоли().
К USB нужно подключить выход от ATC и источника бесперебойного питания.
Инструкция ниже не позволила увидеть эти устройства в гостевой Win XP
Для того чтобы VMware Server 2.0.2 разрешил гостевым системам подключать usb устройства, нужно:
# nano /etc/fstab ... usbfs /proc/bus/usb usbfs 0 0
# chmod -R 777 /proc/bus/usb*
Источник официальный 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.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 в гостевой ОС |
Примеры использования.
# vmrun -T server -h https://localhost:8333/sdk -u root -p password list Total running VMs: 2 [standard] Debian6_MyWWW/Debian6_MyWWW.vmx [standard] Ubuntu1004LTS_GIT/Ubuntu1004LTS_GIT.vmx
#!/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
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"
Для подключения к виртуальным машинам можно использовать 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>.
Для устранения это ошибки нужно в директории виртуальной машины удалить все директории с расширением .lck.