Jednym z rozwiązań tego problemu może być tzw. sieciowe urządzenie blokowe Network Block
Device dostępne w systemie Linux. Fragment (lub całość) dowolnego urządzenia blokowego na jednym
komputerze (serwerze) może zostać udostępniona przez sieć TCP/IP drugiemu komputerowi
(klientowi), który będzie tę przestrzeń traktował jak swoje własne,
lokalne urządzenie blokowe (patrz rys. . Udostępnianie odbywa się na poziomie
urządzeń blokowych (a nie plików jak np. NFS) co pozwala utworzyć na
urządzeniu NBD dowolny system plików, wolumen logiczny LVM
lub nawet programową macierz RAID.
Gdy użytkownik lub jakiś proces odwołuje się do pliku znajdującego się w systemie plików rezydującym na na urządzeniu NBD, żądanie przesyłane jest protokołem TCP do serwera, który fizycznie posiada to urządzenie (lub jego fragment). Potrzebny blok danych jest odczytywany z dysku i przesyłany do klienta, gdzie odtwarzany jest plik i dostarczany użytkownikowi lub procesowi.
Jednemu klientowi można udostępnić wiele urządzeń blokowych z różnych
serwerów NBD (dopuszczalne jest aby serwery NBD działały pod różnymi systemami operacyjnymi). Możliwe jest zatem (np. korzystająć z LVM) utworzenie
wolumenu o pojemności będącej sumą pojemności poszczególnych urządzeń
z serwerów (patrz rys. ). Pozwala to wykorzystać
nieużywaną przestrzeń dyskową wielu komputerów w celu udostępnienia w
jednym miejscu jako pojedynczego dużego wolumenu. Jest oczywiście
jeden warunek, aby wolumen był dostępny wszystkie maszyny muszą być
działać i być widoczne w sieci.
Tworzenie macierzy RAID na sieciowym urządzeniu blokowym pozwala na na dodatkowe podniesienie bezpieczeństwa danych poprzez geograficzne rozproszenie macierzy.