![]() |
HOWTO. Создание виртуальных серверов. Gentoo + OpenVZ
В этом примере я не буду рассматривать другие ОС. По вопросам для других операционных систем обращайтесь к соответствующей документации.
Подразумевается, что на вашем сервере уже установлена ОС Gentoo Linux. Подробнее об установке: http://www.gentoo.org/doc/ru/handbook/handbook-x86.xml (32 битная система) http://www.gentoo.org/doc/ru/handbook/handbook-amd64.xml (64 битная система) Общие вопросы: http://www.gentoo.org/doc/ru/ В данном случае будет рассмотрен пример, когда у вас есть только 1 внешний IP адрес. В этом случае будет использоваться NAT. Для начала обновим дерево портежей. Код:
emerge --syncКод:
emerge openvz-sources(XXX - здесь будет ваша версия ядра. Используйте ls /usr/src для уточнения) Код:
cd /usr/src/linux-2.X.X-openvz-XXX.XXXЗапускаем конфигурацию ядра Код:
make menuconfigДалее будут указаны только ОСНОВНЫЕ параметры, которые я добавил на своем сервере. Часть информации о параметрах ядра на русском языке: http://wiki.kryukov.biz/wiki/Параметры_ядра_Linux PHP код:
Код:
make && make modules_installКопируем образ ядра в директорию загрузчика (на примере GRUB) Код:
cp arch/x86_64(x86 для 32-битных)/boot/bzImage /boot/kernel-openvzКод:
nano /boot/grub/grub.confТакже сделаем следующее. Вполне возможно, что в вашем ядре чего-нибудь будет не хватать (как обычно бывает))), и система выдаст cernel panic Это не проблема, если есть прямой доступ к серверу. Перезагрузили -> выбрали предыдущее ядро -> исправили ошибки-> перезагрузили. А если сервер недоступен - придется тревожить саппорт, который не всегда есть когда нужен. В этом случае укажем в grub.conf опцию panic=5, равно как и пропишем savedefault Теперь, если при загрузке нашего нового ядра возникнет kernel panic - система перезагрузится через 5 секунд с преждним, работающим ядром PHP код:
Перезагружаемся Код:
reboot |
Если все сделано верно, то вы должны загрузиться с новым ядром (приверяем: uname -s)
После этого продолжаем установку Устанавливаем vzctl Код:
emerge vzctlДобавляем vz в автозагрузку Код:
rc-update add vz defaultКод:
/etc/init.d/vz startПриступаем к созданию виртуальных машин. Фактически, все виртуальные сервера хранятся в директории /vz/private Создаем директорию для нашей машины Код:
mkdir /vz/private/100(берем здесь http://www.gentoo.org/main/en/mirrors.xml каталог /releases/amd64(или x86)/2008.0/stages/stage3-amd64-2008.0.tar.bz2 или тот, что остался от установки системы) Код:
tar -xjf stage3-i686-2008.0_beta2.tar.bz2 -C /vz/private/100Код:
vzctl set 100 --applyconfig vps.basic --save..и правим его nano /etc/vz/conf/100.conf, добавив в конце файла PHP код:
Код:
rm -f /vz/private/100/etc/mtabПри загрузке нам нужен только /proc Код:
echo "proc /proc proc defaults 0 0" > /vz/private/100/etc/fstabПравим /vz/private/100/etc/inittab. Закоментируем строки наших консолей PHP код:
Правим /vz/private/100/etc/shadow. Заменяем пароль root на ! , что не позволит использовать учетную запись. Позже его можно сменить командой vzctl set 100 --userpasswd root:password PHP код:
Удаляем checkroot и consolefont Код:
rm /vz/private/100/etc/runlevels/boot/checkrootПравим /vz/private/100/sbin/rc. Закоментируем строку PHP код:
PHP код:
В файле /vz/private/100/etc/conf.d/rc находим RC_DEVICES= и указываем значение PHP код:
Выходим из директории vz если вы там Код:
cd /Запускаем наш сервер Код:
vzctl start 100Код:
vzlistВсе в порядке? Заходим на него Код:
vzctl enter 100Смотрим vzctl --help для вариантов использования команды Для того, что бы на нашей ВМ была возможность устанавливать пакеты из порежей выполним следующее: Создадим директорию для портежей Код:
mkdir -p /vz/root/100/usr/portageКод:
mount -o bind /usr/portage /vz/root/100/usr/portageКод:
mount -n -o bind /usr/portage/distfiles /vz/root/100/usr/portage/distfilesТеперь установка пакетов возможно через emerge <пакет> Если все работает - переходим к реализации "вывода в мир" Устанавливаем на основной сервер iptables Код:
emerge iptablesРазрешаем ip форвардинг Код:
echo 1 > /proc/sys/net/ipv4/ip_forwardКод:
iptables -t nat -A POSTROUTING -s 192.168.0.101 -o <внешняя карта сервера> -j SNAT --to <внешний адрес сервера>Сохраняем параметры и добавляем iptables в автозагрузку Код:
/etc/init.d/iptables saveЕсли где-либо описался сильно не пинать ) Полезные ресурсы: wiki.openvz.org gentoo.org |
PHP код:
Значит что то не то делаешь ВМ стартуют? Работают? |
Интересная статья ))автору + )
|
ТС поправь Kernel, а так вполне неплохо - молодец!
|
Цитата:
|
| Время: 08:44 |