Sergei
Sergei
а потом говорим "сеф говно"?
Sn00part
я такого не говорил
Sn00part
там выше комментарии про xfs
Sergei
rbd синхронный.
если он отозвался на sync, это значит что данные вкоммитились в xfs на кворум.
если не отозвался - то не отозвался.
Sn00part
нормально работает /= гарантирует сохранность дангых
Sergei
а то магнитный диск так-то тоже не гарантирует сохранность. и рейд тоже. ошибки чтения всегда могут быть.
Sn00part
обычный кейс, дц вырубили в момент апдейта журнала цеф
Sn00part
он отреплеится на другой ноде
Sn00part
но весь sync файлухи уже не попадёт никуда
Sn00part
это выглядит как кусок сислога внутри бинаря с таблицей
Sergei
это выглядит как кусок сислога внутри бинаря с таблицей
как это возможно, емое?
ну вырубили мы дц, ок. там (в вырубленном дц) остались дохлые данные.
сеф перешел в деградировавшее состояние. грязных данных в живой оставшейся части нет.
вернули дц. грязные данные не возвращаются, пока не пройдет скраб/проверка версий объектов.
Sn00part
rbd ничего про файлуху не знает. поэтому кворум нужно делать и для fs
Sn00part
это работает и для одиночного монтирования
Sergei
для множественного - это гарантированный развал.
для одиночного - дайте кейс.
"отвалился дц" - это "некоторое небольшое время операции io от файлухи к диску зависают в нигде".
Sergei
а не "говорят что пишутся, но на самом деле пишется мусор"
Sn00part
журнал цефа отреплеится, файлуха сверху покорраптится, бд работать не будет
Sergei
Sn00part
rbd placement group оперирует
Sn00part
ему вообще пофигу что там сверху
Sergei
rbd placement group оперирует
нет, rbd формирует объекты, которые попадают в плейсмент-группы. в этом легко убедиться, если посмотреть в физическое расположение данных.
Sn00part
ну объекты эти с файловой системой никак не связаны
Sn00part
это математика блоков
Sergei
в момент записи в rbd-устройство, происходит запись в объект(ы), соответствующие кусочку устройства.
и ответ на клиентскую файлуху идет в тот момент, когда кворум объектов записался.
Sergei
грязное чтение в этом случае невозможно.
Sergei
Sn00part
журнал цефа отреплеит на другой ноде все, что не смогло записаться на рбд
Sergei
Sergei
когда происходит запись объекта, ответ клиентскому коду (в данном случае rbd) произойдёт когда записался кворум объектов.
Михаил
Журнал цефа это что то вроде кеша, причем тут реплей с журнала другой ноде?
Sergei
и у сефа нет "глобального журнала". есть отдельные журналы на каждой osd.
запись считается произведенной в osd в тот момент, когда запись зафиксирована в устройстве журнала.
Sn00part
ну емое
Sn00part
ну вот записали вы в osd и он тут же отвалился
Sergei
ну норм. у меня еще есть.
Sn00part
не факт что они консистентны
Sergei
не факт что они консистентны
факт.
потому что когда мы пишем на кластер (а не на osd), запись считается произведенной при совершившейся записи на кворум в PG. то есть в случае 3:2 минимум на 2 osd.
Sn00part
должны быть некие consistency group с одним и тем же журналом
Sergei
Sn00part
http://tracker.ceph.com/issues/13295 вот типа такого
Sergei
у вас 3 osd для pg (в pgmap).
вы подключаетесь к лидеру. пишете в него объект. он пишет к себе, подключается к двум другим, дожидается ответа хотя бы от одного, отвечает вам "ок". в момент ответа "ок" в кластере есть уже минимум две копии объекта на разных osd.
теперь один из osd падает. например, бывший primary.
теперь osd обслуживается двумя osd, на одном из них есть актуальный объект, на другом - нет (или есть неактуальный). они сравнивают версии и неактуальный докатывается до актуального.
выбирается новый osd для обслуживания этой pg. на нем нет объектов. он копирует их с оставшихся двух osd.
Sergei
где здесь грязное чтение?
Sergei
http://tracker.ceph.com/projects/ceph/wiki/Consistency_groups/2
Sergei
это не для основной функциональности (не для распределенного блокдевайса).
Etki
хлебом не корми, дай про цеф поговорить :3
Михаил
Sn00part
с точки зрения ceph грязного чтения тут нет. с точки зрения файловой системы поверх тут никак гарантий нет. ибо эти две сущности никак не связаны
Михаил
Или может я)
Knyage
Всем доброго дня!
Коллеги, а есть у кого-то хорошие статьи по возможностям кластеризации мастера? На почитать-поосваивать.
Sn00part
ну ок) оставим этот спор для экспериментаторов. по факту никаких гарантий я для себя не вижу. Плюс ещё замаунтится ненароком в несколько мест и точно все.
Sergei
Sergei
а если fio randwrite запустить на диск, так вообще! стораджа никуда не годятся по устойчивости к randwrite и dd if=/dev/urandom
Sn00part
гладко было на бумаге (с)
Sn00part
а потом 20 человек неделю бд чинят сидят с воплями она же не должна так работать)
Sergei
и нет, кейс "мы вырубили один osd на горячую" к такому не приводит.
Михаил
мб это как раз кейс "мы дёрнули 2 диска из кластера с двойной репликой" ?)
Sn00part
да конечно, прямо на горячую специально обученные мальчики дергали. обычный цеф, 6 дц в разных регионах. интернет штука ненадежная
Sn00part
Перманентно все сломано в разных местах, постоянно сеть флапает, самое время накатить на сетевой рейд файлуху с бд и жить счастливо ;-)
Sergei
Михаил
Михаил
А то что гланды через задницу удалить не удобно это гланды виноваты?
Sn00part
а кто виноват? это распределенный блок девайс
Sn00part
рбд трафик не вагонами же возить
Sergei
я добивался перехода в ридонли/peering путем внедрения задержек и пакетлосса
Sergei
но не грязных чтений
Михаил
Sn00part
я уже не вспомню, но такое точно встречали. эксперименты там закончились все пошло в прод, оставили только radosgw для cdn с картинками
Sn00part
работает ок
Sn00part
бд локально с нативной репликацией
Sergei
Sn00part
поверх фронтендов ipvs
Sn00part
+pyball
Sn00part
фронтенд нджиникс на стероидах с lua