LVM介绍
一、简介
LVM是Linux操作系统对磁盘分区进行管理的一种机制。其是建立在磁盘和分区之上的一个逻辑层,以提高磁盘分区管理的灵活性。在LVM中每个磁盘分区就是一个物理卷(physical volume,PV),若干个物理卷可以组成为一个卷组(volume group,VG),形成一个存储池。系统管理员可以在卷组上创建逻辑卷(logical volumes,LV),并在逻辑卷组上创建文件系统。PV、VG和LV的关系如图所示。
二、物理卷管理
1、添加物理卷
使用pvcreate命令可以创建物理卷,可以在整个磁盘上创建物理卷,也可以在一个磁盘分区上创建物理卷。例如如果要在第二块SCSI磁盘上创建物理卷,可以使用命令:pvcreate /dev/sdb
2、查看物理卷
[root@demoserver dev]# pvdisplay
― Physical volume ―
PV Name /dev/hda13 //pv名称
VG Name vg_data //pv所属的vg名称
PV Size 1.87 GB / not usable 1.96 MB //pv的大小为1.87GB
Allocatable yes
PE Size (KByte) 4096 //物理块大小为4MB
Total PE 478 //总的物理块数
Free PE 478 //空闲的物理块数
Allocated PE 0
PV UUID jaVtOk-rpMb-QgbM-zx1N-DmCB-yGqm-hCVmiE
― Physical volume ― //另一个pv的信息
PV Name /dev/hda14
VG Name vg_data
PV Size 1.86 GB / not usable 2.12 MB
Allocatable yes
PE Size (KByte) 4096
Total PE 476
Free PE 476
Allocated PE 0
PV UUID VzjEpx-or1h-v3gN-zOCm-FnjC-eDOz-tp5YZg
共有两个物理卷:/dev/hda13和/dev/hda14,其中hda13的大小为1.87GB,物理块大小为4096KB,总的物理块数为478,空闲的物理块数为478,已分配的物理块数为0。而hda14的大小为1.86GB,物理块大小为4096KB,总的物理块数为476,空闲的物理块数为476,已分配的物理块数为0。
3.删除物理卷
如果物理卷不再需要,可以使用pvremove命令将其删除,如下所示。
# pvremove /dev/hda16
Labels on physical volume “/dev/hda16″ successfully wiped
物理卷被删除后,其所在的磁盘分区并不会被删除。需要被删除的物理卷必须是已经不属于任何卷组,否则将会失败,如下所示。
[root@demoserver dev]# pvremove /dev/hda13
Can’t pvremove physical volume “/dev/hda13″ of volume group “vg_data” without-ff
三、卷组管理
1.添加卷组
物理卷创建完成后就可以开始创建卷组。卷组是由一个或多个物理卷所组成的存储池。例如要创建一个名为vg_data的卷组,可以使用下面的命令。
# vgcreate vg_data /dev/hda13 /dev/hda14
Volume group “vg_data” successfully created
2.扩展卷组的容量
当卷组中的空间不足的时候,可以使用vgextend命令往卷组中添加新的物理卷,方便地扩展卷组的容量,如下所示。
# vgextend vg_data /dev/hda15
Volume group “vg_data” successfully extended
3.查看卷组
使用vgdisplay命令可以查看卷组的信息。例如要查看上例中创建的卷组vg_data,执行的命令如下所示。
# vgdisplay vg_data
― Volume group ―
VG Name vg_data //vg名称
System ID
Format lvm2
Metadata Areas 3 //元信息区域
Metadata Sequence No 2
VG Access read/write //访问许可,可读写
VG Status resizable //VG状态
MAX LV 0 //最大的LV数
Cur LV 0 //当前的LV数
Open LV 0 //打开的LV数
Max PV 0 //最大的PV数
Cur PV 3 //当前的PV数
Act PV 3
VG Size 5.59 GB //VG的大小为5.59GB
PE Size 4.00 MB //物理块的大小为4MB
Total PE 1430 //VG的物理块数为1430
Alloc PE / Size 0 / 0 //已经使用的物理块数和大小
Free PE / Size 1430 / 5.59 GB //空闲的物理块数和大小
VG UUID djgPFx-LOGa-8ZOx-diNr-hxCs-qNip-vg0Hqu
卷组vg_dat格式为lvm2,访问许可为可读写,卷组大小为5.59GB,物理块大小为4MB,总的物理块数为1430,已分配的物理块数为0,空闲的物理块数为1430,大小为5.59GB。
4.从卷组中删除物理卷
通过vgreduce命令可以把VG中未被使用的PV从VG中删除,例如要从卷组vg_data中删除物理卷hda15,如下所示。
# vgreduce vg_data /dev/hda15
Removed “/dev/hda15″ from volume group “vg_data”
如果要从卷组中删除所有未被使用的物理卷,可以使用如下命令。
# vgreduce -a
5.删除卷组
当卷组不再需要的时候,可以使用vgremove命令删除。如果卷组中已经创建了LV,则系统会提示用户确认是否要进行删除,命令及运行结果如下所示。
# vgremove vg_data
Do you really want to remove volume group “vg_data” containing 2 logical volumes
? [y/n]: y
Do you really want to remove active logical volume “lv_data1″? [y/n]: y
//确定删除逻辑卷lv_data1
Logical volume “lv_data1″ successfully removed
Do you really want to remove active logical volume “lv_data2″? [y/n]: y
//确定删除逻辑卷lv_data2
Logical volume “lv_data2″ successfully removed
Volume group “vg_data” successfully removed
卷组被删除后,卷组中的所有物理卷将不属于任何卷组,可以对这些物理卷进行删除,命令如下所示。
# pvdisplay /dev/hda14
“/dev/hda14″ is a new physical volume of “1.86 GB”
― NEW Physical volume ―
PV Name /dev/hda14
VG Name //VG Name一列为空,表示该PV不属于任何的VG
PV Size 1.86 GB //PV大小
Allocatable NO //是否可分配
PE Size (KByte) 0 //PE大小
Total PE 0 //总PE数
Free PE 0 //空闲的PE
Allocated PE 0 //分配的PE
PV UUID VzjEpx-or1h-v3gN-zOCm-FnjC-eDOz-tp5Yzg
可以看到,物理卷hda14的VG Name一列为空,表示该物理卷不属于任何的卷组,用户可以删除该物理卷,或分配给其他卷组使用。
四、逻辑卷管理
逻辑卷类似于非LVM系统中的磁盘分区,在逻辑卷上可以建立文件系统,文件系统建立完成后就可以挂载到操作系统中进行使用。逻辑卷被划分为被称为LE(Logical Extents)的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
1.添加逻辑卷
当卷组创建后,可以使用lvcreate命令在卷组上创建逻辑卷。例如要在卷组vg_data上创建一个1000MB的逻辑卷lv_data1,其命令如下所示。
# lvcreate -L 1000m -n lv_data1 vg_data
Logical volume “lv_data1″ created
除了KB、MB和GB这些常规单位以外,lvcreate命令还可以使用PE数作为单位。由vgdisplay可以看到卷组vg_data的PE大小为4MB,如果要创建一个大小为1000MB的逻辑卷,则需要250个PE,命令如下所示。
# lvcreate -l 250 -n lv_data2 vg_data
Logical volume “lv_data2″ created
我们现在ppvod做LVM使用的命令是:
#lvcreate -i 4 -I 8192 -L 1600G -n lv_data2 vg_data
-i:采用条带模式的映射方式创建逻辑卷,该参数的值用于指定所创建的逻辑卷将映射在几个PV上。
-I:指定使用条带模式时所采用块的大小,单位为KB,其值必须是:2N(N≥2)。
-L:指定创建逻辑卷的大小,单位的可以用K、M、G、T表示KB、MB、GB及TB。
-n:用来指定所创建的逻辑卷名称,该名称可以根据需要随便定义。
在使用“-i”参数指定PV的个数时,一定要确认所指定的这些PV是没有完全被分配给任何逻辑卷的,否则将创建失败,其次若这些PV的大小不等,那么所创建的逻辑卷只能取最小值。
这样创建的LVM起到了软Raid的作用,可以使IO压力分散到各个硬盘之上,提高IO性能。
卷组和逻辑卷创建后,会在/dev目录下创建一个以VG名称命名的目录,在目录下会创建以LV名称命名的设备文件,如下所示。
#ll /dev/vg_data
total 0
lrwxrwxrwx 1 root root 28 Aug 24 22:22 lv_data1 -> /dev/mapper/vg_ data-lv_data1
lrwxrwxrwx 1 root root 28 Aug 24 22:21 lv_data2 -> /dev/mapper/vg_ data-lv_data2
2.更改逻辑卷的大小
使用lvresize命令可以更改已有逻辑卷的大小。一般情况下不建议减少逻辑卷的空间,因为这样可能会导致逻辑卷上的文件系统中的数据丢失,所以除非用户已经确定被减少空间中的数据不再需要或者已经把重要数据备份出来,否则不要减少逻辑卷的空间以免造成不可挽回的损失。如果要把逻辑卷lv_data1的大小增加为1500MB,可以使用下面的命令。
# lvresize -L 1500m /dev/vg_data/lv_data1
Extending logical volume lv_data1 to 1.46 GB
Logical volume lv_data1 successfully resized
3.查看逻辑卷的信息
使用lvdisplay命令可以查看指定逻辑卷的信息,例如要查看逻辑卷lv_data1的信息,命令和运行结果如下所示。
# lvdisplay /dev/vg_data/lv_data1
― Logical volume ―
LV Name /dev/vg_data/lv_data1 //逻辑卷名称
VG Name vg_data //逻辑卷所属的卷组
LV UUID 3CrIH1-rZr6-UkNZ-1Z5n-gHw2-SM5T-by5fKg
LV Write Access read/write
LV Status available
# open 0
LV Size 1.46 GB //逻辑卷的大小
Current LE 375 //逻辑卷的逻辑块数
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
可以看到,逻辑卷/dev/vg_data/lv_data1所属的卷组为vg_data,访问许可为可读写,卷组状态为可用,逻辑卷大小为1.46GB,总的逻辑块数为375。
4.删除逻辑卷
使用lvremove命令可以删除指定的逻辑卷,删除前系统会提示用户确认。例如要删除逻辑卷lv_data2,其命令和运行结果如下所示。
# lvremove /dev/vg_data/lv_data2
Do you really want to remove active logical volume “lv_data2″? [y/n]: y
Logical volume “lv_data2″ successfully removed
删除后,逻辑卷上的所有数据均会被清除。
建议继续学习:
- 提升磁盘IO性能的几个技巧 (阅读:7617)
- 如何查看Linux 硬件配置信息 (阅读:5925)
- 确保数据存入磁盘 (阅读:4861)
- 从磁盘映像中挂载或提取指定的 LVM 逻辑卷 (阅读:3892)
- 存储基础知识之——磁盘阵列原理及操作实战 (阅读:3691)
- linux磁盘管理学习笔记(上) (阅读:3122)
- linux磁盘管理学习笔记(下):linux分区、挂载 (阅读:3106)
- Oracle hash分区的秘密 (阅读:2975)
- 使用Pure-ftpd和Pure-ftpd-mysql进行FTP权限和磁盘配额管理 (阅读:2983)
- linux磁盘管理学习笔记(中):df命令、du命令 (阅读:2885)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:xw2014 来源: 架构研究室
- 标签: LVM 分区 磁盘
- 发布时间:2010-05-25 13:29:23
- [70] IOS安全–浅谈关于IOS加固的几种方法
- [69] Twitter/微博客的学习摘要
- [64] 如何拿下简短的域名
- [63] Go Reflect 性能
- [63] android 开发入门
- [61] find命令的一点注意事项
- [59] 流程管理与用户研究
- [58] Oracle MTS模式下 进程地址与会话信
- [58] 图书馆的世界纪录
- [58] 读书笔记-壹百度:百度十年千倍的29条法则