Керування сервером OpenVZ (III)

Знову привіт всім. Сьогодні ми продовжимо з цією серією статей про адміністрування OpenVZ, У Росії попереднє повідомлення ми охоплюємо все, що пов’язано з установка від OpenVZ.

Отже, якщо все пройшло добре, ми вже повинні мати свій сервер OpenVZ встановлений і готовий до роботи з ним.

Сьогодні ми поговоримо про все, що стосується адміністрування контейнери, як його створення, так і конфігурацію та управління.

Створення контейнерів

L контейнери o Ви Це віртуальні середовища (віртуальні машини), які ми створюватимемо та керуватимемо за допомогою нашого сервера OpenVZ. Для їх створення нам потрібно мати шаблон.

L Шаблони вони є моделлю, з якої буде побудований контейнер. Вони містять різні пакети, необхідні для роботи системи та деяких основних програм, а також усі метадані (кеш шаблону) для побудови та налаштування машини.

Є шаблони різних розподіли de Linux. Деякі з них офіційно підтримуються, а інші - внесками громади.

Найпростіший спосіб отримати їх - скористатися одним із попередньо створені шаблони. Вони були отримані шляхом створення контейнера з шаблону, а потім упаковки у файл gzip.

Ці стиснуті файли будуть тими, які ми завантажимо і з яких ми створимо власні контейнери. Таким чином, створення контейнерів відбувається набагато швидше і простіше, ніж у минулому, коли кеш потрібно було генерувати вручну. Все, що вам потрібно зробити сьогодні, - це завантажити файл вибраного вами дистрибутива з цієї сторінки:

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

Після завантаження ми зберігаємо його як у цьому каталозі нашого сервера:

/vz/template/cache

Тепер ми можемо створити наш контейнери з встановлених шаблонів. Перше, про що слід пам’ятати, це те, що кожен контейнер пов’язаний із числовим ідентифікатором, який використовується для ідентифікації VE, і що його не можна повторити в одному фізичному хості.

Крім того, ідентифікатор повинен бути більше 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). Ми можемо використовувати ті, які створені за замовчуванням, або зробити власні. У будь-якому випадку, всі зазначені значення можуть бути змінені пізніше.

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

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

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

Тепер, коли ми створили наш контейнер, ми можемо перейти до його налаштування. Для цього ми використовуємо такий синтаксис:

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

Є багато параметрів, які ми можемо налаштувати. Щоб проконсультуватися з ними, ми всі можемо перейти до посібника vzctl (# людина vzctl) або до openvz вікі.

Щоб ми могли змінити зміни, які ми робимо, вони залишаються після вимкнення системи, ми повинні додати –зберегти в кінці команди. Якщо ні, це триватиме лише до наступного вимкнення.

Тут ми пояснимо деякі найосновніші команди:

Налаштуйте контейнер для запуску, коли комп'ютер запускається чи ні.
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.   елав - сказав він

    Відмінна стаття !! 😉

    1.    Камісама666 - сказав він

      Дуже дякую!. Я дуже рада, що змогла опублікувати ці статті. Я продовжуватиму наполегливо працювати і співпрацювати там, де зможу. Довго життя та процвітання.

  2.   OCZ - сказав він

    Дуже цікаві статті про OpenVZ. Давайте подивимось, чи заохочуєте ви мене спробувати, я давно стежив за цим питанням. Тут я залишаю пару коментарів:

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

    Більше того, якщо мені довелося статично налаштовувати мережеві параметри, що поганого в тому, щоб робити це зсередини машини? І що це таке, щоб призначити ім'я хосту від хоста? Коротше кажучи, це здається мені зайвим і зайвим, і я хотів би знати, чому це потрібно чи рекомендується.

    До речі, я не знаю, чи збираєтесь ви торкатися цього питання, але мені буде цікава стаття про безпеку та конфіденційність при використанні OpenVZ. У VirtualBox я звик не "бачити" один одного або з хостом, за винятком випадків, коли хочу через мережу або спільні папки. Мені цікаво, наприклад, який ризик є у створенні каструлі з OpenVZ. Я коментую це як ідею на випадок, якщо ви хочете про це написати.

    1.    Камісама666 - сказав він

      Я дуже радий, що вам подобаються публікації, і я закликаю вас спробувати OpenVZ. Ви побачите, що керувати ним неймовірно просто.

      Щодо ваших сумнівів, більшість пов’язані з речами, про які ми ще не говорили. Але я дам вам невеликий вступ для їх вирішення.

      Перше, що ви повинні знати, це те, що в OpenVZ існує два типи конфігурацій для мережі. Можна використовувати Venet або Veth. Перший подібний до приватної мережі, тобто доступний лише з контейнерів та фізичного хоста. В очах інших машин в мережі ніби їх не існує. З іншого боку, veth - це віртуальна мережева карта, яка змушує контейнер працювати як інший комп'ютер у мережі, і до нього можуть отримати доступ інші машини. Це також дозволяє більш розширені опції, такі як використання DHCP або мережеву конфігурацію всередині контейнера.

      Щодо IPv6, обидва режими підтримують його. Ви можете використовувати команду ipadd з адресою ipv6 без проблем. Звичайно, з venet працюють не всі функції. Оскільки карта venet не має пов'язаного MAC, такі речі, як виявлення сусідів або реклама маршрутизатора, не працюють.

      Щодо того, що вам потрібно налаштовувати характеристики зовні, на мій погляд, це спосіб полегшити роботу адміністраторів. Це дозволяє вам легко змінювати характеристики і може автоматизувати його майже без зусиль. І, як я вже згадував у статті, ви можете створити власну модель конфігурації, з якої можна створювати машини, таким чином усуваючи багато головних болів.

      Нарешті, щодо безпеки настійно рекомендується використовувати OpenVZ для створення медових банок. OpenVZ повністю ізолює контейнери від фізичної системи і представляється реальним для зловмисника. І все це при дуже низькому споживанні ресурсів. Це чудовий варіант для побудови медоносних каструль (хоча для цього існують і більш прості, і конкретно сфокусовані варіанти).

      Сподіваюся, я вирішив ваші сумніви. Якщо у вас є якась інша або будь-яка тема, яку ви хотіли б, щоб я обговорив, не соромтеся це сказати. До зустрічі. Довго життя та процвітання.

  3.   Габріель - сказав він

    Привіт, ця серія дописів дуже хороша, я хотів проконсультуватися з наступним: я намагаюся відновити деякі резервні копії деяких контейнерів OpenVZ (деякі файли .tar), які працюють на хості з сервером Ubuntu, вони виконують наступне команда:

    vzdump –ідентифікатор призупинення –пошта до кореня –dumpdir / резервні копії / файл

    Цей хост має таку версію: vzctl версія 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
    І звичайно це був би пост a 😀

    З того, що я бачив, більшість з них говорили про використання vzrestore, або vzdump –restore, але я не можу змусити відновлення працювати. (У мене немає vzrestore в CentOS 6, а також у мене немає прапора –restore у vzdump) Звичайно, щось мені уникає через відсутність досвіду в цьому питанні 😛

    Ось питання:
    Чи можна робити те, що я хочу? Будь-яка перешкода?
    Яким би був спосіб це зробити? Чи слід якось встановлювати vzrestore?
    Рекомендація? Читання?

    Дякую за ваш внесок, вітаю

    1.    Камісама666 - сказав він

      Привіт, дякую за ваш коментар.

      Щодо ваших питань, в принципі не повинно бути проблем. Насправді, я пам’ятаю, що давно зіткнувся з цим і на той час це вирішив. Але зараз у мене немає доступу до документації, яку я зробив для себе, і, оскільки я її не торкався деякий час, не можу згадати. Але не впадайте у відчай, я за мить збираюся встановити машину з OpenVZ і через деякий час вирішу її для вас. І тому, до речі, можливо, я повернусь до цієї серії дописів, від якої я трохи відмовився.

      Довго життя та процвітання.

      1.    Габріель - сказав він

        Дякую за вашу відповідь, я був би дуже вдячний, якщо ви зможете її побачити.
        (Крім того, нові публікації, які можуть з’явитися на цю тему, безумовно, дуже корисні)

        Одне з того, що мене вражає, це те, що в CentOS 6.5, який я встановлюю, це інструменти, які він встановлює:
        vzcalc, vzcptcheck, vzctl, vzdqdump, vzeventd, vzifup-post, vzmemcheck, vznetaddbr, vzoversell, vzquota, vzstats, vzubc, vzcfgvalidate, vzcpucheck, vzdqqcheck, vzmigt-vzmigplqznet, vzmgzgltzp

        Виконуючи кроки в офіційній документації: https://openvz.org/Quick_Installation_CentOS_6
        А у прапорах, які я бачу в vzdqdump man, я не маю прапора відновлення. Я також бачу, що у vzctl man у мене є кілька прапорів –snapshot *, але я не знаю, чи це те, що я шукаю, або як їх точно використовувати.

    2.    Камісама666 - сказав він

      Що ж, після боротьби з openvz і болісною легкістю документації, я думаю, нарешті це зрозумів. Вам насправді потрібно використовувати vzrestore, який постачається в комплекті з vzdump. Але в CentOS вони не встановлені, і ви повинні робити це вручну. Процес трохи заплутаний (достатньо, щоб вдарити головою об клавіатуру), тому я імпровізував статтю в своєму блозі, який нещодавно відкрив.

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

      Сподіваюся, мені допомогли, ти скажеш мені, як це пройшло. О, і оскільки ви запитуєте, параметр "моментальний знімок" працює лише для контейнерів типу ploop, що є іншою формою зберігання, ніж зазвичай у openvz. Більш цікавим є "suspend" і "restore", які здатні зберегти стан контейнера і відновити його пізніше (але ні, це не сумісно з vzdump). У будь-якому випадку, щоб подивитися, чи не відреагую я на повідомлення та поговорю про ці речі.

      Довго життя та процвітання.

      1.    Габріель - сказав він

        Ви не уявляєте, що я ціную цей пост. У понеділок я спробую це сказати, я з нетерпінням чекаю вашого відновлення нової серії дописів на цю тему. І звичайно, я збираюся поділитися вашим дописом, що, напевно, комусь ще він знайдеться корисним.

    3.    Камісама666 - сказав він

      Me aligro de que te haya servido de ayuda. De hecho, ya que tenía el post hecho, he aprovechado y lo he publicado también en desdelinux para que lo vea más gente. Lo puedes encontrar aquí:

      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.    Камісама666 - сказав він

      Привіт, дякую вам. Я був відключений від 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.    Камісама666 - сказав він

      Привіт, велике спасибі. Я був відключений від 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», це говорить мені, що він не має зв’язку з ips репозиторіїв і нічого не завантажує, тому я не можу оновлювати або встановлювати нові пакети. Якщо ви пінгуєте ці ips, чи є щось, за чим я сумую?

    Спасибі заздалегідь

    1.    рамонцин - сказав він

      Привіт знову.

      Мені знадобилося багато часу, щоб відповісти, але я давно знайшов рішення і не хотів залишати його в ефірі.

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

      Дякуємо за вхід на OpenVZ, це допомогло мені досить добре його налаштувати

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

      Привітання.