Управление сервером OpenVZ (III)

Привет всем снова. Сегодня мы продолжим эту серию статей об администрировании OpenVZ. В предыдущий пост мы покрываем все, что связано с установка пользователя OpenVZ.

Итак, если все прошло хорошо, у нас уже должен быть наш сервер OpenVZ установлен и готов к работе с ним.

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

Создание контейнеров

контейнеры o электромобили Это виртуальные среды (виртуальные машины), которые мы будем создавать и управлять с помощью нашего сервера. OpenVZ. Для их создания нам нужен шаблон.

шаблоны это модель, из которой будет построен контейнер. Они содержат различные пакеты, необходимые для работы системы и некоторых основных приложений, а также все метаданные (кэш шаблонов) для сборки и настройки машины.

Есть шаблоны разных распределения de Linux. Некоторые из них официально поддерживаются, а другие вносятся сообществом.

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

Эти сжатые файлы мы будем загружать и из которых будем создавать наши собственные контейнеры. Таким образом, создание контейнеров стало намного быстрее и проще, чем раньше, когда кэш приходилось создавать вручную. Все, что вам нужно сделать сегодня, это загрузить файл выбранного вами дистрибутива с этой страницы:

http://openvz.org/Download/template/precreated

После загрузки мы сохраняем его в этом каталоге на нашем сервере:

/vz/template/cache

Теперь мы можем создать нашу контейнеры из установленных шаблонов. Первое, что нужно иметь в виду, это то, что каждый контейнер имеет связанный с ним числовой идентификатор, который служит для идентификации виртуальных сред, и что он не может повторяться на одном физическом хосте.

Кроме того, идентификатор должен быть больше 100, поскольку идентификаторы от 0 до 100 используются системой.

Для управления контейнерами самая важная команда - это vzctl. Для создания нового контейнера используется следующий синтаксис:

#vzctl create --ostemplate template --config config_file

В ostemplate мы помещаем название шаблона, который мы скачали ранее. Параметр config не является обязательным. В нем вы указываете имя файла с предопределенными конфигурациями для контейнеров.

Если мы его не укажем, придется складывать вручную. Файлы конфигурации находятся по адресу:

/etc/sysconfig/vz-scripts

Имена файлов имеют такую ​​структуру:

ve-nombre_config.conf-sample

Наиболее распространенным является basic (ve-basic.conf-sample). Мы можем использовать те, которые созданы по умолчанию, или сделать свои собственные. В любом случае все указанные значения могут быть изменены позже.

Например, чтобы создать контейнер с ID 101 из загруженного ранее шаблона debian и с использованием базовой конфигурации, мы выполняем:

#vzctl create 101 --ostemplate debian-6.0-x86 --config basic

Конфигурация контейнера

Теперь, когда мы создали наш контейнер, мы можем перейти к его настройке. Для этого мы используем следующий синтаксис:

#vzctl set --parametro valor --parámetro valor […]

Есть много параметров, которые мы можем настроить. Чтобы проконсультироваться с ними, мы все можем обратиться к руководству по vzctl (#человек) или в openvz вики.

Для того, чтобы мы могли их изменить, они остаются после выключения системы, мы должны добавить –save в конце команды. В противном случае это продлится только до следующего выключения.

Здесь мы объясним некоторые из самых основных команд:

Настройте контейнер для запуска при запуске компьютера или нет.
onboot [yes/no]

Укажите имя хоста компьютера
hostname

Добавьте IP-адрес к устройству. Они добавляются кумулятивно.
ipadd

Если мы хотим удалить любой из ранее настроенных, мы должны использовать:
ipdel dir_ip|all

Настройте адрес DNS-серверов. Вы можете использовать эту опцию несколько раз в одной команде для настройки нескольких серверов. Это приведет к перезаписи всех ранее настроенных серверов имен.
nameserver

Установите пароль для системного пользователя. Если его не существует, создайте его. Не рекомендуется использовать этот параметр вместе с другими. Не нужно использовать save с этим параметром.

userpasswd user:password

Указывает порядок, в котором машина запускается при запуске. Чем выше число, тем выше приоритет. Если он не настроен, считается, что он имеет самый низкий приоритет, и любой другой настроенный контейнер запускается первым.

bootorder

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

#vzctl set 101 --onboot yes --hostname virtualhost --ipadd 192.168.1.10 --nameserver 8.8.8.8 --nameserver 4.4.4.4 --save #vzctl set 101 --userpasswd root: 1234

Управление контейнером

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

Запустить контейнер
#vzctl start ID

Останавливает контейнер
#vzctl stop ID

Останавливает контейнер, не дожидаясь остановки всех его процессов
#vzctl stop ID --fast

Он сообщает нам состояние контейнера
#vzctl status ID

Уничтожьте контейнер. Прежде, чем это необходимо остановить.
#vzctl destroy ID

Вы входите в машину через командную строку, как если бы мы получили доступ по ssh.
#vzctl enter ID

Запустите команду внутри контейнера.
#vzctl exec ID comando

Перечислите контейнеры, активные на сервере. С помощью опции -a также перечислите задержанных.
#vzlist

На сегодня все. На этом мы завершаем самую основную часть администрирования OpenVZ.

В следующих статьях мы поговорим о более сложных процедурах, таких как управление ресурсами, выполнение Операции резервного копирования или использование шлепать.

А пока вы можете попробовать все, что мы объяснили до сих пор. Как всегда, оставляйте любые вопросы в комментариях и до скорой встречи. Долгой жизни и благополучия.


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   Elav сказал

    Отличная статья !! 😉

    1.    Kamisama666 сказал

      Большое спасибо!. Я очень счастлив, что смог опубликовать эти статьи. Я буду продолжать работать и сотрудничать, где я могу. Долгой жизни и благополучия.

  2.   OCZ сказал

    Очень интересные статьи об OpenVZ. Посмотрим, не посоветуете ли вы мне попробовать, я давно присмотрел за этим вопросом. Здесь я оставляю пару комментариев:

    Я совершенно не знаю, как работает OpenVZ, и один из самых больших вопросов, которые у меня возникают, - почему необходимо вручную настраивать конфигурацию сети для каждой машины. Не можете позволить ему получить его от DHCP-сервера? То есть, можете ли вы дать ему мост MAC +, а затем машины сами управляют собой для получения конфигурации сети? (Потому что в статьях об OpenVZ, которые мне удалось прочитать, он всегда настроен на IPv4, но как насчет IPv6?)

    Более того, если бы мне пришлось статически настраивать параметры сети, что плохого в том, чтобы делать это «изнутри» машины? И что это такое, чтобы назначить имя хоста от хоста? Короче говоря, мне это кажется избыточным и излишним, и я хотел бы знать, почему это необходимо или рекомендуется.

    Кстати, не знаю, собираетесь ли вы затронуть эту тему, но мне была бы интересна статья о безопасности и конфиденциальности при использовании OpenVZ. В VirtualBox я привык не «видеть» друг друга или хост, за исключением случаев, когда я хочу использовать сетевые или общие папки. Мне интересно, например, какой риск возникает при установке приманки с OpenVZ. Я комментирую это как идею на случай, если вы захотите об этом написать.

    1.    Kamisama666 сказал

      Я очень рад, что вам понравились сообщения, и рекомендую вам попробовать OpenVZ. Вы увидите, что управлять им невероятно легко.

      Что касается ваших сомнений, большинство из них связано с вещами, о которых мы еще не говорили. Но я дам вам небольшое введение, чтобы решить их.

      Первое, что вам нужно знать, это то, что в OpenVZ есть два типа конфигурации сети. Можно использовать Venet или veth. Первая похожа на частную сеть, то есть доступна только из контейнеров и физического хоста. В глазах других машин в сети это как будто их не существует. С другой стороны, veth - это виртуальная сетевая карта, которая заставляет контейнер работать как другой компьютер в сети, и к нему могут обращаться другие машины. Он также позволяет использовать более продвинутые параметры, такие как использование DHCP или настройки сети из контейнера.

      Что касается IPv6, оба режима его поддерживают. Вы можете без проблем использовать команду ipadd с адресом ipv6. Конечно, с Venet работают не все функции. Поскольку карта Venet не имеет связанного MAC, такие вещи, как обнаружение соседей или объявления маршрутизатора, не работают.

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

      Наконец, что касается безопасности, настоятельно рекомендуется использовать OpenVZ для создания приманок. OpenVZ полностью изолирует контейнеры от физической системы и выглядит реальным для злоумышленника. И все это при очень низком потреблении ресурсов. Это отличный вариант для создания приманок (хотя для него есть более простые и специализированные варианты).

      Надеюсь, я развеял ваши сомнения. Если у вас есть другие темы или темы, которые вы бы хотели, чтобы я затронул, не стесняйтесь говорить об этом. До скорой встречи. Долгой жизни и благополучия.

  3.   Габриель сказал

    Здравствуйте, эта серия сообщений очень хороша, я хотел проконсультироваться по следующему: я пытаюсь восстановить некоторые резервные копии некоторых контейнеров OpenVZ (некоторые файлы .tar), которые работают на хосте с Ubuntu Server, они выполняются со следующим команда:

    vzdump –suspend ID –mailto root –dumpdir / backups / file

    У этого хоста следующая версия: vzctl version 3.0.22
    Теперь идея состоит в том, чтобы восстановить эти контейнеры на сервере CentOS 6. При создании новых виртуальных машин у меня нет проблем, но я не могу найти способ восстановить эти резервные копии (в CentOS у меня есть следующая версия: vzctl версии 4.7.2)

    Я читал это:
    https://openvz.org/Quick_Installation_CentOS_6
    http://wiki.centos.org/HowTos/Virtualization/OpenVZ
    http://www.howtoforge.com/installing-and-using-openvz-on-centos-6.4-p2
    И, конечно, это будет пост 😉 😀

    Из того, что я видел, большинство из них говорят об использовании vzrestore или vzdump –restore, но я не могу заставить восстановление работать. (У меня нет vzrestore в CentOS 6 и у меня нет флага –restore в vzdump) Наверняка что-то ускользает от меня из-за отсутствия опыта в этой области 😛

    Вот и вопросы:
    Можно ли делать то, что я хочу? Любое препятствие?
    Как бы это сделать? Стоит ли как-то устанавливать взрестор?
    Рекомендация? Читаете?

    Спасибо за ваш вклад, привет

    1.    Kamisama666 сказал

      Привет, спасибо за комментарий.

      По поводу ваших вопросов в принципе проблем быть не должно. На самом деле, я помню, что столкнулся с этим давным-давно и решил это в то время. Но прямо сейчас у меня нет доступа к документации, которую я сделал для себя, и, поскольку я не касался ее в течение некоторого времени, я не могу вспомнить. Но не отчаивайтесь, я сейчас установлю машину с OpenVZ и решу это за вас через некоторое время. И так, кстати, может быть, я еще вернусь к этой серии постов, от которых я немного отказался.

      Долгой жизни и благополучия.

      1.    Габриель сказал

        Спасибо за ответ, буду очень признателен, если вы это увидите.
        (Кроме того, новые сообщения, которые могут появиться по этой теме, безусловно, очень полезны)

        Одна из вещей, которая привлекает мое внимание, заключается в том, что в CentOS 6.5, которую я устанавливаю, это инструменты, которые она устанавливает:
        vzcalc, vzcptcheck, vzctl, vzdqdump, vzeventd, vzifup-post, vzmemcheck, vznetaddbr, vzoversell, vzquota, vzstats, vzubc, vzcfgvalidate, vzcpucheck, vzdqmigzpltz-list, vzdqmigzpltz, vzdqmigzpltzplq, vzdqmigzpltz-list, vzdqmigzpltz

        Следуя инструкциям в официальной документации: https://openvz.org/Quick_Installation_CentOS_6
        И во флагах, которые я вижу в vzdqdump man, у меня нет флага –restore. Я также вижу, что в vzctl man у меня есть несколько флагов –snapshot *, но я не знаю, это то, что я ищу, и как именно их использовать.

    2.    Kamisama666 сказал

      Что ж, после борьбы с openvz и мучительной легкостью его документации, я думаю, что наконец понял это. На самом деле вам нужно использовать vzrestore, который поставляется вместе с vzdump. Но в CentOS они не устанавливаются и приходится делать это вручную. Процесс немного запутан (достаточно, чтобы удариться головой о клавиатуру), поэтому я импровизировал статью в своем блоге, который я недавно открыл.

      URL-адрес: https://kamisama666.github.io/2014/07/instalacion-vzdump-centos6/

      Надеюсь, я был вам полезен, вы расскажете мне, как все прошло. Да, и поскольку вы спросите, опция «моментальный снимок» работает только для контейнеров типа ploop, которые представляют собой другую форму хранения, чем обычно в openvz. Более интересны «приостановить» и «восстановить», которые могут сохранить состояние контейнера и восстановить его позже (но нет, это несовместимо с vzdump). В любом случае, чтобы посмотреть, смогу ли я заново опубликовать посты и поговорить об этих вещах.

      Долгой жизни и благополучия.

      1.    Габриель сказал

        Вы не представляете, за что я ценю этот пост. В понедельник я попробую и скажу вам, что с нетерпением жду, когда вы возобновите новую серию сообщений на эту тему. И, конечно, поделюсь вашим постом, который наверняка кому-то пригодится 😉 Расскажу, как прошел понедельник, привет.

    3.    Kamisama666 сказал

      Я рад, что это помогло вам. Фактически, поскольку пост был готов, я воспользовался этим и опубликовал его на desdelinux чтобы больше людей могли это увидеть. Вы можете найти это здесь:

      https://blog.desdelinux.net/vzdump-instalarlo-centos-6-5/

      Долгая жизнь и благополучие

  4.   Jcrisdro сказал

    Друг, у меня проблема с выполнением шагов настройки, вопрос в том, что с машины, на которой я настраиваю, моя новая виртуальная машина видна, а из сегмента сети ее нет, например:

    У меня есть сегмент 1. *, у моего хоста A - 1.50, а у новой виртуальной машины B - 1.201, с машины A я вижу B, но не с другого компьютера, подключенного к той же сети,

    Вы могли бы проиллюстрировать мне, что я терплю неудачу

  5.   Дарио сказал

    Отличная статья, и она мне очень помогла, теперь вопрос, у меня уже есть контейнер с шаблоном debian-7, и я хочу обновить его до того же контейнера debian-8, как мне это сделать?

    1.    Kamisama666 сказал

      Привет большое спасибо. Я был отключен от OpenVZ какое-то время, но я постараюсь помочь вам, насколько смогу.

      Прежде всего, я бы сказал вам, что, если возможно, вы рассмотрите возможность создания нового контейнера, а не шаблона Debian 8, и постепенного переноса данных и конфигурации из старого контейнера в новый. Затем вам просто нужно поставить IP старой машины на новую и исправить. Это самый простой и легкий способ.

      С другой стороны, если это невозможно по какой-либо причине, теоретически можно обновить дистрибутив из самого контейнера, как и на любой другой машине Debian. Но я слышал от людей, у которых были проблемы с этим, поэтому сначала попробуйте это с любым другим контейнером. И если у вас есть проблемы, вот пара сайтов, на которых рассказывается, как их решать (на английском языке):

      https://www.skelleton.net/2015/05/04/upgrading-debian-guests-on-proxmox-to-jessie/
      http://forum.openvz.org/index.php?t=msg&goto=51280&
      http://justinfranks.com/linux-administration/upgrade-openvz-vps-from-debian-7-wheezy-64-bit-to-debian-8-jessie-64-bit

      Особенно обратите внимание на первую, самую последнюю, которая объясняет вам все шаг за шагом.

      Конечно, прежде чем вносить какие-либо изменения в ваш контейнер в производственной среде, мне даже не нужно говорить вам, что нужно сделать резервную копию контейнера, холодного или горячего, в зависимости от ситуации, на случай, если что-то пойдет не так.

      Надеюсь, я помог. Долгой жизни и благополучия.

    2.    Kamisama666 сказал

      Привет большое спасибо. Я был отключен от OpenVZ в течение некоторого времени, но надеюсь, что смогу вам помочь.

      Прежде всего, если вас ничто не остановит, я рекомендую вам создать новый контейнер с шаблоном Debian 8 и перенести туда все конфигурации, данные и программное обеспечение. Как только все заработает, вам просто нужно изменить IP-адрес старого контейнера и поместить его в новый. Это действительно самый простой и быстрый способ.

      Если по какой-то причине это невозможно сделать, теоретически можно обновить дистрибутив из самого контейнера. Вам просто нужно сделать это, как на обычной машине Debian. Но я слышал от людей, у которых были проблемы, хотя этого не должно произойти, если вы будете обновлять ядро ​​хоста. В любом случае, лучшее, что вы можете сделать, - это попробовать выполнить обновление с помощью другого контейнера с помощью debian 7, чтобы убедиться, что это не создает проблем. И если вы их найдете, вот несколько страниц, на которых рассказывается, как это исправить (на английском языке):

      https://www.skelleton.net/2015/05/04/upgrading-debian-guests-on-proxmox-to-jessie/
      http://justinfranks.com/linux-administration/upgrade-openvz-vps-from-debian-7-wheezy-64-bit-to-debian-8-jessie-64-bit
      http://forum.openvz.org/index.php?t=msg&goto=51280&

      Особенно интересен первый, самый свежий и объясняющий все шаг за шагом.

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

      Надеюсь, я помог тебе. Долгая жизнь и благополучие

      1.    Дарио сказал

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

  6.   рамонцин сказал

    Привет хорошо, у меня ошибка с контейнерами openvz, и я не могу найти никакой логики. Увидев этот блог с частью комментариев, я запускаю здесь запрос на случай, если кто-то может мне помочь.

    Я без проблем установил openvz и без проблем создал контейнеры, смонтировал простой веб-сервис в одном из них и получил доступ.

    Дело в том, что при попытке выполнить обновление, например: »apt-get update» это говорит мне, что он не имеет связи с IP-адресами репозиториев и ничего не загружает, поэтому я не могу обновлять или устанавливать новые пакеты. Если вы пропингуете эти IP-адреса, что я пропущу?

    заранее спасибо

    1.    рамонцин сказал

      Здравствуйте еще раз.

      На ответ у меня ушло много времени, но решение я нашел давно и не хотел оставлять его в эфире.

      Проблема заключалась в основном в том, что я не очень умен, обычно это источник большинства моих проблем, у меня был nateo, который перенаправлял все, что приходило через порт 80, на обратный прокси-сервер, при выполнении обновления apt-get он запускал его, но ответы были перенаправлены указанной команде, правильная настройка iptables решает эту проблему, и все идет гладко, что логично.

      Спасибо за вклад в OpenVZ, это помогло мне довольно хорошо его настроить

      PS: Я узнал, что обновления производятся через порт 80, думал, что буду использовать случайный из 1000 ...

      Приветствие.