Mapowanie urządzeń - Device mapper
Odwzorowujący urządzenie jest ramy dostarczane przez jądro Linux do mapowania fizycznego urządzenia blokowe na wyższym poziomie urządzeń wirtualnych blokowych . Stanowi podstawę menedżera woluminów logicznych (LVM), programowych macierzy RAID i szyfrowania dysków dm-crypt , a także oferuje dodatkowe funkcje, takie jak migawki systemu plików .
Program mapujący urządzenia działa poprzez przekazywanie danych z wirtualnego urządzenia blokowego, które jest dostarczane przez sam program mapujący, do innego urządzenia blokowego. Dane mogą być również modyfikowane w okresie przejściowym, co jest wykonywane np. W przypadku mappera urządzeń zapewniającego szyfrowanie dysku lub symulacji zawodnego zachowania sprzętu.
Ten artykuł skupia się na implementacji mapowania urządzeń w jądrze Linuksa, ale funkcja mapowania urządzeń jest również dostępna zarówno w NetBSD, jak i DragonFly BSD .
Stosowanie
Aplikacje (takie jak LVM2 i Enterprise Volume Management System (EVMS)), które muszą tworzyć nowe zmapowane urządzenia, komunikują się z urządzeniem mapującym za pośrednictwem libdevmapper.so
udostępnionej biblioteki , która z kolei wysyła ioctls do /dev/mapper/control
węzła urządzenia . Konfigurację programu mapującego urządzenia można również sprawdzić i skonfigurować interaktywnie - lub ze skryptów powłoki - za pomocą narzędzia.
Oba te dwa komponenty przestrzeni użytkownika mają swój kod źródłowy utrzymywany razem ze źródłem LVM2.
funkcje
Funkcje zapewniane przez program mapujący urządzenia obejmują mapowanie liniowe, paski i mapowania błędów , a także cele kryptograficzne i wielościeżkowe . Na przykład dwa dyski mogą być połączone w jeden wolumin logiczny z parą liniowych odwzorowań, po jednym na każdy dysk. Jako inny przykład cel kryptograficzny szyfruje dane przechodzące przez określone urządzenie przy użyciu interfejsu Crypto API jądra systemu Linux .
Dostępne są następujące cele mapowania:
- cache - umożliwia tworzenie woluminów hybrydowych przy użyciu dysków półprzewodnikowych (SSD) jako pamięci podręcznych dla dysków twardych (HDD)
- clone - pozwoli na użycie przed zakończeniem transferu.
- crypt - zapewnia szyfrowanie danych przy użyciu Crypto API jądra Linux
- opóźnienie - opóźnia odczyty i / lub zapisy do różnych urządzeń (używane do testowania)
- era - zachowuje się podobnie do celu liniowego, ale śledzi bloki, które zostały zapisane w określonym przez użytkownika przedziale czasu
- error - symuluje błędy we / wy dla wszystkich mapowanych bloków (używane do testowania)
- flakey - symuluje okresowe niewiarygodne zachowanie (używane do testów)
- linear - mapuje ciągły zakres bloków na inne urządzenie blokowe
- mirror - odwzorowuje lustrzane urządzenie logiczne, zapewniając jednocześnie redundancję danych
- multipath - obsługuje mapowanie urządzeń wielościeżkowych poprzez wykorzystanie ich grup ścieżek
- raid - oferuje interfejs do sterownika RAID oprogramowania jądra Linux ( md )
- migawka i źródło migawki - używane do tworzenia migawek LVM, jako część podstawowego schematu kopiowania przy zapisie
- paski - paski danych między urządzeniami fizycznych z ilością pasków i paskowany wielkość porcji jako parametry
- cienkie - umożliwia tworzenie urządzeń większych niż podstawowe urządzenie fizyczne, przestrzeń fizyczna jest przydzielana tylko podczas zapisywania
-
zero - odpowiednik
/dev/zero
, wszystkie odczyty zwracają bloki zer, a zapisy są odrzucane
Aplikacje
Następujące funkcje i projekty jądra Linuksa są zbudowane na wierzchu programu mapowania urządzeń:
- cryptsetup - narzędzie służące do wygodnej konfiguracji szyfrowania dysku w oparciu o dm-crypt
- dm-crypt / LUKS - mapowanie celu zapewniającego szyfrowanie woluminu
- dm-cache - mapowanie celu, które umożliwia tworzenie woluminów hybrydowych
- dm-integrity - mapowanie celu, który zapewnia integralność danych , za pomocą sum kontrolnych lub weryfikacji kryptograficznej, również używane z LUKS
- dm-log-writes - mapowanie celu korzystającego z dwóch urządzeń, przechodzenie przez pierwsze urządzenie i rejestrowanie operacji zapisu wykonanych na nim na drugim urządzeniu
- dm-prawda - potwierdza bloków danych zawartych w systemie plików z listą kryptograficznych wartości hash, opracowanych w ramach Chromium OS projektu
- „fałszywych” konfiguracji RAID za pośrednictwem programu mapowania urządzeń - zapewnia dostęp do
- DM Multipath - zapewnia przełączanie awaryjne we / wy i równoważenie obciążenia urządzeń blokowych w jądrze Linux
- Docker - używa mapowania urządzeń do tworzenia magazynu kopiowania przy zapisie dla kontenerów oprogramowania
- DRBD (rozproszone replikowane urządzenie blokowe)
- EVMS (przestarzały)
- - narzędzie wywoływane z hotplug po utworzeniu i usunięciu map urządzeń
- LVM2 - menedżer woluminów logicznych dla jądra Linux
- Wersja TrueCrypt dla systemu Linux
- VDO - Virtual Data Optimizer
Bibliografia
Linki zewnętrzne
- Strona główna mapowania urządzeń w firmie Red Hat
- „Prawo do własnych urządzeń” . Linux Gazette . Maj 2005. - artykuł ilustrujący użycie różnych celów mapowania urządzeń
- narzędzie przestrzeni użytkownika do konfigurowania oprogramowania RAID przy użyciu różnych formatów metadanych RAID
- Obsługa wielu ścieżek w programie mapowania urządzeń , LWN.net , 23 lutego 2005, autor: Jonathan Corbet