Готове рішення Dell EMC для зберігання даних HPC PixStor - NVMe Tier

Summary: Блог про компонент HPC Storage Solution, включаючи архітектуру разом із оцінкою продуктивності.

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

Автор – Маріо Гальєгос з HPC та AI Innovation Lab у червні 2020 року
Блог про компонент HPC Storage Solution, включаючи архітектуру разом із оцінкою продуктивності.

Resolution

Готове рішення Dell EMC для зберігання HPC PixStor

            Рівень NVMe

Зміст

Вступ. 1

Архітектура рішення. 1

Компоненти розчину. 1

Характеристика продуктивності. 1

Послідовна продуктивність IOzone: N клієнтів до N файлів. 1

Послідовний IOR Performance N клієнтів до 1 файлу. 1

Випадкові маленькі блоки IOzone Performance N клієнтів в N файлів. 1

Продуктивність метаданих за допомогою MDtest з використанням 4 файлів KiB. 1

Висновки і подальша робота. 1

 

Введення

Сьогоднішні середовища HPC висувають підвищені вимоги до дуже високошвидкісного зберігання даних, а з більшою кількістю процесорів, швидшими мережами та більшим обсягом пам'яті сховище стає вузьким місцем у багатьох робочих навантаженнях. Ці високі вимоги до HPC зазвичай покриваються паралельними файловими системами (PFS), які забезпечують одночасний доступ до одного файлу або набору файлів з кількох вузлів, дуже ефективно та безпечно розподіляючи дані між кількома LUN на кількох серверах. Ці файлові системи зазвичай засновані на обертових носіях, щоб забезпечити найвищу ємність при найменших витратах. Однак все частіше швидкість і затримка обертових середовищ не встигають за вимогами багатьох сучасних робочих навантажень HPC, вимагаючи використання технології флеш-пам'яті у вигляді буферів серійної зйомки, швидших рівнів або навіть дуже швидких скретч, локальних або розподілених. Готове рішення DellEMC для зберігання HPC PixStorвикористовує вузли NVMe як компонент для задоволення таких нових вимог до високої пропускної здатності, а також є гнучким, масштабованим, ефективним і надійним.

Архітектура рішення

Цей блог є частиною серії рішень Parallel File System (PFS) для середовищ HPC, зокрема для DellEMC Ready Solution для HPC PixStor Storage, де сервери DellEMC PowerEdge R640 з дисками NVMe використовуються як рівень на основі швидкої флеш-пам'яті.
Рішення PixStor PFS включає широко поширену загальну паралельну файлову систему, також відому як шкала спектру. ArcaStream також включає багато інших програмних компонентів для забезпечення розширеної аналітики, спрощеного адміністрування та моніторингу, ефективного пошуку файлів, розширених можливостей шлюзу та багато іншого.

Вузли NVMe, представлені в цьому блозі, забезпечують дуже високопродуктивний рівень на основі флеш-пам'яті для рішення PixStor. Продуктивність і ємність для цього рівня NVMe можуть бути збільшені додатковими вузлами NVMe. Збільшена ємність забезпечується за рахунок підбору відповідних NVMe-пристроїв, що підтримуються в PowerEdge R640.

На малюнку 1 представлена еталонна архітектура, що зображує рішення з 4 вузлами NVMe з використанням модуля метаданих високого попиту, який обробляє всі метадані в протестованій конфігурації. Причина в тому, що в даний час ці вузли NVMe використовувалися як цілі зберігання тільки даних. Однак вузли NVMe також можуть використовуватися для зберігання даних і метаданих, або навіть як швидша альтернатива флеш-пам'яті модулю метаданих з високим попитом, якщо цього вимагають екстремальні вимоги до метаданих. Ці конфігурації для вузлів NVMe не тестувалися в рамках цієї роботи, але будуть тестуватися в майбутньому.

 

SLN321889_en_US__1image001(8)

Рисунок 1 Еталонна архітектура

Компоненти розчину

У цьому рішенні використовуються новітні процесори Intel Xeon2-го покоління Scalable Xeon, також відомі як процесори Cascade Lake і найшвидша доступна оперативна пам'ять (2933 МТ/с), за винятком вузлів управління, щоб забезпечити їх економічну ефективність. Крім того, рішення було оновлено до останньої версії PixStor (5.1.3.1), яка підтримує RHEL 7.7 і OFED 5.0, які будуть підтримуваними версіями програмного забезпечення на момент випуску.

Кожен вузол NVMe має вісім пристроїв Dell P4610, які налаштовані як вісім пристроїв RAID 10 на парі серверів, використовуючи рішення NVMe over Fabric, що дозволяє резервувати дані не тільки на рівні пристроїв, але і на рівні сервера. Крім того, коли будь-які дані надходять або виходять з одного з цих пристроїв RAID10, використовуються всі 16 дисків на обох серверах, збільшуючи пропускну здатність доступу до пропускної здатності всіх дисків. Тому єдиним обмеженням для цих компонентів є те, що вони повинні продаватися і використовуватися в парі. Усі накопичувачі NVMe, що підтримуються PowerEdge R640, можуть бути використані в цьому рішенні, однак P4610 має послідовну пропускну здатність 3200 МБ/с як для читання, так і для запису, а також високі випадкові специфікації IOPS, що є приємними функціями при спробі масштабованої оцінки кількості пар, необхідних для задоволення вимог цього рівня флеш-пам'яті.

Кожен сервер R640 має два HCA Mellanox ConnectX-6 Single Port VPI HDR100, які використовуються як з'єднання EDR 100 Gb IB. Однак вузли NVMe готові підтримувати швидкість HDR100 при використанні з кабелями та комутаторами HDR. Тестування HDR100 на цих вузлах відкладено в рамках оновлення HDR100 для всього рішення PixStor. Обидва інтерфейси CX6 використовуються для синхронізації даних для RAID 10 (NVMe over fabric) і як підключення для файлової системи. Крім того, вони забезпечують резервування обладнання на адаптері, порту та кабелі. Для резервування на рівні комутатора потрібні двопортові адаптери CX6 VPI, але їх потрібно купувати як компоненти S&P.
Щоб охарактеризувати продуктивність вузлів NVMe, з системи, зображеної на рисунку 1, використовувалися лише модуль метаданих високого попиту та вузли NVMe.

У таблиці 1 наведено перелік основних компонентів для розчину. Зі списку дисків, що підтримуються в ME4024, твердотільні накопичувачі ємністю 960 Гб використовувалися для метаданих і використовувалися для характеристики продуктивності, а швидші диски можуть забезпечити кращі випадкові IOP і можуть покращити операції створення/видалення метаданих. Усі пристрої NVMe, що підтримуються на PowerEdge R640, будуть підтримуватися для вузлів NVMe.

Таблиця 1: Компоненти, які будуть використовуватися під час випуску, і компоненти, що використовуються на випробувальному стенді

Компонент розчину

На момент випуску

Внутрішнє підключення

Dell Networking S3048-ON Gigabit Ethernet

Підсистема зберігання даних

Від 1x до 4x Dell EMC PowerVault ME4084

Від 1x до 4x Dell EMC PowerVault ME484 (по одному на ME4084)
80–12 ТБ 3.5" NL SAS3 HDD
Опції 900 ГБ @15K, 1,2 ТБ @10K, 1,8 ТБ @10K, 2,4 ТБ @10K, 4 ТБ NLS,
8 ТБ NLS, 10 ТБ NLS, 12 ТБ NLS.
    8 ЛУНів, лінійний 8+2 RAID 6, розмір шматка 512КіБ.
4 твердотільні накопичувачі SAS3 ємністю 1,92 ТБ для метаданих – 2x RAID 1 (або 4 - глобальні жорсткі диски, якщо використовується додатковий модуль метаданих високого вимогу)

Додаткова підсистема зберігання метаданих з високим рівнем вимоги

Від 1x до 2x Dell EMC PowerVault ME4024 (4x ME4024, якщо потрібно, лише велика конфігурація)
24x 960 ГБ 2.5-дюймових SSD дисків SAS3 (опції 480 ГБ, 960 ГБ, 1,92 ТБ, 3,84 ТБ)
12 лунів, лінійний RAID 1.

Контролери сховища RAID

SAS 12 Гбіт/с

Процесор

Вузли NVMe

2x Intel Xeon Gold 6230 2.1G, 20C/40T
10.4GT/s, 27.5 Мб кеш-пам'яті, Turbo, HT (125 Вт) DDR4-2933

Метадані високого попиту

Вузол зберігання

Вузол управління

2x Intel Xeon Gold 5220 2.2G, 18C/36T
10.4GT/s, 24.75M кеш-пам'яті, турбо, HT (125 Вт) DDR4-2666

Пам'ять

Вузли NVMe

12x 16 Гб, 2933 МТ/с RDIMM (192 ГіБ)

Метадані високого попиту

Вузол зберігання

Вузол управління

12 модулів DIMM по 16 ГБ, 2666 МТ/с (192 ГБ)

Операційна система

CentOS 7.7

Версія ядра

3.10.0-1062.12.1.el7.x86_64

Програмне забезпечення PixStor

5.1.3.1

Програмне забезпечення файлової системи

Шкала спектру (GPFS) 5.0.4-3 з NVMesh 2.0.1

Високопродуктивне підключення до мережі

Вузли NVMe: 2x ConnectX-6 InfiniBand з використанням EDR/100 GbE
Інші сервери: Mellanox ConnectX-5 InfiniBand EDR/100 GbE та 10 GbE

Високопродуктивний перемикач

2x Mellanox SB7800

Версія OFED

Мелланокс ОФЕД 5.0-2.1.8.0

Локальні диски (ОС та аналіз/моніторинг)

Усі сервери, крім тих, що перераховані                NVMe-вузлами

3x 480GB SSD SAS3 (RAID1 + HS) для ОС3x 480GB SSD SAS3 (RAID1 + HS) для ОС

PERC H730P RAID контролер                  PERC H740P RAID контролер

Вузол управління

3x 480GB SSD SAS3 (RAID1 + HS) для ОС з RAID контролером PERC H740P

Управління системами

iDRAC 9 Enterprise + DellEMC OpenManage

 

Характеристика продуктивності

Для характеристики цього нового компонента Ready Solution були використані такі орієнтири:

        ·IOзона від N до N послідовна
 
       ·IOR N до 1 послідовного
 
       ·IOzone випадковий
 
       ·MDtest

Для всіх контрольних показників, перерахованих вище, на випробувальному стенді були клієнти, як описано в таблиці 2 нижче. Оскільки кількість обчислювальних вузлів, доступних для тестування, становила лише 16, коли було потрібно більше потоків, ці потоки були рівномірно розподілені на обчислювальних вузлах (тобто 32 потоки = 2 потоки на вузол, 64 потоки = 4 потоки на вузол, 128 потоків = 8 потоків на вузол, 256 потоків = 16 потоків на вузол, 512 потоків = 32 потоки на вузол, 1024 потоки = 64 нитки на вузол). Намір полягав у тому, щоб змоделювати більшу кількість одночасних клієнтів при обмеженій кількості доступних обчислювальних вузлів. Оскільки деякі бенчмарки підтримують велику кількість потоків, використовувалося максимальне значення до 1024 (вказується для кожного тесту), уникаючи надмірного перемикання контексту та інших пов'язаних побічних ефектів, що впливають на результати продуктивності.

 

Таблиця 2 Випробувальний стенд клієнта

Кількість вузлів клієнта

16

Вузол клієнта

З6320

Процесори на вузол клієнта

2x Intel(R) Xeon(R) Gold E5-2697v4 18 ядер @ 2.30 ГГц

Пам'ять на вузол клієнта

8x 16 ГБ, 2400 МТ/с RDIMM (128 ГіБ)

BIOS

2.8.0

Ядро ОС

3.10.0-957.10.1

Програмне забезпечення файлової системи

Шкала спектру (GPFS) 5.0.4-3 з NVMesh 2.0.1

 

Послідовна продуктивність IOzone: N клієнтів до N файлів

Продуктивність послідовних N клієнтів до N файлів була виміряна за допомогою версії IOzone 3.487. Виконувані тести варіювалися від одного потоку до 1024 потоків з кроком степенів у два.

Ефекти кешування на серверах були зведені до мінімуму завдяки встановленню пулу сторінок GPFS на 16 Гібіт і використанню файлів, більших за вдвічі більший за розмір. Важливо відзначити, що для GPFS, що налаштовується, встановлюється максимальний обсяг пам'яті, що використовується для кешування даних, незалежно від обсягу встановленої та вільної оперативної пам'яті. Крім того, важливо зазначити, що в той час як у попередніх рішеннях DellEMC HPC розмір блоку для великих послідовних передач становив 1 МіБ, GPFS форматувалася з 8 МіБ блоками, і тому це значення використовується в тесті для оптимальної продуктивності. Це може виглядати занадто великим і, очевидно, витрачати занадто багато місця, але GPFS використовує розподіл субблоків, щоб запобігти такій ситуації. У поточній конфігурації кожен блок був розділений на 256 підблоків по 32 КіБ кожен.

Наступні команди були використані для виконання тесту для запису та читання, де $Threads була змінною з кількістю використаних потоків (від 1 до 1024 з інкрементом у степенях двох), а список потоків був файлом, який виділяв кожен потік на іншому вузлі, використовуючи кругову систему для однорідного розподілу їх між 16 обчислювальними вузлами.

Щоб уникнути будь-яких можливих ефектів кешування даних від клієнтів, загальний розмір даних файлів був удвічі більшим, ніж загальний обсяг оперативної пам'яті в використовуваних клієнтах. Тобто, оскільки кожен клієнт має 128 ГіБ оперативної пам'яті, для кількості потоків, що дорівнює або перевищує 16 потоків, розмір файлу становив 4096 ГіБ, поділений на кількість потоків (для керування цим значенням використовувалася змінна $Size нижче). У тих випадках, коли містилося менше 16 потоків (що означає, що кожен потік виконувався на різних клієнтах), розмір файлу був зафіксований на рівні вдвічі більшого обсягу пам'яті на клієнт, або 256 ГіБ.

iozone -i0 -c -e -w -r 8M -s $ G -t $Threads -+n -+m ./threadlist
iozone -i1 -c -e -w -r 8M -s $ G -t $Threads -+n -+m ./threadlist

SLN321889_en_US__2image002(1)

Рисунок 2: Послідовне виконання від N до N

З результатів ми можемо спостерігати, що продуктивність запису зростає зі збільшенням кількості використаних потоків, а потім досягає плато приблизно 64 потоки для запису та 128 потоків для читання. Потім продуктивність читання також швидко зростає зі збільшенням кількості потоків, а потім залишається стабільною до досягнення максимальної кількості потоків, дозволених IOzone, і, отже, продуктивність великих послідовних файлів стабільна навіть для 1024 одночасних клієнтів. Продуктивність запису падає приблизно на 10% при 1024 потоках. Однак, оскільки клієнтський кластер має менше цієї кількості ядер, невідомо, чи падіння продуктивності пов'язане зі свопом і подібними накладними витратами, які не спостерігаються на обертових носіях (оскільки затримка NVMe дуже низька в порівнянні з обертовими носіями), або ж синхронізація даних RAID 10 стає вузьким місцем. Щоб уточнити цей момент, потрібно більше клієнтів. Аномалія зчитування спостерігалася на 64 потоках, де продуктивність не масштабувалася з тією швидкістю, яка спостерігалася для попередніх точок даних, а потім на наступній точці даних переходить до значення, дуже близького до стійкої продуктивності. Щоб знайти причину такої аномалії, потрібні додаткові тестування, але це виходить за рамки цього блогу.

Максимальна продуктивність зчитування для зчитування була нижчою за теоретичну продуктивність пристроїв NVMe (~102 ГБ/с) або продуктивність EDR-каналів, навіть якщо припустити, що один канал в основному використовувався для NVMe через тканинний трафік (4x EDR BW ~96 ГБ/с).
Втім, це не дивно, оскільки апаратна конфігурація не збалансована щодо пристроїв NVMe та IB HCA під кожним процесорним роз'ємом. Один адаптер CX6 знаходиться під CPU1, тоді як CPU2 має всі пристрої NVMe і другі адаптери CX6. Будь-який трафік зберігання даних, що використовує перший HCA, повинен використовувати UPI для доступу до пристроїв NVMe. Крім того, будь-яке ядро в CPU1, що використовується, повинно звертатися до пристроїв або пам'яті, призначеної CPU2, тому локальність даних страждає, і використовуються UPI-зв'язки. Це може пояснити зниження максимальної продуктивності в порівнянні з максимальною продуктивністю пристроїв NVMe або швидкістю лінії для CX6 HCA. Альтернативою для вирішення цього обмеження є збалансована апаратна конфігурація, яка передбачає зменшення щільності вдвічі за рахунок використання R740 з чотирма слотами x16 і використання двох розширювачів x16 PCIe для рівномірного розподілу пристроїв NVMe на двох процесорах і наявності одного CX6 HCA під кожним процесором.

Послідовний IOR Performance N клієнтів до 1 файлу

Продуктивність послідовних N клієнтів до одного спільного файлу була виміряна за допомогою IOR версії 3.3.0 за допомогою OpenMPI v4.0.1 для запуску тесту на 16 обчислювальних вузлах. Виконувані тести варіювалися від одного потоку до 512 потоків, оскільки ядер не вистачало на 1024 і більше потоків. У цьому бенчмарк-тесті використовувалися 8 блоків МіБ для оптимальної продуктивності. Попередній розділ тестування продуктивності містить більш повне пояснення, чому це важливо.

Ефекти кешування даних були зведені до мінімуму завдяки встановленню пулу сторінок GPFS з можливістю налаштування на 16 Гб, а загальний розмір файлу вдвічі перевищував загальний обсяг оперативної пам'яті у використовуваних клієнтах. Тобто, оскільки кожен клієнт має 128 ГіБ оперативної пам'яті, для кількості потоків, що дорівнює або перевищує 16 потоків, розмір файлу становив 4096 ГіБ, і рівна сума цієї суми була розділена на кількість потоків (для керування цим значенням використовувалася змінна $Size нижче). У тих випадках, коли було менше 16 потоків (що означає, що кожен потік виконувався на різних клієнтах), розмір файлу вдвічі перевищував обсяг пам'яті на одного клієнта, помноженого на кількість потоків, або, іншими словами, кожен потік просив використовувати 256 ГіБ.

Наступні команди були використані для виконання тесту для запису та читання, де $Threads була змінною з кількістю використаних потоків (від 1 до 1024 з кроком у степенях двох), а my_hosts.$Threads — це відповідний файл, який розподіляв кожен потік на іншому вузлі, використовуючи кругову систему для їх однорідного розподілу між 16 обчислювальними вузлами.

mpirun --allow-run-as-root -np $Threads --hostfile my_hosts.$Threads --mca btl_openib_allow_ib 1 --mca pml ^ucx --oversubscribe --prefix /mmfs1/perftest/ompi /mmfs1/perftest/lanl_ior/bin/ior -a POSIX -v -i 1 -d 3 -e -k -o /mmfs1/perftest/tst.file -w -s 1 -t 8m -b $ G

mpirun --allow-run-as-root -np $Threads --hostfile my_hosts.$Threads --mca btl_openib_allow_ib 1 --mca pml ^ucx --oversubscribe --prefix /mmfs1/perftest/ompi /mmfs1/perftest/lanl_ior/bin/ior -a POSIX -v -i 1 -d 3 -e -k -o /mmfs1/perftest/tst.file -r -s 1 -t 8m -b $ G

 

SLN321889_en_US__3image003(5)

Рисунок 3 N до 1 Послідовне виконання

З результатів ми можемо спостерігати, що продуктивність читання та запису висока, незалежно від неявної потреби в механізмах блокування, оскільки всі потоки звертаються до одного файлу. Продуктивність знову зростає дуже швидко зі збільшенням кількості використовуваних потоків, а потім досягає плато, яке є відносно стабільним для читання та запису аж до максимальної кількості потоків, використаних у цьому тесті. Зверніть увагу, що максимальна продуктивність зчитування становила 51,6 ГБ/с при 512 потоках, але плато в продуктивності досягається приблизно на рівні 64 потоків. Аналогічно, зверніть увагу, що максимальна продуктивність запису 34,5 ГБ/с була досягнута при 16 потоках і досягла плато, яке можна спостерігати до максимальної кількості використаних потоків.

Випадкові маленькі блоки IOzone Performance N клієнтів до N файлів

Продуктивність випадкових N клієнтів до N файлів була виміряна за допомогою версії IOzone 3.487. Виконувані тести варіювалися від одного потоку до 1024 потоків з кроком степенів у два.

Виконувані тести варіювалися від одного потоку до 512 потоків, оскільки не вистачало клієнт-ядер на 1024 потоки. Кожен потік використовував окремий файл, і потоки призначалися за круговою системою на вузлах клієнта. У цьому бенчмарк-тесті використовувалися 4 блоки KiB для емуляції трафіку невеликих блоків і з використанням глибини черги 16. Порівнюються результати від рішення для великих розмірів і розширення потужності.

Ефекти кешування знову були зведені до мінімуму завдяки встановленню настроюваного пулу сторінок GPFS на 16 Гб, а щоб уникнути будь-яких можливих ефектів кешування даних від клієнтів, загальний розмір даних файлів був удвічі більшим, ніж загальний обсяг оперативної пам'яті у використовуваних клієнтах. Тобто, оскільки кожен клієнт має 128 ГіБ оперативної пам'яті, для кількості потоків рівної або понад 16 потоків розмір файлу становив 4096 ГіБ, поділений на кількість потоків (для керування цим значенням використовувалася змінна $Size нижче). У тих випадках, коли містилося менше 16 потоків (що означає, що кожен потік виконувався на різних клієнтах), розмір файлу був зафіксований на рівні вдвічі більшого обсягу пам'яті на клієнт, або 256 ГіБ.

iozone -i0 -I -c -e -w -r 8M -s $ G -t $Threads -+n -+m ./nvme_threadlist <= Створюйте файли послідовно
iozone -i2 -I -c -O -w -r 4k -s G -t $Threads -+n -+m ./nvme_threadlist <= Виконуйте випадкові читання та записи.

 

SLN321889_en_US__4image004(1)

Рисунок 4 Від N до N Випадкова продуктивність

З результатів ми можемо спостерігати, що продуктивність запису починається з високого значення 6K IOps і неухильно зростає до 1024 потоків, де, здається, досягається плато з більш ніж 5M IOPS, якщо можна використовувати більше потоків. З іншого боку, продуктивність зчитування починається з 5K IOPS і неухильно зростає з кількістю використаних потоків (майте на увазі, що кількість потоків подвоюється для кожної точки даних) і досягає максимальної продуктивності 7,3 Мб IOPS при 1024 потоках без ознак досягнення плато. Використання більшої кількості потоків вимагатиме більше, ніж 16 обчислювальних вузлів, щоб уникнути нестачі ресурсів і надмірного обміну, який може знизити видиму продуктивність, де вузли NVMe фактично могли б підтримувати продуктивність.

Продуктивність метаданих за допомогою MDtest з використанням 4 KiB файлів

Продуктивність метаданих була виміряна за допомогою MDtest версії 3.3.0, за допомогою OpenMPI v4.0.1 для запуску тесту на 16 обчислювальних вузлах. Виконувані тести варіювалися від одного потоку до 512 потоків. Бенчмарк використовувався лише для файлів (без метаданих каталогів), отримуючи кількість створень, статистику, читання та видалення, з якими може впоратися рішення, а результати контрастували з рішенням великого розміру.

Був використаний необов'язковий модуль метаданих високого вимогу, але з одним масивом ME4024, навіть якщо велика конфігурація і протестована в цій роботі була призначена для двох ME4024. Причина використання цього модуля метаданих полягає в тому, що наразі ці вузли NVMe використовуються як цілі зберігання лише для даних. Однак вузли можуть використовуватися для зберігання даних і метаданих, або навіть як альтернатива флеш-пам'яті для модуля метаданих високого попиту, якщо цього вимагають екстремальні вимоги до метаданих. Ці конфігурації не тестувалися в рамках цієї роботи.

Оскільки той самий модуль High Demand Metadata використовувався для попереднього бенчмаркінгу рішення DellEMC Ready Solution for HPC PixStor Storage, результати метаданих будуть дуже схожими порівняно з попередніми результатами блогу. З цієї причини дослідження з порожніми файлами не проводилося, а замість цього було використано 4 KiB-файли. Оскільки файли 4KiB не можуть поміститися в індексний дескриптор разом з інформацією про метадані, вузли NVMe будуть використовуватися для зберігання даних для кожного файлу. Таким чином, MDtest може дати приблизне уявлення про продуктивність невеликих файлів для читання та інших операцій з метаданими.

Для виконання тесту була використана наступна команда, де $Threads — змінна з кількістю використаних потоків (від 1 до 512 з кроком степенів двох), а my_hosts.$Threads — це відповідний файл , який розподіляв кожен потік на іншому вузлі, використовуючи кругову систему для однорідного розподілу їх між 16 обчислювальними вузлами. Подібно до бенчмарку Random IO, максимальна кількість потоків була обмежена 512, оскільки ядер не вистачає для 1024 потоків і перемикання контексту вплинуло б на результати, повідомляючи про число нижче, ніж реальна продуктивність рішення.

mpirun --allow-run-as-root -np $Threads --hostfile my_hosts.$Threads --prefix /mmfs1/perftest/ompi --mca btl_openib_allow_ib 1 /mmfs1/perftest/lanl_ior/bin/mdtest -v -d /mmfs1/perftest/ -i 1 -b $Directories -z 1 -L -I 1024 -y -u -t -F -w 4K -e 4K

Оскільки на результати продуктивності може впливати загальна кількість IOPS, кількість файлів на каталог і кількість потоків, було вирішено залишити фіксованою загальну кількість файлів до 2 файлів MiB (2^21 = 2097152), кількість файлів на каталог зафіксована на рівні 1024, а кількість каталогів змінювалася зі зміною кількості потоків, як показано в таблиці 3.

Таблиця 3 MDtest розподіл файлів по каталогах

Кількість ниток

Кількість каталогів у потоці

Загальна кількість файлів

1

2048

2,097,152

2

1024

2,097,152

4

512

2,097,152

8

256

2,097,152

16

128

2,097,152

32

64

2,097,152

64

32

2,097,152

128

16

2,097,152

256

8

2,097,152

512

4

2,097,152

 

SLN321889_en_US__5image005(5)

Рисунок 5: Продуктивність метаданих – 4 файли KiB

По-перше, зверніть увагу, що обрана шкала була логарифмічною з основою 10, щоб дозволити порівнювати операції, які мають відмінності з декількома порядками; В іншому випадку деякі операції виглядали б як плоска лінія, близька до 0 в лінійному масштабі. Логарифмічний графік з основою 2 міг би бути більш відповідним, оскільки кількість потоків збільшується в степенях 2, але графік виглядав би дуже схожим, і люди схильні обробляти та запам'ятовувати кращі числа на основі степенів 10.

Система отримує дуже хороші результати, як повідомлялося раніше, операції Stat досягають пікового значення на 64 потоки з майже 6,9 млн операцій/с, а потім зменшуються для більшої кількості потоків, досягаючи плато. Операції створення досягають максимуму в 113 Кб операцій/с при 512 потоках, тому очікується, що вони продовжать зростати, якщо використовується більше клієнтських вузлів (і ядер). Операції читання та видалення досягли свого максимуму в 128 потоків, досягнувши свого піку майже в 705 тисяч операцій/с для читання та 370 тисяч операцій/с для видалень, а потім вони досягли плато. Операції зі статистикою мають більшу варіативність, але як тільки вони досягають свого пікового значення, продуктивність не падає нижче 3,2 млн операцій/с для статистики. Створення та Видалення стають більш стабільними, як тільки вони досягають плато та залишаються вище 265 Кб операцій/с для Видалення та 113 Кбайт операцій/с для Створення. Нарешті, читання досягають плато з продуктивністю вище 265 тис.

 

Висновки і подальша робота

Вузли NVMe є важливим доповненням до рішення для зберігання даних HPC, оскільки забезпечують дуже високопродуктивний рівень, з хорошою щільністю, дуже високою продуктивністю довільного доступу та дуже високою послідовною продуктивністю. Крім того, рішення лінійно масштабується за ємністю та продуктивністю в міру додавання більшої кількості модулів вузлів NVMe. Продуктивність вузлів NVMe можна розглянути в таблиці 4, очікується, що вона буде стабільною, і ці значення можуть бути використані для оцінки продуктивності для різної кількості вузлів NVMe.
Однак майте на увазі, що кожна пара вузлів NVMe забезпечить половину будь-якого числа, показаного в таблиці 4.
Це рішення надає клієнтам HPC дуже надійну паралельну файлову систему, яка використовується багатьма кластерами Top 500 HPC. Крім того, він надає виняткові можливості пошуку, розширений моніторинг і управління, а додавання додаткових шлюзів дозволяє обмінюватися файлами через всюдисущі стандартні протоколи, такі як NFS, SMB та інші, для будь-якої кількості клієнтів, скільки потрібно.

Таблиця 4: Пікова та стійка продуктивність для 2 пар вузлів NVMe

 

Максимальна продуктивність

Стабільна продуктивність

Написати

Читати

Написати

Читати

Великі послідовні N клієнтів у N файлів

40,9 ГБ/с

84,5 ГБ/с

40 ГБІТ/с

81 ГБІТ/с

Великі послідовні N клієнтів до одного спільного файлу

34,5 ГБ/с

51,6 ГБ/с

31,5 ГБ/с

50 ГБІТ/с

Випадкові маленькі блоки N клієнтів до N файлів

5,06 МІОПС

7.31 МІОПС

5 МІОПС

7.3 МІОПС

Метадані Створення файлів 4KiB

113 тис IOps

113 тис IOps

Статистика метаданих файлів 4KiB

6,88 МБ IOps

3,2 МБ IOps

Читання метаданих файлів 4KiB

705 тис IOps

500 тис IOps

Метадані Видалити файли 4KiB

370 тис IOps

265 тис IOps

 

Оскільки вузли NVMe використовувалися лише для даних, можлива майбутня робота може включати їх використання для даних та метаданих і мати автономний рівень на основі флеш-пам'яті з кращою продуктивністю метаданих завдяки вищій пропускній здатності та меншій затримці пристроїв NVMe порівняно з SSD SAS3 за контролерами RAID. З іншого боку, якщо клієнт має надзвичайно високі вимоги до метаданих і вимагає рішення більш щільного, ніж те, що може забезпечити модуль метаданих високого попиту, деякі або всі розподілені пристрої RAID 10 можуть використовуватися для метаданих так само, як зараз використовуються пристрої RAID 1 на ME4024s.
Ще один блог, який незабаром вийде у світ, буде характеризувати вузли PixStor Gateway, які дозволяють підключати рішення PixStor до інших мереж за допомогою протоколів NFS або SMB і можуть масштабувати продуктивність. Крім того, дуже скоро рішення буде оновлено до HDR100, і очікується, що про цю роботу розповість ще один блог.

 

Affected Products

High Performance Computing Solution Resources
Article Properties
Article Number: 000130558
Article Type: Solution
Last Modified: 21 Feb 2021
Version:  3
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.