|
Построение отказоустойчивого кластера для Cache
|
|||
---|---|---|---|
#18+
Необходимо создать отказоустойчивый кластер на базе 2 серверов с Cache, причем Cache по разным причинам может быть активно только на одном из серверов. Решение: Устанавливаем два сервера Debian6-64 c Cache2012-64. На сервера устанавливаем дополнительно по одному HDD для организации RAID1. Устанавливаем ПО DRBD и Heartbeat. Сервера между собой соединены напрямую в сеть и средствами DRBD организуется RAID1 на вторых HDD. На организованное зеркало устанавливается рабочая база Cache. Один сервер всегда работает в режиме мастер и на нем запущено Cache с поднятым рабочим сетевым интерфейсом. На втором сервере Cache остановлено. В случае падения первого сервера автоматически на втором сервере стартует Cache и монтируется с RAID1 рабочая база, поднимается сетевой интерфейс. После восстановления 1 сервера, он становится вторых и автоматически синхронизирует данные с первого сервера. С данной технологией можно ознакомиться, например, здесь http://www.opennet.ru/docs/RUS/ha_cluster/. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2013, 12:49 |
|
Построение отказоустойчивого кластера для Cache
|
|||
---|---|---|---|
#18+
kalin, А зеркало с ZMIRROR или без? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2013, 14:25 |
|
Построение отказоустойчивого кластера для Cache
|
|||
---|---|---|---|
#18+
Kalin, Или вообще InterSystems Database Mirroring никак не задействуется? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2013, 14:31 |
|
Построение отказоустойчивого кластера для Cache
|
|||
---|---|---|---|
#18+
Kalin, в случае экстренного падения первого сервера (выключение питания) не понятно, как синхронизирует данные второй сервер с Cache? Что синхрится - журнал или cache.dat? Что с транзакциями? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2013, 14:57 |
|
Построение отказоустойчивого кластера для Cache
|
|||
---|---|---|---|
#18+
Евгений, насколько я понял, имеется в виду Failover Cluster , но основанный не на разделяемых дисках, а на дисковой репликации. Репликация, естественно, на уровне физических блоков диска. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2013, 16:31 |
|
Построение отказоустойчивого кластера для Cache
|
|||
---|---|---|---|
#18+
kalin, схема интересная, но одна уязвимость видна сразу. В рабочем цикле демона записи (WRTDMN) есть фаза, когда запись последовательности блоков в CACHE.WIJ закончена, и начата запись в CACHE.DAT. Если происходит останов боевого сервера в этой фазе, зеркальный получает в наследство БД в нестабильном состоянии. В "нормальном" кластере (на разделяемом диске) при старте Cache на 2-ом члене кластера произойдёт дозапись остатка блоков из CACHE.WIJ в CACHE.DAT, после чего идёт откат транзакций по журналу (Journal). В вашем случае этого не будет, отсюда - возможные ошибки целостности БД (^Integrity). Если вы поместите на зеркалируемый диск ещё и CACHE.WIJ (допустим, транзакции вас не волнуют), то большой вопрос, сумеет ли Cache на 2-ом члене кластера подхватить чужой WIJ? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2013, 06:52 |
|
Построение отказоустойчивого кластера для Cache
|
|||
---|---|---|---|
#18+
Alexey Maslov, Пока проблем не было Схема работает еще в 5 достаточно долгое время. Было падение и основного, и запасного серверов. Ни разу базу восстанавливать не пришлось ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2013, 17:21 |
|
Построение отказоустойчивого кластера для Cache
|
|||
---|---|---|---|
#18+
Размер баз исчисляется десятками гигабайт, изменения проходят ежесекундно ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2013, 17:27 |
|
Построение отказоустойчивого кластера для Cache
|
|||
---|---|---|---|
#18+
Читаем http://ru.wikipedia.org/wiki/DRBD Синхронизируется рабочий cache.dat. На зеркало можно забросить все, что необходимо синхронизировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2013, 17:31 |
|
Построение отказоустойчивого кластера для Cache
|
|||
---|---|---|---|
#18+
kalinРазмер баз исчисляется десятками гигабайт, изменения проходят ежесекундно Это еще не достаточный показатель высокой нагрузки, у нас есть проект где прирост БД по несколько гигабайт в сутки, БД уже на несколько терабайт, при такой нагрузке на WriteDaemon запросто могут возникнуть описанные выше проблемы. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2013, 17:34 |
|
Построение отказоустойчивого кластера для Cache
|
|||
---|---|---|---|
#18+
Alexey Maslovkalin, схема интересная, но одна уязвимость видна сразу. В рабочем цикле демона записи (WRTDMN) есть фаза, когда запись последовательности блоков в CACHE.WIJ закончена, и начата запись в CACHE.DAT. Если происходит останов боевого сервера в этой фазе, зеркальный получает в наследство БД в нестабильном состоянии. В "нормальном" кластере (на разделяемом диске) при старте Cache на 2-ом члене кластера произойдёт дозапись остатка блоков из CACHE.WIJ в CACHE.DAT, после чего идёт откат транзакций по журналу (Journal). В вашем случае этого не будет, отсюда - возможные ошибки целостности БД (^Integrity). Если вы поместите на зеркалируемый диск ещё и CACHE.WIJ (допустим, транзакции вас не волнуют), то большой вопрос, сумеет ли Cache на 2-ом члене кластера подхватить чужой WIJ? Только эта схема предполагает, по видимому, одновременную работу двух серверов Cache, что в приводимой схеме неприемлемо. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2013, 17:35 |
|
Построение отказоустойчивого кластера для Cache
|
|||
---|---|---|---|
#18+
kalin, схема-то ваша, а не моя )) И в общем-то ясно, что это отказоустойчивый кластер, а значит об одновременной работе 2-x Cache речь не идёт. Вопрос в том, что поместить на зеркалируемый диск. В технологии ISC, описанной по приведённой выше ссылке, на разделяемый диск помещается вся Cache. Она дважды устанавливается на разделяемый диск (в одно и то же место) на каждом из узлов кластера, но активна всегда только на одном узле. Если вы поступаете иначе (зеркалируете только CACHE.DAT), то рискуете, и практика здесь аргумент неважный: может 99 раз обойтись, а на 100-й обломиться. Да и практика у каждого своя. В моей практике работы с серверами начального уровня (аппаратный RAID-5, когда-то SCSI, теперь SAS) вылетали именно диски. Поэтому не стал бы строить отказоустойчивое решение с "единой точкой отказа" в виде диска. Но я вовсе не ругаю вашу схему. Просто, имхо, она нуждается в доводке, возможно, в контакте с WRC ISC. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2013, 19:29 |
|
Построение отказоустойчивого кластера для Cache
|
|||
---|---|---|---|
#18+
Так в этой схеме работает 2 диска. Отказ их одновременно на двух серверах маловероятен. Если этого мало, можно добавлять еще сервера со своими дисками. Фича вся заключается в автоматическом запуске второго сервера (без участия человека) в случае отказа основного с поднятием всех необходимых сетевых интерфейсов и всяких нужных демонов как в системе, так в Cache. Система должна работать в реальном режиме и останов ее на 10 минут уже грозит большими проблемами. А так, к дополнению, постоянно идет мониторинг за работой raid массива и состоянием жестких дисков на предмет появления неисправностей на них. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2013, 10:59 |
|
Построение отказоустойчивого кластера для Cache
|
|||
---|---|---|---|
#18+
kalinТак в этой схеме работает 2 диска. Отказ их одновременно на двух серверах маловероятен.Да, это большой плюс вашей схемы по сравнению с классической, которая с разделяемым диском. Свои сомнения изложил выше, мне в общем-то добавить больше нечего. Вам работать - вам и решать. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2013, 12:52 |
|
|
start [/forum/topic.php?fid=39&fpage=28&tid=1557202]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 156ms |
0 / 0 |