partprobe  不重启系统的情况下,让系统内核重读硬盘分区
或者
partprobe /dev/sdX   不重启系统的情况下,让系统内核重读sdx该硬盘分区


Linux系统下增加LV(逻辑卷)容量

Linux系统下,我们可以在安装系统时使用LVM来管理我们的文件系统,但是当我们的LV满了如何增加其容量呢?

方法/步骤

1.    查看文件系统现有lv_test容量,总计4.9G,已使用3%

命令 :df -h

LVM逻辑卷容量的增减

2.    查看现有磁盘情况,我们发现磁盘sdb共有1305个柱面,每个柱面大小是8225280 bytes 

(大约8M)。有一个磁盘分区sdb1,只使用了650柱面,还剩655柱面没有使用。

命令 :fdisk -l

LVM逻辑卷容量的增减

3.    在磁盘sdb上创建新分区

命令:fdisk /dev/sdb

输入 p 打印现有分区情况(还没有分区)

输入 n 新建分区

输入 p 为建立主分区(此时的p是在n后的,不是打印)

输入 2 为建立第二个主分区

分区起始位置可以直接回车,默认是651

分区最后位置可以直接回车,默认为 1305 或者直接输入需要设置的容量大小例如+4G

输入 p 打印分区情况,发现已建立一个分区 /dev/sdb2,但是 此分区为 Linux 格式

LVM逻辑卷容量的增减

4.    由于分区 /dev/sdb2 为 Linux 格式,我们需要改变系统标识符为Linux LVM格式:

输入 t 改变分区的属性

输入 2 表示改变第二个分区的属性

输入 8e 改变分区1为 Linux LVM格式

输入 p 打印分区情况,发现建立的分区 /dev/sdb1 为 Linux LVM 格式

输入 w 保存分区

LVM逻辑卷容量的增减

5.    使kernel重新读取分区表

命令:partprobe

但是出现了一些关于sdb的警告,重启系统

命令:reboot

LVM逻辑卷容量的增减

6.    再次使用 fdisk -l 查看系统内磁盘情况发现 /dev/sdb上已有一个 Linux LVM 格式的 /dev/sdb2分区

LVM逻辑卷容量的增减

7.    创建PV:

创建PV:pvcreate /dev/sdb2

查看系统PV:pvscan或者pvs

这样我们就创建了一个 5.02G的PV

LVM逻辑卷容量的增减

增加 VG容量:

增加VG:vgextend vg_test /dev/sdb2   vg_test为现有的vg名,/dev/sdb2表示需要加入到

vg的设备。

查看VG详细信息:vgdisplay 

LVM逻辑卷容量的增减

增加LV容量:

增加LV:lvresize -l +1284  /dev/vg_test/lv_test(1284是VG中Free PE的个数)为lv_test增加

1284大小,或者直接+2G带上单位。

查看LV:lvdisplay

这样我们就将 lv_test 的容量增加至9.99G

LVM逻辑卷容量的增减

增加文件系统的容量:

命令:resize2fs /dev/vg_test/lv_test 

文件系统lv_test已经由 4.9G 增加至 9.9G

LVM逻辑卷容量的增减

实例文件系统lv_test扩容20G的步骤如下:

1、新建lvm硬盘分区此处省略,如果不会划分lvm分区请参考http://woyaoxuelinux.blog.51cto.com/5663865/1870134  前期LVM讲解

假设已经建立好了一个为20G的分区/dev/sda2

2、增加vg逻辑卷组的容量

[[email protected] ~]# vgextend myvg /dev/sda2


[[email protected] ~]# lvextend  -L +20G /dev/myvg/mydata   


[[email protected] ~]# resize2fs /dev/myvg/mydata 


[[email protected] mydata]# cd 

[[email protected] ~]# vgextend myvg /dev/sda2 

Volume group "myvg" successfully extended

[[email protected] ~]# vgs

VG   #PV #LV #SN Attr   VSize  VFree 

myvg  2   1   0 wz--n- 40.02g 20.02g

[[email protected] ~]# lvs

LV   VG   Attr   LSize  Origin Snap% Move Log Copy%  Convert

mydata  myvg   -wi-ao 20.00g

[[email protected] ~]# lvextend  -L +20G/dev/myvg/mydata 

  Extending logical volume mydata to 40.00 GiB

  Logical volume mydata successfully resized

[[email protected] ~]# lvs

LV   VG   Attr   LSize  Origin Snap% Move Log Copy%  Convert

mydata myvg   -wi-ao 40.00g 

[[email protected] ~]# resize2fs/dev/myvg/mydata 

resize2fs 1.41.12 (17-May-2010)

Filesystem at /dev/myvg/mydata is mounted on /mydata; on-lineresizing required

old desc_blocks = 2, new_desc_blocks = 3

Performing an on-line resize of /dev/myvg/mydata to 10485760(4k) blocks.

The filesystem on /dev/myvg/mydata is now 10485760 blocks long.

[[email protected] ~]# ls /mydata/

1.txt  lost+found

[[email protected] ~]# cat /mydata/1.txt 

dkjfakljfadfjaldfjajdfjald

[[email protected] ~]# lvs

LV   VG  Attr   LSize  Origin Snap% Move Log Copy%  Convert

mydata  myvg   -wi-ao 40.00g 

[[email protected] ~]# cd /mydata/

[[email protected] mydata]# df -lah

Filesystem     Size  Used Avail Use% Mounted on

/dev/mapper/myvg-mydata  40G  176M   38G  1% /mydata



Linux系统下,我们可以在安装系统时使用LVM来管理我们的文件系统,

但是当我们的LV容量太大了如何减少其容量呢?

目标:将 lv_test 中的 /dev/sdb2 移除

查看文件系统现有 lv_test 容量,总计9.9G,已使用2%

命令 df -h

LVM逻辑卷容量的增减

查看系统中的 PV 情况

命令:pvdisplay

LVM逻辑卷容量的增减

vg_test 下有两个 PV,分别为  /dev/sdb1 和 /dev/sdb2。我们要做的是移除其中的 /dev/sdb2,

记住这个PV有 1284 个PE

查看系统中PV情况,另一种方式

命令:pvscan

LVM逻辑卷容量的增减

发现 /dev/sdb1 属于 vg_test,大小为4.98GB

发现 /dev/sdb2 属于 vg_test,大小为5.02GB

由于/dev/sdb1 大小为4.98G,而且容量不能写小数,故减少文件系统至 5000M。

另外,减小文件系统容量不能在线进行,故先卸载卷

命令:

umount /test 卸载卷

e2fsck -f /dev/vg_test/lv_test 磁盘检查

resize2fs /dev/vg_test/lv_test 5000M 减小文件系统容量.

LVM逻辑卷容量的增减

查看现在文件系统的容量

mount /dev/vg_test/lv_test /test 先挂载

此时,通过 df -h 查询文件系统已经由原来的9.9G降至为4.9G

LVM逻辑卷容量的增减

接下来,减少LV的容量。

通过最开始的查询,我们知道 /dev/sdb2有1284个 PE

因为lv_test的使用量为 138M,小于现有容量4.98G,因此出现的警告可按 y

命令:

lvresize -l -1284/dev/vg_test/lv_test 

此时,通过 lvdisplay 查询 lv_test 容量降低至 4.98G

LVM逻辑卷容量的增减

查看系统中现在的 PV 情况

命令:pvdisplay

LVM逻辑卷容量的增减

vg_test 下的 /dev/sdb2有 1284 个 PE,并且都是 Free PE,说明lv_test不在使用 /dev/sdb2

如果不全是 Free PE,需要使用 pvmove 将 占用的 PE 移至/dev/sdb1

将/dev/sdb2 从 vg_test 中移除

命令:

vgreduce vg_test /dev/sdb2

通过 pvscan 查询,/dev/sdb2已经不在属于任何VG了

LVM逻辑卷容量的增减

删除PV

命令:

pvremove /dev/sdb2

通过 pvscan 和 pvdisplay 查询,系统中不再有/dev/sdb2 这个PV

LVM逻辑卷容量的增减

最后,完整的将现有的LV扩充到整个文件系统。

命令:resize2fs/dev/vg_test/lv_test 

此步骤主要是考虑在减少文件系统的时候,可能将/dev/sdb1中的部分空间移除。

现在通过扩充,将完整的利用 /dev/sdb1通过 df 查询,也发现扩充前后文件系统

增加了部分容量。

LVM逻辑卷容量的增减

注意事项

·        一定要确保 /dev/sdb2中所有的 PE都是Free PE,即没有被使用的

·        一定要卸载卷后减少文件系统的容量

·        在减少文件系统前要进行磁盘检查

·       建议一般不做减少lv容量操作。