Heim > php教程 > PHP开发 > Device Mapper-Mechanismus im Linux-Systemkernel (1) (4)

Device Mapper-Mechanismus im Linux-Systemkernel (1) (4)

黄舟
Freigeben: 2016-12-23 14:10:03
Original
1359 Leute haben es durchsucht

Benutzerbereichsteil

Device Mapper ist im Benutzerbereich relativ einfach und umfasst hauptsächlich die Device Mapper-Bibliothek und das dmsetup-Tool. Die Device-Mapper-Bibliothek ist eine Kapselung der notwendigen Vorgänge, die für ioctl und den Benutzerbereich zum Erstellen und Löschen von Device-Mapper-Geräten erforderlich sind. dmsetup ist ein Befehlszeilentool, das Benutzern ein direkt verfügbares Befehlszeilentool zum Erstellen und Löschen von Device-Mapper-Geräten bietet. Da ihre Funktionen und Prozesse relativ einfach sind, werden ihre Details in diesem Artikel nicht vorgestellt. Der Benutzerbereich ist hauptsächlich für die folgende Arbeit verantwortlich:

1 Entdecken Sie das Zielgerät für jedes zugeordnete Gerät

2. Erstellen Sie eine Zuordnungstabelle basierend auf den Konfigurationsinformationen.

3. Übergeben Sie die vom Benutzerbereich erstellte Zuordnungstabelle und lassen Sie den Kernel die dem zugeordneten Gerät entsprechende dm_table-Struktur erstellen ;

4. Speichern Sie aktuelle Karteninformationen für zukünftige Rekonstruktionen.

Im Folgenden veranschaulichen wir hauptsächlich die Verwendung von dmsetup anhand von Beispielen und erläutern den Zuordnungsmechanismus des Device Mappers weiter. Die wichtigste Arbeit im Benutzerbereich besteht darin, die Zuordnungstabelle zu erstellen und zu speichern. Hier sind einige Beispiele für Zuordnungstabellen:

1)
0 1024 linear /dev/sda 204
1024 512 linear /dev/sdb 766

1536 128 linear /dev/sdc 0 
2) 0 2048 striped 2 64 /dev/sda 1024 /dev/sdb 0

3) 0 4711 mirror core 2 64 nosync 2 /dev/sda 2048 /dev/sdb 1024
Nach dem Login kopieren

In Beispiel 1 sind es die logischen Gerätesektoren 0~1023, 1024~1535 und die drei Die Adressbereiche 1536–1663 werden jeweils in linearer Zuordnung dem Sektor Nr. 204 des /dev/sda-Geräts, dem Sektor Nr. 766 des /dev/sdb-Geräts und dem Sektor Nr. 0 des /dev/sdc-Geräts zugeordnet . Bereich.

In Beispiel 2 wird das Segment des logischen Geräts beginnend mit Sektor 0 und mit einer Länge von 2048 Sektoren gestreift dem Sektor 1024 des /dev/sda-Geräts und dem /dev-Bereich zugeordnet aus Sektor 0 des /sdb-Geräts. Gleichzeitig wird dem Kernel mitgeteilt, dass der Zieltreiber dieses Stripe-Typs über zwei Stripe-Geräte verfügt, die logischen Geräten zugeordnet sind, und dass die Stripe-Größe 64 Sektoren beträgt, sodass der Treiber diesen Wert verwenden kann, um E/A-Anforderungen auf mehrere Geräte aufzuteilen .

In Beispiel 3 wird das 4711-Sektor-Segment des logischen Geräts beginnend mit Sektor 0 dem 2048. Sektor des /dev/sda-Geräts und /dev/sdb dem Bereich beginnend zugeordnet Sektor 1024 des Geräts.

Nachdem die Zuordnungstabelle ermittelt wurde, sind die Vorgänge zum Erstellen und Löschen logischer Geräte relativ einfach. Die entsprechenden Vorgänge können über die folgenden dmsetup-Befehle ausgeführt werden.

dmsetup create 设备名 映射表文件 /* 根据指定的映射表创建一个逻辑设备 */

dmsetup reload 设备名 映射表文件 /* 为指定设备从磁盘中读取映射文件,重新构建映射关系 */

dmsetup remove 设备名 /* 删除指定的逻辑设备 */
Nach dem Login kopieren

Device Mapper-Mechanismus im Linux-Systemkernel (1) (4)

Abbildung 4 Logisches Gerät, das im Kernel basierend auf der Zuordnungstabelle in Beispiel 1 erstellt wurde

Wenn der Benutzerbereich einen Befehl zum Erstellen eines logischen Geräts ausgibt Gerät basierend auf der Zuordnungstabelle. Anschließend stellt der Geräte-Mapper die Zuordnungsbeziehung zwischen der logischen Adresse und der physischen Adresse im Kernel basierend auf den eingehenden Parametern und der Zuordnungsbeziehung her. Das Gerät, das auf der Grundlage der Zuordnungsbeziehung in Beispiel 1 der Zuordnungstabelle erstellt wurde, ist in Abbildung 4 dargestellt. Der untere Teil der Abbildung zeigt abstrakt die Zuordnungsbeziehung zwischen logischen Adressen und physischen Adressen, die im Kernel gemäß der Zuordnungstabelle erstellt wurden.

Das Obige ist der Inhalt des Device Mapper-Mechanismus (1) (4) im Linux-Systemkernel. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage