Как ферма серверов обрабатывает базу данных? - PullRequest
0 голосов
/ 27 марта 2012

Я проводил некоторые исследования в области серверов для веб-сайта, который я хочу запустить. Я подумал об определенной конфигурации сервера с RAID 10, реализованной с помощью NAS, выполняющего резервное копирование, которое также имеет конфигурацию RAID 10. Это должно обеспечить безопасность данных в 99,99+ случаев.

Моя проблема появилась, когда я подумал о необходимости второго сервера. Если мне когда-нибудь потребуется больше вычислительной мощности и, следовательно, больше памяти для пользователей, как я могу подключить второй сервер к своему первичному и заставить их действовать как один, что рассматривается в базе данных (mySQL)?

Я имею в виду, я не хочу реплицировать свою первую БД на второй сервер и распределять нагрузку по запросу - я хочу использовать только одну БД (может быть внешнюю) и позволить серверам использовать ее обе одновременно. Это возможно? И является ли вариант резервного копирования данных MySQL на NAS жизнеспособным?

1 Ответ

2 голосов
/ 27 марта 2012

Наиболее распространенная конфигурация (после масштабирования из одного блока) - это размещение базы данных на собственном сервере. Во многих веб-приложениях база данных является узким местом (а не веб-сервером); поэтому первым шагом к расширению аппаратного обеспечения, как правило, является размещение БД на собственном сервере.

Это также позволяет вам установить дополнительную безопасность между базой данных и веб-сервером - брандмауэры распространены; разные учетные записи пользователей и т. д. в значительной степени стандартные.

Затем вы можете добавить веб-серверы к балансировщику нагрузки, и все они будут общаться с одной и той же базой данных, пока ваша база данных будет работать.

Наличие более одного веб-сервера также помогает с отказоустойчивостью - вы можете иметь катастрофическое аппаратное событие на одном веб-сервере, и балансировщик нагрузки будет направлять трафик на остальные машины.

Масштабирование производительности сервера базы данных - это совсем другая история - хотя обычно вы используете очень мощные машины для базы данных и относительный вес для веб-серверов.

Чтобы повысить устойчивость к уровню базы данных, вы можете ввести кластеризацию - это довольно сложная вещь для продолжения работы, но защищающая вас от катастрофического отказа одной машины.

Да, вы можете создавать резервные копии MySQL на NAS.

...