Eugen
в общем, нашевелил я вариант как синкать большите файлы +- вменяемо, так что бы не бивать всех потомков на стороне получателя. Но использовал rsync.
Eugen
теперь хочу с помощью Syncoid инкременентно передавать на удаленный хост файловую систему. Кто подскажет рабочую строчку набором флагов?))
Eugen
всю файловую систему? поверх живой системы? :)
Да просто интересно, может зфс быстрее передает данные. Ну внутри файлы .img лежат, они ж не зфс, знач отдельно не передадутся) я б не против конечно) А сторона получатель тестовая, там все равно что будет с фс.
Алексей
rsync в зфс чятике богохульник
Eugen
Пришлось, что поделать
Eugen
Простите грешника
Алексей
окстись
Алексей
одумайся
Алексей
подумай еще раз
Eugen
подумай еще раз
Дык я же до последнего цепляюсь за встроенные инструменты.
Egor
Да просто интересно, может зфс быстрее передает данные. Ну внутри файлы .img лежат, они ж не зфс, знач отдельно не передадутся) я б не против конечно) А сторона получатель тестовая, там все равно что будет с фс.
zfs знает о данных, и способна сразу определить изменённые данные и сообщить об этом. Rsync же смотрит на даты и размер файлов, если находит расхождения то начинает токенизировать их на обеих сторонах дабы найти различающиеся блоки и затем передать их. Недавно сравнивал как быстро проведётся репликация каталога данных веб-сервера после минимальных изменений на нём, так вот rsync выполнял репликацию в 10 раз медленнее чем zfs отправляла снапшот (что-то типа 0,5 сек у zfs против 5 сек у rsync)
Egor
естественно если изменения будут большие - разница во времени репликации будет ещё больше
Egor
вот здесь можно почитать о разнице zfs send и rsync: https://habr.com/ru/post/504692/ https://arstechnica.com/information-technology/2015/12/rsync-net-zfs-replication-to-the-cloud-is-finally-here-and-its-fast/
Eugen
естественно если изменения будут большие - разница во времени репликации будет ещё больше
Вот, это и интересно. Ну вот rsync файл в 2.2тб передавал по сути (сравнивал бы столько же) 6 часов, правка хосты в разных городах находятся.
Eugen
Egor
Вам нужно внести изменения в этот файл и сравнить сколько будет идти передача изменённого файла 2мя способами
Egor
Разница будет огромной в пользу zfs send -i
Eugen
Согласен
Eugen
Так я чего писал, у кого то рабочий пример есть?) Что бы максимально инкрементно и адекватно передавалось. Потому что с rsync я 2 дня мудохался, что бы он как надо работал)
Egor
zfs send -i testpool/docker@snap3 testpool/docker@snap4 | ssh root@192.168.56.106 zfs recv testpool/docker на обеих машинах должен быть zfs пул с одним и тем же названием (testpool) docker - датасет с данными изменения в котором передаются snap3, snap4 - снапшоты разницу между которыми передаём 192.168.56.106 - ip-адрес ВМ куда передаём на второй ВМ разрешён логин root по ssh и сделана авторизация по ключам чтобы не вводить пароль
Eugen
Если снапшот один передаем, и с таким же названием есть у получателя, будут сравниваться эти снапшоты, верно?
Egor
но если вы внесёте изменения на приёмной стороне в данных - сразу сообщит что данные изменены и приём невозможен
Eugen
Таак, а что надо что бы с одинаковым названием сравнивало?)
central
zfs передает снепшот, и плевать вообще какие файлы там изменились какие нет, главное передать данные снепшота которые будут прочитаны zfs и она уже скажет что и как было модифицировано
central
нет необходимости сравнивать файлы, потому что о файлах тут речи не идет
Алексей
Верно, я ж и не говорил ничего о файлах применительно к зфс.
Опять двадцать пять. Расскажи свой кейс что ты делаешь вообще
Eugen
Надо как можно быстрее данные перемещать на удаленный сервер, откуда уже множество хостов будут забирать себе только один файл. Вот я и подумал что если зфс передает данные быстро, можно на сервер передать данные с помощью фс, а дальше хосты будут забирать себе что надо с помощью rsync
Eugen
Естественно на сервер каждый день будут передаваться обновленные данные
Δαρθ
ssh -p чото user@host "zfs recv все дела" кавычки
Eugen
Так, синкнулось. Как теперь сделать что новые данные заменили старые?)
Eugen
Но по скорости синка с нуля разницы нет что рсинк что сенд ресив.
Eugen
Ну я ж сравнил) не до секунды конечно, но +-. Говорю же, с тем набором флагов рсинк так же перекидует инфу как и сенд ресив, может есть твики как с зфс добиться большей скорости. И опять таки, имеется в виду синхронизация с нуля. А если diff сравнивать то может и зфс лучше. Но конкретно тут я нуб, вообще я повторно пытался стнкнуть и мне пишет что данные на той стороне уже есть.
Eugen
Твики есть: и nc и mbuffer и -Lec и zstd Две минутки потерпи не могу писать)) Кто включил этот ужасный режим
А подробнее, это ж на обеих сторонах надо писать. Просто сорян тут я нуб полный)
Ivan
а я вот игрался с mbuffer и вообще никакого профита через 10 мегабитный инет не увидел
Vladislav
Немного красоты в этот чат.
где форматирование, где подсветка синтаксиса? где текстовое представление???
Dalila
Salam
Andrey
если пролюбишь снапшот для инкрементальной передачи, то будет гемморой, поэтому лучше делать так zfs send -i pool/name#bookmark123 pool/name@snapshot _time | ... после передачи zfs destroy pool/name#bookmark123 zfs bookmark pool/name@snapshot_time pool/name#bookbark123 в этом случае можно безболезненно удалять снапшоты и создавать их для использования в инкрементальной передаче
Eugen
Ещё вопрос. Когда изменяешь файлы в фс в которой полно клонов, место в пуле резко уменьшается, хотя данные лишь заменяются а не добавляются. То есть накапливаются различия между оригинальной фс и "детьми". Можно ли как то клонировать фс что бы эти клоны отличия не накапливали? Понятно что откатиться с них не получится, но это и ненужно
Alexander
Пожалуйста, подскажите, добавление дисков в draid возможно как в raidz ?
Egor
Пожалуйста, подскажите, добавление дисков в draid возможно как в raidz ?
https://www.reddit.com/r/zfs/comments/kc4wzl/could_i_add_new_device_into_existing_draid/
Alexander
https://www.reddit.com/r/zfs/comments/kc4wzl/could_i_add_new_device_into_existing_draid/
Однако для raidz такую возможность относительно недавно реализовали. https://habr.com/ru/news/t/563442/ Презентация dRAID: https://docs.google.com/presentation/d/1uo0nBfY84HIhEqGWEx-Tbm8fPbJKtIP3ICo4toOPcJo/edit#slide=id.g9d6b9fd59f_0_42 Цитата: >dRAID expansion? >See you at the code-a-thon! Может быть, лучше не связываться с *raid* (z/d)? Старый добрый mirror - проверенный вариант.
Alexander
В ссылке ключевое - "появится", пока в draid и raidz одиночным диском объём увеличить нельзя, только добавлением нового vdev
Есть какой-то roadmap? В OpenZFS v3 обещают даже online expansion, поэтому можно предположить, что сейчас пока офлайн? :) У меня опыт только с зеркалами.
Eugen
вот такая фигня появляется, как только клоны отправленной системы чем находятся в работе, то есть раздаются по iscsi. Как то побеждается?
Eugen
Перефразируй
Отправил на удалённую машину фс, сделал клоны с той системы. Попробовал повторно синкнуть, синкается. Запустил те клоны в работу, попробовал синкнуть ещё раз - не синкается.
Andrey
На удаленной системе клоны создавались из переданных снапшотов или создавался снапшот вручную и с него клон?
Владимир
Отправил на удалённую машину фс, сделал клоны с той системы. Попробовал повторно синкнуть, синкается. Запустил те клоны в работу, попробовал синкнуть ещё раз - не синкается.
клоны делал прям с той фс которую синкаешь или сделал снапшоты?, снимки Клоны делают с той фс которая будет неизменна, так что тебе надо делать снимок и на его основе клон. Что-то тут через чур медленный режим стоит.
Eugen
клоны делал прям с той фс которую синкаешь или сделал снапшоты?, снимки Клоны делают с той фс которая будет неизменна, так что тебе надо делать снимок и на его основе клон. Что-то тут через чур медленный режим стоит.
Синкнул снапшот который был последним по времени с удаленной машиной, и там появилась фс. Вот с этой фс я и делал снап+клон. Дальше эти клоны что появились пустил в работу, они раздаются по iscsi. После этого уже синкнуть не вышло эту фс. Может надо как то иначе действовать? Просто цель что бы клоны на удаленной машине были в идеале такие же как оригинальная система на сервере с которого это передается. Надеюсь я понятно объяснил)
Eugen
ты снапшот использовал который делал синкоид или сам снапшот делал?
Синкод использовал последний снапшот исходной системы как исходник, делался мной. Как в последующих попытках синка
Владимир
Синкод использовал последний снапшот исходной системы как исходник, делался мной. Как в последующих попытках синка
снапшот синкоид использует свой, и на основе него конечно не надо делать клоны потому что это снапшот будет удалён при следующей репликации
Eugen
снапшот синкоид использует свой, и на основе него конечно не надо делать клоны потому что это снапшот будет удалён при следующей репликации
Он написал типа беру твой последний снапшот, делаю с него копию и называю по своему, и с него синкаю
Andrey
Синкнул снапшот который был последним по времени с удаленной машиной, и там появилась фс. Вот с этой фс я и делал снап+клон. Дальше эти клоны что появились пустил в работу, они раздаются по iscsi. После этого уже синкнуть не вышло эту фс. Может надо как то иначе действовать? Просто цель что бы клоны на удаленной машине были в идеале такие же как оригинальная система на сервере с которого это передается. Надеюсь я понятно объяснил)
я для этого просто использую свои скрипты(клонирование БД, но суть та же, что ты и описал) 1 шаг - передаем последний снапшот полностью на удаленный комп zfs send pool/fs@snap_<datetime> | ssh root@remote_host zfs recv -F pool/fs zfs bookmark pool/fs@snap_<datetime> pool/fs#bookmark На локальном хосте есть в кроне задание, которое периодически делает снапшоты или делаем вручную по требованию передаем инкремент на удаленный хост относительно последнего снапшота zfs send -i pool/fs#bookmark pool/fs@snap_<last datetime snapshot> |ssh root@remote_host zfs recv -F pool/fs передвигаем bookmark zfs destroy pool/fs#bookmark zfs bookmark pool/fs_<last datetime snapshot> zfs/pool#bookmark ненужные снапшоты на локальном хосте можно безболезненно удалять на удаленном хосте так же подчищаем периодически появляющиеся снапшоты(последний оставляем) с этих снапшотов и делаем клоны, при удалении снапшотов те, с которых сделаны клоны будут заняты и не удалятся в клонах можно делать любые изменения снапшоты создавать только на локальной фс
Владимир
Он написал типа беру твой последний снапшот, делаю с него копию и называю по своему, и с него синкаю
я вообще делаю на маркерах, так что я не в курсе, но ты что-то делаешь явно не так что-то вы усложняете ребята, это треш не надо указывать снапшот для передачи, ты указываешь свой волюм, а синкоид сам делает снапшот или маркер в моём случае
Andrey
ну я, например, не использую синкоид - слишком гемморно при работе с БД просто описал как это выглядит(в том же синкоиде, который не всегда удобен) т е у меня просто написан свой аналог синкоида с дополнительным контролем параметров
Владимир
ну я, например, не использую синкоид - слишком гемморно при работе с БД просто описал как это выглядит(в том же синкоиде, который не всегда удобен) т е у меня просто написан свой аналог синкоида с дополнительным контролем параметров
синкоид юзает тоже самое что и ты, только им немного удобнее Ну и я к слову как раз таким образом синкаю дата директорию базы в другой дц. Чтобы при смерти дц у меня осталась свежая база. Синкаю каждые 10 сек.
Andrey
у меня БД оракловые, там в лоб так не будет работать
Владимир
у меня БД оракловые, там в лоб так не будет работать
Они не умеют при старте откатывать не консистентные транзакции?
Andrey
почему не умеют, умеют, только там не все так просто, как обычно все представлят себе БД. Если БД нагружена достаточно сильно, то процесс отката и рекавери может занять достаточно много времени. Короче, подход в лоб мне не подходил, написал свое(по аналогии с тем же zfs applaince от Oracle, решение на базе этого они продают)
Eugen
я вообще делаю на маркерах, так что я не в курсе, но ты что-то делаешь явно не так что-то вы усложняете ребята, это треш не надо указывать снапшот для передачи, ты указываешь свой волюм, а синкоид сам делает снапшот или маркер в моём случае
Я так и делаю, но синкоид берет сам последний из снапшотов. К слову поведение то же самое как и когда я делал именно сенд ресив, по сути по другому и не может быть.
Юрий
Скрипт по репликации датасета на удаленный хост. Можно в реальном времени. У самого реплицируются виртуалки https://github.com/yurykk22/zrepl
Eugen
он должен сам создавать снапшот а не брать последний
Пишите что писать при первом полном переносе и последующем инкрементном, я протещу и скрины скину. Если получится что руки у меня кривые и работает, то буду рад оказаться не прав)
Ivan
@neurox бот разбушевался !