Планирование физического хранения данных
Storage-серверы обеспечивают физическое хранение данных. При планировании физического хранения данных необходимо распределить нагрузку по серверам.
Для хранения объектов на серверах выделяются отдельные диски. Диски объединяются в пары (pair). Пара является единицей (unit) хранения файлов. Unit может занимать весь объем дисков пары или их часть, с использованием разделов. Далее под парой будет подразумеваться размеченный unit соответствующей пары дисков.
Пара является точкой отказа: чем меньше ее размер, тем меньший объем данных будет затронут при отказе. При большом размере пары и мелких объектах в хранилище можно достигнуть ограничения файловой системы по количеству inode и большому числу файлов в директориях, что замедлит работу ОС с этим разделом. Пары малого объема неудобны для администрирования.
Оптимальный размер пары — 2-4 ТБ на раздел, т.е. имеется ввиду 2 диска (или разделов диска) объемом от 2 до 4 ТБ каждый на разных серверах. Размер отдельных дисков (или разделов дисков) в паре должен быть одинаковым.
Рекомендуется разносить диски пар на серверы, располагающиеся как минимум в разных стойках, желательно — в разных ЦОД или разных машинных залах. Для удобства создания пар рекомендуется выделение четного количества серверов.
Параметры хранилища, дисков и количества Storage-серверов связаны между собой следующим отношением:
Здесь:
Q– Совокупный объем дисков на одном Storage-сервере.V– Размер одной пары.n– Фактор хранения, для текущей реализации он всегда равен2.P– Количество пар.S– Количество Storage-серверов.
Данные передаются на Storage-серверы по HTTP. Необходимо планировать количество серверов относительно требований к трафику на сохранение/скачивание файлов. Скачивание всегда идет с одного Storage-севера. Сохранение файла производится на 2 сервера (на оба диска в паре). Файл считается успешно сохраненным, если успешно завершилась запись на оба диска в паре. Наиболее комфортный объем файлов для хранилища — от 20 КБ до 100 ГБ.
Информация о парах хранится в PairDB. PairDB — снимок состояния дисковых пар хранилища.
Информация о месте хранения файлов сохраняется в FileDB. FileDB хранит соответствие файл-пара.