- Device Mapper
-
Der Device Mapper ist ein Teil des Linux-Kernels (seit 2.6). Er erlaubt die Erzeugung virtueller blockorientierter Geräte, indem er deren Adressbereich auf andere blockorientierte Geräte oder spezielle Funktionen abbildet. Der Device-mapper wird vor allem für den Logical Volume Manager (LVM) und Geräteverschlüsselung genutzt. Der Unterschied zwischen dem Device-mapper und LVM ist, dass die von LVM normalerweise erzeugten Geräte echte Hardware bzw. Bereiche davon sind. Der Device-mapper stellt einige Funktionen zur Verfügung, die LVM benötigt (und die in früheren Linux-Versionen integraler Bestandteil von LVM waren): Snapshots (inklusive Zurückschreiben der Änderungen ins Ursprungsgerät) sowie die RAID-Funktionen Striping (Level 0) und Mirroring (Level 1). Dank der Herauslösung aus LVM können diese Funktionen nun auch mit anderen blockorientierten Geräten (z.B. Festplatten(partitionen) und loop devices) genutzt werden. Device-mapper-Geräte können im laufenden Betrieb (beschreibbar eingehängtes Dateisystem) blockiert und umkonfiguriert werden.
Inhaltsverzeichnis
Aufbau von Device-mapper-Geräten
Geräte werden mit Hilfe des Device-mappers erzeugt, indem man dem Konsolenprogramm dmsetup neben dem Namen des Geräts folgende Daten übergibt:
- Startsektor
- Anzahl aufeinanderfolgender Sektoren mit demselben Ziel
- Zieltyp (target)
- zielspezifische Argumente
Die Definition eines Geräts kann aus einem einzelnen oder mehreren solchen Blöcken bestehen. So kann man mit der folgenden Konfiguration zwei Festplatten (je 100 GiB) zu einem einzigen logischen Laufwerk verbinden:
0 209715200 linear /dev/sdb 0
209715200 209715200 linear /dev/sdc 0Die vom Device-mapper erzeugten Geräte erscheinen unter /dev/mapper/ mit dem dmsetup übergebenen Namen und unter /sys/block/ mit den Kernelnamen (dm-0, dm-1, ...).
Zusammenhang von Device-mapper und LVM
LVM teilt dem Device-mapper mit, welche Blöcke auf einem Gerät in welcher Reihenfolge zu einem logischen Laufwerk gehören. Nach dem Anlegen des Geräts ist nicht mehr erkennbar, dass es sich um ein LVM-Gerät handelt; man könnte diese Zuweisung auch selber vornehmen. Zwei nacheinander per LVM erzeugte Laufwerke stellen sich im Device-mapper beispielsweise so dar:
- 0 25165824 linear 8:8 384
- 0 204800 linear 8:8 29360512
8:8 sind major und minor number für /dev/sda8, die zweite Zahl gibt die Größe an, die letzte den Offset zum Startsektor der Partition (nicht 0 wegen der LVM-Metadaten).
Aufbau von Snapshots
Snapshots werden meist per LVM erzeugt. Die LVM-Programme zeigen dann nur zwei Objekte an: das Ursprungslaufwerk und das Snapshotlaufwerk. Außerdem besteht derzeit die Restriktion, dass LVM nur Snapshotlaufwerke in derselben volume group wie das Ursprungslaufwerk anlegen kann. Dies ist eine Beschränkung des Verwaltungsprogramms (lvcreate), keine des Device-mappers. Aus dessen Sicht existieren nicht zwei, sondern vier Geräte (LV test, VG vg0, Snapshot-LV test-snap):
- vg0-test
- vg0-test-real
- vg0-test--snap
- vg0-test--snap-cow
Das ursprüngliche Gerät vg0-test wird vom Zieltyp linear umgeschrieben auf snapshot-origin, vg0-test-real hat die ursprüngliche Definition von vg0-test, unter vg0-test--snap wird die Snapshotsicht auf das Ursprungslaufwerk verfügbar gemacht, und vg0-test--snap-cow ist das Gerät, in dem per Copy-On-Write die nach Erzeugung des Snapshots am Ursprungsgerät vorgenommenen Änderungen protokolliert werden. Dies sind Snapshots auf Geräte-, nicht auf Dateisystemebene. Werden weitere Snapshots erzeugt, wird aus LVM-Sicht jeweils ein zusätzliches Laufwerk erzeugt, aus Device-Mapper-Sicht jeweils zwei (Snapshot und COW).
Weblinks
- Webseite des Device-mappers
- Zusammenspiel von LVM und Device-mapper am Beispiel der Datenrettung nach einem LVM-Crash
Einzelnachweise
Kategorie:- Linux-Betriebssystemkomponente
Wikimedia Foundation.