Отказоустойчивые и производительные системы

Кластер, целью которого является обработка большего количества входящих запросов можно разделить на три уровня:

 

Первый – это уровень получения и распределения запросов. Здесь работают балансировщики. Дело в том, что большое количество запросов один сервер просто физически не сможет обслужить. Поэтому запросы нужно распределять между несколькими серверами. Крупные системы насчитывают сотни и тысячи вычислительных серверов. Также интеллектуальные балансировщики способы молниеносно определять вышедшие из строя вычислительные сервера и исключать их из списка рассылки запросов. Таким образом доступ к важному сервису не будет прекращен. Единственное что произойдет – нагрузка на оставшиеся вычислительные сервера (ноды) возрастёт.

 

Второй уровень – это уровень обработки запросов. На этом уровне находятся вычислительные ресурсы кластера. Вычислительные сервера на этом уровне называют серверной «фермой». Их задача заключается в обработке запросов и их отправке клиенту. Отправка запросов может происходить как через балансировщик (NAT), так и напрямую (Direct Routing).

 

Третий уровень – это уровень хранения данных. Поскольку вычислительные ноды работают для одного кластера с набором конкретных сервисов (или веб-сайтов, если это веб-кластер) то работать они должны с набором одних и тех же данных. Можно хранить одинаковые копии данных на всех серверах одновременно и как-то решать вопрос с их одновременным обновлением, а можно воспользоваться распределенной файловой системой, например, такой как GFS от компании Red Hat, специально предназначенной для одновременного конкурентного обращения к данным большого количества серверов. Некоторые решают этот вопрос с помощью NFS/CIFS, но я думаю что они врядли подходят в нагруженных системах (есть у кого опыт?). База данных выносится на отдельный сервер.

 



Просмотров страницы: 3 969


Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий

Партнёрская программа | Сотрудничество | Каталог продуктов