LVM逻辑卷
LVM:Logical Volume Manager
这里引用网络上的介绍:
LVM是Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现。Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。
下面我画了一张简易的示意图:
我们可以看到其实LV逻辑卷是建立在VG上面而VG建立在PV上PV才真正的建立在我们的磁盘上面也可以是分区上.其中PE是PV划分为称为PE(PhysicalExtents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。所以物理卷(PV)由大小等同的基本单元PE组成。
了解了LVM的基础结构我们在来看一段网络上的LVM的优缺点:
在决定是否使用 LVM 前请先了解下 LVM 的优缺点。
使用 LVM 的优势:
§ 文件系统可以跨多个磁盘,因此大小不会受物理磁盘的限制。
§ 可以在系统运行状态下动态地扩展文件系统大小。
§ 可以增加新磁盘到 LVM 的存储池中。
§ 可以以镜像的方式冗余重要数据到多个物理磁盘上。
§ 可以很方便地导出整个卷组,并导入到另外一台机器上。
使用 LVM 的限制:
§ 在从卷组中移除一个磁盘时必须使用 reducevg,否则会出问题。
§ 当卷组中的一个磁盘损坏时,整个卷组都会受影响。
§ 不能减小文件系统大小(受文件系统类型限制)。
§ 因为加入了额外的操作,存储性能会受影响(使用 Stripe 的情况另当别论)。
使用 LVM 将获得更好的可扩展性和可操作性,但却损失了可靠性和存储性能,总的说来就是在这两者间选择。
那么了解了那么多我们怎样创建呢,通过上面的结构图我们知道要想创建LV逻辑卷得先有PV再有VG而后才能创建我们的LV逻辑卷那么用到的命令有:
pvcreate 创建PV;如: pvcreate /dev/sda1
vgcreate 创建VG;如: vgcreate testvg /dev/sdb1
lvcreate 创建LV; lvcreate –L 10G -nhome vg
命令的其他用法我们这里不做详细介绍
接下来我们看一个示例:
我们在创建PV之前需要准备1或2个空闲的磁盘分区且没有格式化的,然后我们需要分区用fdisk转换为指定的系统类型为:Linux LVM 在fdisk里面 8e代表Linux LVM见图:
接下来我们转换分区类型
按照图上的流程完成转换操作不要忘记在fdisk里面按w保存退出
接下来我们创建PV
然后我们创建一个名字是myvg的 VG
VG创建完成我们的主角来了没错就是LV 见下图
创建完成了,这里我们的LV逻辑卷就可以使用了,跟普通分区一样我们要先进行格式化然后挂载到一个目录下面就可以正常使用了.
我事先建了一个test目录接下来我们把mylv挂载到这个目录下面
看挺简单的我们的LV逻辑卷正常启用了!
接下来我们简单说一下LV逻辑卷的扩展空间和缩小空间的操作
扩展逻辑卷也很简单但需要注意如果我们扩展的大小超过了VG的大小我们要首先扩展VG使用命令 vgextend 用法与创建VG差不多,如果VG能承载你要扩展的空间大小就直接使用lvextend,然后再用resize2fs扩展我们的文件系统我这里-L+1G 意思是在原有基础上增加1GB空间,
看大小已经是3GB了
那么我们该如何减小LV逻辑卷的空间呢?我先简要说一下步骤:
1、 卸载LV逻辑卷
2、 使用e2fsck –f 强制检查一下逻辑卷看到5个步骤没有报错才能缩减否则不能继续。
3、 检查一下要缩小的空间缩小空间不能小于你的数据文件的大小否则会造成数据损坏慎重!
4、 使用resize2fs命令指定缩减后的大小
5、 使用lvreduce命令指定缩减后的大小要跟第4步一致
6、 重新挂载
我们来试验一下:
[root@localhost/]# umount /dev/myvg/mylv
[root@localhost/]#
[root@localhost/]# e2fsck -f /dev/myvg/mylv
e2fsck1.41.12 (17-May-2010)
Pass1: Checking inodes, blocks, and sizes
Pass2: Checking directory structure
Pass3: Checking directory connectivity
Pass4: Checking reference counts
Pass5: Checking group summary information
/dev/myvg/mylv:12/196608 files (0.0% non-contiguous), 29500/786432 blocks
[root@localhost/]#
[root@localhost/]# resize2fs /dev/myvg/mylv 1G
resize2fs1.41.12 (17-May-2010)
Resizingthe filesystem on /dev/myvg/mylv to 262144 (4k) blocks.
Thefilesystem on /dev/myvg/mylv is now 262144 blocks long.
[root@localhost/]# lvreduce -L 1GB /dev/myvg/mylv
WARNING: Reducing active logical volume to1.00 GiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Doyou really want to reduce mylv? [y/n]: y
Size of logical volume myvg/mylv changed from3.00 GiB (768 extents) to 1.00 GiB (256 extents).
Logical volume mylv successfully resized
[root@localhost/]# mount /dev/myvg/mylv /test/
以上就是关于LV逻辑卷的一些简单的示例操作,在这里提醒一下缩减空间会有一定的风险对于数据我们还是得做好备份工作确保万无一失!
原文地址:http://syf151813262.blog.51cto.com/8722952/1689060