正常处理逻辑:
先umount /dev/sdb或是umount /backup
如果还是显示的busy,你试试下面的方法
fuser -m /dev/sdb
查看一下是否sdb1正在被使用,或是有进程正在使用它
然后fuser -km /dev/sdb
强制杀掉所有使用/dev/sdb目录的进程
最后umount /dev/sdb1或是umount /backup
再试着mount /dev/sdb1 /backup。
安装上面的方法操作了,还是提示设备忙。
fuser -m /dev/sdb查看,发现multipathd的进程。
fdisk -l查看,原来是产生了/dev/mapper/mpathi这个多路径,直接挂载/dev/sdb显示设备busy
需要mount /dev/mapper/mpathi /destination,如果直接挂载/dev/sdb会显示设备busy
注:
/dev/mapper/mpathb不一定对应/dev/sdb。
使用multipath -l可以查看,多路径与设备的对应关系。
[root@cloud1 ~]# multipath -l
mpathi (36c81f66000c60a7c000001d153d906eb) dm-1 DELL,MD36xxf
size=500G features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=0 status=active
| `- 0:0:0:1 sdi 8:128 active undef running
|-+- policy='round-robin 0' prio=0 status=enabled
| `- 0:0:1:1 sdk 8:160 active undef running
|-+- policy='round-robin 0' prio=0 status=enabled
| `- 1:0:0:1 sdm 8:192 active undef running
`-+- policy='round-robin 0' prio=0 status=enabled
`- 1:0:1:1 sdo 8:224 active undef running
mpathh (36c81f66000c60ac9000001f853d61638) dm-0 DELL,MD36xxf
size=2.0T features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=0 status=active
| `- 0:0:0:0 sdh 8:112 active undef running
|-+- policy='round-robin 0' prio=0 status=enabled
| `- 0:0:1:0 sdj 8:144 active undef running
|-+- policy='round-robin 0' prio=0 status=enabled
| `- 1:0:0:0 sdl 8:176 active undef running
`-+- policy='round-robin 0' prio=0 status=enabled
`- 1:0:1:0 sdn 8:208 active undef running
另外,本地磁盘不需要多路径,可以在/etc/multipath.conf,利用blacklist关键字进行设置。
blacklist {
wwid 36c81f660e05108001a9dee3a07f4647b
wwid 36c81f660e05108001a9dee430880eb15
wwid 36c81f660e05108001a9dee4b08f11a43
wwid 36c81f660e05108001a9dee2406a6866e
wwid 36c81f660e05108001a9dee5209606e95
wwid 36c81f660e05108001a9dee2f07422a0f
}
另外,multipath -F(清楚unsed path)
How to identity unsed path:
If the dev does not mount,it's unused path.
multiple -F will erase all paths.
Create multiple path:
Use command
Shell#multipath
操作系统通过路径发送IO到存储,Linux系统SCSI磁盘路径有以下部分组成:
·HBA卡的PCI标示符
·HBA卡的管道号
·存储端SCSI target地址
·LUN(Logical Unit Number) 号
根据SCSI标准,每个SCSI磁盘都有一个WWID。类似于网卡的MAC地址,要求是独一无二。
About WWID
通过WWID标示SCSI磁盘就可以保证磁盘路径永久不变,Linux系统上/dev/disk/by-id目录包含每个SCSI磁盘WWID访问路径
实例:scsi-3600508b400105e210000900000490000 -> ../../sda
sda的wwid就是3600508b400105e210000900000490000
提示:Linux自带的device-mapper-multipath工具就是通过WWID来探测SCSI磁盘路径,可以将同一设备多条路径合并,并在/dev/mapper/下面创建新的设备路径。通过multipath –l可以看到WWID与 磁盘路径、Host:Channel:Target:Lun与/dev/sd以及major:minor对应关系。
About UUID
UUID是有文件系统在创建时候生成的,用来标记文件系统,类似WWID一样也是独一无二的。因此使用UUID来标示SCSI磁盘,也能保证路径是永久不变的。
Method:Linux上/dev/disk/by-uuid可以看到每个已经创建文件系统的磁盘设备以及与/dev/sd之间的映射关键。
注意:Linux自带的md和LVM工具也会在SCSI磁盘上面写入UUID信息。
About UDEV
UDEV是Linux提供的一种让用户对设备进行自定义命名的机制。可以通过UDEV将WWID/UUID信息跟磁盘路径映射起来,这样也可以保证设备路径永久不变。