dmsetup 명령

리눅스에서 multipath(mpathX)나 LVM을 사용할 경우, 실제로 매핑되어 있는 device는 dm-X 이다.

아래와 같이 dmsetup 명령이나 /sys/block/dm-X/ 디렉토리에서 실재 매핑되어 있는 device 장치 정보를 확인 할 수 있다.

[root@localhost ~]# dmsetup info
Name:              VG01-data
State:             ACTIVE
Read Ahead:        256
Tables present:    LIVE
Open count:        1
Event number:      0
Major, minor:      253, 0
Number of targets: 1
UUID: LVM-ydGdXL5tyRFxBhV13vkZOGamct4q5KgoUIvn7uKeSbnGXf8bEY5u3TEvcVXqKwG3

[root@localhost ~]# cd /sys/block/dm-0/slaves/
[root@localhost slaves]# ls -al
total 0
drwxr-xr-x 2 root root 0 May 19 15:33 .
drwxr-xr-x 4 root root 0 Jun 26 09:30 ..
lrwxrwxrwx 1 root root 0 May 19 15:33 sda8 -> ../../../block/sda/sda8

 

간혹 mkfs로 파일시스템을 생성할 때, 아래와 같은 오류를 접하는 경우가 있다.

이런 경우는, multipath 나 LVM에 매핑되어 있던 정보가 깨끗하게 clear 되지 않아서 발생하는 것으로 추정(?)되는데.. ^^

아래와 같이 dmsetup 명령으로 clear 시키면 다시 파일시스템 생성이 가능하다.

 

dmsetup remove [-f|–force] device_name
dmsetup remove_all [-f|–force]

 

[root@localhost ~]# mkfs -t ext3 /dev/sdb1
mke2fs 1.39 (29-May-2006)
/dev/sdb1 is apparently in use by the system; will not make a filesystem here!
[root@localhost ~]# /sbin/dmsetup status
ddf1_OS: 0 976494592 linear
[root@localhost ~]# /sbin/dmsetup remove_all
[root@localhost ~]# mkfs -t ext3 /dev/sdb1
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
61063168 inodes, 122096000 blocks
6104800 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
3727 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000