Maison >php教程 >PHP开发 >Mécanisme Device Mapper dans le noyau du système Linux (1) (4)

Mécanisme Device Mapper dans le noyau du système Linux (1) (4)

黄舟
黄舟original
2016-12-23 14:10:031359parcourir

Partie espace utilisateur

Le mappeur de périphériques est relativement simple dans l'espace utilisateur, comprenant principalement la bibliothèque de mappage de périphériques et l'outil dmsetup. La bibliothèque de mappeur de périphériques est une encapsulation des opérations nécessaires requises par ioctl et l'espace utilisateur pour créer et supprimer des périphériques logiques de mappage de périphériques. dmsetup est un outil de ligne de commande qui fournit aux utilisateurs un outil de ligne de commande directement disponible pour créer et supprimer des périphériques de mappage de périphériques. Parce que leurs fonctions et processus sont relativement simples, leurs détails ne seront pas introduits dans cet article. L'espace utilisateur est principalement responsable du travail suivant :

1 Découvrir l'appareil cible lié à chaque appareil mappé ; >

2. Créez une table de mappage basée sur les informations de configuration ;

3. Transmettez la table de mappage construite par l'espace utilisateur dans le noyau et laissez le noyau créer la structure dm_table correspondant au périphérique mappé. ;

4. Enregistrez les informations cartographiques actuelles pour une reconstruction future.

Ci-dessous, nous illustrons principalement l'utilisation de dmsetup à travers des exemples, et expliquons plus en détail le mécanisme de mappage du mappeur de périphériques. Le travail le plus important dans l'espace utilisateur consiste à créer et à enregistrer la table de mappage. Voici quelques exemples de tables de mappage :

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
Dans l'exemple 1, les secteurs de périphériques logiques 0~1023, 1024~1535 et les trois. les plages d'adresses 1536 à 1663 sont respectivement mappées de manière linéaire au secteur n° 204 du périphérique /dev/sda, au secteur n° 766 du périphérique /dev/sdb et au secteur n° 0 du périphérique /dev/sdc. . zone.

Dans l'exemple 2, le segment du périphérique logique commençant à partir du secteur 0 et d'une longueur de 2048 secteurs est mappé au secteur 1024 du périphérique /dev/sda et /dev de manière rayée. à partir du secteur 0 du périphérique /sdb. En même temps, il indique au noyau que le pilote cible de ce type de bande a deux périphériques de bande mappés sur des périphériques logiques et que la taille de la bande est de 64 secteurs, afin que le pilote puisse utiliser cette valeur pour répartir les requêtes d'E/S entre les périphériques. .

Dans l'exemple 3, le segment de 4711 secteurs du périphérique logique commençant à partir du secteur 0 est mappé au 2048ème secteur du périphérique /dev/sda et /dev/sdb de manière miroir. secteur 1024 de l'appareil.

Une fois la table de mappage déterminée, les opérations de création et de suppression de périphériques logiques sont relativement simples. Les opérations correspondantes peuvent être effectuées via les commandes dmsetup suivantes.

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

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

dmsetup remove 设备名 /* 删除指定的逻辑设备 */

Mécanisme Device Mapper dans le noyau du système Linux (1) (4)

Figure 4 Périphérique logique créé dans le noyau sur la base de la table de mappage de l'exemple 1

Lorsque l'espace utilisateur émet une commande pour créer un périphérique basé sur la table de mappage. Ensuite, le mappeur de périphérique établit la relation de mappage entre l'adresse logique et l'adresse physique dans le noyau en fonction des paramètres entrants et de la relation de mappage. Le dispositif établi sur la base de la relation de mappage dans l'exemple 1 de table de mappage est illustré à la figure 4. La partie inférieure de la figure décrit de manière abstraite la relation de mappage entre les adresses logiques et les adresses physiques établies dans le noyau selon la table de mappage.

Ce qui précède est le contenu du mécanisme Device Mapper (1) (4) dans le noyau du système Linux. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !



Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn