2016-08-05 15 views
0

Я следовал этим простым инструкциям для создания резервных копий и восстановление LXC контейнер:Резервное копирование и восстановление LXC контейнер стека ЛАМПЫ - MySQL не может начинаться в контейнере

https://stackoverflow.com/a/34194341

резервного копирования и восстановления процедуры идут хорошо , Я сделал тройной уверен, что я использую флаг -numeric-owner, когда tar и untar'ing, и контейнер запускается нормально. Тем не менее, MySQL в контейнере barfs повсюду со следующими ошибками, при выполнении службы MySQL рестарт (выход из journalctl -xe):

[ERROR] InnoDB: Unable to lock ./ibdata1, error: 11 

и

[ERROR] Plugin 'Aria' registration as a STORAGE ENGINE failed. 

я могу получить его чтобы начать, если удалить следующие файлы, так что MySQL воссоздает их:

/вар/Lib/MySQL/ibdata1

/Вар/Lib/MySQL/ib_logfile *

/вар/Lib/MySQL/aria_log_control

"Решение", почерпнутые из https://bbs.archlinux.org/viewtopic.php?id=160277

Но это царски портит мою базу данных сайта.

Что здесь происходит?

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

ответ

0

Для всех, кто может столкнуться с этим: типичная ошибка n00b с моей стороны.

Я забыл обновить путь rootfs в моем файле конфигурации для контейнера.

Как я делал проверку на восстановление существующего контейнера, я оставил свою резервную копию в другом каталоге в/var/lib/lxc - например./var/lib/lxc/restore - но не обновил конфигурацию в/var/lib/lxc/restore/config, чтобы указать на правильный путь.

Это привело к тому, что в контейнере использовались те же корневые файлы, что и мой исходный - все еще работающий - контейнер. Это проблемы с Mysql.

Интересно отметить, что вы можете развернуть два контейнера, разделяющих одни и те же rootfs. Может быть, есть некоторые приложения для этой «функции» где-то.

LXC является прекрасным.