Требования к скорости записи: 1,1 ГБ / с?

29

У нас будет работающий компьютер, который на пиковой производительности должен будет обрабатывать 50 («головки записи») х 75 ГБ данных в час. Это максимальная скорость записи ~ 1100 МБ / с. Чтобы получить это от машины, требуется две линии по 10 ГБ. У меня вопрос, какая технология server + может обрабатывать / хранить такой поток данных?

В настоящее время для хранения данных мы работаем с ZFS, хотя скорость записи никогда не возникала. (мы даже не близки к этим скоростям) Будет ли ZFS (zfs на linux) вариантом? Нам также необходимо хранить большое количество данных, «Руководство по ИТ» предлагает всего около 50-75 ТБ. Так что, вероятно, не все SSD, если мы не хотим предложить нашего первенца.

Некоторые дополнения, основанные на превосходных ответах:

  • максимум составляет 50x75 ГБ / час во время пика, который составляет менее 24 часов (наиболее вероятно, <6 часов)
  • Мы не ожидаем, что это произойдет в ближайшее время, скорее всего, мы будем работать 5-10x75GB / час
  • это пре-альфа-машина, однако требования должны быть соблюдены (хотя в игре много знаков вопроса)
  • мы бы использовали NFS как соединение с машины к серверу
  • макет: генерирующая машина -> хранилище (это) -> (безопасный рейд 6) -> вычислительный кластер
  • так что скорость чтения не важна , но было бы неплохо использовать ее из вычислительного кластера (но это совершенно необязательно)
  • скорее всего, это будут большие файлы данных (не много маленьких)
SvennD
источник
8
мб как в мегабит или мегабайт? Пожалуйста, используйте MBi MiBi MByte или MB, чтобы денонсировать байты. Также 2 линии 10 Гбит дадут вам 2400 МБайт / с
mzhaase
1
Теперь стало понятнее, спасибо. Еще несколько вопросов. Пиковая производительность составляет 1,1 Гбит / с, но что в среднем? Как долго эти шипы длятся? И какую минимальную пропускную способность Continouus вы готовы принять? Запись одного большого файла или нескольких маленьких? Какой протокол будет использоваться? Какую избыточность вы хотите? Это звучит как какое-то медицинское или научное оборудование, можете ли вы связать таблицу? Поскольку вы уже используете ZFS, вы можете связаться со специализированной компанией по хранению данных ZFS, из которых есть пара. Они могут определить систему для вас.
мжаасе
2
Это действительно должно быть сделано с одной машиной? Балансировка нагрузки на несколько машин может сделать это проще. Вы можете использовать общее хранилище или объединить данные позже. В AWS вы можете использовать ELB, автоматическое масштабирование, несколько экземпляров EC2 и EFS, но это звучит так, как будто вам нужно аппаратное обеспечение. Ваш вопрос не очень хорошо описывает вариант использования.
Тим
1
Просто отметьте, что вам не нужна «пиковая» производительность - вам нужна «устойчивая» производительность 1.1GBpS
jsbueno
1
@jsbueno Вы правы, однако мы можем выбрать, сколько головок записи активировать, поэтому 1 ГБ / с - это «наихудший случай», но, учитывая, что это может занять часы, это стабильная производительность.
SvennD

Ответы:

18

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

Таким образом, основным фактором будет то, как вы подключаетесь к этой системе хранения данных. Это NFS? CIFS? Как клиенты подключаются к хранилищу? Или обработка и т.д. делается на системы хранения данных?

Заполните еще несколько деталей, и мы посмотрим, сможем ли мы помочь.

Например, если это NFS и с синхронным монтированием, то определенно возможно масштабировать ZFS в Linux, чтобы удовлетворить потребности в производительности записи и при этом поддерживать требования к длительному объему хранилища. Являются ли данные сжимаемыми? Как каждый клиент связан? Гигабитный Ethernet?


Редактировать:

Хорошо, я укушу

Вот спецификация, которая стоит примерно 17–23 тыс. Долл. И помещается в стойку размером 2U.

HP ProLiant DL380 Gen9 2U Rackmount
2 x Intel E5-2620v3 or v4 CPUs (or better)
128GB RAM
2 x 900GB Enterprise SAS OS drives 
12 x 8TB Nearline SAS drives
1 or 2 x Intel P3608 1.6TB NVMe drives

Эта установка предоставит вам 80 ТБ доступного пространства с использованием аппаратного RAID6 или ZFS RAIDZ2.

Поскольку основное внимание уделяется производительности на основе NFS (при условии синхронной записи), мы можем легко справиться с этими задачами с помощью дисков P3608 NVMe (чередующийся SLOG). Они могут вместить 3 ГБ / с при последовательной записи и имеют достаточно высокий уровень выносливости, чтобы постоянно справляться с описанной вами рабочей нагрузкой. Приводы могут быть легко предоставлены для дополнительной защиты в случае использования SLOG.

При рабочей нагрузке NFS записи объединяются и сбрасываются на вращающийся диск. Под Linux мы настраивали бы его на сброс каждые 15-30 секунд. Вращающиеся диски могут справиться с этим и могут получить еще большую выгоду, если эти данные сжимаются.

Сервер можно расширить еще 4 открытыми слотами PCIe и дополнительным портом для двухпортовых адаптеров 10GbE FLR. Таким образом, у вас есть сетевая гибкость.

ewwhite
источник
спасибо ewwwite; мы будем использовать NFS, и есть только один клиент (машина), при желании мы будем использовать его как устройство чтения из нашего кластера. (но какая обработка или как неизвестно) У нас есть «пространство», доступное на серверах хранения raid 6.
SvennD
@SvennD Если это NFS и с синхронным монтированием, то определенно возможно масштабировать ZFS в Linux, чтобы удовлетворить потребности в производительности записи и при этом поддерживать требования к длительному объему хранилища. Являются ли данные сжимаемыми? Это еще один фактор. Тем не менее, объем этого выходит за рамки совета, который я мог бы дать на онлайн-форуме бесплатно. Моя контактная информация доступна в моем профиле ServerFault . Свяжитесь со мной, если вам нужно обсудить дальше.
ewwhite
5
ZFS более чем способна на то, что вы просите. Первая проблема заключается в том, чтобы удостовериться, что ваше фактическое оборудование способно на это. Будет довольно легко случайно создать узкое место, более 1 ГБ / с на уровне адаптера или объединительной платы, если вы не будете осторожны. Убедитесь, что вы правильно поняли ЭТО, а затем спросите, как избежать ошибок на стороне ZFS.
Джим Солтер
@SvennD Отредактировано с базовой спецификацией проекта и приблизительными затратами.
ewwhite
Я думаю, что рекомендую Oracle X6-2L вместо сервера HP. Сервер Oracle поставляется с четырьмя сетевыми портами по 10 ГБ. И, по моему опыту, HP заигрывает с вами за смерть за ILOM, лицензирование программного обеспечения ILOM и т. Д. До такой степени, что сервер HP стоит дороже, чем аналогичная коробка Oracle. Мой опыт также говорит мне, что блок Oracle превзойдет блок HP - и будет гораздо реже, чем блок HP, иметь одно из тех аппаратных узких мест, о которых упоминает @JimSalter. Да, покупка у Oracle может быть болезненной.
Эндрю Хенле
23

Для такой экстремальной скорости записи я рекомендую использовать ZFS, BTRFS или любую файловую систему CoW. Я бы использовал XFS, которая чрезвычайно эффективна при больших / потоковых передачах.

Есть много недостающей информации (как вы планируете получить доступ к этим данным? Важны ли скорости чтения? Вы собираетесь писать большими кусками? И т. Д.), Чтобы дать вам конкретные советы, однако некоторые общие советы таковы:

  • используйте XFS поверх необработанного раздела или толстого тома LVM (не используйте тонкие тома)
  • настроить размер ioblock, чтобы эффективно справляться с большими записями данных
  • использовать аппаратную карту RAID с защищенным от потери кэшем записи; если использование аппаратного RAID не подлежит сомнению, используйте программную схему RAID10 (избегая любого режима RAID на основе четности)
  • использовать два сетевых интерфейса 10 Гбит / с с LACP (агрегация каналов)
  • обязательно включите Jumbo Frames
  • так как вы собираетесь использовать NFS, рассмотрите возможность использования pNFS (v4.1) для повышения масштабируемости
  • конечно, много других вещей ...
shodanshok
источник
3
Также, если вы используете XFS, поместите журнал в пару SSD RAID1.
ТБ
2
При использовании карты RAID с кэшем обратной записи, защищенным от потери мощности, журнал можно оставить в основном массиве: кэш записи будет поглощать и объединять записи журнала. Более того, из того, что описывает OP, загрузка метаданных должна быть довольно низкой по сравнению с потоковой передачей данных.
Шоданшок
2
ZFS будет работать нормально и может работать намного быстрее, чем XFS. Конечно, вам нужно настроить его правильно, и иметь ОЗУ и SSD для ZIL и SLOG, но это, вероятно, не имеет значения при требуемых скоростях.
Джон Китс
3
Я рассматриваю XFS в Linux как старую технологию. OP может так же легко запустить ZFS поверх аппаратного RAID. Причина, по которой я рекомендую ZFS, состоит в том, чтобы входящие синхронные записи NFS поглощались SLOG с малой задержкой без необходимости использования пула с полным SSD.
ewwhite
6
Shelby Cobra - это «Старая технология», но она все еще может выкурить большинство автомобилей из ворот. Изначально ZFS никогда не создавалась как высокопроизводительная файловая система, и хотя ее можно настроить так, чтобы она была невероятно быстрой при определенной рабочей нагрузке, по умолчанию она не предназначена для нее. Потребуется больше оборудования, намного больше памяти и много настроек, чтобы превзойти то, что XFS дает вам бесплатно с несколькими опциями файлового монтирования и форматирования.
ТБ
4

Ethernet с пропускной способностью 25 Гбит / с уже граничит с мэйнстримом, в то время как NVMe на базе PCIe будет легко пропускать этот трафик.

Для справки: недавно я создал небольшое решение для «захвата журнала» с использованием четырех обычных серверов с двумя процессорами xeon (в данном случае HPE DL380 Gen9), каждый из которых имеет 6 дисков NVMe. Я использовал IP поверх Infiniband, но эти сетевые адаптеры 25/40 Гбит / с были бы одинаковыми. и мы записываем до 8 Гбит / с на сервер - это удовольствие.

В основном это не дешево, но это очень выполнимо в наши дни.

Chopper3
источник
1
Да, но как вы храните ~ 50 ТБ на NVMe? Спиннеры дешевы, так как же нам объединиться, чтобы поддерживать скорость на
должном
Хороший вопрос, реально вы можете получить только 4 x 4 ТБ на одном сервере, я использую несколько серверов, вероятно, вы не можете? в противном случае это просто нагрузка 2,5 "10krpm в R10
Chopper3
Не хочу, это больше похоже на это, нам не понадобятся эти спецификации, кроме как войти в дверь, и я не хочу кошмарных издержек, связанных с несколькими серверами. только для одной машины. Будет ли R10 достаточно быстрым? (аппаратный налет?)
SvennD
У нас есть Windows 2012R2, который мы построили из запасного комплекта, который не использовался, мы используем его в качестве NAS, у него есть 6 x 400 ГБ SAS SSD внутри, 8 x D2600 полок каждый с 25 x 900 ГБ 10K SAS дисками и D6000 полка с 70 x 4 ТБ дисками, которая может легко заполнять сетевой адаптер 10 Гбит / с - не пробовал его с сетевым адаптером 25 Гбит, но т.
Chopper3
1
@MSalters Существует несколько накопителей PMR (не SMR) емкостью 8/10 ТБ со скоростью передачи в диапазоне 200 МБ / с. Массив дисков 12 или 16, как в RAID10, так и в RAID6, должен легко превышать требуемую скорость передачи 1,1 ГБ / с.
Shodanshok
2

Не похоже на большое дело. Наш местный поставщик оборудования имеет это в качестве стандартного продукта - очевидно, он может поддерживать скорость 1400 МБ / с в режиме записи CCTV, что должно быть тяжелее, чем ваши пиковые требования.

(Ссылка на конфигурацию по умолчанию 12 ГБ, но они отмечают, что 20x4 ТБ также вариант. Никакого личного опыта с этой конкретной моделью сервера.)

MSalters
источник
4
Ну, под «стандартным продуктом» подразумевается «черный ящик с программным обеспечением» с 20 x 600 ГБ sas 15k и 3 x ssd для предприятий. Это справедливое предложение, мы получили похожего от нашего производителя оборудования, но стоимость лицензирования для меня сумасшедшая из-за чего-то, что в основном бесплатное (ZFS). Спасибо, что поделились сборкой! (хорошая ссылка)
SvennD
2

Последовательные записи на скорости 1100 МБ / с не являются проблемой современного оборудования. Как ни странно, моя домашняя установка с 8x5900 об / мин для ноутбуков, 2x15000 об / мин и 2x7200 об / мин выдерживает 300 МБ / с с одноразовой полезной нагрузкой 16 ГБ.

Сеть представляет собой 10GbE с оптоволоконными кабелями, 9000 MTU в Ethernet, а прикладной уровень - Samba 3.0. Хранилище сконфигурировано в raid50 с тремя полосами на трех томах raid5 с 4 накопителями. Контроллер LSI MegaRAID SAS 9271-8i со скоростью до 6 Гбит / с на порт (у меня есть дополнительный, более медленный множитель портов).

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

Я думаю, что вы можете попробовать с любым контроллером 12Gb / s и настроить две зеркальные полосы по восемь дисков 7200 об / мин каждый (почти любой диск должен делать). Начните 3-4 соединения TCP, чтобы насытить соединение, и если одна пара карт 10GbE не может справиться с этим, используйте четыре карты.

Ярослав Рахматуллин
источник
2

Что-то вроде касательного, но рассмотрите возможность использования InfiniBand вместо двойных 10GbE-ссылок. Вы можете получить карты Infiniband 56 Гбит / с довольно дешево или 100 Гбит / с за не слишком много, а в Linux легко использовать NFS с RDMA поверх IB, что обеспечит вам чрезвычайно низкую задержку и почти теоретическую пропускную способность линии (если ваша базовая память может справиться). Вам не нужен коммутатор, только две карты InfiniBand и кабель прямого подключения (или оптоволоконный кабель InfiniBand, если вам нужны большие расстояния).

Стоимость однопортовой карты Mellanox 56 Гбит / с (8x PCIe 3.0), такой как MCB191A-FCAT, составляет менее 700 долларов, а 2-метровый медный кабель прямого подключения стоит 80 долларов.

Производительность обычно выдувает 10GbE из воды во всех случаях использования. Недостатков нет, если только вам не нужен доступ к серверу от множества разных клиентов, которые не могут все использовать InfiniBand (и даже тогда коммутаторы Mellanox могут соединять 10GbE и 40GbE с IB, но это немного больше инвестиций, конечно).

Йоаким Циглер
источник
1

Выполнение этого с ZFS возможно, однако, рассмотрите возможность использования FreeBSD, поскольку FreeBSD имеет более быстрый сетевой стек. Это позволило бы возможно 100 Гбит на одной машине.

1100 Мбит / с звучит как много, но вы можете реально добиться этого, используя только обычные жесткие диски. Вы говорите, что вам нужно 75 ТБ места, чтобы вы могли использовать 24 8 ТБ жестких дисков в зеркалах. Это даст вам 12x скорость записи одного диска и 24x скорость чтения диска. Поскольку эти диски имеют скорость записи более 100 Мбит / с, это может легко обеспечить пропускную способность. Удостоверьтесь, что вы не получите SMR-накопители, так как они имеют значительно меньшую скорость записи.

ZFS создает контрольные суммы для каждого блока. Это реализовано однопоточным. Таким образом, вы должны иметь процессор с достаточно высокой тактовой частотой, чтобы не блокировать.

Однако точные детали реализации в значительной степени зависят от деталей.

mzhaase
источник
12
«У FreeBSD более быстрый сетевой стек» [нуждается в цитировании]
Джим Солтер
В точку. Линукс вполне способен.
ewwhite
1

Мы установили привязку данных NIC 10G к кластеру Gluster через их клиент-предохранитель. Это займет немного настройки, вы не поверите, что производительность может быть достигнута с 3.0.

pozcircuitboy
источник