Lvm是将硬盘上的硬件存储空间分割为逻辑卷存储空间的方法;Lvm可以将划分好的逻辑卷大小进行更改,而不须重新对硬盘进行格式化和损坏数据,同时可以将硬盘上已有的数据进行快照保存,使得数据的修复更加快捷;下面我们详细说明lvm的创建、管理和快照使用

 

在使用之前我们先来了解一下LVM的管理命令,方便我们以后的管理操作:

物理卷的管理PV:(底层的物理存储单元)

Pv[create]  [选项]  设备路径

Pvcreate   指定要将那些分区创建为物理卷,

Pvremove   移除某个已存在物理卷,此时会将这个物理卷内的所有数据全部清空,所以要谨慎使用这个命令

Pvmove 将某一个物理卷中的数据剪切到另外一个物理卷中

Pvscan  扫描磁盘上的所有物理卷

Pvdisplay   查看物理卷的属性;如物理卷的名称,大小,PE的大小,总PE数,可用PE数,已分配的PE,所属卷组,UUID

Pvs 查看物理卷的大概信息

 

卷组的管理VG:(中间转换层,将物理存储单元转换为逻辑存储组)

Vg[create] [选项] VGNAME 设备路径

Vgcreate   创建一个新的卷组,并制定名字

-s n  指定要创建的卷组块的大小为n

卷组块简称为PE,是卷组中最小的存储单位

Vgremove   删除一个已存在的卷组

Vgsacn  扫描磁盘上已存在的卷组

Vgdisplay   查看已存在的卷组的详细信息

Vgextend   向某个卷组中添加物理卷

Vgreduce   将卷组中的某个物理卷删除

 

逻辑卷的管理LV:(可以使用的逻辑存储单元)

Lvcreate   在卷组中创建一个新的逻辑卷

-L [+-]# 指定要创建的逻辑卷的大小,如果带有加减号,则表示要扩大或缩小多少,如果直接跟上数字,则表示要扩展或缩减到多少

-n  指定要创建的逻辑卷的名字

-s   指定要创建一个快照卷

-p r|w 指定要创建的快照卷的权限,只读或者可写

-a yes|no   指定是否自动为快照卷创建目录

-L 指定要创建的快照卷的大小

-n  指定要创建的快照卷的名字

Lvremove   删除已存在的逻辑卷

Lvsacn   扫描当前系统上存在的所有逻辑卷

Lvdisplay  查看当前逻辑卷的详细信息

Lvextend   在线扩展逻辑卷的大小

Lvextend -L [+-] n /dev/myvg/mylv

Lvreduce   在线缩小逻辑卷的大小

 

熟悉了LVM的基本管理命令之后,我们在系统上创建一个LVMLVM的创建有以下几个步骤:

1、将硬盘分区并创建为物理卷

2、将物理卷合并成卷组

3、在卷组中创建逻辑卷,格式化后挂载使用

创建分区,并且分区类型更改为8e Linux LVM

   # fdisk /dev/sdb     对指定磁盘进行分区

n 创建一个新分区

l 指定创建的新分区是扩展分区

4 扩展分区的编号为4

回车 大小为全部空间

n 再创建一个

l 指定要创建的是逻辑分区

5 编号为5,之后逻辑分区的编号默认排序,fdisk最大支持15个分区

+5G 大小为5G

n 再创建一个

l 指定要创建的是逻辑分区

回车 不指定起始柱面

+5G 大小为5G;依次创建五个分区,此时新创建的分区类型为Linux

 

t   更改分区类型

5 制定要个更改的是哪个分区

l 查看Linux支持的分区类型表

8e 将类型更改为Linux LVM;依次将要创建为PV的分区类型都更改为LVM

p 查看已创建的分区

w   保存更改并退出

   # partprobe /dev/sdb 在命令提示符界面下使重新读取指定磁盘上的分区

 

将已经创建好的分区创建为物理卷PV

# pvcreate /dev/sdb{5,6,7} 将磁盘分区sda5,6,7全部创建为物理卷

 

完成之后我们将物理卷创建为逻辑卷组VG

# vgcreate myvg -s 16M /dev/sdb{5,6,7} 将分区5,6,7合并到一个逻辑卷组myvg中;创建卷组时要记得指定卷组的名字,-s指定卷组PE块大小,以多少为一个存储单元,系统默认为4M

 

# vgdisplay myvg 创建完成之后查看逻辑组myvg详细信息

 

在已将创建好的逻辑卷组中创建逻辑卷LV

# lvcreate -n mylv -L 2G myvg 在卷组myvg中创建逻辑卷制定名字为mylv,大小为2G

 

# lvdisplay /dev/myvg/mylv 查看逻辑卷mylv的详细信息

 

# mkfs.ext3 /dev/myvg/mylv 将创建好的逻辑卷进行格式化,格式为ext3

 

# mount /dev/myvg/mylv /media 将逻辑卷mylv挂载到目录media上,然后跳转至目录media下边进行查看,如果出现lost+found文件,则说明此文件系统可以使用

 

 

 

而在工作环境中,由于数据的变化非常大,所以存储空间与初期安装时常常会出现一些误差,假如现在数据的变化比预期估计要大数倍,所以我们此时就需要扩大使用存储空间,来使数据能够完整的保存;如果没有使用lvm我们可能需要将原有数据进行完全拷贝,然后更换硬盘或添加硬盘,这样以来极大的耽误了工作;现在我们使用lvm,只需新添加一块硬盘,并将这个硬盘添加到卷组中,并扩大这个逻辑卷的空间即可

扩展磁盘逻辑使用空间:

一、对物理空间进行扩展

二、对逻辑空间进行扩展(逻辑空间的边界紧靠物理空间,逻辑空间依托物理空间,所以必须先对物理空间进行扩展)

 

首先查看逻辑卷的使用情况,然后将准备好的分区添加到卷组中,然后将卷组中的空间分配给需要扩大空间的逻辑卷

# df -lh 查看系统空间使用情况

 

# pvcreate /dev/sdb{8,9} 将分区89创建为物理卷

# vgextend myvg /dev/sdb{8,9} 将两个物理卷添加到卷组myvg中,此时我们再次查看发现这个卷组的大小已经得到扩大

 

 

# lvextend -L 5G /dev/myvg/mylv 扩展逻辑卷mylv5G大小,此时再次查看发现逻辑卷的大小已经扩大为5G,但是系统所查看到的仍然只有2G

 

 

# resize2fs /dev/myvg/mylv 重新加载逻辑卷mylv,并查看此时逻辑卷mylv的大小已经扩大为5G,而逻辑卷的原有数据并没有改变

 

此时逻辑卷空间的扩大已经实现

 

缩减逻辑卷的使用空间:

一、首先查看并缩减逻辑卷的空间大小

二、再次缩减物理卷大空间大小

三、不能在线对逻辑卷进行缩减,缩减之前需对分区进行强行检查,以确保文件系统处于一致性状态

 

首先查看逻辑卷的空间使用情况,以保证原有数据在缩减之后仍有足够的存储空间

# df -lh  查看之后我们发现逻辑卷的使用比例极小,我们将剩余的空间收回,给需要大存储空间的逻辑卷使用

 

# umount /dev/myvg/mylv 卸载逻辑卷mylv的使用

# e2fsck -f /dev/myvg/mylv 强行对逻辑卷检查

 

# resize2fs /dev/myvg/mylv 1G 更改逻辑卷mylv的大小为1G

# lvreduce -L 1G /dev/myvg/mylv 将逻辑卷mylv的大小缩减为1G,此时系统会提示你是否真的要缩减逻辑卷的使用空间,如果你确定要缩减此处输入y键即可

# mount /dev/myvg/mylv /media 将大小更改之后的逻辑卷mylv挂载到目录media

 

# df -lh  此时再次查看逻辑卷的使用情况,发现此时逻辑卷的大小已经更改为1G

 

 

快照的使用是为了对数据进行备份,普通备份是一个数据复制的过程,在一些服务器上,由于数据访问量巨大,此时进行数据备份,可能后边的进程又有新的数据写进,所以我们得到的是一份不完整的数据备份;而LVM快照则是将某一时刻的所有数据状态进行完全备份,并不进行数据复制,只是为用户提供这一时刻数据的入口;切记LVM快照的使用存储不能存储到非LVM文件系统中,下面我们详细说明LVM快照的使用方法:

 

此时我们创建一个逻辑卷mylv的快照,并利用快照将逻辑卷原有的数据恢复

逻辑卷快照的创建:

# lvcreate -s -L 30M -p r -n kuaiz /dev/myvg/mylv 对逻辑卷mylv进行快照创建,并制定快照大小为30M,快照的权限为只读,创建的快照名字为kuaizhao,默认位于/dev/myvg下边,与逻辑卷在同一卷组中;快照生命周期为整个数据时长, 在这段时长内,数据的增长不能超出快照卷的大小,而快照卷的则根据数据流量大小自行定义

# tar -zcf kuaiz.tar.gz kuaiz 对逻辑卷的快照进行打包压缩,然后将创建的快照删除,打包压缩后的文件默认存放在当前目录下

 

 

 

# mount /dev/myvg/mylv /media 将逻辑卷mylv挂载到目录media,查看此时逻辑卷中有什么文件,然后卸载并将其格式化,然后再挂载查看

 

 

 

 

 

 

 

# tar -zxf kuaiz.tar.gz -C /media 将快照的压缩文件解压,并释放到目录media下边,此时我们打包压缩的是一个目录,所以此时展开之后看到的是一个目录文件

 

建议:工作环境中对一些重要数据经常性的做快照卷,以便于对文件数据的修复