Сетевое блочное устройство - Network block device
На Linux, сетевое блочное устройство (NBD) - это сетевой протокол который можно использовать для пересылки блочное устройство (обычно жесткий диск или раздел) с одной машины на другую. Например, локальный компьютер может получить доступ к привод жесткого диска который подключен к другому компьютеру.
Протокол был первоначально разработан для Linux 2.1.55 и выпущен в 1997 году.[1]. В 2011 году протокол был переработан, официально задокументированный, и теперь разрабатывается как совместный открытый стандарт. Есть несколько совместимый клиенты и серверы.
Существуют Linux-совместимые реализации NBD для FreeBSD и другие операционные системы. Термин «сетевое блочное устройство» иногда также используется в общем смысле.
Технически сетевое блочное устройство состоит из трех компонентов: серверной части, клиентской части и сети между ними. На клиентской машине, на которой находится узел устройства, драйвер ядра управляет устройством. Всякий раз, когда программа пытается получить доступ к устройству, драйвер ядра пересылает запрос (если клиентская часть не полностью реализована в ядре, это может быть выполнено с помощью пространство пользователя программа) на серверную машину, на которой физически находятся данные. На сервере запросы от клиента обрабатываются программой пользовательского пространства.
Серверы сетевых блочных устройств обычно реализуются как программа пользовательского пространства, работающая на компьютере общего назначения. Все функции, специфичные для серверов сетевых блочных устройств, могут находиться в процессе пользовательского пространства, поскольку процесс взаимодействует с клиентом через обычные сокеты и обращается к хранилищу через обычные файловая система интерфейс.
Клиентский модуль сетевого блочного устройства доступен на некоторых Unix-подобный операционные системы, включая Linux и Битриг.[2] Поскольку сервер является программой пользовательского пространства, он потенциально может работать на любой Unix-подобной платформе; например, серверная часть NBD была перенесена на Солярис.[3]
Альтернативные протоколы
- iSCSI: Пакет iscsi "target-utils" во многих GNU /Linux раздачи.
- Устройство петли: аналогичный механизм, но использует локальный файл вместо удаленного
- DRBD: Distributed Replicated Block Device - это распределенная система хранения для платформы Linux.
- ATA через Ethernet: Отправить ATA команды через Ethernet
- USB / IP: Протокол, обеспечивающий сетевой доступ к USB-устройствам через IP.[4][5]
внешняя ссылка
- Linux Сетевое блочное устройство на SourceForge.net: протокол стандартный и канонический клиент и сервер
- nbdkit это сервер NBD на основе плагинов и libnbd это высокопроизводительный C клиент
- Клиент NBD для FreeBSD на GitHub с помощью GEOM
- qemu-nbd Инструмент nbd из проекта qemu
- xNBD это еще одна серверная программа NBD для Linux
- BNBD альтернативная реализация сервера NBD
- Сетевое блочное устройство, Linux Journal
Рекомендации
- ^ https://www.linuxjournal.com/article/3778
- ^ Патрик Уайлдт (23 апреля 2015 г.). «NBD: реализация поддержки сетевых блочных устройств». Битриг.
- ^ Мирослав Крипач (21 января 2005 г.). «Реализация кластеров реальных приложений Oracle с использованием технологии сетевых блочных устройств». Масариковский университет. Получено 2016-11-22.
- ^ «Документация / usb / usbip_protocol.txt». kernel.org. 2016-03-21. Получено 2017-04-09.
- ^ «USB через IP-туннель». OpenWrt. 2016-06-17. Получено 2017-04-09.