创建物理卷报错Can't open /dev/sdb5 exclusively. Mounted filesystem的问题解决过程记录

yum服务器lvm扩容,data目录是yum存放rpm包的目录,只有20G,需要添加磁盘扩容到80G

# df -lh
Filesystem                 Size  Used Avail Use% Mounted on
/dev/mapper/vg_node5-root   20G  479M   18G   3% /
tmpfs                      935M     0  935M   0% /dev/shm
/dev/sda1                  485M   39M  421M   9% /boot
/dev/mapper/vg_node5-data   20G  172M   19G   1% /data
/dev/mapper/vg_node5-usr   9.7G  1.6G  7.6G  18% /usr
/dev/mapper/vg_node5-web    15G  165M   14G   2% /web


1.添加一块硬盘


2.对硬盘分区,并将格式调整为8e即linux lvm格式
#挂载系统分区
# kpartx -l /dev/sdb
# kpartx -af /dev/sdb
# partx -a /dev/sdb


3.创建物理卷
在将几块盘做LVM时,遇到一个之前都没遇到过的问题:
# pvcreate /dev/sdb5
  Can't open /dev/sdb5 exclusively.  Mounted filesystem?
首先第一反应就是查看这个分区是否已经在使用了,但是没有。


查看硬盘的一些信息:


# cat /proc/partitions
major minor  #blocks  name


   8        0   83886080 sda
   8        1     512000 sda1
   8        2   83373056 sda2
   8       16  125829120 sdb
   8       17          1 sdb1
   8       21  125796982 sdb5
 253        0   20480000 dm-0
 253        1    4096000 dm-1
 253        2   15360000 dm-2
 253        3   20480000 dm-3
 253        4   10240000 dm-4
 253        5          1 dm-5
 253        6  125796982 dm-6




# fdisk /dev/sdb -l


Disk /dev/sdb: 128.8 GB, 128849018880 bytes
255 heads, 63 sectors/track, 15665 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x44c662ff


   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1       15665   125829081    5  Extended
/dev/sdb5               5       15665   125796982+  8e  Linux LVM


接着看一些底层的信息:


dmsetup 是一个底层的逻辑卷管理, dm 应该是 Device Mapper的简称。
[root@node5 /]# dmsetup status
sdb1: 0 2 linear 
vg_node5-web: 0 30720000 linear 
sdb5: 0 251593965 linear 
vg_node5-usr: 0 20480000 linear 
vg_node5-swap: 0 8192000 linear 
vg_node5-root: 0 40960000 linear 
vg_node5-data: 0 40960000 linear 
[root@node5 /]# dmsetup ls
sdb1 (253:5)
vg_node5-web (253:2)
sdb5 (253:6)
vg_node5-usr (253:4)
vg_node5-swap (253:1)
vg_node5-root (253:0)
vg_node5-data (253:3)


例如:
root@ubuntu:~# dmsetup ls
35000c50026716847       (254, 2)
vg_data-lv_home (254, 0)
35000c5002670f03e       (254, 3)
35000c5002670f03e-part1 (254, 5)
35000c50026716847-part1 (254, 4)
vg_data-lv_swap (254, 1)
可以看到 35000c5002670f03e 和 35000c50026716847 组成了multipath(多路径)




# ll /dev/mapper/
total 0
crw-rw---- 1 root root 10, 58 Jul 26 19:51 control
lrwxrwxrwx 1 root root      7 Jul 26 19:59 vg_node5-data -> ../dm-3
lrwxrwxrwx 1 root root      7 Jul 26 19:59 /dev/sdb1 -> ../dm-5
lrwxrwxrwx 1 root root      7 Jul 26 19:59 /dev/sdb5 -> ../dm-6
lrwxrwxrwx 1 root root      7 Jul 26 19:59 vg_node5-root -> ../dm-0
lrwxrwxrwx 1 root root      7 Jul 26 19:59 vg_node5-swap -> ../dm-1
lrwxrwxrwx 1 root root      7 Jul 26 19:59 vg_node5-usr -> ../dm-4
lrwxrwxrwx 1 root root      7 Jul 26 19:59 vg_node5-web -> ../dm-2
使用 dmsetup remove xxx 移除掉就可以创建PV了:


# dmsetup remove /dev/sdb1
# dmsetup remove /dev/sdb5


重新创建物理卷成功
root@ubuntu:~# pvcreate /dev/sdb5
  Physical volume "/dev/sdb5" successfully created
也可以使用dmsetup remove_all移除所有。


# vgdisplay 
  --- Volume group ---
  VG Name               vg_node5
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  6
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                5
  Open LV               5
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               79.51 GiB
  PE Size               4.00 MiB
  Total PE              20354
  Alloc PE / Size       17250 / 67.38 GiB
  Free  PE / Size       3104 / 12.12 GiB
  VG UUID               tNuKXc-UdQO-Z8BK-ZtOQ-W93k-pqui-HAxKja


4.对物理卷vg_node5进行扩容
# vgextend vg_node5 /dev/sdb5
  Volume group "vg_node5" successfully extended
[root@node5 ~]# vgs
  VG       #PV #LV #SN Attr   VSize   VFree  
  vg_node5   2   5   0 wz--n- 199.47g 132.09g


将逻辑卷vg_node5-data即/data分区扩容到80G
[root@node5 ~]# lvextend -L 80G /dev/mapper/vg_node5-data 
  Extending logical volume data to 80.00 GiB
  Logical volume data successfully resized


重新读取大小
[root@node5 ~]# resize2fs /dev/mapper/vg_node5-data 
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/mapper/vg_node5-data is mounted on /data; on-line resizing required
old desc_blocks = 2, new_desc_blocks = 5
Performing an on-line resize of /dev/mapper/vg_node5-data to 20971520 (4k) blocks.
The filesystem on /dev/mapper/vg_node5-data is now 20971520 blocks long.


[root@node5 ~]# df -lh
Filesystem                 Size  Used Avail Use% Mounted on
/dev/mapper/vg_node5-root   20G  479M   18G   3% /
tmpfs                      935M     0  935M   0% /dev/shm
/dev/sda1                  485M   39M  421M   9% /boot
/dev/mapper/vg_node5-data   79G  184M   75G   1% /data
/dev/mapper/vg_node5-usr   9.7G  1.6G  7.6G  18% /usr
/dev/mapper/vg_node5-web    15G  165M   14G   2% /web