На днях достаточно долго не мог понять причину постоянного снижения производительности всей фермы серверов. Проблема оказалась банальной и простой для решения — система хранения данных не обеспечивала должного быстродействия и поэтому «тормозили» абсолютно все сервера одновременно, при этом графики нагрузки ЦП и памяти были абсолютно стабильны без пиков.

Как быстро проверить свою СХД? Много ли еще серверов можно подключить к существующей СХД? Если Ваша инфраструктура серверов малых или средних размеров, то для оценки быстродействия СХД подойдет очень простой алгоритм.

Первое, что следует понять, я не ставлю задачу получить абсолютно точные данные, задача именно оценить возможности инфраструктуры и СХД. Для точного расчета придется погрузится в тему очень глубоко или доверить расчет СХД профессионалам.

Оценка нагрузки на СХД

Для начала оценим, какую нагрузку генерируют наши сервера. Условно разделим их на три группы: высоко нагруженные, средне нагруженные и низко нагруженные. Например, SQL cерверпостоянно обслуживает тысячи запросов от пользователей и содержит десяток баз данных, такой сервер логично отнести к высоко нагруженным. Другая крайность  — контроллер домена. Если у вас 100-200 пользователей, которые периодически входят/выходят из системы, то полностью  нагрузить они сервер не смогут, и скорее всего, доменный контроллер будет простаивать 80% времени.

Поделив все сервера на три группы сделаем элементарный рассчет:

HighLoad x 50 = IOPS1
MedLoad x 30 = IOPS2
LowLoad x 25 = IOPS3

IOPSNEED = IOPS1+IOPS2+IOPS3

Сложив  три числа получим расчетное количество IOPS (IOPSNEED), которое потребляют наши сервера.

Оценка возможности СХД

Мы получили расчетное значение нагрузки, остается понять, обеспечивает ли нужный уровень быстродействия наша СХД?

Хороший SAS Fibre Channel диск выдает примерно 180 IOPS, SATA — всего 80 IOPS. Данные значения актуальны для одного единственного диска подключенного напрямую. Естественно в СХД используются массивы RAID. Стандартный профиль нагрузки 50/50 чтение/запись.  Но в зависимости от назначения использования пропорция может меняться, но для оценки будем придерживаться этого.

Общая формула:

GroupIOPS = (DiskPerf/2 + DiskPerf/2K) * N,

где DiskPerf — производительность диска в IOPS,
K — коэфициент «сложности», характеризует величину накладных расходов на поддержание требуемого уровня массива. Для RAID10 К=2, для RAID5 K-4, для RAID6 K=6,
N — количество полезных дисков в массиве, без учета данных четности. (для RAID5 от общего числа дисков отнимаем один, для RAID6 — два).

Рассчитаем производительность RAID группы из 8 SAS FC дисков в массиве RAID 10.

GroupIOPS = (180/2 + 180/2/2) * 8 = (90 + 45)*8 = 135 *8 = 1080 IOPS

Много это или мало? Давайте обратимся к первому пункту и посмотрим на сколько серверов хватит нашей СХД.

1080/50 = 21 высоко нагруженный сервер
1080/30 = 36 средне нагруженных серверов
1080/25 = 43 ленивца.

P.S. Я также нашел интересный инструмент расчета IOPS, который, возможно, дает более оптимистичные показатели http://wmarow.com/strcalc/.