- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., Аноним, 23:03 , 23-Мрт-24 (1) +7 [^]
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., Васян из васяна, 23:26 , 23-Мрт-24 (2) +4
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., Аноним, 02:40 , 24-Мрт-24 (13) +3
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., Аноним, 10:45 , 24-Мрт-24 (21) +1
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., YetAnotherOnanym, 12:25 , 24-Мрт-24 (27) –1
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., Аноним, 16:14 , 24-Мрт-24 (35)
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., Tron is Whistling, 08:37 , 25-Мрт-24 (46) +1
Если нет поддержки блокировок - это всё. Для реального кластера - OCFS2, других вариантов не особо. В пределах одной стойки ещё GFS2 можно пробовать.
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., нах., 09:58 , 25-Мрт-24 (48)
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., Аноним, 12:02 , 25-Мрт-24 (50) –1
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., нах., 13:06 , 25-Мрт-24 (51)
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., Tron is Whistling, 22:10 , 25-Мрт-24 (61)
Тут всё гораздо хуже: если нет блокировок, значит необходимая для них синхронизация отсутствует. Естественно при этом latency никакая, но и синхронизироваться нечем, и кеш не когерентный, и вообще смысла нет, потому что в т.н. "кластерной" FS в файл можно при этом можно писать только с одной ноды, причём очень аккуратно - чтобы никто ещё в этот момент не читал и не писал. По сути в такой конфигурации с каждым отдельным файлом можно либо "только на чтение" со всех нод, либо только "всё с одной", и такой кластер - мертворождённый труп.Чтобы её нагородить - надо очень сильно об угол стукнуться, в общем случае придётся делать свой DLM или интегрироваться в существующий кластерный стек. Первое - очень непросто, второе ставит крест на latency и простоте использования, ещё и STONITH понадобится.
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., Tron is Whistling, 22:36 , 25-Мрт-24 (65)
Там смотрю оно через NFS вывернуто. То есть в качестве обеспечения когерентности выбран сброс кеша при открытии и проверку атрибутов? Если так - то даже блокировки уже не помогут.
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., vitalif, 23:34 , 25-Мрт-24 (68)
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., Tron is Whistling, 23:41 , 25-Мрт-24 (70)
И даже с O_DIRECT может не быть когерентности, потому что кто-то решил почитать после записи с другой ноды, но запись ещё не долетела и другие ноды о записи не проинформированы. Будет stale read. Всё это придётся синхронизировать, в т.ч. информировать ноды о записи.
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., Tron is Whistling, 23:42 , 25-Мрт-24 (71)
- Нода A прочитала блок, он попал в кеш - Нода Б отправила блок на запись, он попал в буфер и ждёт пока его реально пропишут в сторейдж - Нода A снова читает блок - УПС
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., vitalif, 23:42 , 25-Мрт-24 (72)
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., Tron is Whistling, 23:44 , 25-Мрт-24 (73)
С O_DIRECT блок в теории должен уйти сразу в сторейдж, но тут будут нюансы с задержками для пересылки на OSD, если в этот момент кто-то решит почитать - он с OSD получит всё такой же старый лежалый блок.Т.е. синхронизировать ноды надо в момент появления записи.
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., vitalif, 23:44 , 25-Мрт-24 (74)
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., Tron is Whistling, 23:57 , 25-Мрт-24 (76)
До неё ещё даже дело не дойдёт. Ну и да, я вот тут расписал немножко - оно может из собственного кеша получить. Тогда надо O_DIRECT брать и тем, кто читает - да, решение, но блин O_DIRECT на чтение? Системный кеш мимо?
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., Tron is Whistling, 23:58 , 25-Мрт-24 (77)
Если так сделать - то при рандомных мелких чтениях будет полный трындец.
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., vitalif, 00:18 , 26-Мрт-24 (81)
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., Tron is Whistling, 08:13 , 26-Мрт-24 (86)
NFS-серверов сколько может быть? Их тоже придётся синхронизировать. Если один, единый SPOF - это очень плохо.> Собственно а как ещё-то делать, если у тебя сетевая ФС и тебе нужна когерентность? В OCFS2 сделано очень хитро и более-менее правильно, можно посмотреть. - Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., vitalif, 09:56 , 26-Мрт-24 (90)
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., Tron is Whistling, 10:24 , 26-Мрт-24 (91)
Случайно запускает и случайно монтирует, понятное дело. Проблема в том, что в случае множественного монтирования без блокировок не выжить.Даже если вы и найдёте юзкейс, при котором можно, и далеко их не один - всё равно это уже не ФС общего назначения, и подойдёт только под такие вот неслучайные юзкейсы.
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., vitalif, 11:15 , 26-Мрт-24 (92)
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., Tron is Whistling, 23:56 , 25-Мрт-24 (75)
Ну и да, какой ещё O_DIRECT в NFS?Синхронизация "в лоб" выглядит следующим образом (есть более хитрые способы): - Все ноды обмениваются информацие об открытиях файлов - Видим запись на одной из нод, видим, что файл открыт ещё где-то - Информируем все остальные ноды, открывшие файл (если первый пункт пропустить - вообще все ноды, а это тормоза), о том, что блок X файла Y взят на запись нодой N - В этот момент - кто не спрятался, я не виноват, ноды могут ещё прочесть старое, разрешено, стрижка только начата - вот тут как раз и нужны блокировки - Все проинформированные ноды при прочих попытках чтения этого блока встают колом и ждут продолжения банкета - Новые ноды, открывающие файлы, принимаются, но информируются об in-flight записи блока - Производим запись - Уведомляем писавшего об успехе - Информируем все участвовавшие в трындеце ноды и новые появившиеся о том, что запись блока завершена - Проинформированные ноды сбрасывают кеш блока, те, что пытались его читать - выдыхают, и начинают читать Как быть с блокировками, и чем они страшны - Если взята эксклюзивная блокировка файла на запись, к счастью, никто читать блок не попытается, но механизм выше всё равно должен быть, так как блокировки банально нестрогие, и у нас могут быть ноды, которые всё равно попытаются читать. Но наличие таких можно отследить по запросам на блокировку - те, что встали колом на попытке взять прочую блокировку - можно проинформировать только о конце записи, чтобы кеш сбросили, можно даже оптом по всем блокам после снятия эксклюзива - тут как раз целое поле непаханое для оптимизации
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., vitalif, 00:21 , 26-Мрт-24 (82)
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., Tron is Whistling, 07:51 , 26-Мрт-24 (85)
> If absolute cache coherence among clients is required, applications should use file locking. Именно так оно в идеальном случае и работает, ну, вот потому, о чём я писал. Возможность отхватить stale read без блокировок есть - в NFS не стали заморачиваться. Поэтому на кластерах, увы и ах :), только OCFS2/GFS2.
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., vitalif, 15:57 , 25-Мрт-24 (52)
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., Tron is Whistling, 22:04 , 25-Мрт-24 (59)
В кластерной FS блокировки не приоритет? Офигенный кластер, синхронизироваться-то как? С навесу? Вот когда все блокировки добавятся - вот тогда можно и latency померить. Особенно на те самые блокировки.
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., vitalif, 23:20 , 25-Мрт-24 (66) +1
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., Tron is Whistling, 00:00 , 26-Мрт-24 (78)
Когерентность без локов оптимизировать очень сложно. Это надо либо всем слать всё чтение и запись в обход кеша, либо придётся вообще все ноды информировать при каждой записи, даже те, что вообще файл читать не собираются. Либо держать и синхронизировать список открывших, но и там возможны нюансы. Вот хочет нода читать и ждёт shared, а писатель взял exclusive. Сразу понятно, кому и что вещать насчёт сброса кеша.
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., Tron is Whistling, 00:03 , 26-Мрт-24 (79)
dovecot - это одно из самых страшных применений блокировок кстати, малейший продолб при параллелизме, и всё, его сторейдж будет так или иначе порушен, что maildir, что mdbox
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., Tron is Whistling, 22:11 , 25-Мрт-24 (62)
Вообще в любом нормальном кластере приоритет - именно сихронизация. Но раз не первый, так не первый, лучше не трогать.
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., Golangdev, 17:02 , 25-Мрт-24 (54)
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., Фняк, 01:58 , 26-Мрт-24 (84) +2
- Опубликован выпуск SDS Vitastor 1.5.0 с поддержкой кластерно..., igsbox, 12:11 , 26-Мрт-24 (94)
|