У нас есть производственный кластер, который может быть подобен тому, чем Вы интересуетесь:
Это довольно просто реализовать и продолжать бежать, и обеспечивает превосходную производительность. Keepalived может быть немного трудным, потому что он не помещает супер userful ошибки в системный журнал о поврежденных конфигурациях, но после того как у Вас есть он работа, это - горное тело. DRBD о лучшем нерешении SAN для хранения целых файловых систем в синхронизации между машинами, и OCFS2 является (в наших тестах) лучшей работающей кластерной файловой системой с открытым исходным кодом, и это - установка, очень легко также.
Единственный реальный протест с этим состоит в том, что, если соединения пользователя направляются на один сервер и затем они переключаются на другой сервер, он потеряет Apache / сессия PHP и укажет данные (если это не будет все сохранено в базе данных). Это не огромное соглашение, хотя, так как keepalived имеет режим, это удостоверится, что тот же клиентский дюйм/с всегда соединяется с теми же серверами бэкэнда (предполагающий, что они не ложатся спать).
Существует хорошая статья здесь об этой теме (о 3/4 путь ниже на страницу). Вот выборка:
В этом примере запрос работает в течение 3 минут, прежде чем мы поразим предел размера файла 200 МБ, как показано на рисунке 25, и получим ошибку, что группа файлов полна.
В этой точке сбои запроса, очевидно, как будет любые другие запросы, которые должны использовать TempDB. SQL Server все еще функционирует правильно, но, пока временная таблица #HoldAll существует, TempDB останется заполненным.
Ваши три опции, как DBA, к:
- Перезапустите SQL Server.
- Попытайтесь уменьшить Базу данных tempdb.
- Найдите ошибочный запрос и уничтожьте его.