逻辑卷相关操作
可以把逻辑卷想象成分区,那么这个逻辑卷当然也需要被格式化和挂载。另外,逻辑卷也是可以动态调整大小的,而且数据不会丟失,也不用卸载逻辑卷。
常用的命令有 lvscan Lvcreate Lvdisplay lvextend lvreduce Lvremove Lvresize Lvchange
lvscan 命令
lvscan命令用于扫描当前系统中存在的所有的LVM逻辑卷。使用lvscan指令可以发现系统中的所有逻辑卷,及其对应的设备文件。
- 语法
lvscan [参数]
- 参数:
-b 显示显示逻辑卷的主设备和此设备号
- 示例
使用lvscan命令扫描系统中的所有逻辑卷
[root@zaishu ~]# lvscan
显示设备号:
[root@zaishu ~]# lvscan -b
lvcreate
创建LVM的逻辑卷。逻辑卷是创建在卷组之上的。逻辑卷对应的设备文件保存在卷组目录下,例如:在卷组"vg1000"上创建一个逻辑卷"lvol0",则此逻辑卷对应的设备文件为"/dev/vg1000/lvol0"。
逻辑卷是创建在卷组之上,逻辑卷对应的设备文件保存在卷组目录下;
例如:在卷组"vg_1"上创建一个逻辑卷"lv_1",则此逻辑卷对应的设备文件为"/dev/vg_1/lv_1"。
- 语法
lvcreate(选项)(参数)
- 选项
[root@zaishu ~]# lvcreate --help
lvcreate: Create a logical volume(创建逻辑卷)
lvcreate
[-A|--autobackup {y|n}](自动备份)
[-a|--activate [a|e|l]{y|n}]
[--addtag Tag](增加标签)
[--alloc AllocationPolicy](分配策略)
[--cachemode CacheMode](Cache模式)
[-C|--contiguous {y|n}]
[-d|--debug]
[-h|-?|--help]
[--ignoremonitoring](忽略监控)
[--monitor {y|n}](监控)
[-i|--stripes Stripes [-I|--stripesize StripeSize]]
[-k|--setactivationskip {y|n}]
[-K|--ignoreactivationskip]
{-l|--extents LogicalExtentsNumber[%{VG|PVS|FREE}] |(逻辑扩展数)
-L|--size LogicalVolumeSize[bBsSkKmMgGtTpPeE]}(逻辑卷大小)
[-M|--persistent {y|n}] [--major major] [--minor minor]
[-m|--mirrors Mirrors [--nosync] [{--mirrorlog {disk|core|mirrored}|--corelog}]](镜像)
[-n|--name LogicalVolumeName](逻辑卷名字)
[--noudevsync]
[-p|--permission {r|rw}]
[--[raid]minrecoveryrate Rate]
[--[raid]maxrecoveryrate Rate]
[-r|--readahead ReadAheadSectors|auto|none](读取头扇区)
[-R|--regionsize MirrorLogRegionSize](镜像逻辑区域尺寸)
[-T|--thin [-c|--chunksize ChunkSize](块大小)
[--discards {ignore|nopassdown|passdown}]
[--poolmetadatasize MetadataSize[bBsSkKmMgG]]]
[--poolmetadataspare {y|n}]
[--thinpool ThinPoolLogicalVolume{Name|Path}] (精简池逻辑卷)
[-t|--test]
[--type VolumeType](卷类型)
[-v|--verbose]
[-W|--wipesignatures {y|n}]
[-Z|--zero {y|n}]
[--version]
VolumeGroupName [PhysicalVolumePath...]
- 示例
(1)创建一个指定大小的lv,并指定名字为lv_2
lvcreate -L 2G -n lv_2 vg_1
(2)创建一个占全部卷组大小的lv,并指定名字为lv_3(注意前提是vg并没有创建有lv)
lvcreate -l 100%VG -n lv_3 vg_1
(3)创建一个空闲空间80%大小的lv,并指定名字为lv_4(常用)
lvcreate -l 80%Free -n lv_4 vg_1
(4) 使用剩余所有空间
lvcreate -l 100%FREE -n yum_repo_lvm3 yum_repo_vg
Lvdisplay
指定要显示属性的逻辑卷对应的设备文件
lvdisplay指令用于显示LVM逻辑卷空间大小、读写状态和快照信息等属性。
使用lvdisplay指令显示指定逻辑卷的属性。
- 示例
[root@zaishu ~]# lvdisplay /dev/vg1000/lvol0 #显示逻辑卷属性
lvextend
extend命令 用于在线扩展逻辑卷的空间大小,而不中断应用程序对逻辑卷的访问。使用lvextend命令动态在线扩展磁盘空间,整个空间扩展过程对于应用程序来说是完全透明的。
- 语法
lvextend(选项)(参数)
- 选项
-L:指定逻辑卷的大小,单位为“kKmMgGtT”字节;
-l:指定逻辑卷的大小(LE数)。
-
参数
逻辑卷:指定要扩展空间的逻辑卷。 -
示例
使用lvextend命令为逻辑卷/dev/vg1000/lvol0增加100M空间。
[root@zaishu ~]# lvextend -L +100M /dev/vg1000/lvol0 #为了解决增加100M空间
Extending logical volume lvol0 to 300.00 MB
Logical volume lvol0 successfully resized
lvreduce
lvreduce指令:收缩逻辑卷空间,lvreduce指令用于减少LVM逻辑卷占用的空间大小。
- 语法
lvreduce [选项] [参数]
-
选项
-L 指定逻辑卷的大小,单位为“kKmMgGtT”字节
-l 指定逻辑卷的大小(LE数)
逻辑卷:指定要操作的逻辑卷对应的设备文件 -
示例
减少逻辑卷的空间大小。
[root@zaishu ~]# lvreduce -L -50M /dev/vg1000/lvol0
#将逻辑卷的空间大小减少50M
Lvremove
lvremove指令:删除逻辑卷,lvremove指令用于删除指定LVM逻辑卷。
- 语法
lvremove [选项] [参数]
-
选项
-f :强制删除 -
注意
如果逻辑卷已经使用mount指令加载,则不能使用lvremove指令删除。必须使用umount指令卸载后,逻辑卷方可被删除。 -
示例
删除指定的逻辑卷。
[root@zaishu ~]# lvremove /dev/vg1000/lvol0 #删除逻辑卷"lvol0"
Do you really want to remove active logical
volume "lvol0"? [y/n]: y #确认删除
Logical volume "lvol0" successfully removed
Lvresize
lvresize命令用于调整LVM逻辑卷的空间大小,可以增大空间和缩小空间。使用lvresize命令调整逻辑卷空间大小和缩小空间时需要谨慎,因为它有可能导致数据丢失。
- 语法
lvresize [参数]
- 参数
-L 指定逻辑卷的大小, 单位为“kKmMgGtT”字节
-l 指定逻辑卷的大小(LE数) - 示例
将逻辑卷空间增加200M:
[root@zaishu ~]# lvresize -L +200M /dev/vg1000/lvol0
Lvchange
使用lvchange命令可以更改一个逻辑卷的属性。
- 语法
lvchange [选项] [逻辑卷路径]
- 选项
-p<r|rw> 更改访问权限为只读(r)或读/写(rw)
-C<y|n> 为逻辑卷试图设置或重置连续分配策略
--monitor<y|n> 如果dmeventd已安装,启动或停止监控镜像或快照逻辑卷
-M<y|n> 设置为y以使次要号码指定为永久
-a<a|e|1|y|n> 控制使用的逻辑卷的可用性
--refresh 如果逻辑卷被激活,重新加载其元数据
--noudevsync 禁用udev同步
-r<ReadAheadSectors|auto|none> 设置预读比逻辑卷的扇区数,可以设置为ReadAheadSectors、auto、none
--minor<次要号码> 设置次要号码
--resync 强制镜像完全同步。在正常情况下不需要这个选项,因为同步是自动发生的
--sysinit 表明在可写的文件系统可用之前,从早期的系统初始化脚本
- 示例
将逻辑卷状态设置为不可用。
lvchange –an /dev/VolGroup0/Vol01
打开逻辑卷
lvchange –ay /dev/VolGroup0/Vol01
将逻辑卷1v1的访问权限设置为只读
[root@zaishu ~]# lvchange -p r vg1/1v1
将逻辑卷1v1的访问权限设置为读写
[root@zaishu ~]# lvchange -p rw vg1/1v1