Консолидация: размещение серверов в VirtualBox






Вместо того, чтобы поднимать сервер, например Apache, на отдельном компьютере, почему бы не разместить его на виртуальной машине? Такой подход обладает некоторыми преимуществами и дополнительным уровнем безопасности. На сегодняшний день довольно частое явление, когда ресурсы распределяются «облачно», но и консолидация в некоторых ситуация может оказаться весьма выгодным подходом. Размещение сервера в виртуальной машине, например в VirtualBox, может быть отличным решением для домашней сети. В этой заметке рассматривается запуск Apache в Debian, работающем в VirtualBox. Если вам нужно настроить какой-то другой сервер, но вы никогда ранее не делали этого в виртуальной машине, всё равно прочтите эту заметку, поскольку здесь вы узнаете об основных моментах настройки сети и сможете сперва поэкспериментировать, прежде чем будете настраивать нужный вам сервер.


Я считаю, что идея консолидации многими недооценивается. Часто, когда я слышу о том, что у людей стоит отдельный компьютер в шкафу лишь для того, чтобы на нём работал домашний веб-сервер, я задаюсь вопросом: зачем оставлять кучу ресурсов системы неиспользованными? Если ваш сервер потребляет немного ресурсов, то зачем же выделять под него целый компьютер, если можно просто отдать часть ресурсов вашей основной рабочей машины для этих целей?

Зачем размещать сервер в виртуальной машине?

Конечно же, существуют серверы, нагрузка на которые требует отдельного оборудования и никак иначе. Однако, если нужная вам производительность определяется потребностями, вроде необходимости иметь под рукой «домашний» сервер для личного пользования, спросите себя, какова вероятность того, что произойдёт критический сбой в работе вашего «основного», рабочего компьютера? Современные ОС достигли того уровня, что если система и окажется в полностью неработоспособном состоянии, то, вероятней всего, причиной тому будет отказ оборудования.

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

Другим преимуществом консолидации является то, что всё созданное вами серверное хозяйство будет полностью переносимым: в случае необходимости переноса на другое железо вам необходимо будет лишь копировать несколько файлов, содержащих образ и конфигурацию виртуальной машины. Иными словами, вам не нужно будет настраивать всё с нуля каждый раз при «переезде». Ко всему прочему, виртуальные машины позволяют вам временно приостанавливать их работу, делать «слепки» работоспособных конфигураций, к которым вы затем можете откатиться в случае ошибок.

Установка

Установка сервера, такого как Apache, под виртуальной машиной практически ничем не отличается от «традиционной» установки. Начните с установки соответствующего дистрибутива Linux. Хорошей идеей будет выбор в пользу чего-то менее громоздкого, чем обычные десктопные варианты Linux, ибо это позволит вам сэкономить ресурсы вашей основной системы. Неплохим выбором может стать Debian с легковесной графической оболочкой. Если же вы умеете работать в командной строке, то вариант установки Linux без графической оболочки будет вообще идеален!

Когда будете настраивать параметры гостевой ОС в VirtualBox, не забудьте в разделе настройки сети выбрать режим «Bridged», а не «NAT», как это предлагает VirtualBox по умолчанию. Режим «NAT» в VirtualBox позволит отлично работать приложениям, которые не требуют входящих подключений, вроде веб-браузера. Режим «Bridged» создаёт впечатление, будто бы ваша гостевая виртуальная машина напрямую подключена к сети при помощи Ethernet-кабеля.

Помните о том, что при использовании режима «Bridged», ваша гостевая система должна иметь IP-адрес. Если у вас работает DHCP, то он должен выдать корректный адрес из того диапазона, который используется в вашей сети. Узнать, какой адрес получила ваша гостевая ОС, можно при помощи команды ifconfig. Обратите внимание на адрес интерфейса eth0. Строка (вторая в примере ниже), в которой он указан, будет выглядеть примерно так:

eth0      Link encap:Ethernet  HWaddr 00:1d:92:0a:e9:8c
          inet addr:192.168.0.2  Bcast:192.168.0.255  Mask:255.255.255.0

Если гостевая ОС не получила IP-адрес, обратитесь к документации по вашему DHCP-серверу или же настройте статический IP (о том, как это сделать, можно узнать здесь).

После настройки сети самую сложную часть работы можно считать завершённой. Теперь можно установить веб-сервер «традиционным» способом:

sudo apt-get install apache2

На сегодняшний день установка Apache не требует от пользователя какого-либо вмешательства. После того, как Apache будет установлен и запущен, необходимо проверить, всё ли работает. Для этого вам нужно попробовать соединиться с ним с любой другой машины в вашей сети. Это может быть также и ваша хост-система, на которой работает VirtualBox. Откройте браузер и в строке адреса введите IP-адрес, назначенный вашей виртуальной системе. Если всё хорошо, вы должны увидеть сообщение «It works!» от сервера Apache.

Следующим этапом (если это вам нужно) настройте форвардинг на вашем роутере так, чтобы обеспечить перенаправление входящих запросов из Internet к вашей виртуальной машине. Если вы не знаете, как это делается, обратитесь к документации вашего роутера. В общих чертах: вам необходимо настроить перенправление с 80-го порта на 80-й к IP-адресу вашей виртуальной машины.




Консолидация: размещение серверов в VirtualBox: 3 комментария

  1. А libvirt не пробовали? у него и морда внятная есть для управления уделенными (на других компах) виртуальными машинами, и родная ядреная поддержка kvm, и динамическое выделение памяти гостю, и доступ к аппаратным ресурсам хост-системы...

  2. Андрей, немножко пробовал. Но так получилось, что у меня пока что живёт виртуалбокс :) А дальше — как знать.

  3. Кстати, Андрею спасибо за подсказку. По сравнению с виртуалбокс основная система меньше чувствует нагрузку.

Комментарии запрещены.