home start up prev next Оглавление

Удаленный дисплей (VRDP)
RDP клиенты сторонних разработчиков
VBoxHeadless, сервер удаленного рабочего стола
Шаг за шагом: создание виртуальной машины на автономном сервере (headless server)
Удаленные USB
RDP аутентификация
RDP шифрование
Мультисессионные соединения с VRDP
Множественные удаленные мониторы
Перенаправление видео VRDP
VRDP настройки
Телепортация

Удаленный дисплей (VRDP)

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

Для максимальной гибкости, начиная с VirtualBox 4.0, в VirtualBox удаленный дисплей машины представлен посредством в виде интерфейса расширения под названием VirtualBox Remote Desktop Extension (VRDE). Базовый свободный пакет VirtualBox поставляется только с этим интерфейсом, а работа с ним может осуществляться через пакеты расширения сторонних разработчиков, которые могут устанавливаться отдельно от базового пакета. См. раздел “Установка VirtualBox и модулей расширений”.

Oracle предоставляет поддержку VirtualBox Remote Display Protocol (VRDP) в пакете расширения VirtualBox. При установке этого пакета, VirtualBox версии 4.0 и выше предоставляет работу VRDP в виде бинарной версии как (не свободной) и до версии VirtualBox 4.0.

VRDP является обратно совместимым расширением Microsoft Remote Desktop Protocol (RDP). Обычно с удаленной машины посылается обновление графического вывода и звука клиенту, а события клавиатуры и мыши посылаются серверу. В результате вы можете использовать стандартных клиентов RDP для управления удаленными ВМ.

По умолчанию VRDP отключен, даже если установлен пакет расширений. Его можно просто включить в диалоговом окне настроек ВМ на вкладке "Дисплей" (см. раздел “Настройки дисплея”) или с помощью VBoxManage:

VBoxManage modifyvm "VM name" --vrde on

Если вы используете VBoxHeadless (описывается ниже), VRDP поддержка будет автоматически включена, т.к. VBoxHeadless не имеет других способов работы с ним.

RDP клиенты сторонних разработчиков

Поскольку VRDP обратно совместим с RDP, то вы можете использовать любо RDP клиент для подключения к удаленной виртуальной машине (пример следует ниже). Для этого вы должны указать IP адрес вашей хост системы (не виртуальной машины!) в качестве сервера, а также номер порта который использует RDP сервер.

По умолчанию, VRDP использует TCP порт 3389. Вам необходимо изменить порт по умолчанию, если вы использует более одного VRDP сервера, поскольку порт может быть занят только одним сервером в одно и то же время; вам возможно также необходимо изменить его при использовании хостов Windows, так как порт по умолчанию может использоваться также собственным RDP сервером Windows. Хорошим выбором будут номера портов с 5000 до 5050, которые обычно нигде не используются.

Номер порта может быть изменен в на вкладке "Дисплей" в графическом интерфейсе или с помощью параметра --vrdeport в команде VBoxManage modifyvm. Вы можете указать список номеров портов разделенных запятой. Для указания диапазона портов используйте тире. Сервер VRDP связывается с одним</s1> из перечисленным в списке. Например, командой VBoxManage modifyvm "VM name" --vrdeport 5000,5010-5012 укажет, что серверу нужно принимать соединения на одном из портов с номерами 5000, 5010, 5011 или 5012. Детали см. разделе “VBoxManage modifyvm”.

Фактический номер порта используемый в работающей ВМ может быть получен командой VBoxManage showvminfo или в графическом интерфейсе на вкладке "Детали" в диалоговом окне "Информация о сессии", которое открывается через меню "Машина" окна ВМ.

Здесь приведены примеры использования наиболее популярных RDP клиентов:

  • В Windows, вы можете использовать Microsoft Terminal Services Connector ( mstsc.exe ) который поставляется с Windows. Вы можете запустить его с помощью диалога "Run" (нажмите одновременно клавишу Windows и "R") и введите "mstsc". Вы можете также найти его через меню "Пуск" -> "Все программы" -> "Стандарные" -> "Подключение к удаленному рабочему столу". Если вы использует диалог "Run", вы можете указать параметры соединения:

    mstsc 1.2.3.4[:3389]

    Замените "1.2.3.4" IP адресом хоста и число 3389 номером порта, если вы используете другой.

    Замечание

    Подключение, в случае соединения с локальным хостом (localhost) с параметром localhost и 127.0.0.1 для mstsc.exe не будет работать. Поэтому нужно использовать параметр в виде 127.0.0.2[:3389].

  • В других системах, вы можете использовать открытую программу rdesktop. Она содержится в большинстве дистрибутивах Linux, но VirtualBox также поставляется с модифицированным вариантом программы rdesktop для поддержки удаленного USB (см. Раздел “Remote USB” ниже).

    Для rdesktop, используйте командную строку, так как указано ниже:

    rdesktop -a 16 -N 1.2.3.4:3389

    Как описывалось для клиента Microsoft выше, замените "1.2.3.4" IP адресом хоста, и 3389 другим номером порта если необходимо. Параметр -a 16 указывается для использования глубины цвета в 16 бит на пиксель - который мы рекомендуем. (Для лучшей производительности, после установки гостевой операционной системы, вам нужно установить глубину цвета дисплея тем же самым значением). Параметр -N включает использование клавиши NumPad.

  • Если вы работаете в среде KDE, то вы отдадите предпочтение krdc , используемый в KDE RDP клиент. Команда будет выглядеть следующим образом:

    krdc --window --high-quality rdp:/1.2.3.4[:3389]

    Еще раз напомним, замените "1.2.3.4" IP адресом хоста и 3389 номером порта, если вы используете другой. Элемент "rdp:/" требуется для переключения krdc в режим использования RDP.

  • В тонких клиентах Sun Ray вы можете использовать uttsc, который является частью пакета Sun Ray Windows Connector. Ознакомьтесь с соответствующей документацией.

VBoxHeadless, сервер удаленного рабочего стола

Любой ВМ запущенной через VirtualBox Manager можно управлять удаленно, однако не совсем удобно иметь ее полный графический интерфейс, если вы не хотите видеть ВМ на локальном дисплее. В частности, если у вас имеется работающий сервер, единственной целью которого является работа в качестве хост системы и все ВМ должны управляться удаленно через VRDP, то не смысла им работать в графическом интерфейсе на сервере -- тем более, что на Linux или Solaris хостах VirtualBox поставляется с необходимыми для его работы библиотеками Qt и SDL. Это не неудобно, особенно когда у вас не установлен X Window на сервере.

Поэтому VirtualBox поставляется еще с одним пользовательским интерфейсом называемым VBoxHeadless , который не производит графический вывод на хосте - вместо этого он отправляет данные через VRDP. Этот интерфейса не имеет зависимостей от системы X Window system на Linux и Solaris хостах.[32]

Для запуска виртуальной машины с помощью VBoxHeadless, вы имеете две возможности:

  • Вы можете использовать командную строку

    VBoxManage startvm "VM name" --type headless

    дополнительный --type параметр заставляет VirtualBox использовать интерфейс VBoxHeadless, вместо Qt.

  • Вы можете использовать VBoxHeadless напрямую:

    VBoxHeadless --startvm <uuid|name>

    Этот способ запуска ВМ предпочтительней, т.к. вы можете увидеть более информативные сообщения об ошибке, особенно в случаях отказов до запуска ВМ. Если у вас есть проблемы с запуском ВМ через VBoxManage startvm, то вы можете использовать VBoxHeadless для диагностики неполадок.

Обратите внимание что при запуске ВМ с использованием VBoxHeadless, поскольку автономный сервер не имеет никаких других средств вывода, встроенный VRDP сервер всегда будет включен, независимо от ваших настроек виртуальной машины для VRDP сервера. Если в этом нет необходимости (например доступ к ВМ необходим только посредством ssh), запускайте ВМ так:

VBoxHeadless --startvm <uuid|name> --vrde=off

Для использования VRDP сервером настроек из конфигурации ВМ используйте команду:

VBoxHeadless --startvm <uuid|name> --vrde=config

Шаг за шагом: создание виртуальной машины на автономном сервере (headless server)

Ниже приводится порядок действия создания виртуальной машины на автономном сервере через сетевое соединение. Нам необходимо создать виртуальную машину используя RDP соединение и установить гостевую ОС -- все без непосредственного контакта с автономным сервером. Все что вам необходимо:

  1. Установленный VirtualBox на хост сервере с поддерживаемой операционной системой. Пакет расширений VirtualBox должен быть установлен на VRDP сервере (см. предыдущий раздел). В нашем примере, мы будем рассматривать Linux сервер.

  2. Файл ISO на сервере с программой установки гостевой ОС (мы будем использовать Windows XP в данном примере);

  3. терминальное соединение с хостом, что бы иметь доступ к командной строке (посредством ssh );

  4. Клиент RDP на удаленном рабочем компьютере; см. Раздел  “RDP клиенты сторонних разработчикоав”.

Заметем еще раз, что компьютер, который мы используем является автономным сервером и на нем нам не нужны ни Qt, ни SDL, ни X Window система.

  1. На автономном сервере создаем новую виртуальную машину:

    VBoxManage createvm --name "Windows XP" --ostype WindowsXP --register

    Замете, что если вы не укажите --register , вам нужно будет позже использовать команду registervm.

    Заметьте, что вам не требуется указывать параметр --ostype, но его указание позволяет задать некоторые значения свойств ВМ , например размер памяти и тип виртуального сетевого устройства. Для получения списка поддерживаемых операционных систем вы можете использовать команду

    VBoxManage list ostypes
  2. Установим необходимые настройки ВМ, требующиеся устанавливаемой гостевой ОС. Например:

    VBoxManage modifyvm "Windows XP" --memory 256 --acpi on --boot1 dvd --nic1 nat
  3. Создаем виртуальный жесткий диск для ВМ (в данном случае, размером 10GB):

    VBoxManage createhd --filename "WinXP.vdi" --size 10000
  4. Добавим IDE Controller к новой ВМ:

    VBoxManage storagectl "Windows XP" --name "IDE Controller"
          --add ide --controller PIIX4
  5. Установим созданный ранее VDI файл первым виртуальным жестким диском для новой ВМ:

    VBoxManage storageattach "Windows XP" --storagectl "IDE Controller"
          --port 0 --device 0 --type hdd --medium "WinXP.vdi"
  6. Подключим ISO файл с загрузочным образом диска установки ОС, которую мы хотим установить позже в виртуальной машине:

    VBoxManage storageattach "Windows XP" --storagectl "IDE Controller"
          --port 0 --device 1 --type dvddrive --medium /full/path/to/iso.iso
  7. Запустите виртуальную машину используя VBoxHeadless:

    VBoxHeadless --startvm "Windows XP"

    Если все пройдет успешно, вы увидите сообщение об авторских правах. Иначе вы вернетесь в командную строку, если что то пойдет не так.

  8. На клиентской машине, запустите клиента RDP и попытайтесь подключиться к серверу (см. Section , “RDP клиенты сторонних разработчиков”).

    Вы должны увидеть процедуру установки вашей гостевой ОС в окне клиента RDP.

Удаленные USB

В качестве особенной функции VRDP, VirtualBox поддерживает удаленные USB устройства, также через проводную сеть. Это означает, что гость работающий на одной машине может получить доступ к устройствам USB на другом компьютере и может их видеть как USB подключенные к хост системе. Это позволяет работающим виртуальным машинам на хосте с VirtualBox работать в качестве сервера, к которому клиент может подключаться отовсюду имея только сетевой адаптер и дисплей для работы в качестве RDP клиента . Когда устройства USB подключаются к клиентской машине, удаленный сервер VirtualBox может получить к ним доступ.

Для удаленных USB устройств, применяются те же правила настроек что и для других USB устройств, которые были описаны в Разделе , “Поддержка USB” . Вам просто надо установить в правилах параметр "Удаленное" в значение "Да" или "Оба".

Доступ к удаленным устройствам USB возможен только, если клиент RDP поддерживает эту возможность. На Linux и Solaris хостах, установщик VirtualBox поставляется с клиентом VRDP rdesktop-vrdp. Последние версии uttsc, используемый в тонких клиентах Sun Ray, также способны получать доступ к удаленным устройствам USB . RDP клиенты для других платформ будут предоставляться в будущих версиях VirtualBox.

Что бы сделать удаленные USB устройства доступными в ВМ, rdesktop-vrdp необходимо запустить так как указано ниже:

rdesktop-vrdp -r usb -a 16 -N my.host.address

Заметьте, что rdesktop-vrdp может получать доступ к USB устройствам только через /proc/bus/usb . Ознакомьтесь с разделом  с названием “USB not working”, чтобы знать как правильно настроить права доступа. Кроме того необходимо отключить автоматическую загрузку драйверов (automatic loading of any host driver) на удаленном хосте которые могут работать с USB устройствами, чтобы гарантировать доступность устройства в RDP клиенте. Если была корректно проведена установка удаленного хоста, то события подключения и отключения устройств будут отображаться в журнал VBox.log.

RDP аутентификация

Для каждой виртуальной машины доступной удаленно через RDP, вы можете индивидуально определить каким образом будет происходить аутентификация соединений. Для этого, используйте команду VBoxManage modifyvm с параметром --vrdpauthtype ; см. Раздел “VBoxManage modifyvm”. Доступно три метода аутентификации:

  • Метод "null/ Нет авторизации" означает отсутствие какой либо аутентификации; любой клиент может подключиться к VRDP серверу, а следовательно к виртуальной машине. Это конечно, не безопасно и он рекомендуется только для частных/ локальных сетей.

  • Метод "external/ Внешняя" предусматривает внешнюю аутентификацию посредством специальной библиотеки аутентификации. По умолчанию VirtualBox поставляется с двумя такими библиотеками:

    1. Библиотека по умолчанию, VBoxAuth, использует аутентификацию хоста. В зависимости от платформы хоста, это означает:

      • На хостах Linux, VBoxAuth.so аутентификация пользователей происходит посредством системы PAM на хосте.

      • На хостах Windows, VBoxAuth.dll аутентификация происходит с помощью системы WinLogon хоста.

      • На Mac OS X, VBoxAuth.dylib использует directory service хоста.[33]

      Другими словами, метод "external" позволяет производить аутентификацию пользователей посредством существующего механизма аутентификации на хост системе по умолчанию. Доступ разрешается любому пользователю прошедшему аутентификацию, т.е. имя пользователя не обязательно должно соответствовать пользователю запустившего ВМ.

    2. Дополнительная библиотека VBoxAuthSimple выполняет аутентификацию через указанный настройки в разделе "extradata" XML файла настоек виртуальной машины. Это наиболее простой механизм аутентификации, который не зависит от гостевой системы (см. ниже). Требуются выполнить следующие шаги:

      1. Включить VBoxAuthSimple командой:

        VBoxManage setproperty vrdeauthlibrary "VBoxAuthSimple"
      2. Для включения библиотеки в нужной ВМ, вы должны переключить аутентификацию на внешнюю:

        VBoxManage modifyvm <vm> --vrdeauthtype external

        Замените <vm> именем ВМ или UUID.

      3. Вы должны настроить пользователей и пароли, путем записи элементов в extradata виртуальных машин. Так как в разделе "extradata" в файле настроек XML пароль хранится в виде текста, то VirtualBox использует hashes для шифрования паролей. Необходимо использовать следующую команду:

        VBoxManage setextradata <vm> "VBoxAuthSimple/users/<user>" <hash>

        Замените <vm> именем ВМ или ее UUID, <user> именем пользователя которому будет разрешен вход и <hash> зашифрованным паролем. Например, для получения зашифрованного значения для пароля "secret", вы можете использовать команду:

        VBoxManage internalcommands passwordhash "secret"

        Будет выведено значение

        2bb80d537b1da3e38bd30361aa855686bde0eacd7162fef6a25fe97bf527a25b

        Теперь вы можете использовать команду VBoxManage setextradata для сохранения этого значения в "extradata" виртуальной машины.

        В примере ниже, устанавливается пароль "secret" для пользователя "john" в виртуальной машине "My VM" :

        VBoxManage setextradata "My VM" "VBoxAuthSimple/users/john"
            2bb80d537b1da3e38bd30361aa855686bde0eacd7162fef6a25fe97bf527a25b
  • Наконец, метод аутентификации "guest/гостевой" выполняет проверку с помощью специальной компоненты поставляемой с гостевыми дополнениями; поэтому, аутентификация не выполняется на хосте, а используется с помощью гостевых пользовательских акаунтов.

    Этот метод в настоящее время все еще тестируется и официально не поддерживается.

В добавок к методам описанным выше, вы можете заменить модуль по умолчанию в методе "external" любым другим модулем. Для этого, VirtualBox предоставляет интерфейс который позволяет написать вам собственный аутентификационный модуль. Детали вы можете получить VirtualBox Software Development Kit (SDK); см. Глава 11, Программный интерфейс VirtualBox.

RDP шифрование

Передаваемые данные RDP протокола шифруются алгоритмом на базе RC4 симетричного шифра (длинна ключа до 128bit). Ключ RC4 обновляется с регулярным интервалом (каждые 4096 пакетов).

RDP обеспечивает различных методы аутентификации:

  1. Ранее, использовалась RDP4 аутентификация, при которой RDP клиент не выполняет никаких проверок безопасности при подключения к серверу. Данный протокол уязвим к атакам вида "человек в середине" (man in the middleб MITM), т.е. RDP4 аутентификация не безопасно и не должна использоваться.

  2. При аутентификации через RDP5.1 используется сертификат сервера и открытый публичный ключ у клиента. В данном случае подтверждается подлинность сервера соответствующим закрытым ключом. Однако, поскольку этот устойчивый к взлому открытый ключ стал доступен всем несколько лет назад, то и RDP5.1 аутентификация также считается не безопасной.

  3. Аутентификация RDP5.2 использует Enhanced RDP Security, это означает, что для безопасного соединения используется внешний протокол безопасности. RDP4 и RDP5.1 используют Standard RDP Security. VRDP сервер поддерживает Enhanced RDP Security и использует для передачи серверного сертификата протокол TLS.

    Свойство Security/Method VRDE используется для задания метода безопасности соединений. Допустимые значения:

    • Negotiate - разрешены Enhanced (TLS) и Standard RDP Security. Метод установки безопасного соединения согласуется с клиентом. Это настройка по умолчанию.
    • RDP - разрешается только Standard RDP Security.
    • TLS - разрешен только Enhanced RDP Security. Клиент должен уметь работать с TLS.

    В следующем примере разрешается использование соединений Standard и Enhanced RDP Security:

    vboxmanage modifyvm NAME --vrdeproperty "Security/Method=negotiate"

    В случае, если свойство Security/Method установлен в Negotiate или TLS, сервером будет использоваться протокол TLS, если клиент поддерживает TLS. В случае использования TLS, сервер должен обладать сертификатами Server Certificate, Server Private Key и Certificate Authority (CA) Certificate. В следующем примере показано как создать сертификат сервера.

    1. Создание самоподписного сертификата CA:
      openssl req -new -x509 -days 365 -extensions v3_ca -keyout ca_key_private.pem -out ca_cert.pem
    2. Создание закрытого ключа сервера:
      openssl genrsa -out server_key_private.pem
      openssl req -new -key server_key_private.pem -out server_req.pem
    3. Создание сертификата сервера:
      openssl x509 -req -days 365 -in server_req.pem -CA ca_cert.pem -CAkey ca_key_private.pem -set_serial 01 -out server_cert.pem

    Сервер должен быть настроен для доступа к нужным файлам:

    vboxmanage modifyvm NAME --vrdeproperty "Security/CACertificate=path/ca_cert.pem"

    vboxmanage modifyvm NAME --vrdeproperty "Security/ServerCertificate=path/server_cert.pem"

    vboxmanage modifyvm NAME --vrdeproperty "Security/ServerPrivateKey=path/server_key_private.pem"

Поскольку клиент определяет тип шифрования при соединении к серверу, то для rdesktop, используются опции -4 или -5.

Мультисессионные соединения с VRDP

Сервер RDP VirtualBox позволяет производить одновременное подключение нескольких различных клиентов к одной и той же работающей ВМ. Все подключенные клиенты используют один и тот же экран, используют одну мышь и клавиатурный фокус ввода. Это похоже на то, как если бы несколько людей работали за одним компьютером в одно и то же время, поочередно печатая на клавиатуре.

Следующая команда включает режим множественных соединений:

VBoxManage modifyvm "VM name" --vrdemulticon on

Множественные удаленные мониторы

Для получения доступа к двум и более удаленным дисплеям ВМ вы должны включить мультисессионный режим VRDP (см. раздел “Multiple connections to the VRDP server”).

RDP клиент может выбрать номер подключаемого виртуального монитора используя domain параметр (-d). Если данный параметр заканчивается символом @ с последующим номером, VBoxHeadless интерпретирует этот номер как номер экрана. Первый виртуальный экран будет установлен параметром @1 , второй @2 и т.д..

Клиент Microsoft RDP6 не позволит выбрать вам нужное имя домена в таком формате. Вместо этого, используйте domain\username в поле ввода ИмяПоользователя: -- например, @2\name. name должно быть указано и должно являться именем используем для входа в систему, если сервер VRDP требует аутентификации мандатом. В противном случае, вы должны указать в качестве имени пользователя любой текст.

Перенаправление видео VRDP

Начиная с версии VirtualBox 3.2, VRDP сервер может перенаправлять видео поток из гостевой системы клиенту RDP. Видео (Video frames) сжимается с помощью алгоритма JPEG, который обеспечивает более высокую степень сжатия, чем стандартный метод RDP (bitmap compression methods). Это приводит к увеличению степени сжатия и уменьшению качества видео.

VRDP сервер автоматически определяет поток видео в госте по частоте обновлений прямоугольных областей. Поэтому, данный метод работает в любой гостевой ОС, без использования дополнительных программных средств в госте; в частности установка гостевых дополнений не требуется.

Однако, в настоящее время на стороне клиента , только Windows 7 Remote Desktop Connection поддерживает данную функцию. Если клиент не поддерживает перенаправление видео, VRDP сервер использует стандартному побитовому обновлению изображения.

Следующая команда включает перенаправление видео :

VBoxManage modifyvm "VM name" --vrdevideochannel on

Качество видео потока задается значением от 10 до 100 в процентах, представляя уровень JPEG сжатия (малые значения означают более низкое качество, но более высокую степень сжатия). Качество может быть задано командой:

VBoxManage modifyvm "VM name" --vrdevideochannelquality 75

VRDP настройки

В VirtualBox 4.0 можно для VRDP сервера отдельно отключить вывод на дисплей, ввод клавиатуры, мыши, звука, удаленных устройств USB или буфера обмена.

Следующая команда изменяет соответствующие настройки сервера:

VBoxManage modifyvm "VM name" --vrdeproperty Client/DisableDisplay=1
VBoxManage modifyvm "VM name" --vrdeproperty Client/DisableInput=1
VBoxManage modifyvm "VM name" --vrdeproperty Client/DisableUSB=1
VBoxManage modifyvm "VM name" --vrdeproperty Client/DisableAudio=1
VBoxManage modifyvm "VM name" --vrdeproperty Client/DisableClipboard=1
VBoxManage modifyvm "VM name" --vrdeproperty Client/DisableUpstreamAudio=1

Для повторного включения этих функций используется те же команды без конечной цифры 1. Например:

VBoxManage modifyvm "VM name" --vrdeproperty Client/DisableDisplay=

Эти свойства появились в VirtualBox 3.2.10. Однако, в версиях 3.2.x, нужно было использовать следующие команды:

VBoxManage setextradata "VM name" "VRDP/Feature/Client/DisableDisplay" 1
VBoxManage setextradata "VM name" "VRDP/Feature/Client/DisableInput" 1
VBoxManage setextradata "VM name" "VRDP/Feature/Client/DisableUSB" 1
VBoxManage setextradata "VM name" "VRDP/Feature/Client/DisableAudio" 1
VBoxManage setextradata "VM name" "VRDP/Feature/Client/DisableClipboard" 1

Для повторного включения этих функций используется те же команды без конечной цифры 1. Например:

VBoxManage setextradata "VM name" "VRDP/Feature/Client/DisableDisplay"

Телепортация

Начиная с версии 3.1, VirtualBox поддерживает функцию "миграции (teleporting)" -- которая позволяет перемещать виртуальные машины по сети с одного хоста VirtualBox на другой, не прерывая работы машины. Данная возможность не зависит от операционной системы хоста: например, вы можете переносить виртуальные машины между хостами Solaris и Mac.

Для выполнения миграции необходима работающая виртуальная машина на хосте, которую будем называеть "источник". Хост система на которую мигрирует виртуальная машина будем называть "целевой"; машина на целевой системе должна быть настроена на ожидание соединения с источником Тогда работающая виртуальные машины будет перенесена с источника с минимальным временем простоя.

Миграция производится через сеть TCP/IP; для источника и цели необходимо только назначить согласовать порты TCP/IP, которые указываются в настройках миграции.

В настоящее время, имеется несколько требования для реализации миграции:

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

  2. Обе виртуальных машины должны иметь общую систему хранения данных (использовать один и тот же жесткий диск, дисковод и/или образ CD/DVD). Это значит, что они обе должны использовать один iSCSI targets или хранилище виртуальных носителей должны находиться в сети и они обе должны иметь доступ к нему через NFS или SMB/CIFS.

    Это означает также, что виртуальная машина источник и машина цель не должны иметь снимков состояний.

Далее выполняются следующие шаги:

  1. На целевом хосте, виртуальная машина настраивается на ожидание запроса миграции. Это выполняется командой VBoxManage :

    VBoxManage modifyvm <targetvmname> --teleporter on --teleporterport <port>

    где <targetvmname> это имя виртуалбной машины на целевом хосте, а <port> это номер порта TCP/IP используемый обоими хостами. Например, используете 6000. Детали в разделе “Teleporting settings”.

  2. Запустите ВМ на целевом хосте. Вы увидите, что вместо обычного запуска будет показан диалоговое окно выполнения процесса, указывающее что выполняется ожидание поступления запроса миграции.

  3. Как обычно, запустите машину на хосте источнике. Когда она запустится и вы будете готовы начать миграцию, выполните следующую команду на хосте источника:

    VBoxManage controlvm <sourcevmname> teleport --host <targethost> --port <port>

    где <sourcevmname> имя виртуальной машины источника (машина которая в настоящее время работает), <targethost> имя хоста или IP адрес целевого хоста на котором машина ожидает запроса миграции, а <port> должен иметь тот же номер, что и указанный в команде выше для целевого хоста. Детали в разделе “VBoxManage controlvm”.

Для тестирования, вы можете также выполнять миграцию на одном хосте; в данном случае, в качестве имени хоста укажите "localhost" для хоста источника и целевого хоста.

Замечание

В редких случаях, если процессоры источника и цели сильно различаются, миграция может не завершиться с ошибкой, или целевой хост может зависнуть. Это обычно случается если программное обеспечение на ВМ оптимизировано для работы с процессором, без корректной проверки, с предположением того что нужные функции ЦП всегда присутствуют. VirtualBox фильтрует возможности CPU которые предоставлены гостевой ОС. Advanced users can attempt to restrict these virtual CPU capabilities with the VBoxManage --modifyvm --cpuid command; see the section called “Teleporting settings”.



[32] До VirtualBox 1.6, автономный сервер назывался VBoxVRDP. В целях обратной совместимости, в VirtualBox по прежнему используется это имя исполняемого файла.

[33] Поддержка для Mac OS X была добавлена в версии 3.2.

home start up prev next
Сайт создан в системе uCoz