Моя компания пытается выяснить, какой тип SAN покупать. Это специально для серверов баз данных, которые становятся ограниченными по вводу-выводу (хранилище - это сейчас DAS, но мы достигли предела одного сервера, и мы также хотели бы добавить кластеризацию).
Нам нужно решение, которое будет обеспечивать около 3000 операций ввода-вывода в секунду в долгосрочной перспективе (в настоящее время мы достигаем пика около 1000 операций ввода-вывода в секунду). Большинство операций с нашей базой данных - это небольшие операции чтения / записи. Основываясь на обсуждениях с инженерами HP и другими участниками в Интернете, HP P2000 с 24 дисками SAS HD в конфигурации RAID 10 будет обеспечивать скорость чуть ниже этой за ~ 20 тыс. Долларов. Добавление контроллеров и других элементов для построения SAN приближает нас к нашему максимальному бюджету в 30 тысяч долларов.
Но онлайн я вижу, что многие твердотельные накопители SAS обеспечивают скорость 80 000 IOPS +. Реально ли этого ожидать? Если да, то будет ли реально получить P2000 или аналогичный SAN начального уровня и добавить туда несколько SSD? Наши базы данных небольшие, всего пара ТБ. Если бы мы сделали это, у нас остались бы деньги, чтобы купить второй SAN для зеркалирования / аварийного переключения, что кажется разумным.
Практическое правило, которое я использую для дискового ввода-вывода:
75 операций ввода-вывода в секунду на шпиндель для SATA.
150 операций ввода-вывода в секунду на шпиндель для FC / SAS
1500 IOP на шпиндель для SSD.
А также IOP на массив также учитывайте IOP на терабайт. Нередко получается очень плохое соотношение IOP на ТБ при использовании SATA + RAID6. Это может показаться не слишком большим, но вы часто будете сталкиваться с тем, что кто-то обнаруживает «свободное пространство» в массиве и захочет его использовать. Люди обычно покупают концерты и игнорируют iops, тогда как в большинстве корпоративных систем все наоборот.
Затем добавьте стоимость штрафа за запись для RAID:
Штраф за запись может быть частично смягчен за счет использования больших кешей записи и при правильных обстоятельствах. Если у вас много операций ввода-вывода с последовательной записью (например, журналов БД), вы можете значительно снизить эти штрафы на запись в RAID 5 и 6. Если вы можете записать полную полосу (например, один блок на шпиндель), вам не нужно читать, чтобы вычислить четность.
Предположим, что набор RAID 6 8 + 2. При нормальной работе для однократного ввода-вывода записи вам необходимо:
При кэшированной записи полной полосы - например, 8 последовательных «фрагментов» размера полосы RAID, вы можете рассчитать четность для всего участка без необходимости чтения. Таким образом, вам нужно всего 10 операций записи - по одной на каждые данные и две на четность.
Это делает ваш штраф за запись 1,2.
Вы также должны иметь в виду, что ввод-вывод записи легко кэшировать - вам не нужно сразу записывать его на диск. Он работает с мягким ограничением по времени - пока в среднем ваши входящие записи не превышают скорость шпинделя, все он сможет работать со «скоростью кеширования».
Чтение ввода-вывода, с другой стороны, имеет жесткие временные ограничения - вы не можете завершить чтение, пока данные не будут получены. В этот момент становятся важными алгоритмы кэширования чтения и загрузки кеша - предсказуемые шаблоны чтения (например, последовательные, как вы получаете из резервной копии) могут быть предсказаны и предварительно загружены, а шаблоны случайного чтения - нет.
Для баз данных я обычно предлагаю вам предположить, что:
большая часть ввода-вывода вашей «базы данных» - это случайное чтение. (например, плохо для произвольного доступа). Если вы можете позволить себе накладные расходы, RAID1 + 0 подойдет, потому что зеркальные диски дают два источника чтения.
большая часть вашего «журнала» ввода-вывода - это последовательная запись. (например, хорошо подходит для кэширования и вопреки тому, что предлагают многие администраторы баз данных, вы, вероятно, захотите RAID50, а не RAID10).
Соотношение этих двух сложно сказать. Зависит от того, что делает БД.
Поскольку произвольное чтение ввода-вывода - это худший случай для кэширования, именно здесь SSD действительно вступает в свои права - многие производители не беспокоятся о кешировании SSD, потому что в любом случае это примерно такая же скорость. Поэтому, особенно для таких вещей, как временные базы данных и индексы, SSD дает хорошую окупаемость инвестиций.
Я могу подробно рассказать о том, чего вы пытаетесь достичь. Честно говоря, я бы не стал рассматривать HP P2000 / MSA2000 начального уровня для ваших целей.
Эти устройства имеют множество ограничений и с точки зрения набора функций SAN представляют собой не что иное, как коробку дисков. Без многоуровневого хранения, без интеллектуального кэширования, максимум 16 дисков в Виртуальный диск группа, низкие возможности IOPS, плохая поддержка SSD (особенно на выбранном вами устройстве).
Вам нужно будет подойти к HP MSA2040 чтобы увидеть какое-либо преимущество в производительности или официальная поддержка с SSD. Кроме того, вы действительно хотите использовать iSCSI?
DAS может быть вашим лучшим вариантом, если вы терпите локальное хранилище. Флеш-хранилище PCIe входит в ваш бюджет, но емкость необходимо тщательно спланировать.
Не могли бы вы подробнее рассказать о характеристиках ваших реальных серверов? Марка / модель и т. Д.
Если кластеризация является обязательной, можно использовать другой вариант - использовать устройство HP MSA2040, но использовать модуль SAS вместо iSCSI. Это менее затратно, чем другие модели, позволяет подключать 4-8 серверов, обеспечивает низкую задержку и большую пропускную способность, а также может поддерживать твердотельные накопители. Даже с моделями Fiber или iSCSI это устройство даст вам больше гибкости, чем то, которое вы подключили.
Ваш анализ довольно верен.
Используйте несколько жестких дисков для большого количества ГБ и несколько жестких дисков для нескольких операций ввода-вывода в секунду.
Используйте несколько SSD для большого количества операций ввода-вывода в секунду и много SSD для нескольких ГБ
Что для вас важнее? Пространство является большим фактором затрат для решений SSD, поскольку цена за ГБ намного выше. Если вы говорите о базе данных объемом 200 ГБ, требующей 4K IOP, пара SSD поможет вам. Или 24-х дисковый массив по 15 КБ, что оставляет много места для большого объема хранения.
Сколько операций ввода-вывода вы фактически получите от этих SSD, сильно зависит от инфраструктуры хранения (ewwhite подробно расскажет об этом), но разумно получить такие скорости. Особенно с Raid10, где четность не вычисляется.
Недавно я построил для своего работодателя пару серверов хранения, используя шасси Dell C2100, работающую под управлением FreeBSD 10.1 с двенадцатью жесткими дисками Western Digital "SE" корпоративного класса SATA емкостью 2 ТБ, 7200 об / мин. Диски находятся в едином пуле ZFS, состоящем из двух виртуальных устройств RAIDZ-2 с 6 дисками (vdevs). К пулу подключена пара твердотельных накопителей Intel DC S3500, которые защищены суперконденсатором от потери питания, они используются как SLOG и L2ARC. При нагрузочном тестировании этого сервера через iSCSI я смог достичь 7500-8200 операций ввода-вывода в секунду. Наша общая стоимость, включая жесткие диски, составила около 2700 долларов за сервер.
За время работы этих систем на основе BSD в одном из наших блоков HP MSA2012i SAN произошли две ошибки контроллера, а другое устройство MSA2012i повредило большой том NTFS, требующий 12 часов простоя для восстановления.
Dell и HP продают вам 10% оборудования и 90% обещают поддержку, которую вы никогда не сможете использовать.