一、 LVM简介
在 Linux 中规定,每一个硬盘设备最多能有 4个主分区(其中包含扩展分区)构成,任何一个扩展分区都要占用一个主分区号码,也就是在一个硬盘中,主分区和扩展分区一共最多是 4 个。
对于每一个硬盘(IDE 或 SCSI)设备,Linux 分配了一个 1 到 16 的序列号码,这就代表了这块硬盘上面的分区号码。
LVM 是一个应用于 Linux 内核的本地卷管理器 (Logical Volume Manager)。 使用 LVM 你可以抽象你的存储空间,并且可以有很容易更改的“虚拟分区”。LVM的基本模块如下:
Physical volume (PV): 物理卷,例如一个硬盘,或一个Software RAID设备; 硬盘的一个分区 (或者甚至硬盘本身或者回环文件),在它上面可以建立卷组。
Volume group (VG): 卷组,将一组物理卷收集为一个管理单元;
Logical volume(LV): 逻辑卷,等同于传统分区,可看作便准的块设备,以容纳文件系统;
Physical extent (PE): 物理块,划分物理卷的数据块。
使用 LVM 你可以比正常的硬盘分区更容易的管理硬盘分区(逻辑卷)。例如,你可以:
使用卷组(VG),使众多硬盘空间看起来像一个大硬盘。
使用逻辑卷(LV),可以创建跨越众多硬盘空间的分区。
可以根据需要,对分区(LV)和硬盘空间(VG)进行创建、删除、调整大小等操作
二、 创建LVM
应用场景存:一台Linux服务器增加两块硬盘,实现lvm便于动态扩展空间。
1、分别建立两个lvm逻辑分区
fdisk /dev/sdb
输入n
输入p
输入1
Enter
Enter
输入t
输入8e 设置lvm分区号
输入w 保存
fdisk /dev/sdc
输入n
输入p
输入1
Enter
Enter
输入t
输入8e 设置lvm分区号
输入w 保存
2、建立Physical Volume(物理卷PV)
yum install lvm2
pvcreate /dev/sdb1
pvcreate /dev/sdc1
pvscan :搜索当前系统具有pv的磁盘。
pvdisplay:显示当前系统pv状态。
pvremove:将pv属性删除,该分区不具有pv属性。Pvremove /dev/sdb1
pvmove: 把pv的数据迁移到另外空闲的pv。
3、建立Volume Group(卷组VG)
vgcreate vg1 /dev/sdb1 /dev/sdc1
vg1:卷组名。
/dev/sdb1:物理卷名。
/dev/sdc1: 物理卷名。
vgscan:搜索是否vg存在。
vgdisplay:显示VG状态。
vgremove:删除卷组,vgremove vg1
vgextend:卷组内增加额外的物理卷pv,vgextend vg1 /dev/hdc1
vg1:当前卷组名。
/dev/hdc1:新的物理卷pv
vgreducd: 在卷组VG中删除物理卷pv,vgreducd vg1 dev/sdc1。删除前确保pv未被LV使用使用pvdisplay显示当前系统pv状态。
4、设置卷组VG启动
vgchange –a y
vgremove vg1 删除指定的vg。
5、建立逻辑卷LV
lvcreate -L 14G -n lv1 vg1
lv1:逻辑卷名。
vg1:卷组名。
lvscan:查看系统中lv。
lvdisplay:查看lv状态。
lvremove:删除逻辑卷lv,Lvremove vg1 lv1。
lvextend :在 LV 里面添加容量。
lvreduce :在 LV 里面减少容量。
lvresize :对 LV 进行容量大小的调整。
6、格式化
mkfs.ext3 /dev/vg1/lv1
7、挂载
mkdir /lvm
mount /dev/vg1/lv1 /lvm
vi /etc/fstab
/dev/vg1/lv1 /lvm ext3 defaults 0 0
8、扩展LV空间
对新磁盘进行分区
1) fdisk -l 查看目前分区情况
2)新增磁盘hdd未分区,对hdd磁盘分区操作
3)建立Physical Volume(PV)
pvcreate /dev/sdd1
4)将新pv添加到原卷组
vgextend vg1 /dev/sdd1
5)查看卷组剩余空间
vgs
6)扩展lv容量到17.80G
vgs
7) 增加LV容量100M。
vgs
8)在线扩展空间
扩充了LV后,重新挂载,查看大小当前的LV大小并没有增大。
umount /dev/vg1/lv1
mount /dev/vg1/lv1 /lvm
df –h
在线进行空间扩展
resize2fs /dev/vg1/lv1
df –h 在线扩展成功
离线扩展:
umount /dev/vg1/lv1
resize_reiserfs /dev/vg1/lv1
mount -treiserfs /dev/vg1/lv1 /lvm