LVM逻辑卷管理器详细介绍
LVM逻辑卷管理器
之前介绍了RAID,在硬盘分好区,或者部署好RAID磁盘阵列之后,再想修改硬盘分区大小就不容易了。换而言之,当用户想要随着实际需求的变化调整硬盘分区的大小时,会受到硬盘灵活性的限制。这时就需要一项非常普及的硬盘设备资源管理技术------LVM。LVM允许用户对硬盘资源进行动态调整。
LVM技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘进行卷组合并。这样一来,用户不必关心物理硬盘设备的底层架构和布局,就可以实现对硬盘分区的动态调整。
部署lvm逻辑卷
首先,我们要明白,部署lvm需要逐个配置物理卷,卷组和逻辑卷。
常用的部署命令
功能/命令 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
---|---|---|---|
扫描 | pvscan | vgscan | lvscan |
建立 | pvcreate | vgcreate | lvcreate |
显示 | pvdisplay | vgdisplay | lvdisplay |
删除 | pvremove | vgremove | lvremove |
扩展 | vgextend | lvextend | |
缩小 | vgreduce | lvreduce |
-
让新添加的两块硬盘设备支持lvm技术。
pvcreate /dev/sdb /dev/sdc
-
把两块硬盘设备加入到storage卷组中,然后查看卷组的状态
vgcreate storage /dev/sdb /dev/sdc
vgdisplay
-
切割出一个约为150mb的逻辑卷设备
这里需要注意切割单位的问题,在对逻辑卷进行切割时有两种计量单位。第一种是以容量为单位,所使用的参数是-L。例如,使用-L 150MB 生产一个大小为150MB的逻辑卷。另外一种是以基本单元的个数为单位,所使用的参数为-l。每个基本单元的大小默认为4MB。例如,使用-l 37可以生成一个大小为37x4MB=148MB的逻辑卷。
lvcreate -n vo -l 37 storage
lvdisplay
-
把生成好的逻辑卷进行格式化,然后挂载使用。
linux系统会把lvm中的逻辑卷设备存放在/dev设备目录中(实际上是做一个符号链接)同时会以卷组的名称来建立一个目录,其中保存了逻辑卷的设备映射文件(即/dev/卷组名称/逻辑卷名称)。
mkfs.ext4 /dev/storage/vo
mkdir /linuxprobe
mount /dev/storage/vo /linuxprobe
- 查看挂载状态,并写入配置文件,使其永久生效
df -h
echo "/dev/storage/vo /linuxprobe ext4 defaults 0 0" >> /etc/fstab
扩容逻辑卷
扩展前一定要记得卸载设备与挂载点的关联。
umount /linuxprobe
把上个实验中的逻辑卷vo扩展至290mb
lvextended -L 290M /dev/storage/vo
检查硬盘完整性,并重置硬盘容量。
e2fsck -f /dev/storage/vo
resize2fs /dev/storage/vo
resize2fs命令是用来增大或者收缩未加载的“ext2/ext3/ext4”文件系统的大小。
重新挂载硬盘,并查看挂载状态。
mount -a #这个命令是挂载fatab文件上的内容
df -h
缩小逻辑卷
缩小逻辑卷的丢失数据的风险较大,我们一定要提前备份好数据。
在执行缩容操作之前记得先把文件系统卸载掉:
umount /linuxprobe
检查文件系统的完整性
e2fsck -f /dev/storage/vo
把逻辑卷vo的容量减少到120MB
resize2fs /dev/storage/vo 120M
lvreduce -L 120M /dev/storage/vo
重新挂载文件系统并查看状态
mount -a
df -h
逻辑卷快照
LVM快照卷的特点:
- 快照卷的容量必须等同于逻辑卷的容量;
- 快照卷仅一次有效,一旦执行还原操作后则会被立即删除。
首先查看卷组信息
vgdisplay
看到卷组有空闲容量,接下来我们使用重定向往逻辑卷设备所挂载的目录中写入一个文件。
echo "Welcome to Linuxprobe.com" > /linuxprobe/readme.txt
ls -l /linuxprobe
第一步:使用-s参数生成一个快照卷,使用-L参数指定切割的大小。另外,还需要在命令后面写上是针对哪个逻辑卷执行的快照工作。
lvcreate -L 120M -s -n SNAP /dev/storage/vo
lvdisplay
第二步:在逻辑卷所挂载的目录中创建一个100MB的垃圾文件,然后查看快照卷的状态,你是可以发现存储空间占的用量上升了。
dd if=/dev/zero of=/linuxprobe/files count=1 bs=100M
lvdisplay
第三步:为了效验SNAP快照卷的效果,需要对逻辑卷进行快照还原操作。在此之前记得先卸载掉逻辑卷设备与目录的挂载。
umount /linuxprobe
lvconvert --merge /dev/storge/SNAP
第四步:快照卷会被自动删除,并且刚刚在逻辑卷设备被执行快照操作后再创建出来的100MB的垃圾文件也被清除了。
mount -a
ls /linuxprobe/
删除逻辑卷
当生产环境想要重新部署LVM或者不在需要使用LVM时,则需要执行LVM的删除操作,为此你就要提前备份好重要的数据信息,然后依次删除逻辑卷,卷组,物理卷设备,这个顺序不可颠倒。
第一步:取消逻辑卷与目录的挂载关联,删除配置文件中永久生效的设备参数。
umount /linuxprobe
vim /etc/fstab
第二步:删除逻辑卷设备,输入y来确认操作。
lvremove /dev/storage/vo
第三步:删除卷组,此处只写卷组名即可,不需要设备的绝对路径
vgremove storage
第四步:删除物理设备
pvremove /dev/sdb /dev/sdc
实战训练
- 首先你用去看看电脑硬盘的使用情况
fdisk -l #查看当前磁盘的分区情况
- 对磁盘进行分区:
fdisk /dev/sdb
- 进去之后会有一些比较重要的命令
参数 | 功能 |
---|---|
-b | 指定每个分区的大小 |
-l | 列出指定的外围设备的分区表状况 |
-s | 将指定的分区大小输出到标准输出上,单位为区块 |
-u | 搭配”-l”参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址 |
-v | 显示版本信息 |
-m | 查看全部可用参数 |
-n | 添加新的分区 |
-d | 删除某个分区信息 |
-t | 改变某个分区的类型 |
-p | 查看分区表信息 |
-w | 保存并退出 |
-q | 不保存直接退出 |
然后,我们在添加分区的时候,有个主分区,,扩展分区,逻辑分区,我们浅浅了解一手:
主分区数量至少1个,最多4个(如果存在扩展分区,则最多3个)。主分区可以直接使用,主分区本身不能继续分区,一个主分区就是一个逻辑磁盘。
扩展分区0个或1个,会占用一个主分区号,不能直接使用,必须在其上建立逻辑分区后才能用。 其实就是把1个主分区拿过来进行分区扩展了。
逻辑分区可以若干个,通过扩展分区建立,可以直接使用,扩展分区的容量是所有逻辑分区容量之和(如果扩展分区被完全使用的话)。
合理的磁盘分区会方便我们的文件挂载使用的。
在我们使用w退出之后,记得使用这个命令:
partprobe 重新加载磁盘分区信息,并更改到系统内核
重头戏来了:
我们下面就把整个sdb100G扩展到centos卷组中去,并创建如下的需求:
10G /oracle
10G /grid
10G /orasystem
10G /arch
剩余空间全部分给 /oradata
- 让新添加的硬盘设备支持LVM技术。
pvcreate /dev/sdb
2.接下来呢。我们要把这个硬盘设备加入到centos这个卷组,如果在此之前没有centos这个卷组,那么就用vgcreate 命令,如果有就是下面的命令:
vgextend centos /dev/sdb
- 创建逻辑卷,这一步就是要面向需求了:我们要根据上面的需求依次创建对应的逻辑卷。
- 接下来我们就需要将这些生成好的逻辑卷格式化,然后进行挂载
linux系统会把lvm中的逻辑卷设备存放在/dev设备目录中(实际上是做一个符号链接)同时会以卷组的名称来建立一个目录,其中保存了逻辑卷的设备映射文件(即/dev/卷组名称/逻辑卷名称)。
上面展示的是格式化为xfs类型的操作。
下面我们就是要去创建一个目录,一会好去挂载:
最后的最后,我们要把这些挂载内容写入/etc/fstab中去:
在配置文件中,我们可以使用uuid去配置。
blkid
vi /etc/fatab
UUID=0e157636-1b3f-413b-a68d-5db7d0b03de0 /oracle xfs defaults 0 0
UUID=da09987c-281d-402d-972c-ac56d5844d29 /grid xfs defaults 0 0
UUID=51720d40-66ba-44b9-a667-378a06fd87d7 /orasystem xfs defaults 0 0
UUID=df06626c-5495-4828-b6b2-63f4cdec257c /arch xfs defaults 0 0
UUID=328c9d42-a8a3-43c3-8d99-bda2d28f856e /oradata xfs defaults 0 0
- 点赞
- 收藏
- 关注作者
评论(0)