Разворачиваем виртуальные сервера

Эта запись опубликована в рубрике [ Ubuntu ]

Привезли мне сегодня весьма мощный сервер и решил я поднять там несколько виртуальных серверов. Несколько IP адресов у меня имеется, так почему добро должно пропадать или простаивать? :)

В общем, поставил я и настроил OpenVZ под Ubuntu 8.04 LTS, о чем и хочу сегодня рассказать.

С самого начала нужно уяснить, что защита «Хост-сервера» – это основное, так как если злоумышленник получит доступ к нему, то все гостевые сервера будут скомпрометированы. Поэтому мы туда не ставим ничего лишнего. В идеале — OpenSSH и все.

1. Разметка файловой системы.

В принципе, разметка вся стандартная, то есть та, к которой Вы привыкли. За исключением одного раздела, где будут лежать все виртуальные машины «/vz». Он, естественно должен быть самым большим, так как там будут шаблоны виртуалок, сами гостевые сервера и т.п.

2. Установка ядра системы с виртуализацией.

Первое, что нам нужно — это установить ядро с поддержкой виртуализации и вычистить ненужное. Для этого запускаем

sudo apt-get install linux-openvz vzctl

Перезагружаемся с новым ядром и сносим лишнее серверное ядро.

sudo apt-get remove –purge –auto-remove linux-image-.*server

Теперь правим параметры ядра в /etc/sysctl.conf

# On Hardware Node we generally need
# packet forwarding enabled and proxy arp disabled

net.ipv4.conf.default.forwarding=1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.ip_forward=1

# Enables source route verification
net.ipv4.conf.all.rp_filter = 1

# Enables the magic-sysrq key
kernel.sysrq = 1

# TCP Explict Congestion Notification
#net.ipv4.tcp_ecn = 0

# we do not want all our interfaces to send redirects
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0

Применяем параметры ядра

sudo sysctl -p

Переносим все из /var/lib/vz в /vz и создаем симлинк на раздел

sudo mv /var/lib/vz /vz
sudo rm -f /var/lib/vz
sudo ln -s /vz /var/lib/vz

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

Установка гостевой системы абсолютно проста и прозрачна. Скачиваем образ системы с сайта http://openvz.org/download/template/cache/ (например, ubuntu) в каталог /vz/template/cache и пишем скрипт для более быстрого развертывания сервера.

#!/bin/bash

OT=’ubuntu-8.04-i386-minimal’ # Название файла шаблона
VEID=’101′ # номер виртуальной машины
VEIP=’192.168.0.101′ # IP виртуальной машины
VEHN=’virtual101.localnet’ # имя машины
VENS=’192.168.0.1′ # DNS

sudo vzctl create $VEID –ostemplate $OT
sudo vzctl set $VEID –ipadd $VEIP –save
sudo vzctl set $VEID –hostname $VEHN –save
sudo vzctl set $VEID –nameserver $VENS –save
sudo vzctl set $VEID –onboot yes –save
sudo vzctl set $VEID –numothersock 100 –save
sudo vzctl set $VEID –numtcpsock 100 –save
sudo vzctl set $VEID –numproc 150 –save
sudo vzctl set $VEID –vmguarpages 65536 –save # гарантированный объем 256Мб, в блоках по 4Кб
sudo vzctl set $VEID –privvmpages 131072 –save # максимальный объем 512Мб, в блоках по 4Кб
sudo vzctl start $VEID
sudo vzctl enter $VEID

После запуска скрипта у нас разворачивается виртуальный сервер с указанным IP и мы сразу попадаем на него.

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

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Post to Twitter Post to Delicious Post to Facebook Post to MySpace Post to Ping.fm

Оценить эту запись:
1 звезда2 звезды3 звезды4 звезды5 звезд
Метки: [ , , ]
Вы можете следить за ответами к этой записи через RSS 2.0 feed. Вы можете оставить мнение, или трэкбэк с собственного сайта.

9 комментариев(я)

  • 25.11.2008 08:17, www2 сказал:

    Настоятельно рекомендую воспользоваться vzctl версии 3.0.23. Только с его помощью можно настроить автоматическое включение veth-интерфейсов в бридж: http://vladimir-stupin.blogspot.com/2008/11/openvz-debian.html

    Кроме того, всё запустить в контейнерах не удастся. Нельзя запустить pppd, pure-ftpd без напильника, смонтировать SMB-шару: http://vladimir-stupin.blogspot.com/2008/11/openvz.html
    А мне очень хотелось настроить в отдельном VE роутер, а в другом VE файловый сервер на samba и pure-ftpd. Samba-сервер работает, но воспользоваться им внутри других VE нельзя :(

    • 15.03.2009 02:41, sHaggY_caT сказал:

      2 Www2: бридж и вообще Veth нужны далеко не всегда.
      Samba для файлообмена между *nix машинами, вообще, имхо, зло.

      Есть NFS .кстати, внутри контейнера сервер работает только в user-mode реализации

      Решение проблемы вижу таким: с файлопомойки, если это отдельный физический тазик, все монтируется в какой-нить /mnt/ на HN, а от туда делается
      mount –bind

      Вообще, это контейнеры) потрясающая вещь, но не стоит воспринимать ее как виртуальную машину)
      Поэтому, решение с mount –bind вполне себе удобно и красиво (команда прописывается в /etc/vz/conf/.mount)
      Думаю,что самбу-шару тоже можно сделать mount –bind

      Я вообще бы хотела юзать связку Xen/KVM + OpenVZ в DomU + несколько DomU с тем ПО, которое не запуститься в OVZ контейнере )

      2 автор блога

      Fatal error: Maximum execution time of 30 seconds exceeded in /var/www/client2/website35/web/wp-content/plugins/openid/Auth/OpenID/BigMath.php on line 255

      Поднимите лимиты в php.ini :)

      • 16.03.2009 15:59, www2 сказал:

        sHaggY_caT, привет.

        >Samba для файлообмена между *nix машинами, вообще, имхо, зло.

        Мне samba нравится больше NFS. NFS можно пользоваться без опаски лишь в локальной сети, где нет чужих машин. В ином случае UDP-сервер или клиент можно сравнительно легко подделать. У NFS есть режим с использованием TCP, да вот незадача, у машин могут не совпадать карты uid/gid и опять-таки кто-то может получить доступ куда не надо, правда уже в пределах моих машин. С samba я уверен в защите и могу смонтировать каталог с теми uid и gid, которые я укажу.

        >Решение проблемы вижу таким: с файлопомойки, если это отдельный физический тазик, все монтируется в какой-нить /mnt/ на HN, а от туда делается
        mount –bind

        Скажу более того, это официальное решение, но оно мне тоже не нравится. Я не хочу использовать HN для чего-то кроме как для хостинга VPS. В конце концов мы к безопасности стремимся или как? Если не стремимся к безопасности, тогда можно и на одном HN запустить все необходимые сервисы, к чему городить VPS’ы?

        >Я вообще бы хотела юзать связку Xen/KVM + OpenVZ в DomU + несколько DomU с тем ПО, которое не запуститься в OVZ контейнере )

        Я бы тоже. Только вот беда: сейчас в свежих ядрах возникли какие-то заморочки с Xen (точнее – dom0), KVM не позволяет использовать мой устаревший процессор (нету у него функций аппаратной поддержки виртуализации), а в OpenVZ не всё работает.

        Для Xen в режиме dom0 можно было бы воспользоваться NetBSD, а уж в domU запустить Linux с поддержкой OVZ. Но похоже, но недостатки этого решения, пожалуй, перевешивают все достоинства.

        В общем, нет в жизни счастья :’-(

        • 20.03.2009 13:26, sHaggY_caT сказал:

          в RHEL/CentOS в свежих ядрах, умеющих новое железо, с поддержкой Xen все очень хорошо, и будет хорошо до 2014года минимум)

          NetBSD, маргинальный ужас какой-то под дурацкой лицензией :)
          Понимаю, еще бы фря, такая же свободная от того, что бы быть свободной лицензия, но, хотя бы, эта ОС более-менее распространена, и хоть немного (мне и большинству нового поколения никсовых ИТ-ков) понятна…

          А зачем кастомерам давать какие-то смонтированные ресурсы?

          Я делаю mount –bind только для своих VE, кастомерам (которых пока нет) масимум что можно дать, это, имхо, ftp-аккаунт для backup’а)

          • 20.03.2009 13:46, www2 сказал:

            >в RHEL/CentOS в свежих ядрах, умеющих новое железо, с поддержкой Xen все очень хорошо, и будет хорошо до 2014года минимум)

            Угу. Только мне Red Hat не нравится. На работе ещё согласился бы попользовать, а дома в целях, связанных с хобби – увольте.

            >NetBSD, маргинальный ужас какой-то под дурацкой лицензией :)

            Маргиналы – это те, кто орёт про дурацкую лицензию и отсталость NetBSD.

            >Понимаю, еще бы фря, такая же свободная от того, что бы быть свободной лицензия, но, хотя бы, эта ОС более-менее распространена, и хоть немного (мне и большинству нового поколения никсовых ИТ-ков) понятна…

            Только вот незадача. Фря не умеет Xen dom0, а NetBSD – умеет. Про распространённость фри могу напомнить присказку: “Миллионы мух не могут ошибаться, в говне что-то есть.” Я не хочу обидеть фрю, она заслуживает уважения, но в качестве аргумента в её пользу приводить её распространённость это – гхмм…

            Про понятность поколению могу сказать: зачем ещё один клон линукса в виде фри? Вот NetBSD и DragonFly BSD не стремятся быть на кого-то похожими, ни за кем не гонятся и выглядят они значительно интереснее мэйнстрима.

            >А зачем кастомерам давать какие-то смонтированные ресурсы?

            Захотел я как кастомер, имеющий две VPS, с одной VPS экспортировать ресурсы на другую, а не могу – нужна помощь хостера. Хостер говорит – пшнах, не буду я через HN пробрасывать твои ресурсы, это не безопасно. Я сам себе хостер и кастомер, но для меня OVZ интересна прежде всего с точки зрения существенного увеличения безопасности.

            >Я делаю mount –bind только для своих VE, кастомерам (которых пока нет) масимум что можно дать, это, имхо, ftp-аккаунт для backup’а)

            Ну вот и всё выяснили. Вы давать не хотите, а кастомер сам себе – не может.

            • 20.03.2009 14:21, sHaggY_caT сказал:

              Почему столько людей не любит RedHat? Мне это никогда не было понятно :(

              NetBSD я не видела, может, она и белая и пушистая, и я не права, но так же, например, очень себе Ъ Plan9, но ее же в prodaction юзать нельзя, мне кажется, что и у NetBSD тоже не все хорошо с “ынтерпрайзнотустью”

              Для двух vps можно использовать ftp + fuse. Не пробовала, но, думаю, что получиться.
              Но у меня все на mount –bind + nfs.

              Что касается nfs, главное не монтировать то, что монтировать нельзя) или монтировать с ограниченными правами(ro, root_squash, например ))

              Мне тоже интересно, как построить безопасную сеть на *nix платформе, со всякими LDAP, но Samb’у для этого, мне кажется, использовать вообще нельзя.
              Не хотела бы показаться голословной, но M$ сам признает, что cifs отсталый и медленный протокол.
              Сейчас нет времени искать этот текст на сайте M$, но в их руководстве о Висте есть тезис о том, что старый cifs не мог использовать возможности гигабитных сетей, что новый вистовый это уже научился, но то, что виста медленно копирует файлы, говорят почти все знакомые пользователи этой ОС.

              • 20.03.2009 14:54, www2 сказал:

                >Почему столько людей не любит RedHat? Мне это никогда не было понятно :(

                Просто мне не нравится её пакетная система – только жёсткие зависимости, и зависимости от файлов, а не от пакетов определённых версий. Я давно на неё не смотрел, может уже даже что-то изменилось к лучшему.

                >NetBSD я не видела, может, она и белая и пушистая, и я не права, но так же, например, очень себе Ъ Plan9, но ее же в prodaction юзать нельзя, мне кажется, что и у NetBSD тоже не все хорошо с “ынтерпрайзнотустью”

                NetBSD как бы и не стремится к “ынтырпрайзу”. Её иногда используют в железячных файл-серверах, ну и как встраиваемую систему для всяких мелких контроллеров и прочего. Система – сильно традиционный Unix, очень компактный и чистый, с хорошо продуманной архитектурой.

                Samba, NFS и FUSE конечно не единственные решения. Всё зависит от задач. В зависимости от задачи могут подойти и такие вещи, как drdb, iSCSI, ATAoE, gmirror + ggated и может быть что-то ещё…

                • 20.03.2009 15:46, sHaggY_caT сказал:

                  Про drbd есть how-to в wiki openvz)

                  Я бы все-таки хотела как-то или ftp подружить с ldap, или сделать что-то еще в таком же духе)
                  Пока осторожно использую nfs. Даже user-mode реализация (unfsd) работает, тьфу-тьфу, очень хорошо, выдавая 70-90Mb/s в 100мегабитной сети, почти не потребляя ресурсов.

                  А что касается мягких зависимостей, а так ли они нужны?
                  Ну, можно в Debian/Ubuntu средствами пакетного менеджера сменить sendmail на postfix, но в RH это делается не сильно сложнее) если yum что-то не ставит, конфликтующий пакет всегда можно удалить)

                  Или собрать из rpm.src что-то свое) благо, что отсуствие мягких зависимостей делает сборку своих пакетов очень-очень простой)
                  а Спек rpm уже давно документирован, даже на русском языке

                  • 20.03.2009 15:59, www2 сказал:

                    >А что касается мягких зависимостей, а так ли они нужны?

                    Нужны. По крайней мере мне. И я думаю не мне одному.

                    >Или собрать из rpm.src что-то свое) благо, что отсуствие мягких зависимостей делает сборку своих пакетов очень-очень простой)

                    Не для того придумали мягкие зависимости, чтобы от них отказываться в пользу компиляции. Меня необходимость по каждому чиху что-то перекомпилировать не особо прельщает. Так начинаются каждые 9 из 10 статей про FreeBSD: “Вкомпилируем поддержку нужных нам модулей в ядро и перезагрузимся” или “Обновим дерево портов и перейдём в каталог порта XXX”. Модульный подход прогрессивнее монолитного, это я думаю ни один инженер оспаривать не станет.

                    >а Спек rpm уже давно документирован, даже на русском языке

                    Что-то мне подсказывает, что спеки на apt и deb созданы и переведены на русский раньше. Строго говоря deb многие годы уже не меняется: заложенных в него возможностей до сих пор хватает с лихвой. rpm и yum развивались под влиянием идей deb и apt.

                    (Обязательно)
                    (Обязательно, не публикуется)