George
проще всего, если под рутом
Stanislav
проще всего, если под рутом
это не будет плохой практикой?
George
тебе для разработки?
George
или для прода
Stanislav
для прода... ну понятно в принципе, что не очень круто - если где-то будут уязвимости в бекенде, то можно будет наковырять всяких плохих дел в проекте
George
вообще вероятно не лучшая идея шарить файл между беком и фронтом - а зачем, кстати?
Stanislav
вообще вероятно не лучшая идея шарить файл между беком и фронтом - а зачем, кстати?
я не особо силен в настройке пхп, поэтому пытаюсь сейчас хотя бы завести
Aleksey
Друзья, а есть смысл делать бэкап базы данных её утилитами, если можно сделать бэкап docker volume'a?
Stanislav
да и как работает php-fpm тоже не особо выкупаю пока что
Stanislav
вообще вероятно не лучшая идея шарить файл между беком и фронтом - а зачем, кстати?
ну это же в любом случае надо будет делать, не? если файл мы вытащим из nginx, то всякие композеры-то уж точно нужно из php-контейнера запускать
George
вот подумай - ты решил вольюм скопировать, а база в этот момен времени пишется.. что будет?
Denisio
я бы сказал "имеет смысл делать бьакап только родными средствами"
George
можно и не родными, но с даунтаймом
Denisio
именно они знают что такое чекпоинты, журналы транзакций, как обрабатывать вышеуказанные случаи"
citius
базу можно бекапить бинарно, но нужно ей сказать что она бекапится, чтобы она файлы на диске в консистентный вид привела
Aleksey
если ты не хочешь получить коррапченную базу - да
Это я понимаю. Но тем не менее, контейнер же подхватывает volume при старте/рестарте.
George
ты можешь дампать вольюм пока бд не запущена
Denisio
не скопируется часть свежих данных, это не проблема
проблема, потому что ты не знаешь что скопируется а что нет, об этом знает толко движок СУБД
Aleksey
нет, я говорю про копирование, буквально. сам так не делаю, но гипотетически интересно узнать почему нет
citius
в случае с мускулом делаешь "FLUSH TABLES WITH READ LOCK;" снапшотишь, делаешь "unlock tables;" и все работает дальше, даунтайм мизерный. потом уже спокойно сливаешь снапшот.
Denisio
в этот момент идут другие запросы
Denisio
и что пишется а что нет знает только движок СУБД
Aleksey
тогда может кто-то знает MySQL/Postgres сразу пишут на диск или как Clickhouse буфферизуют данные в памяти перед записью?
Denisio
не стоит на это полагаться, потому что в следующих билдах или версиях это может быть изменено. Есть штатные утилиты для бакапов.
citius
и буферизует не только база, но и ядро, и затем система хранения, возможно тоже
citius
поэтому тупо снимать снапшот в рандомный момент - это выстрел в ногу гарантированный
Denisio
я про это и написал уже
Aleksey
вот это уже пища для размышлений, спасибо
citius
вот это уже пища для размышлений, спасибо
по постгресу посмотри на wal-g
Aleksey
господа, а почему так критично залочить таблицы перед снэпшотом?
Denisio
потому что в них пишутся данные не?
George
тогда может кто-то знает MySQL/Postgres сразу пишут на диск или как Clickhouse буфферизуют данные в памяти перед записью?
кликхаус можно вроде пофайлово бекапить. но это надо читать доку на саму базу
Aleksey
вот этот момент мне и непонятен. даже если я сделаю дамп/cнэпшот на залоченных таблицах, через короткое время этот дамп уже нельзя считать свежим
Denisio
используй штатные инструменты, карл
Denisio
они знают про всё это
Aleksey
ну любой бекап "свежий" только в момент самого бекапа, нет?
так и есть, а зачем тогда вручную лочить таблицы?
citius
потому что без лока битые файлы будут
citius
бекап будет нерабочий
citius
обсуждали же выше - буферизация, то, сё
Denisio
доктор меня игнорируют
Aleksey
ты имеешь в виду возможные race condition'ы при бэкапе и одновременные записи в бд?
citius
я бы не назвал это race condition, но да
Aleksey
доктор меня игнорируют
спасибо за советы дружище)
Denisio
бакап делается не мгновенно, а секунды и минуты. и в это время возможны рандомные ( сточки зрения хоста) записи в журнал ьтранзакций и БД
Denisio
испольщзовать штатные инструменты это максимально гарантированно получить рабочий бакап несмотря ни на что
citius
бакап делается не мгновенно, а секунды и минуты. и в это время возможны рандомные ( сточки зрения хоста) записи в журнал ьтранзакций и БД
ну если это снапшот, то его фиксацию таки можно наверное считать моментальной, проблема в том, что никто не гарантирует консистентности БД на любой момнет времени без фриза базы )
Denisio
снапшпот это логическая конструкция СУБД
Denisio
а файлы - это логиченская конструкция файловой системы
citius
я про снапшот докер вольюма, вроде ТС про это спрашивал
Denisio
применять правила одной системы на другую - неверно
Denisio
оно может быть даже будет работать какоето время, но рано или поздно ты обнаружишь что бакап сделался нерабочий
citius
Usually, RDS backups don't cause downtime. Similar to EBS backup, the I/O needs to freeze the DB for a split fo the second to get a consistent LVM snapshot.
RDS то откуда вылез? изначальный вопрос был сформулирован как "если можно сделать бэкап docker volume'a?"
Denisio
стопишь контейнер и делаешь бакап :)
Denisio
ну или сервис СУБД
Aleksey
на застопленном не получится вызывать утилиту)
Dmitry
Привет как бы мне в эластик: docker.elastic.co/elasticsearch/elasticsearch:6.4.1 добавить: sysctl -w vm.max_map_count=262144 внутри Dockerfile? Вариант: FROM docker.elastic.co/elasticsearch/elasticsearch:6.4.1 RUN sysctl -w vm.max_map_count=262144 Не работает. Спасибо!
Sergey
Привет как бы мне в эластик: docker.elastic.co/elasticsearch/elasticsearch:6.4.1 добавить: sysctl -w vm.max_map_count=262144 внутри Dockerfile? Вариант: FROM docker.elastic.co/elasticsearch/elasticsearch:6.4.1 RUN sysctl -w vm.max_map_count=262144 Не работает. Спасибо!
у докера нет своего ядра, а доступ к /proc залочен в целях безопасности думаю можно попробовать дать CAP_SYS_ADMIN внутри и с помощью привилегированного делать какие то обращения к кернел настройкам
Sergey
Это не в докере добавляется. А на хостовой машине где пускаете
тогда это будет применительно ко всему хосту
Andrey
А этого еластик и хочет
Andrey
Это даже в из инструкции по установке написано
Dmitry
хм. То есть в самом контейнере мне не указать все необходимые настройки?
Sergey
А этого еластик и хочет
погуглил, тащемто да
Sergey
где будешь запускать
Sergey
https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html
Sergey
другой вопрос как это масштабировать:))
Dmitry
другой вопрос как это масштабировать:))
Так а я о чем:). На хосте я и ансиблом всё могу сделать, а упражняюсь контейнерами ради масштабируемости (на самом деле упражняюсь ради упражнений пока)
Sergey
Так а я о чем:). На хосте я и ансиблом всё могу сделать, а упражняюсь контейнерами ради масштабируемости (на самом деле упражняюсь ради упражнений пока)
ну тащемта чисто у меня вопрос стоял бы а что если на другой группе хостов были бы другие настройки по максам, то надо или ансиблом применительно от группы плясать или давать задавать внутри докерфайла, только там надо будет дать доступ cap_sys_admin, иначе при RO правах к /proc менять ничего не получится