lvm逻辑卷管理
1.lvm的基本概念
1.1什么是lvm
LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制。Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。
1.1为什么要使用lvm
在日常工作或者学习中,随着电脑的不断被使用,我们的磁盘空间可能会越来越小,这时候,我们不能直接更换大硬盘,因为硬盘有价,数据无价,这时候我们就可以使用LVM,LVM将存储虚拟化,使用逻辑卷,你不会受限于物理磁盘的大小,另外,和硬件相关的存储设置被其隐藏,你能不用停止应用或卸载文件系统来调整卷大小或数据迁移.这样能减少操作成本,LVM最大的特点就是可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。如果我们新增加了硬盘,其也不会改变现有上层的逻辑卷。作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性。
1.2 lvm的基本术语
物理存储介质(Physical Storage Media):
指系统的物理存储设备:磁盘,如:/dev/hda、/dev/sda等,是存储系统最底层的存储单元
物理卷(Physical Volume,PV)
指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数
卷组(Volume Group,VG)
类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成
可以在卷组上创建一个或多个LV(逻辑卷)
逻辑卷(Logical Volume,LV)
类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上,在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)
物理块(Physical Extent,PE)
每一个物理卷PV被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元,PE的大小是可配置的,默认为4MB,所以物理卷(PV)由大小等同的基本单元PE组成
2.lvm逻辑卷的建立
一:
使用监控命令:使用监控命令:watch -n 1 'pvs;echo======;vgs;echo ========;lvs;echo ======;df -h /data’进行监控;
二:
mkdir /data 新建一个用户使用存储空间的挂载目录;
三:
fdisk -l 查看一个未分区的设备;
四:
fdisk /dev/vdb 划分一个主分区/dev/vdb1 ; wq退出保存(500M);
五:
fdisk /dev/vdb 按t,将标签写为8e(贴lvm标签)wq退出保存;
六:
pvcreate /dev/vdb1 创建物理分区(将橙子榨成汁);
七:
vgcreate -s 16M vg0 /dev/vdb1 (将橙子汁倒进一个大容器,单位是16M;
八:
vgdisplay 可以查看lvm卷的大小;
九:
lvcreate -L 20M -n lv0 vg0(将大容器的橙子汁倒出来小杯子喝,想倒20M,但是最小单位是16M,所以会给我32M);
十:
mkfs.xfs /dev/vg0/lv0(将分出来的lvm逻辑卷格式化才能挂载);
十一:
mount /dev/vg0/lv0 /data/(挂载在/data下面客户才能用);
十二:
df查看是否挂载;
3.怎样拉伸一个逻辑卷lvm
当数据太多,存储空间不够时,此时就需要拉伸逻辑卷lvm。
一:
输入监控命令:watch -n 1 ‘pvs;echo======;vgs;echo ========;lvs;echo ======;df -h /data’;
二:
分情况处理
Ⅰ:当划分出来的主分区/dev/vdb1够用时,直接进行拉伸(一个橙子够喝的时候);
lvextend -L 100M /dev/vg0/lv0 拉伸lvm的大小
xfs_growfs /dev/vg0/lv0 同步文件系统的大小(只有同步文件系统之后,拉伸的Lvm才可用)
Ⅱ:当划分出来的主分区/dev/vdb1不够用时(比如想将lvm拉伸为600M),先划分一个主分区出来/dev/vdb2,再拉伸;
- fdisk /dev/vdb
n->p->2->回车->+100M->p查看/dev/vdb2->t->2->8e->p查看->wq保存
- partprobe ###同步分区表
- pvcreate /dev/vdb2 ###榨橙汁
-
vgextend vg0 /dev/vdb2###将橙汁倒进去大杯子
-
lvextend -L 600M /dev/vg0/lv0 ###拉伸lvm
- xfs_growfs /dev/vg0/lvo### 同步文件系统(否则拉伸的文件不能用)
注意:xfs文件系统不能进行缩减,ext4文件系统支持缩减,它的拉伸方式与xfs也不太一样
4.如何将ext4文件系统的设备进行拉伸
一:
umount /data(把data卸载掉)
二:
mkfs.ext4 /dev/vg0/lv0将设备格式化为ext4文件系统
三:
mount /dev/vg0/lv0 /data挂载
四:
blkid查看
五:
lvextend -L 550M /dev/vg0/lv0 扩展lvm设备
六:
resize2fs /dev/vg0/lv0 将文件系统也拉伸
5.如何将ext4文件系统的设备进行缩减
一:
umount /data
二:
e2fsck -f /dev/vg0/lv0扫描这个设备里面的东西,否则直接缩减会造成损坏
三:
resize2fs /dev/vg0/lv0 100M 缩减文件系统
四:
mount /dev/vg0/lv0 /data
五:
df -H /data 查看大小
六:
lvreduce -L 100M /dev/vg0/lv0 缩减lvm设备
6.如何将/dev/vdb2下的东西移到/dev/vdb1,然后将/dev/vdb2空闲出来
一:
pvmove /dev/vbd2 /dev/vdb1完全移过去再操作,否则会损坏文件
二:
vgreduce vg0 /dev/vdb2 将这个橙汁移走
三:
pvremove /dev/vdb2
此时,/dev/vdb2就已经完全空闲出来了
7.如何建立lvm的快照
当真实的设备文件挂载在/data下面比较危险,损坏就不能恢复,因此给真实设备照一个快照,挂载在/data下面再进行一系列的操作,如果误删除什么东西,直接删除快照即可。
一:
umount /data 先卸载再进行快照
二:
lvcreate -L 20M -n lv0-backup -s /dev/vg0/lv0 做快照
三:
lvs 查看
四:
mount /dev/vg0/lv0-backup /data 挂载快照
五:
df -H
六:
cd /data
ls就可以进行修改了
rm -rf *
如果错误操作直接卸载
umount /data
lvremove /dev/vg0/lv0-backup
然后重新照,重新挂载
h2的n次方 H10的n次方
8.如何删除一个lvm设备
一:
umount /data
二:
lvremove /dev/vg0/lv0-backup
三:
lvremove /dev/vg0/lv0
四:
vgremove vg0
五:
pvremove /dev/vdb2
六:
fdisk /dev/vdb 删除建立的所有主分区即可