一、通用LVM概念和术语
1.LVM简介
LVM(Logical Volume Manager)逻辑卷管理器,最早应用在IBM AIX系统上。它的主要作用是动态分配磁盘分区及调整磁盘分区大小,并且可以让多个分区或者物理硬盘作为一个逻辑卷(相当于一个逻辑硬盘)来使用。 这种机制可以让磁盘分区容量划分变得很灵活。
2.LVM概述
逻辑卷管理屏蔽了底层磁盘布局,便于动态调整磁盘容量。
需要注意:/boot分区用于存放引导文件,不能应用LVM机制
3.LVM机制的基本概念
PV(Physical Volume,物理卷)整个硬盘,或使用fdisk等工具建立的普通分区,包括许多默认4MB大小的PE(Physical Extent,基本单元)。物理卷处于LVM的最底层,可以是整个物理磁盘,也可以是硬盘中的分区。
PE(Physical Extent)物理区域。物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小可根据实际情况在建立物理卷时指定。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一致。当多个PV组成一个VG时,LVM会在所有PV上做类似格式化的动作,将每个PV切成一块块的空间,这一块块的空间就称为PE, 通常是4MB。
VG(Volume Group,卷组)一个或多个物理卷组合而成的整体,可以看成单独的逻辑磁盘,建立在PV之上,是PV的组合。一个卷组中至少要包括一个PV,在卷组建立之后可以动态的添加PV到卷组中。
LV(Logical Volume,逻辑卷)从卷组中分割出的一块空间,用于建立文件系统。相当于物理分区的/dev/hdaX。逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展或缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组。
二、建立与管理LVM卷
1.逻辑卷的管理方法
LVM进行逻辑卷的管理时,创建顺序是pv->vg->lv。
首先创建一个物理卷(对应一个物理硬盘分区或者一个物理硬盘)
然后把这些分区或者硬盘加入到一个卷组中(相当于一个逻辑上的大硬盘)
再在这个大硬盘上划分分区lv(逻辑上的分区,就是逻辑卷)
最后,把lv逻辑卷格式化以后,就可以像使用一个传统分区那样,把它挂载到一个挂载点上,需要的时候,这个逻辑卷可以被动态缩放。
2.LVM的管理命令
主要命令的用法
pvcreate 设备名
vgcreate -s 8M 卷组名 物理卷名1 物理卷名2
lvcreate -L 大小 -n 逻辑卷名 卷组名
lvextend -L 大小 /dev/卷组名/逻辑卷名
lvreduce –L 大小 /dev/卷组名/逻辑卷名
3.使用命令行工具实现 LVM存储
准备物理卷
1.fdisk (type 0x8e linux LVM)
2.pvcreate /dev/sdb5
创建卷组
1.vgcreate –s 8M wgroup /dev/sdb5
创建和使用新逻辑卷
1.lvcreate –n wshare –L 100M /dev/wgroup
2.mkfs –t vfat /dev/wgroup/wshare
3.mkdir /mnt/wshare
4. add an entry to the /etc/fstab file: /dev/wgroup/wshare /mnt/wshare vfat defaults 0 0
5.mount –a
4.物理卷
物理卷可以建立在整个物理硬盘上,也可以建立在硬盘分区中。如在整个硬盘上建立物理卷则不要在该硬盘上建立任何分区。 如使用硬盘分区建立物理卷则需事先对硬盘进行分区并设置该分区为LVM类型,其类型ID为0x8e。
5.建立LVM分区
利用fdisk命令在 /dev/sdb上建立LVM类型的分区。
利用同样的方法创建 LVM类型的分区。/dev/sdb2、/dev/sdb3。
6.建立物理卷
利用pvcreate命令可以在已经创建好的分区上建立物理卷。
物理卷直接建立在物理硬盘或者硬盘分区上,所以物理卷的设备文件使用系统中现有的磁盘分区设备文件的名称。使用同样的方法建立/dev/sdb2、/dev/sdb3。
7.建立卷组
在创建好物理卷后,使用vgcreate命令建立卷组。
卷组设备文件使用/dev目录下与卷组同名的目录表示,该卷组中的所有逻辑设备文件都将建立在该目录下,卷组目录是在使用vgcreate命令建立卷组时创建的。
卷组中可以包含多个物理卷也可以只有一个物理卷。其中vg0为要建立的卷组名称。
使用同样的方法创建vg1和vg2。
8.建立逻辑卷
建立好卷组后,可以使用命令lvcreate在已有卷组上建立逻辑卷。
逻辑卷设备文件位于其所在的卷组的卷组目录中,该文件是在使用lvcreate命令建立逻辑卷时创建的。
9.扩大和减少卷组
扩展卷组 当卷组中没有足够的空间分配给逻辑卷时,可以用给卷组增加物理卷的方法来增加卷组的空间
1.fdisk /dev/vda 创建新分区 (必须为LVM类型)
2.pvcreate /dev/vdaN 初始化分区
3.vgextend vgname /dev/vdaN 将新物理卷添加到现有卷组vgname
4.vgdisplay vgname 显示卷组状态 缩减卷组 vgreduce vgname /dev/vdaN 从卷组删除物理卷
10.扩展逻辑卷和ext4文件系统
当逻辑卷的空间不能满足要求时,可以利用lvextend命令把卷组中的空闲空间分配到该逻辑卷以扩展逻辑卷的容量。
1.验证已挂载文件系统的当前大小 df -h /data
2.验证可用物理区块是否够用 vgdisplay vgname
3.使用部分或全部可用区块扩展逻辑卷 lvextend -L 128M /dev/vgname/lvname
4.扩展在/data 上挂载的关联文件系统 resize2fs -p /dev/vgname/lvname
5.验证以挂载文件系统 /data的新大小 df -h /data
11.减少逻辑卷和文件系统
当逻辑卷的空闲空间太大时,可以使用lvreduce命令减少逻辑卷的容量。
1.umount /date 解除挂载要减小的文件系统
2.fsck –f /dev/mapper/vgname-lvname 验证所有文件系统数据结构是否得到清理
3.resize2fs –p /dev/mapper/vgname-lvname 512M 将文件系统大小调整为512M
4.lvreduce –L 512M /dev/mapper/vgname-lvname 将逻辑卷减小到512M
5.mount –a 重新挂载/etc/fstab中列出的所有文件系统,包括现在较小的逻辑卷
12.删除卷
必需按照删除“逻辑卷-卷组-物理卷”的先后顺序来执行删除。
13.卷检查
物理卷的检查
卷组的检查
逻辑卷的检查
14.创建快照来促进数据备份
快照是临时保留所更改的逻辑卷的原始数据的逻辑卷 快照提供原始卷的静态视图,从而能够以一致状态备份其数据。
创建和使用快照进行备份
1.创建lvname名为snaplvname,大小为20M的新快照卷lvcreate –s –n snaplv –L 20M /dev/vgname/lvname
2.挂载快照,并使备份程序指向新挂载点 mkdir /snapmount mount –ro /dev/vgname/snaplv /snapmount
3.验证快照逻辑卷的状态 lvs /dev/vgname/lvname
4.不在使用快照时,解除挂载并删除
umount /snapmount
lvremove /dev/vgname/lvname
三、LVM高级应用
公司的邮件服务器由于用户数量众多,邮件存储需要大量的空间,考虑到动态扩容的需要,计划增加两块SCSI硬盘并构建LVM逻辑卷,挂载到“/mail”目录专门用于存放邮件数据
步骤:PV→VG→LV→格式化,挂载使用文件系统
1. 转化物理卷
使用fdisk命令规划两个分区,类型设置为“8e” /dev/sdb1、/dev/sdc1
使用pvcreate命令转换上述分区为物理卷
[root@localhost ~]# fdisk -l /dev/sdb /dev/sdc | grep "LVM"
/dev/sdb1 1 9660 77593918+ 8e Linux LVM
/dev/sdc1 1 9660 77593918+ 8e Linux LVM
[root@localhost ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created
[root@localhost ~]# pvcreate /dev/sdc1
Physical volume "/dev/sdc1" successfully created
2. 创建卷组
使用vgcreate命令创建卷组mail_store 包括物理卷:/dec/sdb1、/dev/sdc1
[root@localhost ~]# vgcreate mail_store /dev/sdb1 /dev/sdc1
Volume group "mail_store" successfully created
3. 创建逻辑卷
使用lvcreate命令创建逻辑卷 mail 从卷组mail_store上划出60GB空间
使用mkfs命令创建ext4文件系统
[root@localhost ~]# lvcreate -L 60G -n mail mail_store
/dev/cdrom: open failed: Read-only file system
Logical volume "mail" created
[root@localhost ~]# mkfs -t ext4 /dev/mail_store/mail
……
4.为逻辑卷扩容
使用lvextend命令为逻辑卷 mail扩充容量 从卷组 mail_store 上再划出10GB给逻辑卷mail
使用resize2fs命令更新系统识别的文件系统大小
[root@localhost ~]# lvextend -L +10G /dev/mail_store/mail
[root@localhost ~]# resize2fs –p /dev/mail_store/mail
5.为逻辑卷缩减
使用lvreduce命令为逻辑卷 mail缩减容量,必须先卸载从卷组 mail_store 上缩小逻辑卷mail到10G
使用resize2fs命令更新系统识别的文件系统大小
使用fsck 命令清理文件系统数据结构
[root@localhost ~]# umount /mail
[root@localhost ~]# fsck –f /dev/mail_store/mail
[root@localhost ~]# resize2fs –p /dev/mail_store/mail 10G
[root@localhost ~]# lvreduce –L 10G /dev/mail_store/mail
[root@localhost ~]# mount -a
四、LVM图形化管理工具
在Red Hat Enterprise Linux中,提供了一个名为“逻辑卷管理(system-config- lvm)器”的LVM管理工具,可以使用这个工具来查看、建立,甚至调整LVM中各种卷的大小。
启动逻辑卷管理的方法如下:
通过菜单:请选择“系统”|“管理”|“逻辑卷管理器”命令,以启动逻辑卷管理器。
通过命令:在X Window System的终端控制台中,直接执行system-config-lvm命令。