Многим вебмастерам и хостинг-провайдерам хотелось экспериментировать на собственном сервере без риска и последствий, или же установить другую ОС. Такая возможность есть и уже достаточно давно существует. Мы говорим о технологии VDS, которая позволяет на базе одного физического сервера создать несколько виртуальных.
Но для реализации данной технологии есть одно «но»: нужно предварительно разобрать и заново собрать с разными патчами ядро. Эта операция вызывает определенный риск, ведь заново собранное ядро может не позволить загрузиться серверу.
Чтобы решить подобную проблему и избавиться себя от подобных рисков, можно использовать qemu – открытую систему эмуляции как на уровне “железа”, так и на UML, работающую только на Linux.
Установить qemu можно очень быстро и просто. Для этого не требуется пересборка ядра сервера. Для установки qemu достаточно открыть бинарный архив, распаковать его и добавить недостающие библиотеки. После чего qemu готов к вашим дальнейшим указаниям.
Но при работе с qemu есть серьезные недостатки: прежде всего это слишком большое потребление ресурсов при эмуляции на базе целой системы. Данный минус не позволяет qemu конкурировать с такой технологией как OpenVZ. Вторым серьезным минусов при использовании qemu является то, что данный эмулятор использует GUI и довольно не удобен в работе, особенно, если канал сервера недостаточно мощный.
Чтобы избавиться от перечисленных недостатков, можно запустить qemu в режиме терминала. Для этих целей можно воспользоваться двумя образами: мини-образ Linux Debian в состоянии режима basic setup и уже предустановленную FreeBSD с предусмотрительно поднятым ssh-сервером. Скачать эти образы и скрипты можно по ftp - ftp://dedic.ru/qemu/, а можно создать их своими силами.
Для дистрибутивов Linux нужно скачать ISO-образ дистрибутива, конечно же, лучше, если это будет mini-образ. Все остальные элементы можно ставить по сети. После чего данный образ устанавливаем во временную директорию с помощью опции loop. Забираем отсюда ядро vmlinuz и initrd.img. После чего запускаем qemu с этим ядром и inird, а с помощью дополнительных опций передаем вывод на консоль. После того как qemu запущен, можно работать с виртуальным сервером через консоль. Понятно, что в этом случае использование графического инсталлятора излишне.
Если у вас FreeBSD сервер, все выглядит гораздо проще: нужно только включить в конфигурации comconsole и выполнить ее настройку, а далее перенаправить ввод-вывод в stdin/stdout.
Чтобы получить доступ с виртуального сервера в сеть на физическом сервере нужно активизировать форвардинг:
echo 1 > /proc/sys/net/ipv4/ip_forward
и включить выход с подсетки 127.20.0.2 (это IP-диапазон виртуальных серверов):
iptables -t nat -A POSTROUTING -s 172.20.0.0/24 -d 0/0 -j MASQUERADE
Чтобы получить доступ к виртуальному серверу для одного из реальных IP физического сервера, нужно задать обратный проброс:
iptables -A FORWARD -d 172.20.0.2 -i eth0 -j ACCEPT
iptables -t nat -A PREROUTING -d реальный.ip.тут -p tcp -j DNAT –to-destination 172.20.0.2
По материалам сайта dedic.ru