Станет ли NVMe универсальным протоколом доступа к блочным хранилищам?

На виртуальном саммите Open Compute Project 2020 осо­бый ин­те­рес вы­зва­ли две про­во­ка­ци­он­ные пре­зен­та­ции. В них речь шла о том, что NVMe мо­жет стать уни­вер­саль­ным про­то­ко­лом блоч­но­го до­сту­па для маг­нит­ных но­си­те­лей. На­сколь­ко ре­а­лис­тич­на эта пер­с­пек­ти­ва?

Замена интерфейсам SATA и SAS, если дело касается доступа к SSD или даже ленточным на­ко­пи­те­лям, на­зре­ла дав­но. Их ис­поль­зо­ва­ние стро­ит­ся на ру­ди­мен­тар­ной архитектуре: об­мен данными с дисками и стри­ме­ра­ми ведется из опе­ра­тив­ной па­мя­ти плат­фор­мы через шину PCI Ex­press к SAS/SATA-кон­т­рол­ле­ру и да­лее в накопитель. Этот процесс требует ряд пре­об­ра­зо­ва­ний, со­пря­жен­ных с не­ма­лы­ми на­клад­ными рас­хо­дами.

Интерфейс SAS был разработан для доступа к дисковым и ленточным накопителям с помощью набора ко­манд SCSI. Ему по силам вос­ста­нов­ле­ние пе­ре­да­ва­е­мых блоков после ошибок. SAS — пол­но­дуп­лек­с­ный. Это оз­на­ча­ет, что чтение и запись можно вести од­но­вре­мен­но­го. Более дешевый SATA — по­лу­дуп­лек­с­ный: вы ли­бо читаете, либо пишете, но не можете делать это од­но­вре­мен­но SATA наследовал основные прин­ци­пы ра­бо­ты от стандарта Parallel ATA и получил рас­про­ст­ра­не­ние благодаря простоте в сопряжении дис­ко­вых, лен­точ­ных и твердотельных накопителей с хост-плат­фор­ма­ми. SATA, анонсированный еще в 2000 го­ду, раз­ра­ба­ты­вал­ся параллельно с SAS, де­бю­ти­ро­вав­шим в 2004 году. SAS считается серверным про­то­ко­лом, тог­да как SATA применяется больше на поль­зо­ва­тель­ских плат­фор­мах.

Для обмена ин­фор­ма­ци­ей SAS и SATA ис­поль­зу­ют по­сле­до­ва­тель­ный доступ, тогда как интерфейс обмена с энер­го­не­за­ви­си­мой па­мятью NVMe может считывать и записывать данные параллельными потоками, опе­ри­руя с за­по­ми­на­ю­щи­ми элементами NAND SSD. Это быстрее, чем SAS и SATA, и позволяет передавать боль­ше дан­ных. По этой причине NVMe об­ес­пе­чи­ва­ет высокую про­из­во­ди­тель­ность при доступе твер­до­тель­ным на­ко­пи­те­лям, под­клю­чен­ным к PCIe-шине. Рас­ши­ряя воз­мож­но­с­ти PCIe с помощью ре­тай­ме­ров и ре­драй­ве­ров можно об­слу­жи­вать мно­го­том­ные дис­ко­вые мас­си­вы точно так же, как SAS-экспандеры ис­поль­зу­ют­ся для под­клю­че­ния накопителей с SAS-ин­тер­фей­сом.

На физическом уровне SAS, SATA и NVMe оперируют с блоками данных, наследуя ар­хи­тек­ту­ру как лен­точ­ных, так и ди­с­ко­вых уст­ройств (в равной мере, и HDD, и SSD). Однако, в отличие от твердотельных на­ко­пи­те­лей, при­ро­да дис­ко­вых и лен­точ­ных уст­ройств оп­ре­де­ля­ет­ся по­сле­до­ва­тель­ным доступом. Ос­на­щать их NVMe-ин­тер­фей­сом — пустая затея, из пушки (пропускной способности протокола) — по во­ро­бьях (блокам дан­ных). И все же, уни­вер­саль­ный NVMe-ин­тер­фейс может су­ще­ст­вен­но упростить про­ек­ти­ро­ва­ние систем хра­не­ния, ес­ли подключать на­ко­пи­те­ли на­пря­мую к ши­не PCI Express, из­бав­ля­ясь от кон­вер­та­ции SAS и SATA в низ­ко­у­ров­не­вый физический протокол.

На Open Compute Project 2020 компания Seagate неожиданно выдвинула концепцию универсального блоч­но­го про­то­ко­ла для до­сту­па к магнитным носителям посредством NVMe-интерфейса. В настоящее время слай­ды офи­ци­аль­ной пре­зен­та­ции по­ка не­до­ступ­ны, но в Forbes появился один интересный фрагмент, про­ли­ва­ю­щий свет на про­ис­хо­дя­щее. Его опубликовал аналитик Том Кофлин (Tom Coughlin):

NVMe For All Data Center Storage

 

В слайде идет речь о том, что NVMe вполне при­го­ден для жестких магнитных дисков, оснащенных сдво­ен­ны­ми ак­ту­а­то­ра­ми — при­во­да­ми, которые со­дер­жат два набора головок чтения / записи. У истоков та­ко­го ре­ше­ния стояла ком­па­ния Seagate, его жестко кри­ти­ко­ва­ла компания Western Digital, что, однако, не по­ме­ша­ло по­след­ней в пылу кон­ку­рен­т­ной борьбы начать разработку аналогичного накопителя, обогащенного вдо­ба­вок еще и SMR — че­ре­пич­ной тех­но­ло­ги­ей маг­нит­ной раз­мет­ки.

Технология Seagate MACH.2 с параллельными потоками данных практически удваивает производительность жесткого диска

 

Теоретически, в качестве «дис­ко­во­дов» с доступом по NVMe могут вы­сту­пать и составные системы, вклю­ча­ю­щие в се­бя дис­ко­вое хра­ни­ли­ще наряду с другими элементами — процессорами, графическими про­цес­со­ра­ми, па­мятью, твер­до­тель­ны­ми на­ко­пи­те­ля­ми, се­те­вы­ми ком­му­та­то­ра­ми. Лишь бы за ком­му­ни­ка­ции от­ве­ча­ла ши­на PCI Express. В этом вся уни­вер­саль­ность кон­цеп­ции.