Если Вам в руки неожиданно попадается OpenVZ ранее установленный кем-либо то этот гайд как раз для вас! Подразумевается, что OpenVZ у Вас стоит на базе CentOS 6. Про чудо-юду на базе CentOS 7 я писать отказываюсь наотрез :)
Итак, начнем. Что такое OpenVZ - это технология позволяющая запустить несколько копий операционной системы Linux в пределах одного физического сервера.
Итак, получить список всех имеющихся на сервере виртуальных окружений (также будет использоваться термин "контейнеры") можно командой: vzlist
Выдача которой имеет примерно такой вид:
Что с ним можно сделать?
Выключить (но если настроена его автозагрузка после нее он запуститься вновь):
Итак, мы поняли как производить базовые операции с контейнерами.
Пройдемся по конфигам, стандартно конфигурации контейнеров хранятся по адресу /etc/vz/conf/CTID.conf, где CTID - идентификатор заданного контейнера. Конфиги довольно легки к пониманию и поддаются правке. После правки обычно требуется перезапуск: vzctl restart CTID.
Итак, но где же данные? Внимание! Сейчас они появятся. У OpenVZ используется две схемы размещения данных виртуального контейнера - ploop и simfs. Если у Вас ploop - это все усложняет и выходит за рамки статьи. В ploop данные хранятся в отдельном диске-образе и чтобы до них добраться нужно немного магии (магия простая - vzctl mount).
В случае же simfs данные доступны по адресу: /vz/private/CTID. Причем, вне зависимости от того, запущен контейнер или нет, все содержимое его жестких дисков находится там.
Теперь о том, как войти на контейнер OpenVZ. Тут два пути: обычный, силами ssh запущенного в виртуальном окружении и необычный - силами специальной команды.
Итак, необычный способ входа в OpenVZ контейнере следующий:
Теперь пару слов о багхантинге. Если Вы нашли эту статью, то явно с Вашим OpenVZ что-то не так!
Основные пути проверки проблем - это dmesg, в случае чего-то фатального о проблемах сообщит ядро. Второй частый историк проблем - исчерпание ресурсов внутри контейнера. Это можно зафиксировать стандартными утилитами free/top, но даже если они говорят, что все в порядке, Вам на помощь приходит файлик: /proc/bc/CTID/resources, в котором можно найти вот такое содержимое:
Ну вот, пожалуй, и все, что нужно знать про OpenVZ :)
Итак, начнем. Что такое OpenVZ - это технология позволяющая запустить несколько копий операционной системы Linux в пределах одного физического сервера.
Итак, получить список всех имеющихся на сервере виртуальных окружений (также будет использоваться термин "контейнеры") можно командой: vzlist
Выдача которой имеет примерно такой вид:
CTID NPROC STATUS IP_ADDR HOSTNAMEДля идентификации контейнеров используется так называемый идентификатор контейнера - CTID. Его требуется использовать, если нужно что-либо сделать с контейнером.
1001 182 running xx.xx.xx.xx domain.ru
1002 - stopped xx.xx.xx.xx second.domain.ru
Что с ним можно сделать?
Выключить (но если настроена его автозагрузка после нее он запуститься вновь):
vzctl stop 1001Запустить:
vzctl start 1001Отключить загрузку при запуске сервера (параметр --save необходим):
vzctl set 1001 --onboot no --saveКак искушенный системный администратор, явно вы будете использовать программы ps, lsof, top, netstat, ss и прочие на физическом сервере, где работает OpenVZ. Спешу Вас расстроить - эти утилиты не изолированы и будут показывать все процессы и все соединения принадлежащие всем виртуальным контейнерам на заданном сервере поэтому толку от этих программ не будет вовсе.
Итак, мы поняли как производить базовые операции с контейнерами.
Пройдемся по конфигам, стандартно конфигурации контейнеров хранятся по адресу /etc/vz/conf/CTID.conf, где CTID - идентификатор заданного контейнера. Конфиги довольно легки к пониманию и поддаются правке. После правки обычно требуется перезапуск: vzctl restart CTID.
Итак, но где же данные? Внимание! Сейчас они появятся. У OpenVZ используется две схемы размещения данных виртуального контейнера - ploop и simfs. Если у Вас ploop - это все усложняет и выходит за рамки статьи. В ploop данные хранятся в отдельном диске-образе и чтобы до них добраться нужно немного магии (магия простая - vzctl mount).
В случае же simfs данные доступны по адресу: /vz/private/CTID. Причем, вне зависимости от того, запущен контейнер или нет, все содержимое его жестких дисков находится там.
Теперь о том, как войти на контейнер OpenVZ. Тут два пути: обычный, силами ssh запущенного в виртуальном окружении и необычный - силами специальной команды.
Итак, необычный способ входа в OpenVZ контейнере следующий:
vzctl enter CTIDПосле этого Вам будет предоставлен доступ с root полномочиями в заднное виртуальное окружение так, как будто вы сидите напротив сервера и сидите с локальной консоли, разве что у Вас не будет запрошен никакой пароль. Выйти из этой консоли можно командой exit либо сочетание CTRL+D.
Теперь пару слов о багхантинге. Если Вы нашли эту статью, то явно с Вашим OpenVZ что-то не так!
Основные пути проверки проблем - это dmesg, в случае чего-то фатального о проблемах сообщит ядро. Второй частый историк проблем - исчерпание ресурсов внутри контейнера. Это можно зафиксировать стандартными утилитами free/top, но даже если они говорят, что все в порядке, Вам на помощь приходит файлик: /proc/bc/CTID/resources, в котором можно найти вот такое содержимое:
kmemsize 414620051 591908864 9223372036854775807 9223372036854775807 0Обращайте внимание на последний столбец, если в нем не нули, значит контейнер упирается в заданный ресурс. И нужно разобраться - почему и решить проблему либо же увеличить лимит заданного ресурса путем правки конфигурации контейнера.
lockedpages 4033 7339 8388608 8388608 0
privvmpages 1809462 3191128 9223372036854775807 9223372036854775807 0
shmpages 13839 15135 9223372036854775807 9223372036854775807 0
numproc 179 453 9223372036854775807 9223372036854775807 0
physpages 6182653 6479824 0 8388608 0
vmguarpages 0 0 8650752 9223372036854775807 0
oomguarpages 1344550 1532976 8388608 9223372036854775807 0
numtcpsock 852 13014 9223372036854775807 9223372036854775807 0
numflock 7 43 9223372036854775807 9223372036854775807 0
numpty 2 31 9223372036854775807 9223372036854775807 0
numsiginfo 0 639 9223372036854775807 9223372036854775807 0
tcpsndbuf 35976592 382477672 9223372036854775807 9223372036854775807 0
tcprcvbuf 29720624 287987552 9223372036854775807 9223372036854775807 0
othersockbuf 210392 6495528 9223372036854775807 9223372036854775807 0
dgramrcvbuf 0 661240 9223372036854775807 9223372036854775807 0
numothersock 144 957 9223372036854775807 9223372036854775807 0
dcachesize 309714841 310094288 9223372036854775807 9223372036854775807 0
numfile 5474 11610 9223372036854775807 9223372036854775807 0
numiptent 30 30 9223372036854775807 9223372036854775807 0
swappages 2372 2967 0 262144 0
Ну вот, пожалуй, и все, что нужно знать про OpenVZ :)
No comments :
Post a Comment
Note: only a member of this blog may post a comment.