En Linux , el dispositivo de bloque de red (NBD) es un protocolo de red que se puede utilizar para reenviar un dispositivo de bloque (normalmente un disco duro o una partición) de una máquina a otra. Por ejemplo, una máquina local puede acceder a una unidad de disco duro conectada a otra computadora.
El protocolo se desarrolló originalmente para Linux 2.1.55 y se lanzó en 1997. [1] En 2011, el protocolo se revisó, se documentó formalmente y ahora se desarrolla como un estándar abierto colaborativo . Hay varios clientes y servidores interoperables .
Existen implementaciones de NBD compatibles con Linux para FreeBSD y otros sistemas operativos. El término "dispositivo de bloque de red" a veces también se utiliza de forma genérica.
Técnicamente, un dispositivo de bloque de red se compone de tres componentes: la parte servidor, la parte cliente y la red entre ellos. En la máquina cliente, en la que se encuentra el nodo del dispositivo, un controlador de kernel controla el dispositivo. Siempre que un programa intenta acceder al dispositivo, el controlador de kernel reenvía la solicitud (si la parte cliente no está completamente implementada en el kernel, se puede hacer con la ayuda de un programa de espacio de usuario ) a la máquina servidor, en la que residen físicamente los datos. En la máquina servidor, las solicitudes del cliente son manejadas por un programa de espacio de usuario.
Los servidores de dispositivos de bloque de red se implementan normalmente como un programa de espacio de usuario que se ejecuta en una computadora de uso general. Todas las funciones específicas de los servidores de dispositivos de bloque de red pueden residir en un proceso de espacio de usuario porque el proceso se comunica con el cliente a través de sockets convencionales y accede al almacenamiento a través de una interfaz de sistema de archivos convencional .
El módulo cliente del dispositivo de bloque de red está disponible en sistemas operativos tipo Unix , incluido Linux.