LINUX.ORG.RU
ФорумAdmin

Контейнеры. Бекапы.

 , , ,


0

2

Привет!

Вопрос пока теоретический, хочу, чтобы меня наставили на путь истинный, и я был во всеоружии к моменту его практичности. =)
Есть сервак на ubuntu, lvm, mysql, nginx, php-fpm, python. Раньше он использовался для пары родственных проектов(сайтов). Потом, волею судеб, много всего поменялось и туда стали подселять другие проекты какого-нибудь знакомого знакомого.
И началось: надо дать доступ Васе, но мы ему полностью не доверяем, пусть будет только sftp без шела (хотя что ему мешает залить php-скрипт с шелом?); Пете надо поставить вот эту версию php, но она не подходит Саше.....

Короче говоря, это медленно превращается в мелкий хостинг с 15 - 20 сайтами и проектами (т.е. не только тупо сайты, но и всякие скрипты в кроне, которые куда-нибудь ходят, обновляют базы и пр.). Надо таки наводить порядок. Я подумал, что LXC будет хорошим вариантом.
Вот тут вопрос №1: Что лучше, LXC или какой-нибудь docker? Какие плюсы и минусы?

Второй вопрос про бекапы и базы данных. Сейчас для бекапа файлов делается снепшот LVM, база (вне lvm) дампится средствами самой БД в файлики, потом всё это собирается с помощью duplicity. Как лучше поступить после перехода на контейнеры? Желательно, чтобы его не нужно было останавливать и бекап был наиболее полным и атомарным. Я не очень понимаю, как бекапить БД. Если просто сделать бекап контейнера на уровне ФС, то х.з., что будет в базе на момент бекапа, так нельзя. Т.е. надо заходить в контейнер и там либо останавливать БД, либо делать дамп? Мне на эту тему попался criu. Я правильно понимаю, что с его помощью можно сделать единовременный снимок и памяти и файловой системы контейнера? Насколько оно работает?

★★★★★

openvz. Третья ветка со своей контейнеризацией, но работает стабильно и вылизана годами, а 4я - с lxc, но ещё иногда подглюкивает. Основано на debian'е с минимумом изменений.

Веб интерфейс там - лучшее что есть под lxc, из класса «мне не нужен е###ный датацентр, мне нужен всего один сервер с моими проектами».

anonymous ()

Docker. Получаешь плюшку в виде -> тег в гите, тот же тег на образе в registry, тестируется и деплоется один и тот же образ.

Про бэкапы: держишь registry на каком-нибудь rbd из ceph. Бд - машка? Если да, то берешь percona xtrabackup и бекапишь все в онлайне.

Difrex ★★★★ ()
Ответ на: комментарий от anonymous

а 4я - с lxc

Спасибо. А чем всё это лучше просто lxc? Судя по нагугленным мануалам, создать, запустить и остановить контейнер достаточно несложно.

ls-h ★★★★★ ()

Что лучше, LXC или какой-нибудь docker? Какие плюсы и минусы?

Такая постановка вопроса очень странная. lxc в обращении - почти кака отдельные виртуальные машины, docker - скорее система унификации деплоймента разных проектов. То есть они совсем разные в использовании. Какой подход ближе тебе, такой и используй.

Shtsh ★★★★ ()
Ответ на: комментарий от ls-h

Судя по первому посту - опыта с контейнерами у тебя нет.

В просто lxc ты всё делаешь руками, создание, удаление, автостарт машин. Тут тебе даётся дистр сразу с вебмордой, vnc и возможностью нарезать права самим юзерам.

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

anonymous ()
Ответ на: комментарий от EvgGad_303

Фюрер знает, о чём говорит.

Порадовало :) Отдельно доставило про bash на офтоп10 :)

anc ★★★★★ ()

За lxc не скажу.

В докере все очень просто. Засовываешь базу в контейнер, к нему подключаешь volume (как правило это какая-то директория в хостовой машине), настраиваешь базу хранить данные в этот volume (внутри контейнера оно будет выглядеть как точка монтирования).

Бекапы базы делаешь по-старинке. Бекапы файлов можно по старинке, а можно наверное и придумать или загуглить что-нибудь про бекапы докер-слоев.

staseg ★★★★★ ()
Ответ на: комментарий от staseg

А, чуть не забыл, самое главное. В качестве бонуса, всякие оставшиеся без работы Дифрексы будут подносить тебе смузи.

staseg ★★★★★ ()

Guix rules

Пете надо поставить вот эту версию php, но она не подходит Саше.....

Guix решает эту проблему и множество других.

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

Так что Guix — хорошо, и контейнеры тоже хорошо.

Camel ★★★★★ ()
Ответ на: Guix rules от Camel

Guix rules

А какая тут связь вообще? Мне контейнеры нужны как замена виртуальным машинам, чтобы разграничить выполняемые приложения и права пользователей.

ls-h ★★★★★ ()
Ответ на: комментарий от ls-h

Вася, Петя...

А какая тут связь вообще? Мне контейнеры нужны как замена виртуальным машинам, чтобы разграничить выполняемые приложения и права пользователей.

Пете надо поставить вот эту версию php, но она не подходит Саше...

Для того что вы описываете контейнеры не обязательны, guix'а достаточно.

Camel ★★★★★ ()
Ответ на: комментарий от anonymous

Мрак.

Ты говоришь про Proxmox? Так ето просто менеджер виртуалок и контейнеров.

lxc ето система контейнеризации основання на cgroups. openvz ето отдельная технология контенеризации.

karaien ★★ ()

По делу

В принципе для тебя proxmox самое то что надо, только IP аддресами запасайся, либо делай дополнительный контейнер з публичным IP для проксирования.

karaien ★★ ()

Что лучше, LXC или какой-нибудь docker?

Вопрос в корне не правильный. Docker использует lxc. Но снимает куча геммороя по управлению образами и сетью. Если поверх него еще и Rancher привернуть, вообще хорошо становится.

Второй вопрос про бекапы и базы данных.

Контейнеры не бэкапят. Хотя такая возможность и есть. Не вписывается это в илиологию. Данные все также можно хранить где они и сейчас, пробрасывать volume в контейнер. Можно поднять Gluster и положить все на него.

robot12 ★★★★★ ()
Ответ на: комментарий от karaien

уже давно не использует.

https://blog.docker.com/2014/03/docker-0-9-introducing-execution-drivers-and-...

This is in addition to LXC, which will continue to be available as a driver of its own.

Бекапи не делают только идиоты.

Согласен, но какой прок бэкапить контейнеры которые есть в репозитарии (раз), к которым есть Dockerfile (два) ?

robot12 ★★★★★ ()
Ответ на: комментарий от robot12

Ладно, не использует по умолчанию.

Согласен, но какой прок бэкапить контейнеры которые есть в репозитарии (раз), к которым есть Dockerfile (два) ?

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

karaien ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.