Для реального проекта я должен настроить сервер хранения с высокой доступностью, который может хранить и публиковать (http) 150 миллионов фотографий 7 размеров, что означает всего 1050 миллионов файлов. Для каждой фотографии нам нужно в общей сложности 200 КБ места, чтобы хранить их всех 7 размеров в общей сложности 28 ТБ.
На самом деле у меня есть два доступных сервера (2x E5620, 12GB Ram, Raid Controller 1 GB NV Cache, 2x160 GB Disk для ОС), оба подключили массив хранения (DAS) с дисками SAS 12x3TB.
Я не уверен, что моя запланированная установка действительно лучшее решение:
ОС: RHEL 6
Дисковый массив: Raid 6, ext4 / rsync или gfs2
HTTP-сервер: Apache Traffic Server 3 или nginx
Таким образом, сервер хранит и публикует фотографии.
Какой-нибудь совет для меня? При необходимости я могу добавить больше серверов. Какая файловая система подходит? Raid 6 в порядке?
РЕДАКТИРОВАТЬ: неправильно прочитали требования к хранилищу!
Я бы использовал как минимум 2 + k + n серверов.
keepalived
, работающий в чистом аварийном переключении (или что-то еще, что плавает на вашей лодке) - я предполагаю, что доступны 1GigE-Connections и которые могут обрабатывать чертовски много простых запросов GET, если вы используете прямой возврат для своей конфигурации IPVSОТКРЫТЫЕ ВОПРОСЫ (и вопросы о прикрытии): (не знаю, понятны ли вам требования)
В любом случае я бы держался подальше от решений, связанных с синхронизацией файлов, так как похоже, что вы хотите иметь возможность где-то разместить файл и сразу же получить его. Доступность файла только через 15 минут после его размещения на серверах не совсем оптимальна и в большинстве случаев стоит реальных денег.
НОТА Я предполагаю, что у вас есть система резервного копирования, которая займет 28 ТБ, если не добавить другую систему хранения с необходимой избыточностью для обработки худших вариантов. Добавьте внешнюю резервную копию, чтобы справиться с тем, что произойдет, если вы забудете какой-то худший сценарий.
В конце концов, звучит не слишком сложно. Интересный вопрос: Готово ли ваше руководство тратить деньги?
Почему бы не сохранить один большой файл и не попросить сервер преобразовать его в требуемый размер по запросу, а затем сохранить в кеше? Также рассмотрите возможность запуска нескольких внешних серверов (через балансировщик нагрузки) для обслуживания запросов, а затем, возможно, использования NAS или нескольких других серверов для обслуживания статического контента. Количество необходимых интерфейсов зависит от того, сколько трафика вы получите (емкость YouTube или просто хранение контента для случайных обращений).