partprobe 不重启系统的情况下,让系统内核重读硬盘分区
或者
partprobe /dev/sdX 不重启系统的情况下,让系统内核重读sdx该硬盘分区
Linux系统下增加LV(逻辑卷)容量
Linux系统下,我们可以在安装系统时使用LVM来管理我们的文件系统,但是当我们的LV满了如何增加其容量呢?
方法/步骤
1. 查看文件系统现有lv_test容量,总计4.9G,已使用3%
命令 :df -h
2. 查看现有磁盘情况,我们发现磁盘sdb共有1305个柱面,每个柱面大小是8225280 bytes
(大约8M)。有一个磁盘分区sdb1,只使用了650柱面,还剩655柱面没有使用。
命令 :fdisk -l
3. 在磁盘sdb上创建新分区
命令:fdisk /dev/sdb
输入 p 打印现有分区情况(还没有分区)
输入 n 新建分区
输入 p 为建立主分区(此时的p是在n后的,不是打印)
输入 2 为建立第二个主分区
分区起始位置可以直接回车,默认是651
分区最后位置可以直接回车,默认为 1305 或者直接输入需要设置的容量大小例如+4G
输入 p 打印分区情况,发现已建立一个分区 /dev/sdb2,但是 此分区为 Linux 格式
4. 由于分区 /dev/sdb2 为 Linux 格式,我们需要改变系统标识符为Linux LVM格式:
输入 t 改变分区的属性
输入 2 表示改变第二个分区的属性
输入 8e 改变分区1为 Linux LVM格式
输入 p 打印分区情况,发现建立的分区 /dev/sdb1 为 Linux LVM 格式
输入 w 保存分区
5. 使kernel重新读取分区表
命令:partprobe
但是出现了一些关于sdb的警告,重启系统
命令:reboot
6. 再次使用 fdisk -l 查看系统内磁盘情况发现 /dev/sdb上已有一个 Linux LVM 格式的 /dev/sdb2分区
7. 创建PV:
创建PV:pvcreate /dev/sdb2
查看系统PV:pvscan或者pvs
这样我们就创建了一个 5.02G的PV
增加 VG容量:
增加VG:vgextend vg_test /dev/sdb2 vg_test为现有的vg名,/dev/sdb2表示需要加入到
vg的设备。
查看VG详细信息:vgdisplay
增加LV容量:
增加LV:lvresize -l +1284 /dev/vg_test/lv_test(1284是VG中Free PE的个数)为lv_test增加
1284大小,或者直接+2G带上单位。
查看LV:lvdisplay
这样我们就将 lv_test 的容量增加至9.99G
增加文件系统的容量:
命令:resize2fs /dev/vg_test/lv_test
文件系统lv_test已经由 4.9G 增加至 9.9G
实例文件系统lv_test扩容20G的步骤如下:
1、新建lvm硬盘分区此处省略,如果不会划分lvm分区请参考http://woyaoxuelinux.blog.51cto.com/5663865/1870134 前期LVM讲解
假设已经建立好了一个为20G的分区/dev/sda2
2、增加vg逻辑卷组的容量
[root@k ~]# vgextend myvg /dev/sda2
[root@k ~]# lvextend -L +20G /dev/myvg/mydata
[root@k ~]# resize2fs /dev/myvg/mydata
[root@fox mydata]# cd
[root@fox ~]# vgextend myvg /dev/sda2
Volume group "myvg" successfully extended
[root@fox ~]# vgs
VG #PV #LV #SN Attr VSize VFree
myvg 2 1 0 wz--n- 40.02g 20.02g
[root@fox ~]# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
mydata myvg -wi-ao 20.00g
[root@fox ~]# lvextend -L +20G/dev/myvg/mydata
Extending logical volume mydata to 40.00 GiB
Logical volume mydata successfully resized
[root@fox ~]# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
mydata myvg -wi-ao 40.00g
[root@fox ~]# 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.
[root@fox ~]# ls /mydata/
1.txt lost+found
[root@fox ~]# cat /mydata/1.txt
dkjfakljfadfjaldfjajdfjald
[root@fox ~]# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
mydata myvg -wi-ao 40.00g
[root@fox ~]# cd /mydata/
[root@fox 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
查看系统中的 PV 情况
命令:pvdisplay
vg_test 下有两个 PV,分别为 /dev/sdb1 和 /dev/sdb2。我们要做的是移除其中的 /dev/sdb2,
记住这个PV有 1284 个PE
查看系统中PV情况,另一种方式
命令:pvscan
发现 /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 减小文件系统容量.
查看现在文件系统的容量
mount /dev/vg_test/lv_test /test 先挂载
此时,通过 df -h 查询文件系统已经由原来的9.9G降至为4.9G
接下来,减少LV的容量。
通过最开始的查询,我们知道 /dev/sdb2有1284个 PE
因为lv_test的使用量为 138M,小于现有容量4.98G,因此出现的警告可按 y
命令:
lvresize -l -1284/dev/vg_test/lv_test
此时,通过 lvdisplay 查询 lv_test 容量降低至 4.98G
查看系统中现在的 PV 情况
命令:pvdisplay
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了
删除PV
命令:
pvremove /dev/sdb2
通过 pvscan 和 pvdisplay 查询,系统中不再有/dev/sdb2 这个PV
最后,完整的将现有的LV扩充到整个文件系统。
命令:resize2fs/dev/vg_test/lv_test
此步骤主要是考虑在减少文件系统的时候,可能将/dev/sdb1中的部分空间移除。
现在通过扩充,将完整的利用 /dev/sdb1通过 df 查询,也发现扩充前后文件系统
增加了部分容量。
注意事项
· 一定要确保 /dev/sdb2中所有的 PE都是Free PE,即没有被使用的
· 一定要卸载卷后减少文件系统的容量
· 在减少文件系统前要进行磁盘检查
· 建议一般不做减少lv容量操作。