서로 다른 논리적 블록 장치 이름과 물리적 블록 장치 이름 간의 매핑을 파악할 수 없습니다. "cat /proc/diskstats"의 출력은 다음과 같습니다.
104 0 cciss/c0d0 ...
104 1 cciss/c0d0p1 ...
104 2 cciss/c0d0p2 ...
104 16 cciss/c0d1 ...
253 0 dm-0 ...
253 1 dm-1 ...
253 2 dm-2 ...
253 3 dm-3 ...
"df -h"의 출력은 다음과 같습니다.
/dev/cciss/c0d0p1 99M 39M 56M 42% /boot
/dev/mapper/VolGroup01-LogVol02 908G 760G 103G 89% /home
/dev/mapper/VolGroup01-LogVol03 193G 181G 2.6G 99% /opt
/dev/mapper/VolGroup00-LogVol00 54G 11G 41G 21% /
"cciss", "dm-#" 및 "VolGroup##" 간의 매핑은 어디서 찾을 수 있나요?
감사해요
답변1
dmsetup ls --tree
편리한 것과 실용적인 것이 있습니다 lsblk
.
답변2
방금 이 문제에 직면했으므로 여기에 도움이 된 내용을 문서화하겠습니다.
dmsetup ls --tree
poise의 대답은 정확합니다. 출력을 해석하는 방법을 안다면 출력에서 필요한 모든 정보를 얻을 수 있습니다.
cciss는 실제 디스크인 장치 이름입니다. 이것매뉴얼 페이지그렇군요. 하지만 관련 부분을 여기에 복사하겠습니다.
Device nodes
The device naming scheme is as follows:
Major numbers:
104 cciss0
105 cciss1
106 cciss2
105 cciss3
108 cciss4
109 cciss5
110 cciss6
111 cciss7
Minor numbers:
b7 b6 b5 b4 b3 b2 b1 b0
|----+----| |----+----|
| |
| +-------- Partition ID (0=wholedev, 1-15 partition)
|
+-------------------- Logical Volume number
The device naming scheme is:
/dev/cciss/c0d0 Controller 0, disk 0, whole device
/dev/cciss/c0d0p1 Controller 0, disk 0, partition 1
/dev/cciss/c0d0p2 Controller 0, disk 0, partition 2
/dev/cciss/c0d0p3 Controller 0, disk 0, partition 3
/dev/cciss/c1d1 Controller 1, disk 1, whole device
/dev/cciss/c1d1p1 Controller 1, disk 1, partition 1
/dev/cciss/c1d1p2 Controller 1, disk 1, partition 2
/dev/cciss/c1d1p3 Controller 1, disk 1, partition 3
"dm-#"은 장치 매퍼 번호입니다. DM 번호를 매핑하는 가장 간단한 방법은 을 실행하는 것입니다 lvdisplay
. 그러면 논리 볼륨 이름, 해당 볼륨 그룹이 속한 볼륨 그룹 및 블록 장치가 표시됩니다. 블록 장치 줄에서 콜론 뒤에 나열된 값은 DM 번호입니다.
root@centos:/dev > lvdisplay /dev/vg0/opt
--- Logical volume ---
LV Name /dev/vg0/opt
VG Name vg0
LV UUID ObffAT-txIn-5Rwy-bW5s-gekn-VLZv-71mDZi
LV Write Access read/write
LV Status available
# open 1
LV Size 1.00 GB
Current LE 32
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:5
이것은 출력에 잘 매핑됩니다.dmsetup ls --tree
vg0-opt (253:5)
└─ (104:3)
를 실행하여 DM 번호 매핑을 볼 수도 있습니다 ls -lrt /dev/mapper
.
root@centos:/dev > ls -lrt /dev/mapper
total 0
crw------- 1 root root 10, 60 Aug 29 2013 control
brw-rw---- 1 root disk 253, 0 Aug 29 2013 vg0-root
brw-rw---- 1 root disk 253, 1 Aug 29 2013 vg0-usr
brw-rw---- 1 root disk 253, 2 Aug 29 2013 vg0-tmp
brw-rw---- 1 root disk 253, 3 Aug 29 2013 vg0-var
brw-rw---- 1 root disk 253, 4 Aug 29 2013 vg0-home
brw-rw---- 1 root disk 253, 5 Aug 29 2013 vg0-opt
여섯 번째 열에는 DM 번호가 나열됩니다. 따라서 내 서버의 경우 vg0-opt가 /opt에 설치되고 DM-5에 다시 매핑됩니다.
답변3
사용 dmsetup ls --tree -o blkdevname
.
[root@redhat7 Packages]# dmsetup ls --tree -o blkdevname
rhel-swap <dm-1> (253:1)
└─ <sda2> (8:2)
rhel-root <dm-0> (253:0)
└─ <sda2> (8:2)
oraclevg-oraclelv <dm-2> (253:2)
└─ <sdb> (8:16)
답변4
@Jon Buys 및 @poige의 답변은 정확하지만 적어도 상대적으로 새로운 커널을 사용하는 시스템에서는 훨씬 더 간단합니다.
의 항목은 의 장치에 대한 소프트 링크 /dev/mapper
일 뿐이 므로 필요한 것은 다음과 같습니다.dm-x
/dev
ls -l /dev/mapper
예를 들어 내 시스템에서는 다음과 같이 표시됩니다.
# ls -l /dev/mapper/
total 0
crw-------. 1 root root 10, 236 Dec 12 10:11 control
lrwxrwxrwx. 1 root root 7 Dec 12 10:11 vg_raid10-lv_cache_pool_home_cdata -> ../dm-3
lrwxrwxrwx. 1 root root 7 Dec 12 10:11 vg_raid10-lv_cache_pool_home_cmeta -> ../dm-4
lrwxrwxrwx. 1 root root 7 Dec 12 10:11 vg_raid10-lv_cache_pool_var_cdata -> ../dm-7
lrwxrwxrwx. 1 root root 7 Dec 12 10:11 vg_raid10-lv_cache_pool_var_cmeta -> ../dm-8
lrwxrwxrwx. 1 root root 7 Dec 12 10:11 vg_raid10-lv_home -> ../dm-6
lrwxrwxrwx. 1 root root 7 Dec 12 10:11 vg_raid10-lv_home_corig -> ../dm-5
lrwxrwxrwx. 1 root root 8 Dec 12 10:11 vg_raid10-lv_var -> ../dm-10
lrwxrwxrwx. 1 root root 7 Dec 12 10:11 vg_raid10-lv_var_corig -> ../dm-9
lrwxrwxrwx. 1 root root 7 Dec 12 10:11 vg_ssd-lv_root -> ../dm-0
lrwxrwxrwx. 1 root root 7 Dec 12 10:11 vg_ssd-lv_swap -> ../dm-1
lrwxrwxrwx. 1 root root 8 Dec 27 20:00 vg_ssd_sata-docker--pool -> ../dm-13
lrwxrwxrwx. 1 root root 8 Dec 27 20:00 vg_ssd_sata-docker--pool_tdata -> ../dm-12
lrwxrwxrwx. 1 root root 8 Dec 27 20:00 vg_ssd_sata-docker--pool_tmeta -> ../dm-11
lrwxrwxrwx. 1 root root 7 Dec 27 20:00 vg_ssd_sata-lv_scratch -> ../dm-2
lrwxrwxrwx. 1 root root 8 Dec 27 20:00 vg_ssd_sata-lv_vms -> ../dm-14
도움을 받을 수 없고 ls
소프트 링크가 표시되지 않으면 다음을 시도해 보십시오.
for x in /dev/mapper/*; do echo "$(realpath $x) -> $x"; done;
출력은 다음과 유사해야 합니다.
/dev/mapper/control -> /dev/mapper/control
/dev/dm-3 -> /dev/mapper/vg_raid10-lv_cache_pool_home_cdata
/dev/dm-4 -> /dev/mapper/vg_raid10-lv_cache_pool_home_cmeta
...
다음과 같은 특정 매핑을 찾으려는 경우 dm-6
:
# (for x in /dev/mapper/*; do echo "$(realpath $x) -> $x"; done;) | grep dm-6
/dev/dm-6 -> /dev/mapper/vg_raid10-lv_home