> 운영 및 유지보수 > 리눅스 운영 및 유지 관리 > 리눅스에서 매퍼란 무엇인가?

리눅스에서 매퍼란 무엇인가?

青灯夜游
풀어 주다: 2022-05-12 17:29:59
원래의
5062명이 탐색했습니다.

Linux에서 매퍼의 전체 이름은 "장치 매퍼"입니다. 이는 이 메커니즘에 따라 논리적 장치에서 물리적 장치로의 매핑 메커니즘입니다. 여기에는 세 가지 중요한 개념이 포함되어 있습니다. 매핑된 장치, 대상 장치 등

리눅스에서 매퍼란 무엇인가?

이 튜토리얼의 운영 환경: linux5.9.8 시스템, Dell G3 컴퓨터.

1. Linux에서 매퍼란 무엇입니까?

mapper의 전체 이름은 "Device mapper"입니다. 이는 Linux 2.6 커널에서 제공되는 논리적 장치에서 물리적 장치로의 매핑 메커니즘입니다. 필요에 따라 스토리지 리소스를 쉽게 관리할 수 있습니다.

LVM2(Linux Volume Manager 2 버전), EVMS(Enterprise Volume Management System), dmraid(Device Mapper Raid Tool) 등과 같이 현재 Linux에서 널리 사용되는 논리 볼륨 관리자는 모두 이 메커니즘을 기반으로 구현됩니다.

장치 매퍼의 필수 기능은 대상 드라이버가 설명하는 매핑 관계 및 IO 처리 규칙을 기반으로 논리적 장치 매핑된 장치의 IO 요청을 해당 대상 장치로 전달하는 것입니다.

장치 매퍼는 블록 장치 드라이버로 커널에 등록되어 있으며 매핑된 장치, 매핑 테이블 및 대상 장치라는 세 가지 중요한 개체 개념을 포함합니다.

장치 매퍼는 주로 장치 매퍼 라이브러리 및 dmsetup 도구를 포함하여 사용자 공간에서 상대적으로 간단합니다.

장치 매퍼 라이브러리는 ioctl 및 사용자 공간이 장치 매퍼 논리 장치를 생성 및 삭제하는 데 필요한 필수 작업을 캡슐화한 것입니다.

dmsetup은 사용자에게 장치 매퍼 장치를 직접 생성 및 삭제할 수 있는 기능을 제공하는 명령줄 도구입니다.

기능:

여러 물리적 장치를 하나의 논리적 장치로 결합할 수 있으며, 이는 일반 병합 또는 raid0과 같은 스트라이핑에 사용할 수 있습니다. 또한 하드 디스크의 불량 섹터를 보호하는 데에도 사용할 수 있습니다. 데이터베이스를 구축하거나 기능 테스트를 위해 장치 파일이 없는 매우 큰 장치를 시뮬레이션합니다.

장치 매퍼는 lvm 및 다중화의 기본 기술입니다.

2. 설치 패키지:

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. 매핑을 통해. 논리적 장치(물리적 장치와 논리적 장치의 각 섹터 간의 대응)를 생성하기 위한 테이블입니다. 테이블의 내용은 다음과 같습니다. 논리 장치의 시작 섹터: 일반적으로 0 논리 장치의 섹터 번호 유형(선형 선형, 연속 조합; 스트라이핑 스트라이프; < code>error 불량 섹터 보호; snapshot zero device)

4 디스크 섹터 계산:

1 섹터 = 512바이트 b 1kb = 1024b 섹터 크기 kb = 섹터 수 512/1024 예를 들어 10G 디스크의 경우 섹터 수는 다음과 같습니다. 10000000kb = 섹터 수 512/1024 = 20000000 섹터

#echo “0 1024 striped 2 256 /dev/sda1 0 /dev/sdb1 0” | dmsetup create mydevice
로그인 후 복사

논리 장치 0 만들기 ~ 테이블은 이 논리 장치가 섹터 0에서 시작한다는 것을 의미하며, 208782 섹터로, 선형은 연속을 의미하고, /dev/sda6 0은 /dev/sda6의 0번째 섹터에서 시작한다는 것을 의미합니다. 논리 장치를 만듭니다. 장치가 남은 공간을 논리 장치로 사용하는 경우 섹터는 0에서 시작하지 않습니다. 다음 부팅 스크립트

5를 작성한 후 다시 시작한 후에만 적용됩니다. 선형 유형 장치 기능:

여러 물리적 파티션의 섹터를 논리적 장치로 지속적으로 결합합니다. 0 20000 선형 /dev/sda1 0 20000 60000 선형 /dev/sdb1 0 참고:

논리 장치는 0에서 sda1의 섹터, 섹터 0에서 20000 섹터로 가져오고 논리 장치는 섹터 20000에서 시작하고 sdb1에서 시작합니다. 섹터 0, 60,000 섹터가 사용되고 논리 장치에는 80,000 섹터가 있습니다.

#echo “0 80 linear /dev/sda1 0\n80 100 error\n181 200 linear /dev/sdb1 0” | dmsetup create mydevice
로그인 후 복사

6.스트라이프 스트라이핑 명령 구현:

🎜 chunksize를 통해 차례로 디스크에 쓰기 0 1024 스트라이프 2 256 /dev/sda1 0 /dev/sdb1 0 참고: 🎜Logic The 장치는 섹터 0부터 섹터 1024까지 시작하고 유형은 스트라이프이며 장치 2개, 청크 크기는 256kb입니다. /dev/sda1 및 /dev/sdb1의 섹터 0에서 시작하여 각각 512개의 섹터를 사용합니다(섹터 수는 청크 크기여야 합니다). ) 명령 구현🎜
#echo ―0 1000 snapshot /dev/sda1 /dev/vg0/realdev P 16 ‖ | dmsetup create mydevice从0扇区到1000扇区为/dev/sda1创建快照,名字为realdev,P表示下次启动仍然生效,16为chunksize
로그인 후 복사
🎜🎜🎜7.error:🎜🎜🎜🎜합성 논리 장치를 통해 오류 섹터 제거 0 80 선형 /dev/sda1 0 80 100 오류 181 200 선형 /dev/sdb1 0 명령 구현🎜
#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 논리 볼륨 스냅샷 기능: 🎜🎜🎜🎜스냅샷을 생성하면 3개의 장치(원래 장치, 스냅샷 장치, 소 장치)가 나타납니다. 데이터가 변경되지 않은 경우 읽은 데이터를 원본 장치에서 읽어 변경된 데이터입니다. 소 영역에 저장되며, 스냅샷 장치는 원래 장치의 데이터를 저장합니다. 🎜
#vi /etc/multipath.conf 注释掉 blacklist { devnode "*" 不同厂商的配置是不一样的 } 取消注释 default{ udev_dir .. .. path_grouping_policy failover(根据失效域来判断执行策略) }
#systemctl enable multipathd 
#systemctl restart multipathd 之后生成的设备位置在/dev/mpath/下,可制作文件系统,挂载
#multipath –ll 查询设备状态
로그인 후 복사
로그인 후 복사
🎜🎜🎜9. 제로 장치 기능: 🎜🎜🎜🎜/dev/zero와 유사하지만 일반적으로 테스트용 대용량 파일 시스템을 작성하는 데 사용됩니다. 예를 들어 테스트에서는 ext3🎜rrreee🎜🎜🎜10으로 포맷된 10T 장치를 생성합니다. 다중 경로 기능:🎜🎜🎜

多路径功能,用来提供线路冗余,监控每条链路,当链路失败时自动切换链路,而且自动恢复运行,防止单点故障。生成的设备名 /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视频教程

위 내용은 리눅스에서 매퍼란 무엇인가?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿