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ą dmsetup(8) narzędzia.

Oba te dwa komponenty przestrzeni użytkownika mają swój kod źródłowy utrzymywany razem ze źródłem LVM2.

funkcje

Położenie obiektów docelowych mapowania urządzeń w różnych warstwach stosu pamięci jądra Linuksa .

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
  • dmraid(8)  - zapewnia dostęp do „fałszywych” konfiguracji RAID za pośrednictwem programu mapowania urządzeń
  • 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)
  • kpartx(8)  - 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