Совместное использование дисковых томов через гостей OpenVZ для сокращения управления Пакетом Наверху

Хм... Крешлог показывает, что bootpd выполняет функцию под названием PLCache_read, который копирует строку и который, так или иначе, вызывает переполнение буфера. (Кстати, похоже, что источник к bootpd доступен здесь.)

Мое предположение - то, что bootpd читает плохой файл конфигурации или получает неправильные данные по сети. Я попытался бы работать:

sudo fs_usage -w bootpd

и посмотрите, дает ли это какой-либо ключ к разгадке относительно источника проблемы.

Ясно, что у кого-то еще была эта проблема, но, не быть зарегистрированным, я понятия не имею, получили ли они полезный ответ. Перемещение/etc/bootpd.plist могло бы помочь.

А-ч, Вы нашли ответ, в то время как я вводил это. Ну, я отправлю этот ответ так или иначе; возможно, это будет полезно для кого-то еще.

1
задан 2 July 2012 в 21:36
2 ответа

Судя по комментариям, вопрос немного отличается от того, что я (и, возможно, другие) ожидал: использование слова «поддерживать» относится не к пакетам внутри контейнеров, а к их индивидуальная конфигурация.

Это делает процесс более сложным, но все же возможным. Например:

Монтирование каталогов

Как вы сказали, вам нужно будет совместно использовать монтирование для двоичных файлов (например, / usr / bin ), что будет первым шагом в гарантируя, что они могут совместно использовать все пакеты - это позволит установленным двоичным файлам быть легко доступными для всех других контейнеров.

Вы должны убедиться, что при mount --bind - вы делаете это на каталог ROOT в соответствующем файле / etc / vz / .conf .

Например, mount --bind / some / mount / point / bin / vz / root / 1 / bin

Также важно, чтобы эти крепления были чистыми (как сделать так, чтобы они были там после первой загрузки машины время?). Для этого OpenVZ предлагает хуки запуска и остановки в виде скриптов. Предполагая, что вы работаете с / etc / vz / conf , у вас может быть:

  • / etc / vz / conf / .mount - это начальная ловушка: вызывается после контейнер работает
  • / etc / vz / conf / .umount - это ловушка остановки: вызывается после завершения работы контейнера

Их имена получены из их технических определений: OpenVZ mounts / vz / private / на / vz / root / , так что это то, что он перехватывает (при использовании каталогов по умолчанию).

Configuration

В комментариях , ты' Мы спросили, что одним из преимуществ будет то, что они могут настроить свой сервер так, как им нравится (например, mysql.cnf или httpd.conf / apache2.conf ). Единственная проблема, которую я мог видеть в этом, заключается в том, что вам необходимо убедиться, что при установке пакетов эти файлы конфигурации устанавливаются внутри каждого из контейнеров. Вы можете попробовать совместно использовать копию mount на общем ресурсе для записи .

Проблема заключается в том, что какие каталоги следует совместно использовать. Apache в / etc / httpd и MySQL в / etc / mysql - поэтому вам нужно быть уверенным, что вы скопируете эти стандартные файлы, иначе эта идея не сработает. Лично я бы просмотрел файлы .deb , которые установлены вашим «глобальным» администратором пакета, и извлеку все каталоги, которые не установлены. t разделены на отдельные контейнеры. Но это всего лишь единственный способ сделать это - я уверен, что есть еще немало.

Gotchas

Я придумал одну вещь: вы можете просто заменить двоичные файлы и библиотеки, которые идут с пакет, но вам нужно следить за тем, перезапускает ли диспетчер пакетов службы после его установки

Ошибка в вашем сообщении

Вы монтируетесь на частном , вам необходимо монтировать на Каталог / var / lib / vz / root / 1102 / bin (предполагается, что это то место, на которое указывает корень в вашем файле vz .conf ).

2
ответ дан 3 December 2019 в 19:09

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

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

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

1
ответ дан 3 December 2019 в 19:09

Теги

Похожие вопросы