Перекрестные ссылки на связанные изобретения
[0001] В настоящей заявке заявлен приоритет по заявке на патент КНР №202011323780.5 от 23.11.2020. Раскрытие сущности настоящего изобретения полностью включено в настоящий документ посредством ссылки.
1. Область техники
[0002] Примеры осуществления настоящего изобретения относятся к области передачи хранимых данных и, в частности, к способу, устройству, сетевому устройству и носителю данных для передачи данных.
2. Уровень техники
[0003] Когда исходная сеть передает данные в целевую сеть, а стеки протоколов исходной сети и целевой сети не являются эквивалентными, для того, чтобы удовлетворять требования целевой сети к данным сетевому устройству, требуется обрабатывать передаваемые данные. В предшествующем уровне техники данные, получаемые из исходной сети, передают на сетевое устройство, данные из состояния пользователя в сетевом устройстве копируют в стек протоколов операционной системы в состоянии ядра для обработки этих данных стеком протоколов операционной системы таким образом, чтобы обработанные данные соответствовали протоколу передачи целевой сети, а затем обработанные данные отправляют в целевую сеть.
[0004] Однако во время обработки данных копирование данных из состояния пользователя в стек протоколов операционной системы в состоянии ядра требует переключения состояния системы и копирования данных, что приводит к высоким затратам ресурсов ЦП.
Сущность изобретения
[0005] В качестве объекта настоящего изобретения предложен способ передачи данных, который включает: считывание данных из узла исходной сети в область памяти через карту исходной сети; пересылку информации об области памяти в целевой стек протоколов состояния пользователя для создания целевым стеком протоколов состояния пользователя сообщения типа протокола целевой сети на основе указанной информации об области памяти; причем сообщение содержит адрес данных в указанной области памяти; и отправку данных в области памяти на узел целевой сети через карту целевой сети на основе указанного сообщения типа протокола целевой сети или отправку данных в области памяти на устройство хранения через протокол хранения.
[0006] В качестве объекта настоящего изобретения также предложено устройство для передачи данных, которое содержит: модуль для считывания данных, выполненный с возможностью считывания данных из узла исходной сети в область памяти через карту исходной сети; модуль для пересылки данных, выполненный с возможностью пересылки информации об области памяти в целевой стек протоколов состояния пользователя для создания целевым стеком протоколов состояния пользователя сообщения типа протокола целевой сети на основе указанной информации об области памяти; причем сообщение содержит адрес данных в указанной области памяти; и модуль для отправки данных, выполненный с возможностью отправки данных в области памяти на узел целевой сети через карту целевой сети на основе указанного сообщения типа протокола целевой сети.
[0007] В качестве объекта настоящего изобретения также предложено сетевое устройство, которое содержит: по меньшей мере один процессор и память, выполненную с возможностью осуществления связи с указанным по меньшей мере одним процессором; причем память хранит инструкции, выполненные с возможностью исполнения указанным по меньшей мере одним процессором, причем инструкции исполняются указанным по меньшей мере одним процессором для обеспечения указанному по меньшей мере одному процессору возможности выполнения способа передачи данных, который указан выше.
[0008] В качестве объекта настоящего изобретения также предложен читаемый с помощью компьютера носитель данных, хранящий компьютерную программу, причем компьютерная программа при исполнении процессором реализует способ, который указан выше.
Описание прилагаемых чертежей
[0009] На фиг. 1 показана принципиальная схема сети для передачи данных в соответствии с предшествующим уровнем техники.
[0010] На фиг. 2 показана блок-схема способа передачи данных в соответствии с первым примером осуществления настоящего изобретения.
[0011] На фиг. 3 показана принципиальная схема сети для передачи данных в соответствии с первым примером осуществления настоящего изобретения.
[0012] На фиг. 4 показана блок-схема способа передачи данных в соответствии со вторым примером осуществления настоящего изобретения.
[0013] На фиг. 5 показана принципиальная схема сети для передачи данных в соответствии со вторым примером осуществления настоящего изобретения.
[0014] На фиг. 6 показана принципиальная схема устройства для передачи данных в соответствии с третьим примером осуществления настоящего изобретения.
[0015] На фиг. 7 показана принципиальная схема сетевого устройства в соответствии с четвертым примером осуществления настоящего изобретения.
Конкретные примеры осуществления
[0016] Для того, чтобы сделать задачу, технические решения и преимущества примеров осуществления настоящего изобретения более ясными, каждый пример осуществления настоящего изобретения будет подробно описан ниже в сочетании с прилагаемыми чертежами. Однако специалистам в данной области техники следует понимать, что в каждом примере осуществления настоящего изобретения для обеспечения читателю возможности лучшего понимания настоящего изобретения представлено множество технических подробностей. Однако даже без этих технических подробностей и различных вариаций и модификаций, основанных на каждом из следующих примеров осуществления, могут быть реализованы технические решения, защищаемые настоящим изобретением. Для удобства описания последующие примеры осуществления разделены и не должны налагать каких-либо ограничения на конкретный способ реализации настоящего изобретения, и все примеры осуществления могут быть объединены без противоречия друг с другом.
[0017] В процессе передачи данных может возникать ситуация, когда отправляющий и принимающий стеки сети с двойной передачей не являются эквивалентными, и в предшествующем уровне техники для преобразования протокола будет использоваться стек протоколов операционной системы, что в процессе преобразования требует многократного копирования данных и переключения состояния системы с большими затратами системных ресурсов. Для иллюстрации процесса передачи данных предшествующего уровня техники в качестве примера ниже рассматривается операция удаленного считывания клиента сценария распределенного хранилища, в котором исходная сеть, то есть сеть-отправитель, представляет собой сеть с удаленным прямым доступом к памяти (Remote Direct Memory Access, RDMA), а целевая сеть, то есть сеть-получатель, представляет собой обычную сетевую карту Ethernet. Как показано на фиг. 1, узел 1 и узел 2 представляют собой сетевые узлы в сети RDMA, то есть, узлы исходной сети, карта сетевого интерфейса Ethernet (Ethernet Network Interface Card, ENIC) представляет собой обычную сетевую карту Ethernet, а сетевая карта контроллера сетевого интерфейса с поддержкой RDMA (сетевой адаптер, который может реализовывать функцию RDMA, RDMA enable network interface controller, RNIC) представляет собой сетевую карту RDMA с механизмом RDMA. Клиент осуществляет доступ к главному узлу распределенной файловой системы по каналу передачи данных протокола управления передачей (Transmission Control Protocol, TCP), а главный узел считывает требуемые целевые данные с других узлов через RDMA и записывает их в память локального RDMA или, возможно, записывает в локальный кэш, а затем возвращает данные на клиент по каналу передачи данных TCP при помощи следующего процесса.
[0018] Этап 1: Главный узел системы хранения данных считывает данные с других узлов в кластере в области памяти (MR, Memory Region) этого узла через сетевую карту RNIC.
[0019] Этап 2: Главный узел системы хранения данных копирует данные из области MR в сокет и отправляет их в буфер TxBuf или может при необходимости записывать эти данные в локальный кэш.
[0020] Этап 3: Данные, находящиеся в буфере, отправляют в стек протоколов операционной системы (ОС). Данные в буфере TxBuf принадлежат уровню приложений и должны быть отправлены в стек протоколов ОС, данные должны быть скопированы, а состояние пользователя должно быть переключено в состояние ядра.
[0021] Этап 4: Стек протоколов ОС отправляет сообщение TCP в очередь сетевой карты.
[0022] Этап 5: Наконец, сетевая карта ENIC отправляет сообщение TCP в сеть для отправки сетью на целевой узел.
[0023] Весь вышеописанный процесс требует переключения состояния системы, копирования данных, что приводит к высоким затратам ресурсов ЦП системы и значительной задержке ответа клиента, и этот процесс пересылки становится узким местом для всей системы хранения.
[0024] Следовательно, в качестве первого объекта настоящего изобретения предложен способ передачи данных, который может быть применен к сетевым устройствам, таким как шлюзы, причем способ включает: считывание данных из узла исходной сети в область памяти через карту исходной сети; пересылку информации об области памяти в целевой стек протоколов состояния пользователя для создания целевым стеком протоколов состояния пользователя сообщения типа протокола целевой сети на основе указанной информации об области памяти; и отправку указанных данных в области памяти на узел целевой сети. Когда сетевые стеки не являются эквивалентными, и требуется преобразование протоколов, нет необходимости проходить через стек протоколов состояния ядра. Напротив, взяв память в качестве центра, стек протоколов состояния пользователя совместно использует одни и те же данные в памяти и пересылает данные в памяти в состоянии пользователя таким образом, что уменьшаются затраты ЦП, вызываемые копированием данных в памяти в стек протоколов операционной системы и переключение из состояния пользователя в состояние ядра. Ниже приводится конкретное описание подробностей реализации способа передачи данных в соответствии с примером осуществления, и последующее предоставлено только для простоты понимания подробностей реализации и не является необходимым для реализации этого решения. Блок-схема способа передачи данных в соответствии с первым примером осуществления настоящего изобретения показана на фиг. 2.
[0025] На этапе 201 считывают данные из узла исходной сети в область памяти через карту исходной сети.
[0026] В примере осуществления перед считыванием данных из узла исходной сети в область памяти через карту исходной сети конфигурируют правило пересылки данных в пространстве памяти на основе канала передачи данных узла исходной сети и узла целевой сети, причем правило пересылки содержит: информацию об узле исходной сети и информацию об узле целевой сети, то есть данные, соответствующие информации об узле исходной сети, отправляют на узел целевой сети.
[0027] В примере осуществления правило пересылки содержит: информацию об области памяти, входную информацию и выходную информацию; причем входная информация содержит: информацию об узле исходной сети, выходная информация содержит: информацию о целевой сети; информация об узле исходной сети содержит: протокол, исходную информацию; и информация о целевой сети содержит информацию о протоколе, действии и целевую информацию.
[0028] В качестве примера возьмем, что клиент сотового телефона удаленно загружает данные, порт 80 сервера предоставляет службу доступа к веб-сети извне и запрашивает данные от исходной сети, когда запрашиваемые данные передают на шлюз передачи данных, сконфигурированный со службой шлюза передачи данных, шлюз передачи данных обеспечивает службу шлюза передачи данных в соответствии с конфигурацией, шлюз передачи данных совместим с протоколом RDMA и TCP, поддерживает пересылку данных в памяти на две целевые системы и распределяет буферы в памяти. Например, информация об области памяти в сконфигурированном правиле пересылки представляет собой адрес области памяти, составляющий 0x12323455, размер пространства памяти, составляющий 16 МБ. Входная информация содержит информацию об узле исходной сети. Информация об узле исходной сети содержит протокол RDMA исходной сети и исходную информацию, то есть узел1, узел2. Выходная информация содержит протокол TCP целевой сети, действие "trans (преобразователь)" (то есть выполнить преобразование данных) и целевую информацию 1000. Данные пересылают на канал передачи данных tcp с номером 1000, указанное выше правило пересылки конфигурируют при помощи файла json для памяти, причем сконфигурированное правило пересылки выглядит следующим образом:
{
"область памяти":{"адрес": "0x12323455", "размер":16MB},
"вход":
{"протокол": "rdma", "исходная информация": ["узел1", "узел2"]},
"выход":
[
{"протокол": "tcp", "действие": "trans", "целевая информация":1000},
]
}
[0029] Правило указывает соответствующие область памяти и размер, как показано на фиг. 3, причем данные считывают из узла 1 и узла 2 в эту область памяти, а выходной поток представляет собой один канал передачи данных: пересылка данных на канал передачи данных tcp с номером 1000. Канал передачи данных устанавливают заранее, а после его установления конфигурируют правило пересылки таким образом, что при возникновении потребности в пересылке данных, их могут пересылать напрямую в соответствии с правилом пересылки, что, таким образом, повышает эффективность пересылки.
[0030] В примере осуществления создают область памяти в соответствии со сконфигурированным правилом пересылки и получают данные от узла исходной сети, узла 1 или узла 2, через карту RNIC исходной сети и считывают область памяти с адресом 0x12323455 и размером 16 МБ.
[0031] На этапе 202 определяют целевой протокол передачи следующего отрезка пути передачи на основании предварительно заданной логики и в соответствии с ней и напрямую передают информацию об области памяти в стек протоколов передачи следующего отрезка пути передачи, то есть на основе предварительно заданного правила пересылки, получают информацию об узле целевой сети, соответствующую узлу исходной сети, и определяют целевой стек протоколов состояния пользователя на основе соответствующей информации об узле целевой сети, и пересылают информацию об области памяти в определяемый целевой стек протоколов состояния пользователя для создания целевым стеком протоколов состояния пользователя сообщения типа протокола целевой сети на основе указанной информации об области памяти, причем сообщение содержит адрес данных в указанной области памяти. В примере осуществления информацию о данных в указанной области памяти (содержащую исходные адрес, тип протокола) передают в службу шлюза передачи данных стека протоколов состояния пользователя для получения информации о маршрутизации следующего отрезка пути передачи для этих данных (содержащей целевые адрес, тип протокола) для последующей пересылки данных в указанной области памяти на целевой адрес на основе нового протокола.
[0032] Например, стек протоколов TCP/IP состояния пользователя в примере осуществления настраивают на основе фреймворка набора DataPlane Development Kit (DPDK) со ссылкой на реализацию программного стека RDMA. Задают очередь отправки (SQ, Send Queue), завершенную очередь (CQ, Complete Queue) и соответствующие инструкции памяти, а служба шлюза передачи данных выполняет инструкцию write_cmd для отправки сообщений в очередь SQ, содержащих информацию о памяти, целевую информацию и т. п. Стек программного протокола, то есть стек протоколов TCP/IP состояния пользователя считывает очередь SQ и запускает ее одну за другой, а инструкция write_cmd запускает процесс отправки TCP. Настраиваемый стек протоколов TCP/IP состояния пользователя создает сообщения TCP с использованием способа, в котором заголовок и данные разделены, причем каждое сообщение mbuf содержит содержимое заголовка и указатель данных, а данные указывают на данные в памяти, подлежащие отправке. Сетевая карта обнаруживает сообщение, подлежащее отправке, и отправляет в сеть полное сообщение, состоящее из заголовка и данных. После завершения отправки данных в указанной памяти стек протоколов помещает завершенное событие (CE, complete event) в очередь CQ, а служба шлюза проверяет очередь CQ для получения результата отправки команды, причем здесь поддерживается уведомление о сигнале дверного звонка (DB, Door Bell) .
[0033] На этапе 203 отправляют данные в области памяти на узел целевой сети через карту целевой сети на основе сообщения типа протокола целевой сети.
[0034] В примере осуществления после отправки данных на узел целевой сети через узел целевой сети завершенное событие помещают в завершенную очередь; и получают результат отправки на основе завершенного события в завершенной очереди.
[0035] В приведенном выше примере осуществления данные отправляют на сетевой узел ENIC через карту ENIC целевой сети на основе переносимого целевого сообщения, такого как целевая информация "1000" в сконфигурированном выше правиле пересылки. Другими словами, сетевая карта обнаруживает сообщение, подлежащее отправке, отправляет в сеть полное сообщение, состоящее из заголовка и данных, и передает его на сетевой узел ENIC через сеть. После завершения отправки данных в области памяти стек протоколов помещает завершенное событие (CE, complete event) в очередь CQ, а служба шлюза проверяет очередь CQ для получения результата отправки команды, причем здесь поддерживается уведомление о сигнале дверного звонка (DB, Door Bell).
[0036] В примере осуществления задана завершенная очередь для сохранения завершенного события в стеке пользовательского протокола. По сравнению с технологиями предшествующего уровня техники, которые должны ждать возврата результата отправки после того, как сетевая карта завершит отправку, в примере осуществления могут синхронизировать отправку и асинхронное получение результата отправки. Кроме того, заданный стек протоколов TCP/IP состояния пользователя реализуют со ссылкой на программный стек RDMA, что делает стек протоколов TCP/IP состояния пользователя и стек протоколов RDMA более подходящими.
[0037] Во всем вышеперечисленном принимают карту исходной сети в качестве сетевой карты RNIC, узел исходной сети в качестве сетевого узла RDMA, целевую сетевую карту в качестве сетевой карты ENIC и узел целевой сети в качестве узла Ethernet, то есть сетевой узел RDMA передает данные через сетевой узел RNIC, а данные передают на узел Ethernet через сетевую карту ENIC после обработки шлюзом данных. Другими словами, после считывания данных из сетевого узла RDMA в область памяти через сетевой узел RNIC информацию об области памяти передают в стек протоколов TCP/IP состояния пользователя для создания стеком протоколов TCP/IP состояния пользователя сообщения TCP, содержащего адрес данных в области памяти, а затем сообщение TCP передают на узел Ethernet через сетевую карту ENIC.
[0038] Передача данных является двунаправленной, и файл конфигурации также может быть изменен. Когда карта исходной сети представляет собой сетевую карту ENIC, узел исходной сети представляет собой узел Ethernet, узел целевой сети представляет собой сетевую карту RNIC, а узел целевой сети представляет собой сетевой узел RDMA, данные, получаемые сетевой картой ENIC, передают на сетевой узел RDMA после их обработки шлюзом передачи данных. Другими словами, после считывания данных из узла Ethernet в область памяти через сетевую карту ENIC информацию об области памяти передают в стек протоколов RDMA состояния пользователя для создания стеком протоколов RDMA состояния пользователя сообщения RDMA , содержащего адрес данных в области памяти, а затем сообщение RDMA передают на узел Ethernet через сетевую карту RNIC.
[0039] В этом примере осуществления реализованы множественные стеки протоколов состояния пользователя, то есть стеки протоколов RDMA совместно используют данные в области памяти со стеками протоколов TCP/IP состояния пользователя. Решается текущая проблема, состоящая в том, что сетевые элементы протоколов RDMA не могут быть сопряжены с традиционными узлами Ethernet.
[0040] В примере осуществления после отправки обработанных данных на узел целевой сети через карту целевой сети, получают некоторое количество данных в области памяти, которые пересылаются полностью; и вызывают эту область памяти в ответ на то, что указанное некоторое количество данных в области памяти, которые пересылаются полностью, равно количеству выходных потоков данных. Количество выходных потоков данных определяют на основе выходной информации в правиле пересылки, причем выходная информация содержит: информацию об узле целевой сети и информацию о локальном хранилище.
[0041] На основе приведенных выше примеров осуществления создаваемую область памяти рассматривают в качестве узла ориентированного графа, а входные и выходные потоки, то есть входную информацию, выходную информацию, узла данных конфигурируют в соответствии с характеристиками деятельности, а шлюз передачи данных в примере осуществления принимают в качестве узла, для которого требуется считывание данных с других узлов и пересылка этих данных на клиент, так что узел данных конфигурируют следующим образом: полустепень захода равна 1, полустепень исхода равна 1, а входной поток представляет собой сеть RDMA, и выходной поток представляет собой сеть TCP, причем шлюз передачи данных записывает количество завершенных пересылок узла. Когда количество пересылок узла равно значению полустепени исхода, область памяти узла могут вызывать и использовать повторно, так что эту область памяти могут повторно своевременно вызывать.
[0042] В этом примере осуществления считывают данные из узла исходной сети в область памяти через карту исходной сети; передают информацию об области памяти в целевой стек протоколов состояния пользователя, получают сообщение типа протокола целевой сети, созданное целевым стеком протоколов состояния пользователя, причем указанное сообщение содержит адрес данных в области памяти, и отправляют данные в памяти на узел целевой сети через карту целевой сети на основе сообщения типа протокола целевой сети, так что нет необходимости проходить через стек протоколов состояния ядра, а также используют в качестве центра указанную память, совместно используют одни и те же данные в памяти через стек протоколов состояния пользователя и пересылают эти данные в состоянии, пользователя таким образом, что уменьшаются затраты ЦП, вызываемые копированием данных в памяти в стек протоколов операционной системы и переключением из состояния пользователя в состояние ядра, а производительность пересылки данных будет выше.
[0043] Второй пример осуществления настоящего изобретения также относится к способу передачи данных, причем второй пример осуществления настоящего изобретения по существу является таким же, что и первый пример осуществления, а основные различие состоит в том, что правило пересылки также содержит информацию о локальном хранилище, а данные передают в локальный кэш в соответствии с информацией о локальном хранилище, сконфигурированной в правиле пересылки. Шлюз передачи данных является совместимым с несколькими преобразованиями протоколов, и множество стеков протоколов состояния пользователя совместно используют область памяти таким образом, что могут обеспечивать как локальное хранение, так и пересылку данных в сеть. Блок-схема второго примера осуществления настоящего изобретения показана на фиг. 4.
[0044] На этапе 401 считывают данные из узла исходной сети в область памяти через карту исходной сети.
[0045] Например, до считывания данных из узла исходной сети в область памяти через карту исходной сети, возьмем в качестве примера, что клиент сотового телефона удаленно загружает данные, порт 80 сервера предоставляет службу доступа к веб-сети извне и запрашивает данные от исходной сети, когда запрашиваемые данные передают на шлюз передачи данных, сконфигурированный со службой шлюза передачи данных, шлюз передачи данных обеспечивает службу шлюза передачи данных в соответствии с конфигурацией, шлюз передачи данных совместим с тремя протоколами: RDMA, TCP, NVMe (Non-volatile Memory Express); и поддерживает пересылку данных в памяти на три целевые системы. Правило пересылки, конфигурируемое в шлюзе передачи данных, содержит информацию об области памяти, причем буферы в памяти распределяют в соответствии с указанной информацией об области памяти, и, например, информация о пространстве памяти представляет собой адрес области памяти, составляющий "0x12323455", и размер области памяти, составляющий 16 МБ, таким образом, распределяют буфер в области памяти, начальный адрес которого составляет "0x12323455", а размер составляет 16 МБ. Правило пересылки также содержит входную информацию и выходную информацию. Входная информация содержит протокол RDMA исходной сети и исходную информацию, то есть узел1, узел2. Выходная информация содержит информацию о локальном хранилище, такую как протокол nvme, действие write (запись) и целевую информацию о протоколе nvme. Выходная информация также содержит информацию об узле целевой сети, такую как протокол tcp, действие trans и целевую информацию 1000. Правило пересылки, конфигурируемое при помощи файла json для памяти, выглядит следующим образом:
{
"область памяти":{"адрес": "0x12323455", "размер": 16МБ},
"вход":
{"протокол": "rdma", "исходная информация": ["узел1", "узел2"]},
"выход":
[
{"протокол": "tcp", "действие": "trans", "целевая информация": 1000},
{"протокол": "nvme", "действие": "write", "целевая информация": nvme},
]
}
[0046] Правило указывает, что соответствующая память считывает данные с узла 1 и узла 2. Выходной поток разделяют на два канала: пересылка по каналу передачи данных tcp с номером 1000 и запись на устройство nvme, а также запрос файловой системы на предоставление информации об адресе. В выходной информации содержатся два типа информации: одна для передачи данных на сетевой узел и одна для записи данных в локальный кэш, например, устройство nvme.
[0047] На этапе 402 передают данные в памяти в стек протоколов NVMe на основе информации о локальном хранилище, сконфигурированной в правиле пересылки, и затем записывают в локальный кэш.
[0048] Например, в примере осуществления передают данные в локальное хранилище nvme в соответствии с информацией о локальном хранилище, сконфигурированной в правиле пересылки, то есть "протокол": "nvme", "действие": "write", "целевая информация": "nvme", конфигурируют в выходной информации.
[0049] На этапе 403 передают данные в памяти в стек протоколов TCP состояния пользователя на основе правила пересылки, а затем отправляют обрабатываемые данные на узел целевой сети через карту целевой сети.
[0050] В примере осуществления этап 402 и этап 403 могут выполнять параллельно.
[0051] Этап 403 является по существу таким же, что и этапы 202-203 первого примера осуществления настоящего изобретения и здесь повторяться не будет.
[0052] В примере осуществления после отправки обработанных данных на узел целевой сети через карту целевой сети, получают некоторое количество данных в области памяти, которые пересылаются полностью; и вызывают эту область памяти в ответ на то, что указанное некоторое количество данных в области памяти, которые пересылаются полностью, равно количеству выходных потоков данных. Количество выходных потоков данных определяют на основе выходной информации в правиле пересылки, причем выходная информация содержит: информацию об узле целевой сети и информацию о локальном хранилище.
[0053] На основе приведенных выше примеров осуществления создаваемую область памяти рассматривают в качестве узла ориентированного графа, а входные и выходные потоки, то есть входную информацию, выходную информацию, узла данных конфигурируют в соответствии с характеристиками деятельности. В примере осуществления для главного узла требуется считывание данных с других узлов и пересылка этих данных на клиент, так что узел данных конфигурируют следующим образом: полустепень захода равна 1, полустепень исхода равна 1, а входной поток представляет собой сеть RDMA, и выходной поток представляет собой сеть TCP и хранилище nvme, причем служебный шлюз записывает количество завершенных пересылок узла. Когда количество пересылок узла равно значению полустепени исхода, то есть количество данных в пространстве памяти, которые полностью пересылаются, равно количеству выходных потоков данных, область памяти узла могут вызывать и использовать повторно, так что эту область памяти могут повторно своевременно вызывать.
[0054] В примере осуществления источник данных представляет собой любую из сетей Ethernet, ENIC, сетей RDMA и RNIC, а цель данных представляет собой любую из сети Ethernet, сети RDMA, устройства хранения NVMe, включая среди прочего другие типы транспортных протоколов, такие как: iSCSI, NVMe-oF, VirtIO и т. п.
[0055] Принципиальная схема сети для передачи данных в соответствии с примером осуществления показана на фиг. 5. Шлюз передачи данных синхронизирует данные от других узлов в кластере с пространством MR этого узла через RNIC; шлюз передачи данных пересылает данные в стек протоколов TCP состояния пользователя и стек протоколов nvme состояния пользователя в соответствии с конфигурацией и записывает данные, обрабатываемые стеком протоколов nvme состояния пользователя, на устройство хранения nvme. Сообщения, получаемые после обработки стеком протоколов TCP/IP состояния пользователя, передают на узлы сети Ethernet, причем узлы сети Ethernet получают данные через сетевую карту и обрабатывают получаемые данные.
[0056] В примере осуществления шлюз передачи данных содержит: карту исходной сети, узел целевой сети и стек протоколов состояния пользователя; причем карту исходной сети используют для считывания данных из узла исходной сети в область памяти, целевой стек протоколов состояния пользователя используют для инкапсуляции данных в области памяти в сообщение целевого протокола, а узел целевой сети используют для отправки данных, инкапсулированных целевым стеком протоколов состояния пользователя, на узел целевой сети.
[0057] Следует отметить, что традиционные протоколы передачи данных Ethernet TCP и UDP определены как пакетно-ориентированные и не могут пересылаться через службу шлюза данных. Способ передачи данных в соответствии с примером осуществления настраивает стек протоколов передачи данных состояния, а протоколы RDMA и NVMe используют память в качестве рабочих объектов таким образом, что они могут равномерно осуществлять доступ к службе шлюза передачи данных для реализации передачи данных области памяти напрямую на канал сетевой карты ENIC, считывания этих данных и завершения процесса отправки аппаратным способом сетевой карты.
[0058] Способ передачи данных в соответствии с примером осуществления совместим с сетевыми протоколами и протоколами локального хранения, обеспечивая возможность пересылки данных между сетевыми узлами и локальным кэшем по правилу, без копий и без пересылки.
[0059] Этапы приведенных выше способов разделены только для ясности и могут быть объединены в один этап или разделены на несколько этапов, при условии, что они включают одинаковую логическую взаимосвязь, они входят в объем настоящей заявки. Добавление незначительных модификаций или введение незначительных схем в алгоритм или процесс, но без изменения основной схемы алгоритма или процесса, все это входит в объем настоящей заявки.
[0060] Третий пример осуществления настоящего изобретения относится к устройству для передачи данных, как показано на фиг. 6, которое содержит: модуль 601 для считывания данных, выполненный с возможностью считывания данных из узла исходной сети в область памяти через карту исходной сети; модуль 602 для пересылки данных, выполненный с возможностью пересылки информации об области памяти в целевой стек протоколов состояния пользователя для создания целевым стеком протоколов состояния пользователя сообщения типа протокола целевой сети на основе указанной информации об области памяти; причем сообщение содержит адрес данных в указанной области памяти; и модуль 603 для отправки данных, выполненный с возможностью отправки данных в области памяти на узел целевой сети через карту целевой сети на основе указанного сообщения типа протокола целевой сети.
[0061] В примере осуществления модуль 601 для считывания данных дополнительно выполнен с возможностью конфигурирования правила пересылки для данных в области памяти на основе канала передачи данных узла исходной сети и узла целевой сети. Правило пересылки содержит: информацию об узле исходной сети и информацию об узле целевой сети. Модуль 602 для пересылки данных дополнительно выполнен с возможностью получения информации об узле целевой сети, соответствующего узлу исходной сети, на основе правила пересылки; определения целевого стека протоколов состояния пользователя на основе соответствующей информации об узле целевой сети; и пересылки информации об области памяти в определенный целевой стек протоколов состояния пользователя.
[0062] В примере осуществления правило пересылки дополнительно содержит: информацию о локальном хранилище, а модуль 603 для отправки данных дополнительно выполнен с возможностью передачи данных в области памяти в локальный кэш в соответствии с информацией о локальном хранилище, сконфигурированной в правиле пересылки.
[0063] В примере осуществления модуль для отправки данных выполнен с возможностью получения некоторого количества данных в области памяти, которые пересылаются полностью; и вызова этой области памяти в ответ на то, что указанное некоторое количество данных в области памяти, которые пересылаются полностью, равно количеству выходных потоков данных. Количество выходных потоков данных определяют на основе количества узла целевой сети и количества локального узла хранения.
[0064] В примере осуществления карта исходной сети представляет собой сетевую карту RNIC, узел исходной сети представляет собой сетевой узел RDMA, узел целевой сети представляет собой сетевую карту ENIC, и узел целевой сети представляет собой узел Ethernet, причем модуль 602 для обработки данных дополнительно выполнен с возможностью передачи информации об области памяти в стек протоколов TCP/IP состояния пользователя для создания стеком протоколов TCP/IP состояния пользователя сообщения TCP, содержащего адрес данных в указанной области памяти.
[0065] В примере осуществления карта исходной сети представляет собой сетевую карту ENIC, узел исходной сети представляет собой узел Ethernet, узел целевой сети представляет собой сетевую карту RNIC, и узел целевой сети представляет собой сетевой узел RDMA, причем модуль 602 для обработки данных дополнительно выполнен с возможностью передачи информации об области памяти в стек протоколов RDMA состояния пользователя для создания стеком протоколов RDMA состояния пользователя сообщения RDMA, содержащего адрес данных в указанной области памяти.
[0066] В примере осуществления стек протоколов TCP/IP состояния пользователя содержит: завершенную очередь; модуль 603 для отправки данных дополнительно выполнен с возможностью после отправки данных в области памяти на узел целевой сети через карту целевой сети на основе сообщения типа протокола целевой сети размещения завершенного события в завершенную очередь; и получения результата отправки на основе завершенного события в завершенной очереди.
[0067] Неудивительно, что настоящий пример осуществления представляет собой пример осуществления системы, соответствующий первому примеру осуществления, и настоящий пример осуществления может быть реализован в сочетании с первым примером осуществления. Связанные технические детали, упомянутые в первом примере осуществления, все еще являются действительными в этом примере осуществления, так что для уменьшения повторений они не будут повторяться здесь. Соответственно, соответствующие технические подробности, упомянутые в настоящем примере осуществления, также могут быть применены в первом примере осуществления.
[0068] Следует отметить, что каждый модуль, включенный в пример осуществления, представляет собой логический модуль, и в практических применениях логический блок может представлять собой физический блок или частью физического блока, или может быть реализован как комбинация множества физических блоков. Кроме того, для выделения инновационной части настоящего изобретения в пример осуществления не вводятся блоки, не слишком тесно относящиеся к решению технических задач, представленных в настоящем изобретении, но это не указывает на то, что другие блоки не присутствуют в этом примере осуществления.
[0069] Четвертый пример осуществления настоящего изобретения относится к сетевому устройству, как показано на фиг. 7, которое содержит: по меньшей мере один процессор 701 и область 702 памяти, осуществляющую связь с указанным по меньшей мере с одним процессором; причем область памяти хранит инструкции, выполненные с возможностью исполнения указанным по меньшей мере одним процессором. Инструкции исполняются указанным по меньшей мере одним процессором для обеспечения указанному по меньшей мере одному процессору возможности выполнения способа передачи данных, как указан выше.
[0070] Область памяти и процессор соединены посредством шины, причем шина может содержать любое количество соединенных между собой шин и мостов, а также шина соединяет вместе один или более процессоров и различные схемы памяти. Шина также может соединять вместе различные другие схемы, такие как периферийные устройства, регуляторы напряжения и схемы управления питанием, которые хорошо известны в данной области техники и поэтому не будут дополнительно описаны здесь. Интерфейс шины обеспечивает интерфейс между шиной и приемопередатчиком. Приемопередатчик может представлять собой один элемент или множество элементов, таких как множество приемников и передатчиков, обеспечивающих блоки для осуществления связи с различными другими устройствами в среде передачи. Данные, обрабатываемые процессором, передают по беспроводной среде через антенну, и далее антенна также принимает данные и передает их на процессор.
[0071] Процессор отвечает за управление шиной и обычную обработку, а также может обеспечивать различные функции, включая синхронизацию, периферийные интерфейсы, регулировку напряжения, управление питанием и другие функции управления, а память могут использовать для хранения данных, используемых процессором при выполнении операций.
[0072] Пятый пример осуществления настоящего изобретения относится к читаемому с помощью компьютера носителю данных, хранящему компьютерную программу. Компьютерная программа при исполнении процессором реализует указанный выше способ.
[0073] То есть специалистам в данной области техники следует понимать, что все или некоторые из этапов способа в соответствии с приведенными выше примерами осуществления могут быть выполнены посредством инструктирования соответствующего аппаратного обеспечения с помощью программы, хранящейся на носителе данных и содержащей некоторое количество инструкций для побуждения устройства (которое может представлять собой микроконтроллер, микросхему и т. и.) или процессора (процессор) выполнять все или некоторые этапы способа, описанного в различных примерах осуществления настоящего изобретения. Упомянутый выше носитель данных содержит: флэш-накопитель USB, мобильный жесткий диск, постоянное запоминающее устройство (ПЗУ), оперативное запоминающее устройство (ОЗУ), диск или компакт-диск и другие носители, на которых может храниться программный код.
[0074 ] Специалистам в данной области техники следует понимать, что каждый из приведенных выше примеров осуществления представляет собой конкретную реализацию настоящего изобретения, и при практическом применении в нее могут быть внесены различные изменения по форме и деталям без отклонения от объема настоящего изобретения.
название | год | авторы | номер документа |
---|---|---|---|
Способ и устройство пересылки пакетов для гетерогенной сети | 2020 |
|
RU2822609C1 |
БЕСПРОВОДНОЕ УСТРОЙСТВО ИНИЦИАЛИЗАЦИИ | 2001 |
|
RU2269873C2 |
ЭФФЕКТИВНАЯ СВЯЗЬ ДЛЯ УСТРОЙСТВ ДОМАШНЕЙ СЕТИ | 2017 |
|
RU2676229C1 |
СПОСОБЫ И УСТРОЙСТВО ГИПЕРЗАЩИЩЕННОЙ СВЯЗИ "ПОСЛЕДНЕЙ МИЛИ" | 2018 |
|
RU2754871C2 |
ДИНАМИЧЕСКАЯ ЗАЩИЩЕННАЯ КОММУНИКАЦИОННАЯ СЕТЬ И ПРОТОКОЛ | 2016 |
|
RU2769216C2 |
СПОСОБ ДЛЯ РЕАЛИЗАЦИИ ДИНАМИЧЕСКОЙ ОРГАНИЗАЦИИ СЕТИ И СОВМЕСТНОГО ИСПОЛЬЗОВАНИЯ РЕСУРСОВ СРЕДИ УСТРОЙСТВ | 2003 |
|
RU2301498C2 |
ДИНАМИЧЕСКАЯ ЗАЩИЩЕННАЯ КОММУНИКАЦИОННАЯ СЕТЬ И ПРОТОКОЛ | 2016 |
|
RU2707715C2 |
ТЕХНОЛОГИИ ДЛЯ ПРЕДОСТАВЛЕНИЯ МАКСИМАЛЬНОЙ ГЛУБИНЫ ИДЕНТИФИКАТОРА СЕГМЕНТА УЗЛА И/ИЛИ ЛИНИИ СВЯЗИ, ИСПОЛЬЗУЮЩИЕ OSPF | 2016 |
|
RU2704714C1 |
ЭФФЕКТИВНАЯ СВЯЗЬ ДЛЯ УСТРОЙСТВ ДОМАШНЕЙ СЕТИ | 2014 |
|
RU2640728C1 |
ЭФФЕКТИВНАЯ СВЯЗЬ ДЛЯ УСТРОЙСТВ ДОМАШНЕЙ СЕТИ | 2014 |
|
RU2619694C1 |
Изобретение относится к способам и устройствам для передачи данных. Технический результат заключается в сокращении используемых в процессе передачи данных ресурсов процессора. Технический результат достигается за счет того, что способ передачи данных включает: считывание данных из узла исходной сети в область памяти через карту исходной сети; пересылку информации об области памяти в целевой стек протоколов состояния пользователя для создания целевым стеком протоколов состояния пользователя сообщения типа протокола целевой сети на основе указанной информации об области памяти; причем сообщение содержит адрес данных в указанной области памяти; и отправку данных в области памяти на узел целевой сети через карту целевой сети на основе указанного сообщения типа протокола целевой сети. 3 н. и 5 з.п. ф-лы, 7 ил.
1. Способ передачи данных, включающий:
конфигурирование правила пересылки для данных в области памяти на основе канала передачи данных узла исходной сети и узлом целевой сети или канала передачи данных узла исходной сети и устройством хранения, причем правило пересылки содержит: информацию об узле исходной сети, информацию об узле целевой сети и информацию об устройстве хранения;
считывание данных из узла исходной сети в область памяти через карту исходной сети;
пересылку информации об области памяти в целевой стек протоколов режима пользователя для создания целевым стеком протоколов режима пользователя сообщения типа протокола целевой сети на основе указанной информации об области памяти; причем сообщение содержит адрес данных в указанной области памяти; при этом этот этап включает
получение информации об узле целевой сети, соответствующей узлу исходной сети, на основе правила пересылки;
определение целевого стека протоколов режима пользователя на основе соответствующей информации об узле целевой сети; и
пересылку информации об области памяти в определенный целевой стек протоколов режима пользователя; или
получение информации об устройстве хранения, соответствующей узлу исходной сети, на основе правила пересылки;
определение целевого стека протоколов режима пользователя на основе соответствующей информации об устройстве хранения; и
пересылку информации об области памяти в определенный целевой стек протоколов режима пользователя;
и отправку данных в области памяти на узел целевой сети через карту целевой сети на основе указанного сообщения типа протокола целевой сети; или
отправку данных в области памяти на устройство хранения через сообщение протокола хранения.
2. Способ передачи данных по п. 1, в котором правило пересылки дополнительно содержит информацию о локальном хранилище;
после считывания данных из узла исходной сети в область памяти через карту исходной сети способ дополнительно включает:
передачу данных в области памяти в локальный кэш в соответствии с информацией о локальном хранилище, сконфигурированной в правиле пересылки.
3. Способ передачи данных по п. 2, в котором после отправки обработанных данных на узел целевой сети через карту целевой сети способ дополнительно включает:
получение некоторого количества данных в области памяти, которые пересылаются полностью; и
вызов указанной области памяти в ответ на то, что указанное некоторое количество данных в области памяти, которые пересылаются полностью, равно количеству выходных потоков данных;
причем количество выходных потоков данных определяют на основе выходной информации в правиле пересылки, а выходная информация содержит: информацию об узле целевой сети и информацию о локальном хранилище.
4. Способ передачи данных по любому из пп. 1-3, в котором карта исходной сети представляет собой сетевую карту контроллера сетевого интерфейса (RNIC) с поддержкой RDMA (RDMA enable network interface controller, RNIC), узел исходной сети представляет собой сетевой узел с удаленным прямым доступом к памяти (Remote Direct Memory Access, RDMA), карта целевой сети представляет собой карту сетевого интерфейса Ethernet (Ethernet Network Interface Card, ENIC), а узел целевой сети представляет собой узел Ethernet;
или карта исходной сети представляет собой сетевую карту ENIC, узел исходной сети представляет собой узел Ethernet, карта целевой сети представляет собой сетевую карту RNIC, а узел целевой сети представляет собой сетевой узел RDMA;
или исходный узел представляет собой узел Ethernet или сетевой узел RDMA, причем используют протокол Ethernet или протокол RDMA, целевой узел представляет собой устройство хранения, и используют протокол NVMe;
или исходный узел представляет собой устройство хранения, причем используют протокол NVMe или NVMe-oF, целевой узел представляет собой узел Ethernet или сетевой узел RDMA, и используют протокол Ethernet или протокол RDMA.
5. Способ передачи данных по п. 4, в котором стек протоколов режима пользователя содержит: стек протоколов RDMA и стек протокола управления передачей / протокола сети Интернет (Transmission Control Protocol/Internet Protocol, TCP/IP) режима пользователя;
если карта исходной сети представляет собой сетевую карту RNIC, узел исходной сети представляет собой сетевой узел RDMA, карта целевой сети представляет собой сетевую карту ENIC, а узел целевой сети представляет собой узел Ethernet, пересылка информации об области памяти в целевой стек протоколов режима пользователя для создания целевым стеком протоколов режима пользователя сообщения типа протокола целевой сети на основе указанной информации об области памяти включает:
передачу информации об области памяти в стек протоколов TCP/IP режима пользователя для создания стеком протоколов TCP/IP режима пользователя сообщения TCP, содержащего адрес данных в указанной области памяти;
если карта исходной сети представляет собой сетевую карту ENIC, узел исходной сети представляет собой узел Ethernet, карта целевой сети представляет собой сетевую карту RNIC, а узел целевой сети представляет собой сетевой узел RDMA, пересылка информации об области памяти в целевой стек протоколов режима пользователя для создания целевым стеком протоколов режима пользователя сообщения типа протокола целевой сети на основе указанной информации об области памяти включает:
передачу информации об области памяти в стек протоколов RDMA режима пользователя для создания стеком протоколов RDMA режима пользователя сообщения RDMA, содержащего адрес данных в указанной области памяти;
6. Способ передачи данных по п. 5, в котором стек протоколов TCP/IP режима пользователя содержит завершенную очередь;
после отправки данных в области памяти на узел целевой сети через карту целевой сети на основе указанного сообщения типа протокола целевой сети способ дополнительно включает:
размещение завершенного события в завершенную очередь; и
получение результата отправки на основе завершенного события в завершенной очереди.
7. Сетевое устройство, содержащее:
по меньшей мере один процессор; и
память, выполненную с возможностью осуществления связи с указанным по меньшей мере одним процессором;
причем память хранит инструкции, выполненные с возможностью исполнения указанным по меньшей мере одним процессором, при этом инструкции исполняются указанным по меньшей мере одним процессором для обеспечения указанному по меньшей мере одному процессору возможности выполнения способа передачи данных по любому из пп. 1-6.
8. Читаемый с помощью компьютера носитель данных, хранящий компьютерную программу, причем компьютерная программа при исполнении процессором реализует способ передачи данных по любому из пп. 1-6.
CN 106850565 A, 13.06.2017 | |||
CN 109547580 A, 29.03.2019 | |||
US 20190141169 A1, 09.05.2019 | |||
WO 2018107433 A1, 21.06.2018 | |||
СПОСОБ И УСТРОЙСТВО, ДЛЯ РЕТРАНСЛЯЦИИ ПАКЕТОВ | 2009 |
|
RU2543304C2 |
Авторы
Даты
2025-02-11—Публикация
2021-11-19—Подача