Сетевое блочное устройство
В Linux сетевое блочное устройство (NBD) — это сетевой протокол , который можно использовать для пересылки блочного устройства (обычно жесткого диска или раздела) с одного компьютера на второй компьютер. Например, локальный компьютер может получить доступ к жесткому диску , подключенному к другому компьютеру.
Протокол изначально был разработан для Linux 2.1.55 и выпущен в 1997 году. [1] В 2011 году протокол был пересмотрен, официально задокументирован и теперь разработан как совместный открытый стандарт . Существует несколько совместимых клиентов и серверов.
Существуют Linux-совместимые реализации NBD для FreeBSD и других операционных систем. Термин «сетевое блочное устройство» иногда используется в общем смысле.
Технически сетевое блочное устройство реализуется тремя компонентами: серверной частью, клиентской частью и сетью между ними. На клиентской машине, на которой находится узел устройства, устройством управляет драйвер ядра. Всякий раз, когда программа пытается получить доступ к устройству, драйвер ядра пересылает запрос (если клиентская часть не полностью реализована в ядре, это можно сделать с помощью программы пользовательского пространства ) на серверную машину, на которой физически находятся данные. На сервере запросы клиента обрабатываются программой пользовательского пространства.
Серверы сетевых блочных устройств обычно реализуются как программа пользовательского пространства, работающая на компьютере общего назначения. Все функции, специфичные для серверов сетевых блочных устройств, могут находиться в процессе пользовательского пространства, поскольку процесс взаимодействует с клиентом через обычные сокеты и получает доступ к хранилищу через обычный интерфейс файловой системы .
Клиентский модуль сетевого блочного устройства доступен в Unix-подобных операционных системах, включая Linux.
Альтернативные протоколы
[ редактировать ]- iSCSI : пакет iscsi «target-utils» во многих дистрибутивах Linux .
- NVMe-oF : эквивалентный механизм, представляющий блочные устройства как пространства имен NVMe через TCP, Fibre Channel, RDMA и т. д., встроенный в большинство операционных систем.
- Устройство петли : аналогичный механизм, но вместо удаленного используется локальный файл.
- DRBD : Распределенное реплицируемое блочное устройство — это распределенная система хранения данных для платформы Linux.
- ATA через Ethernet : отправка ATA через Ethernet. команд
- USB/IP : протокол, обеспечивающий сетевой доступ к USB-устройствам через IP. [2] [3]
Внешние ссылки
[ редактировать ]- Сетевое блочное устройство на GitHub
- nbdkit — это сервер NBD на основе плагинов, а libnbd — высокопроизводительный C. клиент
- qemu-nbd Инструмент nbd из проекта qemu.
- BNBD — альтернативная реализация сервера NBD.
- xNBD была еще одной серверной программой NBD для Linux.
- Сетевое блочное устройство , Linux Journal
Ссылки
[ редактировать ]- ^ «Сетевое блочное устройство | Linux Journal» .
- ^ «Документация/usb/usbip_protocol.txt» . ядро.орг . 21 марта 2016 г. Проверено 9 апреля 2017 г.
- ^ «USB-туннель через IP» . OpenWrt . 17 июня 2016 г. Проверено 9 апреля 2017 г.