Кога сториджът Ви трябва да е NVMe?

Може би сте попадали на термина NVMe и сте се чудили какво е това и защо всеки уважаващ себе си хостинг доставчик се стреми да въведе тази технология поне донякъде в системите си? Може дори да сте наясно, че NVMe означава много по-бърз достъп до сториджа на сървъра Ви? И все пак се питате – достатъчно ли е важно NVMe или е само някакъв маркетингов трик? В тази статия ще се опитаме да отговорим на тези въпроси и да обясним по-достъпно какво представлява тази технология и защо е важна за бизнеса.

Времезакъснения

Когато клиентът на един интернет магазин отправи заявка за зареждане на страницата на магазина, в идеалния случай тази заявка ще бъде обработена от оперативната памет на машината. Ако свързаността и изчислителната мощ на сървъра са умерено натоварени, заявката ще бъде изпълнена мигновенно, страницата ще бъде сервирана от кеша и потребителят ще продължи да се наслаждава спокоен на пазаруването си. Този идеален случай би продължил да съществува до момента, когато потребителят реши да заяви артикул, различен от последните няколко разглеждани и се наложи сървърът да бръкне в сторидж системите, за да извади желаната стока. Ако си представим ситуацията като един обичаен магазин и артикулите в оперативната памет отговарят на изложените на витрината, достъпът до сториджа изглежда като аналог на това продавачът да отиде до склада, за да донесе неизложена стока. Дали е така отговаря следното сравнение:

Действия на компютъра Средно времезакъснение Аналог в човешко време
Цикъл на процесор 2 GHz 0,3 ns 1 сек
L2 Cache достъп 2,8 ns 9 сек
RAM достъп 70-100 ns 4-6 минути
SSD NVMe достъп 7-100 microsec 2 h – 1,5 ден
SSD SATA достъп 150-200 microsec 2 – 2,5 дни
Ротационен диск достъп 1-10 milisec 11 дни до 4 месеца
Интернет свързаност България 1-10 milisec 11 дни до 4 месеца

С други думи ако нашият обичаен магазин проверяваше артикули със скоростта на ротационен диск (HDD), всеки следващ артикул би му отнемал десетина дни или дори няколко месеца за проверка! Ако обслужването във всеки един магазин е с такава скорост, клиентите биха се примирили или биха избягвали онлайн пазаруването въобще. Когато обаче няколко магазина въведат значително съкращение в скоростта на обслужване, разликата започва да прави впечатление. А разликата в този случай е близо 50 пъти по-голяма. Не случайно SSD сториджите усилено изместват ротационните дискове от пазара на корпоративни услуги, а дори и при този на крайните потребители. Когато нивото на обслужване във всички магазини се вдигне, допълнителното ускорение в някой от тях прави още по-добро впечатление и дърпа стандарта за всички нагоре. И тук се намесва основното действащо лице на тази статия: NVMe е с 2 до 20 пъти по-бърз от стандартните SSD SATA сториджи.  Добре, това може да е приятно и удобно, но едва ли би било основна причина за редовия клиент да направи покупка. Ако в съседния магазин е по-евтино или продавачката/продавачът са по-хубави, бихме могли да предположим, че в една част от случаите няма да спечелим клиента само с 2 до 20 пъти по-бързо обслужване.  Още повече, че доскоро са го обслужвали за няколко месеца.

Опашки и микросървиси

Какво би станало обаче ако в нашия магазин има не един продавач, а 64 хиляди продавачи едновременно. Нека освен това всеки един продавач има 2 хиляди пъти повече ръце от стандартното.  Това няма да направи нашите продавачи по-привлекателни, но можете да изчислите колко повече заявки биха могли да се изпълняват  от тази технология. Такава е разликата между NVMe и най-разпространените до момента SATA SSD флаш сториджи. Докато SATA и SAS (друга разпространена технология) могат да обслужват заявки за достъп до сториджа само в една опашка от съответно 32 и 256 команди, NVMe предлага 64 хиляди опашки, всяка с 64 хиляди команди в себе си. Това вече е огромна разлика.

И все пак какво значение би имало това за нашия клиент? Посрещнат от такава продажбена мощ, би ли могъл той да се възползва от нея? Отговорът тук става все по-положителен с времето и развитието на технологиите. Съвременните програми започват все повече да се променят и от една сложна монолитна единица, да се превръщат в множество малки услуги, работещи заедно – микросървиси.  Този подход опростява разработката, въвеждането в експлоатация, поддръжката и независимостта им по отношение на устойчивостта.

Да вземем за пример последните препоръки за услуги, необходими при инсталацията на един от най-популярните e-commerce софтуери на пазара към момента – Magento 2. Препоръчаните услуги за пълна функционалност на системата са Elasticsearch, Mariadb, Nginx, PHP, Varnish, Redis и RabbitMQ. Към тях бихме могли да добавим и smtp услуга и няколко други допълнителни функционалности в зависимост от проекта. Някой от тези услуги работят в последователност и синхронизирано, други работят асинхронно и независимо от останалите. Когато една услуга работи асинхронно, това изисква буферно пространство, в което да съхранява данните, които ще ѝ бъдат необходими. За такова буферно пространство  се използват опашките, които разгледахме по-горе.  Използвайки такава дистрибутирана архитектура микросървисите могат да работят едновременно, осигурявайки сигурност, скалируемост и скорост.

CPU оптимизация

Заради бавната обработка от страна на традиционните сториджи, голяма част от времето на съвременните процесори минава в изчакване. Процесорът може да изпълнява милиарди команди в секунда, но партниращите му сторидж драйвери не могат да започнат нова задача преди да са завършили първата подадена. Това забавя значително целия процес и е разхищение на ресурси, достойно за възмущението на всеки системен администратор.

NVMe сториджите могат да поемат огромно количество команди от процесора благодарение на огромното количество опашки, които могат да предложат. Това разтоварване освобождава процесорно време и позволява изчислителната мощ да бъде насочена към други задачи като криптиране или компресия. Новите приложения използват все повече данни и рано или късно ще се наложи обслужващият ги хардуер да бъде подменен така че да отговаря на изискванията им.

Колко e IOPS?

Input/Output Operations Per Second е характеристика, която отразява колко операции в секунда може да обработи сторидж системата. Сама по себе си тя не дава пълна информация за представянето на оборудването. Затова дотук не задълбавахме толкова в данните за IOPS. Ако Вашето приложение изисква 50 хил. IOPS, за него няма толкова значение дали обслужващите сториджи поддържат 60 хил. или 1 милион IOPS. Времезакъсненията  имат значение при всички случаи. И все пак ако за Вашето приложение IOPS са основен фактор или просто сте любители на статистиката, сравнителните данни отново са безпощадни:

  • За 100% random reads, NVMe има 3x по-добри IOPS от 12Gbps SAS
  • За 70% random reads, NVMe има 2x по-добри IOPS от 12Gbps SAS
  • За 100% random writes, NVMe има 1.5x по-добри IOPs от 12Gbps SAS
  • 100% reads: NVMe има 2x представянето на 12Gbps SAS
  • 100% writes: NVMe има 2.5x представянето на 12Gbps SAS

Обобщение като за директора

Изискванията на клиентите се променят, софтуерът ги следва, а новия софтуер изисква и съответния хардуер. Целият този цикъл се ускорява с времето. Необходимостта от подмяна на хардуера вече изпреварва периодът, в който той се е изплатил. Свидетелство за това са много технологии и една от тях са NVMe сториджите. За някои приложения те дават конкурентно предимство, за други са задължително изискване. Ако архитектурата на ползваните от компанията Ви програми има нещо общо с микросървиси, Ви трябва NVMe. Ако искате да подобрите значително представянето на базите си данни, Ви трябва NVMe. Ако предоставяте някакъв вид стрийминг услуги и те трябва да са конкурентноспособни и за напред, Ви трябва NVMe. При това NVMe е постоянно развиваща се технология, така че дори сега да инвестирате в нея и да подмените всичките си сториджи, утре може да има вече по-бърз вариант. Използвайки клауд услуга, прехвърляте бремето на надпреварата с технологиите на доставчика си. Попитайте го дали използва NVMe в сървърите, които Ви предоставя.

В Делта Клауд от няколко години всички клауд сървъри са изцяло върху NVMe технология с Software Defined Storage, който е специално оптимизиран, така че да извлече максимума от нея. Някои от най-големите електронни магазини, медии и банки използват платформата на Делта именно заради възможностите, които предлага тази сторидж технология, когато е впрегната по правилния начин. В облака на Делта освен бързина, тя предполага и извънредна сигурност, защото всеки бит информация е репликиран три пъти, осигурявайки надеждност и допълнителна скорост на обработка. През тази година сме замислили и допълнителни обновления, така че следете какво се случва на блога ни. Ще Ви държим в течение.

Използвани са материали от следните статии:

https://blogs.cisco.com/datacenter/nvme-for-absolute-beginners
https://www.simms.co.uk/tech-talk/pcie-and-nvme-explained
https://blog.westerndigital.com/nvme-queues-explained
https://devdocs.magento.com/cloud/project/services.html
Павел Недялков

Павел Недялков

Павел е Мениджър Бизнес Развитие в Делта.БГ. Има 15 годишен опит в телекомуникациите и е работил в редица международни технологични компании. Когато не подготвя оферти, пише статии, чете за нови технологии или кръстосва планинските пътеки.