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

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

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

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

  • максимум составляет 50x75 ГБ / час в пиковый период, который составляет менее 24 часов (большинство вероятно <6h)
  • Мы не ожидаем, что это произойдет в ближайшее время, скорее всего, мы запускать 5–10x75 ГБ / час
  • это предварительная альфа-версия, однако требования должны быть соблюдены (даже если в игре много вопросов)
  • мы бы использовали NFS в качестве соединения с машина к серверу
  • макет: генерирующая машина -> хранилище (это) -> (безопасный рейд 6) -> вычислительный кластер
  • , поэтому скорость чтения не важна , но было бы неплохо использовать его из вычислительного кластера (но это совершенно необязательно)
  • скорее всего, это будут большие файлы данных (не много маленьких)
29
задан 4 January 2017 в 23:07
8 ответов

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

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

Заполните более подробную информацию, и мы посмотрим, сможем ли мы помочь.

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


Правка:

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

Вот спецификация, которая примерно $17k-$23k и помещается в 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 адаптеров. Таким образом, у вас есть сетевая гибкость.

18
ответ дан 28 November 2019 в 20:00

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

1
ответ дан 28 November 2019 в 20:00

что-то вроде тангенса, но подумайте об использовании 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, но это, конечно, немного больше инвестиций)

.
2
ответ дан 28 November 2019 в 20:00

25Gbps Ethernet уже является пограничным потоком, в то время как PCIe-базовый NVMe легко справится с этим трафиком.

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

В принципе, это не дешево, но в наши дни это очень эффективно.

4
ответ дан 28 November 2019 в 20:00

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

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

  • используйте XFS поверх необработанного раздела или толстого тома LVM (не используйте тонкие тома)
  • настройте размер ioblock, чтобы эффективно справляться с большими объемами записи данных
  • используйте аппаратную RAID-карту с кэш-памятью записи, защищённой от потерь мощности; если использование аппаратного RAID не подлежит сомнению, используйте программную схему RAID10 (избегая любого режима RAID на основе четности)
  • используйте два сетевых интерфейса 10 Гбит/с с LACP (агрегация каналов)
  • не забудьте включить Jumbo Frames
  • так как вы собираетесь использовать NFS, подумайте об использовании pNFS (v4). 1) для увеличения масштабируемости
  • , конечно, много других вещей...
23
ответ дан 28 November 2019 в 20:00

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

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

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

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

.
1
ответ дан 28 November 2019 в 20:00

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

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

.
2
ответ дан 28 November 2019 в 20:00

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

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

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

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

.
2
ответ дан 28 November 2019 в 20:00

Теги

Похожие вопросы