Как правильно делать Migration на Parallels Virtuozzo Containers 4.0 под Linux

Обоснованно на личном опыте.

  1. Первое правило хорошего админа – делаем Backup.
  2. Рекомендую. Обновить virtuozzo на обеих серверах.
  3. Обязательно! Обновить Контейнер и Template для него.
  4. Чтобы не было мучительно больно делаем Clone для Контейнера (необходимо свободное место на диске исходного сервера).
  5. Делаем Migration для клона и проверяем всё ли нормально заработало.
  6. И только потом делаем Migration для самого контейнера.

Так бывает, что некоторые системные файл в контейнере становятся недоступными. Нету этих файлов и в бакапах. Зато есть в Template.

Новый формат шаблонов под Linux который появился в четвёртой версии Виртуозы: EZ Templates (Дока) подразумевает, что common пакеты будут представлены во всех производных контейнерах в виде ссылки на файлы из Шаблона.

Файлы эти хранятся в виде кеша в папке /vz/template/cache/

Только вот Migration необходимые файлы из Шаблона не переместит. Как пишут в форуме на http://forum.parallels.com/ это какой-то неведомый баг в самом Migration который тянется ещё из бох знает какой версии и так быть не должно. Но оно так.

Как результат наша перемещённая WM наполнена битыми ссылками и кучей нерабочих сервисов. Не помогает ни обновление самого контейнера, ни обновление Шаблонов. Не получилось у меня починить такую VM и другими способами. Дело в том, что такие «волшебные файлы» удалить не получиться.

Немного из результата выполнения команды ls -la /etc/apache2/mods-available/

.
.
ls: cannot access /etc/apache2/mods-available/negotiation.load: No such file or directory
ls: cannot access /etc/apache2/mods-available/dir.load: No such file or director
total 32
drwxr-xr-x 2 root root 4096 2009-11-14 13:56 .
drwxr-xr-x 7 root root 1404 2010-01-28 14:13 ..
.
.
?????????? ? ? ? ? ? deflate.conf
?????????? ? ? ? ? ? deflate.load
-rw-r--r-- 1 root root 122 2008-10-01 18:32 dir.conf
?????????? ? ? ? ? ? dir.load
-rw-r--r-- 1 root root 604 2008-10-01 18:32 disk_cache.conf

Решение проблемы с рассинхронизации шаблонов

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

# rsync -avz -e ssh /vz/template/debian DESTANETION_IP:/vz/template

  • пути заменить на свои
  • DESTANETION_IP – заменить на адрес второго сервера

На второй виртуозе выполняем:
# vzpkg update cache debian-4.0-x86_64
debian-4.0-x86_64 заменить на имя вашего шаблона.

Сначала проверяем на клоне.
Потом перемещаем боевой сервер.

  • 28.01.2010

…и другиее проблемы с Qmail в Plesk

Sorry. Although I'm listed as a best-preference MX or A for that host,
it isn't in my control/locals file, so I don't treat it as local. (#5.4.6)

На самом деле в моём случае произошло отключение домена за неуплату. Потребовалось просто реактивировать домен через панельку. Но причин может быть множество. Очень хорошая статья с обзором всех возможных вариантов в виде KB для плеска (правжа на английском):

I’m sending mail but I receive a bounce message with an error.

  • 22.09.2009

Проблема множества одновременных соединений (С10K Problem)

Linux 2.6

Как известно, по умолчанию tcp/ip в Linux 2.6 настроен на довольно высокую пропускную нагрузку.
Если предельное количество соединений для службы устанавливаться в раёне одной тысячи, а ресурсов системы более чем предостаточно поискать причину можно вот в какой месте:

Рассмотрим конкретный пример.

Служба состоит из двух частей front-end и back-end
Front часть устанавливает соединение в любом случае, но после приблизительно 1000 активных подключений соединения эти не доходят до back части.
Дело всё в том, что по tcp обещаться только front-end, а связка front-back работала на UNIX сокетах. Причём каждое подключение порождает открытие дополнительного UNIX сокета.
Кто знаком с UNIX сокетами знает, что каждый такой сокет требует создание отдельного дискриптора файла. А в linux есть явное ограничение открытых файлов для процесса. По умолчанию это 1024.

Проверить можно так:

# количество открытых Unix сокетов для демона back
$ netstat -ux -p|grep back|wc -l

# количество открытых Unix сокетов в системе
$ netstat -ux -p|wc -l

# количество открытых tpc сокетов для демона front
$ netstat -tnp|grep front|wc -l

# количество открытых tpc сокетов в системе
$ netstat -tnp|wc -l

Везде нужны права root
Снять ограничение можно здесь:

/etc/security/limits.conf

demonusername            soft    nofile   2048
demonusername            hard    nofile   2048
  • demonusername - имя пользователя с правами которого запускаться демон, использующий Unix сокеты. Можно устанавливать огриначение для группы (@demonusername) или для всех (*)
  • Параметры soft и hard используються для установки мягкого и жесткого лимита соответственно. soft может быть изменен в самой программе. hard может быть изменен только суперпользователем.
    ВНИМАНИЕ! Необходима установка и soft и hard ограничения.
  • 2048 – собственно ограничение.

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

Далее необходим ребут, чтобы преинициализировать ядро.

Ссылки на полезные статьи:
http://www.kegel.com/c10k.html

  • 8.09.2009

Virtuozzo не обновляет ключи

Началось всё с того, что однажды перестала обновляться лицензия програмного продукта: Parallels Virtuozzo Containers 4.0

При попытке переустановить лицензию выскочила следующая ошибка:
KA server is not available: activatefailed: Can't connect to server ka.swsoft.com:5224

Проблема скажем с обновлениями может иметь аналогичную причину.

В этом случае правильнее всего было проверить настройки DNS на хост машине.

# nslookup ka.swsoft.com

Server:         81.200.0.1
Address:        81.200.0.1#53
 
Non-authoritative answer:
*** Can't find ka.swsoft.com: No answer

Получаем новые DNS у провайдера (в моём случае они просто работали с ошибками – пришлось искать другие).

Обновляем /etc/resolv.conf.
Перезагружается потому, что демон лицензий висит в отдельном контейнере и изменения настроек не заметит.
Всё работает.

Information:The license has been installed successfully.

По теме:
http://www.parallels.com/products/virtuozzo/

  • 1.09.2009

FakeRAID, ещё одна байка с плохим концом

Конфигурация.

Сервер: Серверы HP ProLiant
Контролер: Встроенный ICH9
Дисковая подсистема: 2 SATA диска в 250 Gb (RAID 1 mirror)
Операционная система: SUSE
Фактическая реализация raid на уровне ОС: DMraid

Хронология событий

Умирает второй диск.
SUSE начинает ругаться многочисленными ошибками в MFT и требует запустить fsck

Aug 23 06:12:27 xxx kernel: EXT3-fs error (device sda1): ext3_lookup: unlinked inode 2465708 in dir #2301537
Aug 23 06:12:27 xxx kernel: EXT3-fs error (device sda1): ext3_lookup: unlinked inode 2465707 in dir #2301550
Aug 23 06:12:28 xxx kernel: EXT3-fs error (device sda1): ext3_lookup: unlinked inode 2465723 in dir #2301550
Aug 23 06:12:28 xxx kernel: EXT3-fs error (device sda1): ext3_lookup: unlinked inode 2465819 in dir #2301555
Aug 23 06:12:28 xxx kernel: EXT3-fs error (device sda1): ext3_lookup: unlinked inode 2466064 in dir #2465286

По глупости запускаеться fsck.
на выходе получаем множество жизненоважных файлов с нулевым размером.
(Напомню файлы с нулевым размером восстанавливать кране тяжко и совсем не быстро)

Результат:
1) Критически важное приложение
2) 1 мёртвый диск
3) второй диск с неработающей системой и битыми данными

Хорошё если есть рабочие бакапы.
Купить новый диск, востановились архив – два часа простоя.
Вот такая вот история.

Как нужно было делать с самог начала

Будет такая штука Adaptec RAID 2405
И 3 диска: Два в зеркало и однин в Hot spare, чтобы не пришлось бегать в магазин)

  • 24.08.2009

Software RAID под Ubuntu 9.04

Не так давно появилась новая версия не безызвестного дистрибутива Ubuntu 9.04, а с ним и новые проблемы.

Топик касается установки linux на все виды софтового рейда(DM-RAID/fakeRAID) и последующей загрузки с этих разделов.
Проблема точно существует для RAID, построенных на dmraid и mdadm.
(далее…)

Подсчёт колличества вложенных папок и файлов для Linux

Написал маленький скрипт для bash который считает колличество вложенных папок и файлов, иначе говоря nodes файловой файловой системы

nodes.sh
#!/bin/bash
for dir in `find $1 -maxdepth 1 -type d`;
do
printf "%-8s%s\n" $[ `find $dir \! -name "." | wc -l` - 1 ] $dir;
done

RHL Самоуничтожился

Сегодня ночью пытались установить gcc на 9ый RHL.
Чтобы процес шёл веселее решили для начала установить apt.
Раз дело происходит на Red Hat для установки был использован RPM
После установки atp попросил пофиксить зависимости.
Вот что получилось:
(далее…)