Samara Portal Technology, Computers

Самарский портал "Технологии, компьютеры"

Галопом по вычислительным Европам. Часть 7. Ввод-вывод.

С какими хранилищами? Я думаю, что если дело пойдет, то нужно будет написать такую же примерно статью и про архитектуры и эволюцию систем хранения данных. Что-то типа «Дорога длиной в ¾ века: от SAS к NAS и SAN». Посмотрим…

Да, так вот, к примеру: ещё два сетевых DPU (по сегодняшним меркам уже почти начального уровня), берущих на себя значительную часть задач, обычно решаемых драйверами на уровне CPU.

Галопом по вычислительным Европам. Часть 8. Хранение данных. Статья Ильи Вайцмана. 13.11.2023 г.

SolidNet DPU с 2x25 Gbe + 1 GBe, 16 ядрами Cortex A72 и 8 GB оперативной памяти

Галопом по вычислительным Европам. Часть 8. Хранение данных. Статья Ильи Вайцмана. 13.11.2023 г.

NVIDIA BlueField-2 DPU, 2x25 Gbe + 1 GBe, 8 ядер Cortex A72 (с большими кэшами) и 16 GB памяти

Ну, а потом процесс пошёл дальше. Собственно, в жёстких дисках уже давным-давно появились собственные контроллеры, превращавшие видимую снаружи адресацию диска вида «дорожка:сектор» во внутреннее представление, к настоящему времени довольно сильно отличающееся от того, чем оперирует операционная система через драйвер файловой системы. Что же касается SSD и флэшек – так у них вообще никаких дорожек с секторами нет, что никак не мешает работе с ними через ту же NTFS, например, ими оперирующую. Просто их внутренние контроллеры (процессоры) решают задачу преобразования запросов во внутреннее представление аппаратуры накопителя (и ещё множество незаметных для пользователя задач, типа обеспечения равномерности износа, переноса данных из буферных областей на постоянное место хранения, очистка освободившихся ячеек через функцию trim — и так далее, и тому подобное).

Ну, а если какой-никакой процессор в накопителе уже есть, то почему бы не поставить его помощнее, раз уж техпроцесс позволяет? Почему не переложить на него те задачи, которые касаются тоже, в общем-то, только накопителя? Ну и поставили, и переложили.

На сегодня, к примеру, многие даже бытовые SSD поддерживают аппаратное шифрование данных, которое помимо защиты данных от хищения, еще и заметно ускоряет работу с зашифрованным[1] накопителем. Что ещё можно переложить на процессоры в накопителях?

Например, в сам накопитель можно убрать сжатие данных. Учитывая, что данные, зачастую, представлены в виде очень сильно разреженных баз данных с заметной степенью избыточности хранения — сжатие данных может очень существенно увеличить скорость доступа к данным. Одно дело прочитать с накопителя пару гигабайт несжатых данных и совсем другое — прочитать в 2-5 раз меньше сжатых данных, распаковав их на лету. Да и запись тоже получается быстрее. Конечно, время доступа несколько страдает, но учитывая возможность запихнуть в накопитель 4-8 ядерный ARM процессор с частотой 2+ GHz и пару гигабайт оперативной памяти[2], не загружая этими задачами CPU — в итоге получается, всё равно, гораздо лучше.

Что ещё можно туда вынести? Как оказалось, даже часть обработок СУБД, в архитектуре называемой «база данных «ключ-значение». Это, как вы понимаете, радикально сократит объёмы пересылок данных по интерфейсам, а стало быть, позволит «главной задаче» получить больше ответов выборки данных в единицу времени. Собственно, эта задача не слишком сильно отличается от уже давно реализованной задачи трансляции внешних запросов во внутреннее представление, поэтому я думаю, что скоро это появится не только в инстансах гиперскейлеров, но и в настольных накопителях и даже карманных флешках, не в качестве ускорения СУБД, а просто для повышения эффективности интерфейсов[3].

В итоге, от практически прямого управления процессором механикой диска в ранних PC мы доросли до иерархии интеллектуальных устройств, самостоятельно выполняющих свои части обработки для того, чтобы сэкономить ресурсы CPU под «главную задачу».

Некоторые компании идут дальше, и предлагают расширить концепцию предобработки данных и на оперативную память, аппаратно реализовав в самих микросхемах (или хотя бы модулях) памяти и шифрование, и сжатие[4], и даже выборку данных в режиме ключ-значение. Зачем? А всё за тем же: экономия ресурсов, разгрузка CPU и снижение нагрузки на линии передачи данных. Всё это увеличивает общую производительности систем, а зачем же ещё всё это нужно?

Остается, конечно, вопрос: компенсирует ли обеспечиваемая переносом нагрузки на DPU разгрузка CPU и экономия пропускной способности интерфейсов неизбежно вносимую предобработкой задержку? На этот вопрос должны — на этапе проектирования — ответить сами себе архитекторы серверных систем и ЦОДов в целом.

Галопом по вычислительным Европам. Часть 8. Хранение данных. Статья Ильи Вайцмана. 13.11.2023 г.

Хорошо это или плохо? В принципе, наверное, хорошо. Пока оно все работает… Почему? Потому что я даже теоретически не представляю, как можно будет извлечь данные в случае каких-то проблем с такими накопителями. Поэтому повторю священную мантру сисадминов:

РЕГУЛЯРНО ДЕЛАЙТЕ РЕЗЕРВНЫЕ КОПИИ НА ВНЕШНИЕ ДИСКИ И ПОЛЬЗУЙТЕСЬ ОБЛАКАМИ

И напоследок, давайте просто запомним на будущее, чем отличаются процессоры различного назначения.

Галопом по вычислительным Европам. Часть 8. Хранение данных. Статья Ильи Вайцмана. 13.11.2023 г.

[1]Если дойдут руки, то я напишу статью о персональной защите данных, в т.ч. и о шифровании накопителей, включая проблематику оптимизации производительности при использовании шифрования.

[2]Ничего удивительного, посмотрите на свой мобильный телефон. Там, скорее всего, примерно такой процессор с памятью и стоят. В DPU процессоры можно поставить с большими кэшами, с памятью побыстрее — и самое то.

[3]Хотя, конечно, пока неочевидно, что есть необходимость в ускорении «домашних» накопителей NVMe с прямым подключением к PCIe4 4x.

[4]Существует технология zRAM, бывшая очень популярной во времена, когда оперативная память была дорогой. Создавая заметную нагрузку на CPU она, тем не менее, заметно оживляла систему, за счёт уменьшения обращений к медленным жёстким дискам. Сегодня почти не используется — память дешёвая, а SSD быстрые.

Ссылки на все 10 статей цикла «Галопом по вычислительным Европам»:

Галопом по вычислительным Европам. Часть 1. Что такое процессор.

Галопом по вычислительным Европам. Часть 2. Пути повышения IPC.

Галопом по вычислительным Европам. Часть 3. Оптимизация.

Галопом по вычислительным Европам. Часть 4. Как накормить процессор.

Галопом по вычислительным Европам. Часть 5. Память.

Галопом по вычислительным Европам. Часть 6. Спецпроцессоры.

Галопом по вычислительным Европам. Часть 7. Ввод-вывод.

Галопом по вычислительным Европам. Часть 8. Хранение данных.

Галопом по вычислительным Европам. Часть 9. Параллельные миры и техпроцессы.

Галопом по вычислительным Европам. Часть 10. Китайский путь и персональная безопасность.

----

Куда движется розница?

Куда движется розница? Статья Владислава Боярова. 19.04.2024 г

Blood, Sweat & Tears, или Кровь, пот и слёзы – часть четвёртая

Blood, Sweat & Tears, или Кровь, пот и слёзы – часть четвёртая. Статья Владислава Боярова. 12.03.2024 г.

«КАТЮША» в «Пастернаке»: «КАТЮША»

«КАТЮША» в «Пастернаке»: «КАТЮША». Статья Владислава Боярова. 08.04.2024 г.

Pantum в Самаре: business as usual

Галопом по вычислительным Европам. Часть 10. Китайский путь и персональная безопасность.

Галопом по вычислительным Европам. Часть 10. Китайский путь и персональная безопасность. Статья Ильи Вайцмана. 11.12.2023 г.