#########逻辑卷管理##########
1.什么是lvm
lvm是logical volume的缩写,是Linux下对磁盘分区进行管理的一种机制 用户安装Linux系统时遇到的的一个常见的难决定的问题就是如何正确的评估各分区的大小以及分配合适的硬盘空间 普通的磁盘分区管理方式在逻辑分区划分好后就无法改变其大小 当一个逻辑分区存放部下某个文件时,这个文件受上层系统的限制,不能跨越多个分区来存放,所以不同同时存放在别的磁盘上 当遇到某个分区空间耗尽时,解决的方法通常是使用符号链接 或者使用调整分区大小的工具,但这只是暂时解决的方法,没有根本解决 随着Linux逻辑卷管理功能的出现,这些问题都迎刃而解,在用户无需停机的情况下,可以调整各个分区大小。
2.lvm基本术语
lvm是磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区分布 提供一个抽象的存储卷,在存储卷上建立文件系统
物理存储介质 physical storage media 指物理存储设备:磁盘 如:/dev/hda /dev/sda等,是存储系统最底层的存储单元
物理卷physical volume ,PV 指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备,如RAID是lvm的基本存储逻辑块 但是基本的物理存储介质,如分区,磁盘等,比较,却包含与lvm相关的管理参数
卷组 volume group ,VG 类似于非lvm系统中的磁盘分区,逻辑卷建立在卷组VG之下 可以在卷组上创建一个或多个LV(逻辑卷)
逻辑卷logical volume ,LV 类似于非lvm系统中的磁盘分区,逻辑卷建立在卷组VG之下 在逻辑卷LV之上可以建立文件系统,比如/home或者/usr等
物理块physical extent ,PE 每一个物理卷PV被划分为PE的基本单元,具有唯一编号的pe是可以被lvm寻址的最小单元 PE的大小是可以配置的,默认为4MB,所以物理卷PV由大小等同的基本单元PE组成
逻辑块 logical extent ,LE 逻辑卷lv也被划分为可以被寻址的基本单位,LE 在同一个卷组中,LE的大小和PE相同,并且一一对应。
pv 物理卷,被lv命令处理过的物理分区
vg 物理卷组,被组装到一起的物理卷
pe 物理块,lvm设备的最小存储单元是pe的整数倍
lvm 逻辑卷,直接使用的设备,可以增大缩减并保持原有的数据不变
文件系统:Linux文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux 用户和程序看到的文件、目录、软连接及文件保护信息等都存储在其中
3.lvm应用背景
一个新的东西出现,磁盘应该分多大 随着用户数量的增加,磁盘的大小应该也要变 通过软件完成伸缩的磁盘设备 我们向让挂载的/data设备大小可变,可以伸缩的设备
4.实验环境
server虚拟机,reset,因为之前有我们别的关于磁盘的操作,给实验一个纯净环境。
5.建立一个lvm逻辑卷
步骤一:
使用监控命令:watch -n 1 ‘pvs;echo======;vgs;echo======;lvs;echo======;df -h /data’ 进行监控
步骤二:
mkdir /data 新建一个用户使用储存空间的挂载目录
步骤三:
fdisk -l 查看一个未分区的设备
步骤四:
fdisk /dev/vdb 划分一个主分区 /dev/vdb1 并将标签改为8e(lvm标签)w退出保存
步骤五:
pvcreate /dev/vdb1 创建物理分区(橙子榨汁)
步骤六:
vgcreate vg0/dev/vdb (将橙子汁倒入大容器)
步骤七:
lvcreate -L 512M -n lv0 vg0 (将容器的橙汁倒出来)
步骤八:
mkfs.xfs /dev/vg0/lv0 (将分出来的lvm逻辑卷格式化才能挂载)
步骤九:
mount /dev/vg0/lv0 /data (挂载在/data下客户才能使用)
######如何拉伸一个逻辑卷lvm?(客户的数据放不下的时候)
步骤一:
第一种情况:当划分出来的主分区/dev/vdb1 够用的时候,直接进行拉伸。
步骤二:
xfs_grows /dev/vg0/lv0 同步文件系统的大小
只有同步完系统以后,拉伸后的lvm才可以使用
第二种情况:当划分出来的主分区/dev/vdb1不够用时,比如我想把lvm拉伸至1.5G,方法:先划分一个主分区/dev/vdb2出来,再拉伸
同样的方式:fdisk /dev/vdb 创建一个新的vdb2
partprobe同步分区表
vgextend vg0 /dev/vdb2 将橙汁倒入大杯子中
lvextend -L 1500M /dev/vg0/lv0 拉伸lvm
xfs_grows /dev/vg0/lv0 拉伸文件系统
成功将文件系统拉伸到1500M,xfs文件系统不能进行缩减,ext4文件系统支持缩减,它的拉伸方式和xfs也不太一样。
#####如何将ext4文件系统的设备进行拉伸#######
步骤一:
先将/data下文件卸载
步骤二: mkfs.ext4 /dev/vg0/lv0 将设备格式化为ext4文件系统
步骤三: mount /dev/vg0/lv0 /data 挂载
步骤四:
blkid查看
步骤五:
lvextend -L 1600M /dev/vg0/lv0 扩展lvm设备
步骤六:
resize2fs /dev/vg0/lv0 将文件系统也拉伸
成功拉伸至1600M
#######怎样将ext4文件系统的设备进行缩减#######
==步骤一:==umount /data
步骤二:
e2fsck -f /dev/vg0/ lv0 扫描这个设备里面的东西,否则直接缩减会造成损坏数据
步骤三:
resize2fs /dev/vg0/lv0 1200M 缩减文件系统
步骤四: mount /dev/vg0/lv0 /data
步骤五:
lvreduce -L 1200M /dev/vg0/lv0 缩减lvm设备
##########怎么将/dev/vdb2下的文件移动到/dev/vdb1 ,然后将/dev/vdb2空闲移出######
步骤一: pvmove /dev/vdb2 /dev/vdb1 完全移过去再操作,否则会损坏文件
步骤二:
vgreduce vg0 /dev/vdb2 将这个橙汁移走
步骤三:
pvremove /dev/vdb2
/dev/vdb2已经空闲了。
####如何创建lvm的快照#####
当真实的设备文件挂载在/data下面比较危险,损坏就不能恢复 因此给真实设备一个快照,挂载在/data下面再进行一些列的操作 如果操作失误,删除快照重新建立快照即可
步骤一:
首先在挂载的情况下,先在/data下创建file1-10
步骤二: lvcreate -L 20M -n lv0-backup -s /dev/vg0/lv0 创建快照
步骤三: 卸载/data ,然后ls /data 发现看不见创建的十个文件
步骤四:
mount /dev/vg0/lv0-backup /data 挂载新创建的快照到/data下
再次ls /data 发现 又能看见/data 下的文件了
#####删除快照#####
步骤一:
umount /data
步骤二: lvremove /dev/vg0/lv0
#####删除lvm设备######
先卸载 umount lvremove /dev/vg0/lv0 删除lv vgremove vg0 删除vg pvremove /dev/vdb1删除pv fdisk /dev/vdb 删除建立的所有主分区