NVMe устра­и­ва­ет­ся на фаб­ри­ку

Lan - - Тема Номера: Nvme Поверх Сети - Дмит­рий Га­нь­жа, глав­ный ре­дак­тор «Жур­на­ла се­те­вых ре­ше­ний/LAN»

По оцен­кам ана­ли­ти­ков, толь­ко 13% ем­ко­сти хра­не­ния на­хо­дит­ся внут­ри сер­ве­ров или под­клю­ча­ет­ся к ним на­пря­мую, то­гда как остав­ши­е­ся 87% раз­ме­ща­ют­ся во внеш­них си­сте­мах хра­не­ния. Со­от­вет­ствен­но, сле­ду­ю­щим ло­ги­че­ским ша­гом для NVMe яв­ля­ет­ся ре­а­ли­за­ция NVMe по­верх се­ти. С этой це­лью был раз­ра­бо­тан на­бор про­то­ко­лов NVMe over Fabrics, ко­то­рые поз­во­ля­ют пе­ре­да­вать ко­ман­ды NVMe по се­ти и при этом обес­пе­чи­ва­ют со­по­ста­ви­мые с NVMe за­держ­ки и дру­гие ха­рак­те­ри­сти­ки.

С рас­про­стра­не­ни­ем твер­до­тель­ных на­ко­пи­те­лей воз­ник­ла по­треб­ность в бо­лее эф­фек­тив­ном про­то­ко­ле до­сту­па к ним, так как ис­поль­зу­е­мые ин­тер­фей­сы со­зда­ва­лись в рас­че­те на жест­кие дис­ки и не поз­во­ля­ли в пол­ной ме­ре за­дей­ство­вать пре­иму­ще­ства но­вой раз­но­вид­но­сти устройств хра­не­ния. В от­вет на этот за­прос от­расль раз­ра­бо­та­ла про­то­кол NVMe, ко­то­рый обес­пе­чи­ва­ет под­клю­че­ние SSD-на­ко­пи­те­лей с ис­поль­зо­ва­ни­ем ши­ны PCIe в ка­че­стве транс­пор­та и по­рож­да­ет го­раз­до мень­шие на­клад­ные рас­хо­ды, чем его пред­ше­ствен­ни­ки.

Про­да­жи жест­ких дис­ков ста­биль­но сни­жа­ют­ся на про­тя­же­нии вот уже несколь­ких лет, в то вре­мя как спрос на флеш­на­ко­пи­те­ли рас­тет. Так, по оценке сай­та statista.com, в 2017 го­ду на каж­дые два про­дан­ных жест­ких дис­ка при­хо­дил­ся один SSD (395 млн про­тив 190 млн), а все­го за два го­да до это­го со­от­но­ше­ние бы­ло 4,5 к 1 (470 млн про­тив 105 млн). NVMe при­об­ре­та­ет все боль­шую по­пу­ляр­ность в ка­че­стве ин­тер­фей­са для SSD бла­го­да­ря глав­ным сво­им пре­иму­ще­ствам: ма­лой за­держ­ке при пе­ре­да­че дан­ных, боль­шой про­пуск­ной спо­соб­но­сти и вы­со­ким по­ка­за­те­лям IOPS. На­при­мер, ес­ли для SATA мак­си­маль­ное зна­че­ние со­став­ля­ет 200 000 IOPS, то, по дан­ным ор­га­ни­за­ции NVM Express, для NVMe-устройств оно мо­жет пре­вы­шать 1 000 000 IOPS.

Од­на­ко, по оцен­кам ана­ли­ти­ков, толь­ко 13% всей ем­ко­сти хра­не­ния на­хо­дит­ся внут­ри сер­ве­ров или под­клю­ча­ет­ся к ним на­пря­мую, то­гда как остав­ши­е­ся 87% раз­ме­ща­ют­ся во внеш­них си­сте­мах хра­не­ния. Со­от­вет­ствен­но, сле­ду­ю­щим ло­ги­че­ским ша­гом для NVMe яв­ля­ет­ся ре­а­ли­за­ция NVMe по­верх се­ти, как это бы­ло сде­ла­но в свое вре­мя для SCSI (FCP, iSCSI). С этой це­лью был раз­ра­бо­тан про­то­кол NVMe over Fabrics (NVMe-oF), ко­то­рый поз­во­ля­ет пе­ре­да­вать ко­ман­ды NVMe по се­ти и од­но­вре­мен­но обес­пе­чи­ва­ет со­по­ста­ви­мые с NVMe за­держ­ки и дру­гие ха­рак­те­ри­сти­ки.

NVMe ПО СЕ­ТИ

NVMe over Fabrics пред­став­ля­ет со­бой се­те­вой про­то­кол, ис­поль­зу­е­мый для вза­и­мо­дей­ствия меж­ду хо­стом и си­сте­мой хра­не­ния по се­ти (сетевая фаб­ри­ка). В ка­че­стве бли­жай­ших ана­ло­гов мож­но при­ве­сти FCP и iSCSI, од­на­ко в от­ли­чие от них он обес­пе­чи­ва­ет го­раз­до мень­шую за­держ­ку — не­сколь­ко мик­ро­се­кунд. В ре­зуль­та­те раз­ни­ца меж­ду ло­каль­ным и уда­лен­ным хра­ни­ли­щем ста­но­вит­ся прак­ти­че­ски неза­мет­ной.

Раз­ра­бот­ка NVMe-oF на­ча­лась в 2014 го­ду с це­лью рас­про­стра­не­ния под­держ­ки про­то­ко­ла блоч­но­го до­сту­па NVMe на се­те­вые сре­ды Ethernet, Fibre Channel и InfiniBand (ис­то­рию раз­ра­бот­ки NVMe и NVMe-oF см. рис. 1). С его по­мо­щью пла­ни­ро­ва­лось уве­ли­чить рас­сто­я­ние до под­клю­чен­ных устройств и под­си­стем NVMe, до­ве­дя его до ти­пич­ных для ЦОД ди­стан­ций, а кро­ме то­го, обес­пе­чить до­пол­ни­тель­ную за­держ­ку при до­сту­пе по се­ти не бо­лее 10 мкс по срав­не­нию с ло­каль­ны­ми устрой­ства­ми NVMe внут­ри сер­ве­ра.

Пер­вая спе­ци­фи­ка­ция NVMe-oF вер­сии 1.0 бы­ла при­ня­та в 2016 го­ду и преду­смат­ри­ва­ет ис­поль­зо­ва­ние Fibre Channel и RDMA в ка­че­стве транс­пор­та (см. рис. 2). В слу­чае RDMA ис­поль­зу­ет­ся од­на из трех тех­но­ло­гий — InfiniBand, RDMA over Converged Ethernet (RoCE) и Internet Wide Area RDMA Protocol (iWARP). В вер­сии 1.1, ко­то­рая долж­на по­явить­ся во вто­рой по­ло­вине это­го го­да, ожи­да­ет­ся так­же под­держ­ка TCP. По­ми­мо этих се­те­вых сред, в бу­ду­щем воз­мож­на под­держ­ка се­те­вых тех­но­ло­гий сле­ду­ю­ще­го по­ко­ле­ния Gen-Z.

NVMe-oF обес­пе­чи­ва­ет при­вяз­ку NVMe к се­те­вой сре­де, ис­поль­зу­е­мой в ка­че­стве транс­пор­та. При­вяз­ка (binding) при­зва­на га­ран­ти­ро­вать на­деж­ную пе­ре­да­чу дан­ных, ко­манд и от­ве­тов меж­ду хо­стом и под­си­сте­мой NVMe по се­те­вой сре­де с ми­ни­маль­ной до­пол­ни­тель­ной об­ра­бот­кой (см. рис. 3). Од­ни сре­ды пе­ре­да­чи луч­ше под­хо­дят для от­дель­ных при­ло­же­ний, дру­гие ху­же, по­это­му при­вяз­ка к кон­крет­ной сре­де мо­жет ис­клю­чать или огра­ни­чи­вать те или иные функции в за­ви­си­мо­сти от воз­мож­но­сти транс­пор­та. Неболь­шой на­бор ко­манд NVMe упро­ща­ет ре­а­ли­за­цию про­то­ко­ла в се­те­вой сре­де. При­мер­но на 90% про­то­кол NVMe-oF сов­па­да­ет с ло­каль­ным про­то­ко­лом NVMe: те же ко­ман­ды вво­да­вы­во­да и ад­ми­ни­стра­тив­ные ко­ман­ды, та­кие же ад­рес­ные про­стран­ства (про­стран­ства имен — в тер­ми­но­ло­гии NVMe), ре­ги­стры и свой­ства, асин­хрон­ные со­бы­тия и т. д. Ос­нов­ные раз­ли­чия ка­са­ют­ся ис­поль­зу­е­мых иден­ти­фи­ка­то­ров, механизмов об­на­ру­же­ния, ре­а­ли­за­ции оче­ре­дей и пе­ре­да­чи дан­ных (см. таб­ли­цу). Од­на­ко эти по­дроб­но­сти ин­те­рес­ны глав­ным об­ра­зом раз­ра­бот­чи­кам драй­ве­ров.

Глав­ное от­ли­чие NVMe-oF от NVMe за­клю­ча­ет­ся в ме­ха­низ­ме пе­ре­да­чи ко­манд. NVMe за­пи­сы­ва­ет за­про­сы и от­ве­ты в раз­де­ля­е­мую об­ласть па­мя­ти на хост-ком­пью­те­ре с по­мо­щью PCIe, то­гда как NVMe-oF ре­а­ли­зу­ет об­мен со­об­ще­ни­я­ми для пе­ре­да­чи за­про­сов и от­ве­тов по се­ти меж­ду хо­стом и це­ле­вым устрой­ством хра­не­ния. Для транс­пор­та че­рез сеть ко­ман­ды и дан­ные по­ме­ща­ют­ся в так на­зы­ва­е­мые кап­су­лы, каж­дая из ко­то­рых мо­жет вме­щать не­сколь­ко ко­манд или от­ве­тов. Фор­мат кап­сул не за­ви­сит от то­го, ка­кая кон­крет­но сетевая сре­да ис­поль­зу­ет­ся.

Посредством кап­сул мож­но от­пра­вить не­сколь­ко неболь­ших со­об­ще­ний в од­ном, что поз­во­ля­ет улуч­шить эф­фек­тив­ность пе­ре­да­чи и со­кра­тить за­держ­ку. Кап­су­лы со­дер­жат за­пи­си с оче­ре­дя­ми за­про­сов (Submission Queue Entry) или от­ве­тов (Completion Queue Entry), а так­же неко­то­рый объ­ем дан­ных, ме­та­дан­ных или спис­ков фраг­мен­та­ции-де­фраг­мен­та­ции (Scatter-Gather List, SGL).

Для иден­ти­фи­ка­ции уда­лен­ных це­ле­вых устройств ис­поль­зу­ют­ся при­выч­ные со­гла­ше­ния о ква­ли­фи­ци­ро­ван­ных име­нах. Схе­ма NVMe Qualified Name (NQN) ана­ло­гич­на iSCSI Qualified Name (IQN).

В мар­те 2018 го­да NVM Express до­ба­вил в про­то­кол NVMe-oF но­вую функ­цию под на­зва­ни­ем «асим­мет­рич­ный до­ступ к про­стран­ству имен» (ANA) и тем са­мым обес­пе­чил воз­мож­ность ор­га­ни­за­ции вво­да-вы­во­да по раз­ным марш­ру­там меж­ду мно­же­ством хо­стов и про­стран­ства­ми имен на це­ле­вых устрой­ствах.

NVMe-oF предъ­яв­ля­ет жест­кие тре­бо­ва­ния к се­те­вой сре­де для до­став­ки ко­манд NVMe. Как ука­зы­ва­ет­ся в ин­фор­ма­ци­он­ном до­ку­мен­те NVM Express, сетевая фаб­ри­ка долж­на вно­сить за­держ­ку не бо­лее 10 мкс, мас­шта­би­ро­вать­ся до де­сят­ков ты­сяч устройств, предо­став­лять аль­тер­на­тив­ные марш­ру­ты меж­ду хо­стом и це­ле­вым устрой­ством и т. д. От се­ти тре­бу­ет­ся обес­пе­че­ние на­деж­ной до­став­ки дан­ных без по­те­ри кад­ров (па­ке­тов) из-за пе­ре­гру­зок, а от се­те­вых адап­те­ров — спо­соб­ность са­мо­сто­я­тель­но ре­зер­ви­ро­вать об­ла­сти па­мя­ти для ис­поль­зо­ва­ния их при­ло­же­ни­я­ми, что­бы дан­ные вво­да-вы­во­да мог­ли быть пе­ре­да­ны на­пря­мую ап­па­рат­но­му адап­те­ру (ну­ле­вое ко­пи­ро­ва­ние — zero copy).

Все это ста­вит во­прос о вы­бо­ре се­те­вой сре­ды, наи­бо­лее под­хо­дя­щей для ре­а­ли­за­ции NVMe-oF.

NVMe ПО­ВЕРХ FIBRE CHANNEL

Сеть Fibre Channel ис­поль­зу­ет­ся пре­иму­ще­ствен­но для пе­ре­да­чи про­то­ко­ла SCSI. Соб­ствен­но, Fibre Channel Protocol (FCP) пред­став­ля­ет со­бой верх­не­уров­не­вый про­то­кол для пе­ре­да­чи SCSI по Fibre Channel. Од­на­ко в се­ти FC мо­гут при­ме­нять­ся и дру­гие про­то­ко­лы, в част­но­сти FICON, а те­перь к ним до­бав­ля­ет­ся еще и NVMe over Fibre Channel (FC-NVMe).

Пред­по­чти­тель­ной сре­дой для ре­а­ли­за­ции NVMe-oF яв­ля­ет­ся сеть с кон­тро­лем потоков на ос­но­ве кре­ди­тов для обес­пе­че­ния пе­ре­да­чи па­ке­тов без по­терь. В от­ли­чие от Ethernet, где для это­го необ­хо­ди­мы до­пол­ни­тель­ные сред­ства, та­кие как DCB, Fibre Channel из­на­чаль­но под­дер­жи­ва­ет со­от­вет­ству­ю­щие встро­ен­ные ме­ха­низ­мы. Бла­го­да­ря им от­пра­ви­тель все­гда зна­ет, ка­кой кре­дит ему вы­де­лен, то есть сколь­ко па­ке­тов мо­жет об­ра­бо­тать по­лу­ча­тель, что поз­во­ля­ет из­бе­жать по­терь «лиш­них» па­ке­тов.

За ре­а­ли­за­цию FC-NVMe от­ве­ча­ет комитет T11 Меж­ду­на­род­ной ко­мис­сии по ИТ-стандартам (International Committee for Information Technology Standards, INCITS), ко­то­рый за­ни­ма­ет­ся раз­ра­бот­кой стан­дар­тов для Fibre Channel. По­ми­мо соб­ствен­но FC, дан­ная ре­а­ли­за­ция мо­жет ра­бо­тать и по Ethernet — точнее, по Fibre Channel over Ethernet (FCoE). Ра­бо­ты над пер­вой вер­си­ей стан­дар­та FC-NVMe бы­ли за­вер­ше­ны в ав­гу­сте 2017 го­да.

При раз­ра­бот­ке вто­рой вер­сии стан­дар­та, FC-NVMe-2, комитет T11 на­ме­рен сфо­ку­си­ро­вать­ся на та­ких мо­мен­тах, как кор­рек­ция по­сле­до­ва­тель­ных оши­бок и ар­бит­раж оче­ре­дей. Раз­ра­бот­чи­ки уде­ля­ли боль­шое вни­ма­ние со­кра­ще­нию чис­ла ненуж­ных со­об­ще­ний и параметров при транс­пор­те NVMe че­рез сеть хра­не­ния Fibre Channel с вы­пол­не­ни­ем всех требований спе­ци­фи­ка­ции NVMe-oF. Су­ще­ству­ю­щие се­ти хра­не­ния на ба­зе FC пя­то­го и ше­сто­го поколений мо­гут под­дер­жи­вать FC-NVMe с ми­ни­маль­ны­ми необ­хо­ди­мы­ми из­ме­не­ни­я­ми. В част­но­сти, FC-NVMe дол­жен под­дер­жи­вать­ся опе­ра­ци­он­ной си­сте­мой СХД и се­те­вы­ми адап­те­ра­ми.

Бла­го­да­ря со­кра­щен­но­му на­бо­ру ко­манд и под­держ­ке мно­же­ства оче­ре­дей, FC-NVMe обес­пе­чи­ва­ет луч­шую про­из­во­ди­тель­ность и мень­шую за­держ­ку (по срав­не­нию с SCSI), а так­же па­рал­лель­ный ввод-вы­вод при чте­нии и за­пи­си дан­ных на SSD. Как по­ка­за­ли те­сты, про­ве­ден­ные ана­ли­ти­че­ской ком­па­ни­ей Demartek, спе­ци­а­ли­зи­ру­ю­щей­ся на ис­сле­до­ва­ни­ях ре­ше­ний для хра­не­ния дан­ных и се­те­вых тех­но­ло­гий, у NVMe over Fibre Channel по­ка­за­тель IOPS на 58% вы­ше, а дли­тель­ность за­держ­ки на 34% мень­ше, чем у про­то­ко­ла SCSI Fibre Channel.

Fibre Channel оста­ет­ся де-фа­кто стан­дар­том для се­те­во­го до­сту­па к устрой­ствам хра­не­ния: по дан­ным IDC, посредством FC осу­ществ­ля­ет­ся до­ступ к бо­лее чем 20 тыс. пе­та­байт дан­ных — ни­ка­кая дру­гая тех­но­ло­гия в этом от­но­ше­нии с ней не срав­нит­ся. Глав­ное прак­ти­че­ское пре­иму­ще­ство FC-NVMe по срав­не­нию

Newspapers in Russian

Newspapers from Russia

© PressReader. All rights reserved.