Maison  >  Article  >  Opération et maintenance  >  Qu'est-ce que le mappeur sous Linux

Qu'est-ce que le mappeur sous Linux

青灯夜游
青灯夜游original
2022-05-12 17:29:595006parcourir

Sous Linux, le nom complet du mappeur est « Device mapper », qui est un mécanisme de mappage des périphériques logiques vers les périphériques physiques ; sous ce mécanisme, les utilisateurs peuvent facilement gérer les ressources de stockage en fonction de leurs propres besoins ; périphérique mappé, périphérique cible, etc.

Qu'est-ce que le mappeur sous Linux

L'environnement d'exploitation de ce tutoriel : système linux5.9.8, ordinateur Dell G3.

1. Qu'est-ce que le mappeur sous Linux ?

Le nom complet du mappeur est "Device mapper" Il s'agit d'un mécanisme de mappage des périphériques logiques vers les périphériques physiques fourni dans le noyau Linux 2.6. peut facilement gérer les ressources de stockage en fonction de ses propres besoins.

Les gestionnaires de volumes logiques actuellement populaires sous Linux tels que LVM2 (version Linux Volume Manager 2), EVMS (Enterprise Volume Management System), dmraid (Device Mapper Raid Tool), etc. sont tous implémentés sur la base de ce mécanisme.

La fonction essentielle du mappeur de périphérique est de transmettre les demandes d'E/S du périphérique logique mappé au périphérique cible correspondant en fonction de la relation de mappage et des règles de traitement des E/S décrites par le pilote cible.

Le mappeur de périphériques est enregistré dans le noyau en tant que pilote de périphérique bloc. Il contient trois concepts d'objet importants : le périphérique mappé, la table de mappage et le périphérique cible.

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

Device mapper est une encapsulation des opérations nécessaires requises pour ioctl et l'espace utilisateur pour créer et supprimer des périphériques logiques de mappeur de périphériques.

dmsetup est un outil de ligne de commande qui fournit aux utilisateurs une création et une suppression directement utilisables de périphériques de mappage de périphériques.

Fonction : 

Peut combiner plusieurs périphériques physiques en un seul périphérique logique, qui peut être utilisé pour une fusion ou une répartition ordinaire similaire à raid0. Il peut également être utilisé pour protéger les secteurs défectueux du disque dur. des instantanés pour sauvegarder la base de données ou simuler de très gros appareils sans aucun fichier de périphérique pour tester la fonctionnalité.

Device mapper est la technologie sous-jacente de LVM et de la multiplication.

2. Package d'installation :

device-mapper device-mapper-multipathdevice-mapper device-mapper-multipath

3.工作原理:

通过mapping table来创建逻辑设备(物理设备和逻辑设备每个扇区之间的对应关系)。表内容包括:
逻辑设备的起始扇区:
通常是0 逻辑设备的扇区数量 类型(linear线性,连续组合;striped条带化;error屏蔽坏道;snapshot快照;zero零设备)

4.磁盘扇区的计算:

1扇区=512字节b 1kb=1024b 扇区大小kb=扇区数512/1024 比如10G的磁盘,扇区数为:
10000000kb=扇区数
512/1024=20000000个扇区

#blockdev --getsize /dev/sda6 查看设备扇区数量
#echo “0 ‘blockdev --getsize /dev/sda6’ linear /dev/sda6 0” | dmsetup create mydevice

通过table创建逻辑设备 0表示这个逻辑设备从0扇区开始,有208782个扇区,linear表示连续的,/dev/sda6 0 表示从/dev/sda6的第0个扇区开始做逻辑设备。当一个设备用剩余空间做逻辑设备时候,扇区就不是从0开始了。 以下写入开机脚本后重启才会生效

5.linear类型设备 特性:

把多个物理分区的扇区连续起来组合成一个逻辑设备。 0 20000 linear /dev/sda1 0 20000 60000 linear /dev/sdb1 0 注:
逻辑设备从0到扇区取自sda1从0扇区开始取20000扇区,逻辑设备从20000扇区开始,从sdb1的0扇区开始取60000个扇区,该逻辑设备80000个扇区。 实现命令

#echo “0 20000 linear /dev/sda1 0\n20000 60000 linear /dev/sdb1 0” | dmsetup create mydevice

6.stripe条带化:

通过chunksize

3. tableau pour créer des périphériques logiques (correspondance entre les périphériques physiques et chaque secteur de périphériques logiques). Le contenu du tableau comprend : Secteur de départ du périphérique logique : Généralement 0 Type de numéro de secteur du périphérique logique (linéaire combinaison linéaire et continue ; rayé rayé ; erreur bouclier secteurs défectueux ; instantané instantané ; zéro zéro périphérique)

4. Calcul des secteurs de disque :

1 secteur = 512 octets b 1 Ko = 1024b Taille du secteur Ko = nombre de secteurs 512/1024 Par exemple, pour un disque 10G, le nombre de secteurs est : 10000000 Ko = nombre de secteurs 512/1024 = 20000000 Secteur

#echo “0 1024 striped 2 256 /dev/sda1 0 /dev/sdb1 0” | dmsetup create mydevice

Création du périphérique logique 0 à table signifie que ce périphérique logique commence à partir du secteur 0, avec 208782 secteurs, linéaire signifie continu, /dev/sda6 0 signifie à partir du 0ème secteur de /dev/sda6 Créer des périphériques logiques. Lorsqu'un périphérique utilise l'espace restant comme périphérique logique, les secteurs ne démarrent pas à 0. Il ne prendra effet qu'après le redémarrage après avoir écrit le script de démarrage suivant

5. Caractéristiques du périphérique de type linéaire :

Combinez en continu des secteurs de plusieurs partitions physiques en un périphérique logique. 0 20000 linéaire /dev/sda1 0 20000 60000 linéaire /dev/sdb1 0 Remarque :

Le périphérique logique passe de 0 au secteur de sda1, en commençant par le secteur 0 et en prenant 20000 secteurs, le périphérique logique démarre à partir du secteur 20000, en commençant par sdb1 À partir du secteur 0, 60 000 secteurs sont pris et le périphérique logique comporte 80 000 secteurs. Implémentez la commande

#echo “0 80 linear /dev/sda1 0\n80 100 error\n181 200 linear /dev/sdb1 0” | dmsetup create mydevice

6.stripe striping :

🎜 écrivez tour à tour sur le disque via chunksize 0 1024 striped 2 256 /dev/sda1 0 /dev/sdb1 0 Remarque : 🎜Logique Le le périphérique commence du secteur 0 au secteur 1024, le type est rayé, 2 périphériques, taille de bloc de 256 Ko. À partir du secteur 0 de /dev/sda1 et /dev/sdb1, prenez 512 secteurs chacun (notez que le nombre de secteurs doit être de taille de bloc) Multiples. ) Implémentation de la commande🎜
#echo ―0 1000 snapshot /dev/sda1 /dev/vg0/realdev P 16 ‖ | dmsetup create mydevice从0扇区到1000扇区为/dev/sda1创建快照,名字为realdev,P表示下次启动仍然生效,16为chunksize
🎜🎜🎜7.error:🎜🎜🎜🎜Supprimer les secteurs d'erreur via des périphériques logiques synthétiques 0 80 linéaire /dev/sda1 0 80 100 erreur 181 200 linéaire /dev/sdb1 0 Implémentation de la commande🎜
#export HUGESIZE=$[100 * (2**40)/512] 100T的扇区数量 2**40为2的40次方
#echo "0 $HUGESIZE zero" | dmsetup create zerodev 生成的文件在/dev/mapper/zerodev ext3每个分区最大支持2TB
🎜🎜 🎜8 .snapshot Fonctionnalités d'instantané de volume logique : 🎜🎜🎜🎜Après la création d'un instantané, 3 appareils apparaissent (appareil d'origine, appareil d'instantané, appareil de vache). Si les données n'ont pas changé, les données lues sont lues à partir de l'appareil d'origine et les données modifiées. est écrit. Stocké dans la zone vache, le périphérique instantané enregistre les données du périphérique d'origine. 🎜
#vi /etc/multipath.conf 注释掉 blacklist { devnode "*" 不同厂商的配置是不一样的 } 取消注释 default{ udev_dir .. .. path_grouping_policy failover(根据失效域来判断执行策略) }
#systemctl enable multipathd 
#systemctl restart multipathd 之后生成的设备位置在/dev/mpath/下,可制作文件系统,挂载
#multipath –ll 查询设备状态
🎜🎜🎜9. Fonctionnalités du périphérique Zero : 🎜🎜🎜🎜Similaire à /dev/zero, mais il s'agit d'un périphérique bloc et ne peut pas être écrit. Il est généralement utilisé pour tester et créer de grands systèmes de fichiers à des fins de test. Par exemple, le test crée un appareil 10T formaté avec les fonctionnalités ext3🎜rrreee🎜🎜🎜10 :🎜🎜🎜.

多路径功能,用来提供线路冗余,监控每条链路,当链路失败时自动切换链路,而且自动恢复运行,防止单点故障。生成的设备名 /dev/dm-X 类型:
当两路径优先级相等:
负载均衡 当两路径优先级不等: 冗余

multipath列出多路径设备,后台需要开启multipathd服务,优先级大小为0-1024 实验步骤:

存储端配置双网卡,配置/dev/sda6为iscsi设备 服务器端安装device-mapper-multipath包,连接iscsi设备

#vi /etc/multipath.conf 注释掉 blacklist { devnode "*" 不同厂商的配置是不一样的 } 取消注释 default{ udev_dir .. .. path_grouping_policy failover(根据失效域来判断执行策略) }
#systemctl enable multipathd 
#systemctl restart multipathd 之后生成的设备位置在/dev/mpath/下,可制作文件系统,挂载
#multipath –ll 查询设备状态

11.FC存储:

存储端建立raid设备,raid建立与HBA卡WWN号的映射关系(连接哪个HBA卡则使用哪块磁盘设备) WWN为HBA卡的授权名称,用来区分一个或一组网络连接,表示网络上的一个连接

相关推荐:《Linux视频教程

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

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