Как создать VDS-хостинг на своем сервере?

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

AMD Athlon X2 6400+
8GB RAM
SATA HDD 320GB + 4xSAS HDD 1GB

В качестве основной системы выбрана Fedora 14 RFRemix.

1. Установка основной системы.

Существуют различные варианты установки. Самый простой - загрузить образ диска, например, с ftp://ftp.yandex.ru/fedora/russianfedora/releases/14/RFRemix/x86_64/
Можно воспользоваться сетевой установкой оттуда же.

Нас интересует минимальная установка системы.

Разметка диска выполняется при установке системы, в графическом интерфейсе.

Выделяем 2048 Мб для загрузочного раздела (/boot), форматируем в ext3 (Важно! с ext4 система не загрузится)
На остальном свободном месте создаем LVM с именем VIRT
Создаем в этом LVM раздел для корня системы (/) - 20 Гб ext4 и раздел подкачки (swap, по размеру оперативной памяти)
Оставшееся место оставляем неразмеченным - там будут создаваться диски виртуальных серверов.

Устанавливаем систему в конфигурации Минимальная.

2. Настройка после установки.

Включаем автозапуск сети:

chkconfig network on
/etc/init.d/network start

Устанавливаем утилиту screen для возможности создания именованных сессий, а также набор утилит для работы с сервером и сетью:

yum install screen mc vim wget tcpdump ntp ntpdate man smartmontools ethtool

Запускаем службу синхронизации времени по сети в автоматическом режиме:

chkconfig ntpd on
chkconfig ntpdate on
/etc/init.d/ntpdate start
/etc/init.d/ntpd start

Отключаем SELinux, чтобы не мешал:
файле /etc/selinux/config приводим в такой вид:

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted

Устанавливаем пакет для проброса графической сессии через ssh:

yum install xorg-x11-xauth

Обновляем систему до последних версий пакетов:

yum update

Отключаем фаервол и вывод предупреждений в консоль, чтобы не мешали:

/etc/init.d/iptables stop
chkconfig iptables off
/etc/init.d/ksmtuned stop
chkconfig ksmtuned off

Система готова к установке xen.

3. Установка XEN

Для начала, устанавливает средства и библиотеки разработки:

yum groupinstall "Development Libraries"
yum groupinstall "Development Tools"

и набор пакетов, необходимых для сборки xen

yum install transfig wget texi2html libaio-devel dev86 glibc-devel e2fsprogs-devel gitk mkinitrd iasl xz-devel bzip2-devel pciutils-libs pciutils-devel SDL-devel libX11-devel gtk2-devel bridge-utils PyXML qemu-common qemu-img mercurial
yum install glibc-devel.i686

Далее ставим сам xen:

yum install xen

4. Пересборка ядра системы для работы в роли dom0 (контроллера домена виртуальных серверов)

Вытаскиваем исходники по git:

git clone git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git linux-2.6-xen
cd linux-2.6-xen
git checkout -b xen/stable-2.6.32.x origin/xen/stable-2.6.32.x

git log | less

Конфигурируем ядро на базе текущей конфигурации:

make oldconfig

Собственно, сборка ядра:

make clean
make -j2 bzImage && make -j2 modules

Здесь после j нужно указать реальное количество ядер процессора. У меня 2.

После успешной компиляции ядра, собираем модули и инсталлируем ядро. У меня версия ядра вышла 2.6.32.27, если выйдет другая - правим пути на нужную версию.

make modules_install
depmod -a 2.6.32.27
cp -a arch/x86/boot/bzImage /boot/vmlinuz-2.6.32.27
cp -a System.map /boot/System.map-2.6.32.27
cp -a .config /boot/config-2.6.32.27
cd /boot
dracut initramfs-2.6.32.27.img 2.6.32.27

Последняя команда может поругаться немного, это не страшно.

5. Правим загрузчик.

В /etc/grub.conf (или же /boot/grub/grub.conf) вставляем первым ядром наше свежесобранное:

title Fedora Xen 4.0 with Linux 2.6.32.27 pvops dom0
root (hd0,0)
kernel /xen.gz dom0_mem=1024M loglvl=all guest_loglvl=all
module /vmlinuz-2.6.32.27 ro root=/dev/mapper/VIRT-lvroot nomodeset
module /initramfs-2.6.32.27.img

root=/dev/mapper/VIRT-lvroot должно совпадать с root ядра (ядер), которые уже прописаны в загрузчике.

Всё, можно делать reboot.

6. Устанавливаем менеджер виртуальных серверов.

yum install virt-manager libvirt virt-viewer
chkconfig libvirtd on
/etc/init.d/libvirtd start

Создаем мост, чтобы виртуальные сервера получили сеть:

/etc/xen/scripts/network-bridge start bridge=eth0bridged netdev=eth0

Создаем диск первого виртуального сервера (назовем его fedora14, размером 20Гб, размещаем в свободном месте нашего LVM):

lvcreate -nfedora14 -L20G /dev/VIRT

После чего переходим на основной компьютер, запускаем ssh-клиент, пробрасываем X11 и запускаем

virt-manager &

Появится экран менеджера виртуальных серверов. При создании нового сервера нужно обратить внимание на настройку его виртуальной сети. Она должна использовать созданный сетевой мост eth0bridged. IP-адрес виртуального сервера выставляется как обычно, в его операционной системе.

Нюансы X11 через ssh:

Под Linux запускаем ssh -X 192.168.0.1 (вместо указанного подставить ваш адрес сервера)

Под Windows необходимо поставить X-сервер. Простейший вариант - XMing (http://sourceforge.net/projects/xming/files/)
В инсталлятор входит Putty. Ставить можно с параметрами по умолчанию. После установки запустить Putty, в разделе SSH-X11 поставить галочку возле "Включить переадресацию Х11", в поле "Отображение дисплея" ввести 127.0.0.1:0, протокол MIT-Magic-Cookie-1. После этого на вкладке Окно-Кодировка выбрать UTF-8 и сохранить сеанс.

На этом всё. Вся процедура установки у меня заняла порядка часа. Сейчас на машине крутятся 2 сервера - Fedora14 и Windows-2008. Аптайм пока что трое суток. При необходимости создание нового сервера займет считанные минуты. Чего и вам желаю.
+3
http://ayauho.com//How-to-create-VDS-hosting-on-your-server http://ayauho.com//How-to-update-status-in-twitter-with-PHP