首页 > 代码库 > lvm磁盘扩展
lvm磁盘扩展
物理卷(physical volume)
物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
卷组(Volume Group)
LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。
逻辑卷(logical volume)
LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。 可以做这样一个设想来理解以上三者的关系:如果把PV比做地球的一个板块,VG则是一个地球,因为地球是由多个板块组成的,而在地球上划分一个区域并标记为亚洲,那么亚洲就相当于一个LVM。
三者大小关系是:卷组>物理卷>逻辑卷
1、创建分区
使用fdisk对磁盘进行分区,方法和创建其他一般分区的方式是一样的。如果是基于磁盘来创建LVM可以省去这一步了。
注:只有在LVM1必须将分区类型标识为8E(LVM分区)才可以使用,lvm2中没有这个限制。(这个问题曾经困扰我很久,很多文档都没有提到这一点)
创建完分区之后,可以用fdisk -l查看分区的信息
# fdisk -l /dev/sdb
Disk /dev/sdb: 5242 MB, 5242880000 bytes
255 heads, 63 sectors/track, 637 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 13 104391 83 Linux
/dev/sdb2 14 26 104422+ 83 Linux
/dev/sdb3 27 39 104422+ 83 Linux
2、创建物理卷
创建物理卷的命令是pvcreate,这些命令都很好理解,PV是物理卷的简写,create则是创建,用pvcreate将需要添加到卷组的分区或磁盘创建为物理卷。
# pvcreate /dev/sdb1 /dev/sdb2 /dev/sdb3
Physical volume "/dev/sdb1" successfully created
Physical volume "/dev/sdb2" successfully created
Physical volume "/dev/sdb3" successfully created
然后可以用pvdisplay 来查看物理卷,应该会出现三个如图:
--- Physical volume ---
PV Name /dev/sdb1
VG Name vgtest
PV Size 1004.03 MiB / not usable 4.03 MiB ##(每个物理卷的大小是1G)
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 250
Free PE 0
Allocated PE 250
PV UUID Vef0Zz-6Tr4-DHdh-b3sG-cZOo-oV28-YU2GlJ
3、创建卷组
创建完物理卷之后,就可以使用vgcreate将已创建物理卷创建为一个完整卷组
# vgcreate vgtest /dev/sdb1 /dev/sdb2
Volume group "vgtest" successfully created
最后可以用vgdisplay 查看卷组的大小情况
--- Volume group ---
VG Name vgtest #卷组名称
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 2
Act PV 2
VG Size 1.95 GiB #卷组大小
PE Size 4.00 MiB
Total PE 500
Alloc PE / Size 294 / 1.15 GiB
Free PE / Size 206 / 824.00 MiB #剩余容量
VG UUID I3fS0K-z94F-VVM3-QLpA-zetB-fy5b-PkiegD
4、激活卷组
刚创建完的卷组默认是需要重新启动激活才能使用的,为了立即使用,可以使用vgchang来激活卷组:
# vgchange -a y vgtest
0 logical volume(s) in volume group "vgtest" now active
5、创建LVM逻辑卷
成功完成以上的1、2、3、4步之后,就可以使用lvcreate来创建逻辑卷了
# lvcreate -L 150M -n test1 vgtest
Rounding up size to full physical extent 152.00 MB
Logical volume "test1" created
lvdisplay 可以查看逻辑卷的大小
--- Logical volume ---
LV Path /dev/vgtest/test1 #逻辑卷路径
LV Name test1 #逻辑卷名称
VG Name vgtest #卷组名称
LV UUID 11PXgS-Wfg0-NfCf-fqMh-2cFT-Acyd-fII6vA
LV Write Access read/write
LV Creation host, time client, 2015-11-05 22:45:27 -0800
LV Status available
# open 1
LV Size 1.15 GiB #逻辑卷现有大小
Current LE 294
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
上面的命令表明创建了一个名为test1的逻辑卷,大小为150M,其中-L是用来指定LVM的大小的参数,大小单位的可以用K、M、G表示KB、MB、GB。-n是用来指定LVM的名称。
6、创建文件系统
在逻辑卷上创建文件系统和在分区上创建文件系统方法都是一样的,如在逻辑卷上创建ext4格式的文件系统:
# mkfs.ext4 /dev/vgtest/test1 #格式化
7、挂载逻辑卷
#mount /dev/vgtest/test1 /mnt/
如果需要系统启动的时候自动挂载逻辑卷,则编辑/etc/fstab文件加入如下内容:
/dev/vgtest/test1 /lvmtest1 ext3 defaults 0 0
如何扩展逻辑卷
当这个逻辑卷test1某一天的容量不够用了,怎么扩容?
由上面可以看出我们的这个卷组还有1个g的容量,所以
lvextend -L +1G /dev/vgtest/test1
resize2fs /dev/vgtest/test1
最后df -h 发现挂载在mnt目录下的test1容量变大了
第二种情况,当我们的卷组也没有足够的空间了,我们重新在服务器上面加了一块20G新的硬盘,怎么把这块硬盘的容量增加到我们的test1这个逻辑卷里?
首先 fdisk -cu /dev/sdc 进行分区
可以只分一个分区用硬盘的所有容量,
pvcreate /dev/sdc1 #创建物理卷
vgextend vgtest /dev/sdc1 #将新的物理卷追加到新的卷组里面
vgdisplay vgtest
lvextend -L 20G dev/vgtest/test1 #将逻辑卷test1扩展到20g,而不是扩展了20g
resize2fs /dev/vgtest/test1
df -h 查看,会看到容量大小为20G
注意:在调整分区大小前,一定要先做好数据备份
本文出自 “渐行渐远” 博客,请务必保留此出处http://825536458.blog.51cto.com/4417836/1878155
lvm磁盘扩展