-- rhel7上逻辑卷的管理
当用户根据实际情况需要对分区增加、减少等调整时,经常会受磁盘“灵活性”的限制,很不方便。
逻辑卷管理器则是在磁盘分区与文件系统之间添加的逻辑层,提供一个抽象的卷组,使得管理者可以忽略底层磁盘布局,
从而实现分区的灵活动态调整。(在rhel7以上系统已经默认启动lvm机制)
物理卷(pv,physical volume): 整个硬盘设备或使用fdisk命令建立的硬盘分区;
卷组(vg,volume group): 由一个或多个物理卷(pv)组成的整体;
逻辑卷(lv,logical volume): 从卷组(vg)中切割出的空间来用于创建文件系统,大小由pe的个数决定;
基本单元(pe,physical extent):默认为4mb的基本块。
=============================================================
功能/命令 物理卷管理 卷组管理 逻辑卷管理
扫描 pvscan vgscan lvscan
显示 pvdisplay vgdisplay lvdisplay
建立 pvcreate vgcreate lvcreate
删除 pvremove vgremove lvremove
扩展 --- vgextend lvextend
--------------------------------------------------------------------------------------------------------------
-- redhat7 配置 lvm (ahern)
添加磁盘,对磁盘进行分区,对要做lvm的分区,选择类型为8e(即为linux lvm),保存分区表;
fdisk /dev/sdb --> m->n->p->w
1、创建一个物理卷组
# pvcreate /dev/sdb1
# pvscan (查看物理卷组命令)
# pvremove /dev/sdb1 (删除物理卷组命令)
2、创建一个逻辑卷组
# vgcreate vgu01 /dev/sdb1 (默认pe为4m)
# vgcreate –s 8m vgu01 /dev/sdb1 (可在创建时指定pe大小为8m)
# vgdisplay vgu01 (查看逻辑卷组命令)
# vgremove vgu01 (删除逻辑卷组命令)
# vgextend vgu01 /dev/sdb2 (增加物理卷)
# vgreduce vgu01 /dev/sdb2 (删除物理卷)
3、生成逻辑卷 lv
# lvcreate –l 10g –n lvu01 vgu01 (创建大小为 10g 的分区 lv01)
# lvcreate -l 1278 -n lvu01 vgu01 (ok 5g)
# lvcreate –l 200 –n /dev/vgu01/lvu01 (创建大小为200个pe大小的分区/dev/vg0/lv01(即200x4m))
# lvscan (查看逻辑分区)
4、格式化分区(格式化后 mount 即可正常使用)
# mkfs.xfs /dev/vgu01/lvu01
# mkfs -t ext4 /dev/vgu01/lvu01
5、创建挂载点 (挂载和卸载)
# mkdir /u01
# mount /dev/vgu01/lvu01 /u01 (挂载)
# vi /etc/fstab (永久挂载)
/dev/vgu01/lvu01 /u01 xfs defaults 0 0
# df -ht (查看)
6、扩展分区大小
# lvextend –l +5g –n /dev/vgu01/lvu01 (增加5g)
# lvextend -l +1278 -n /dev/vgu01/lvu01 (增加5g)
# xfs_growfs /dev/vgu01/lvu01 (调整xfs格式分区大小: 虽然xfs文件系统只支持增加,不支持减少。但并不是说在xfs系统文件下不能减小,只是减小后,需要重新格式化才能挂载上。这样原来的数据就丢失了!)
# lvextend –l +50 –n /dev/vgu01/lvu01 (增加50个pe)
# resize2fs /dev/vgu01/lvu01 -l 300m (调整ext4格式分区大小)
# lvreduce –l 300m –n /dev/vgu01/lvu01 (减小分区到300m(需先停用分区))
-- oel 6.10
# lvresize -l +1048572 /dev/volgroup/lv_u01
# resize2fs /dev/volgroup/lv_u01
7、停用启用分区
# lvchange –an /dev/vgu01/lvu01 (停用lv01分区)
# lvchange –ay /dev/vgu01/lvu01 (启用lv01分区)
8、逻辑卷容量扩展和减少
逻辑卷的容量扩展
# umount /dev/vgu01/lvu01 (umount要扩容的逻辑卷)
# lvextend -l 1g /dev/vgu01/lvu01 (将 lvu01 扩展到1g)
# e2fsck -f /dev/vgu01/lvu01 (检查磁盘完整性)
# resize2fs /dev/vgu01/lvu01 (重置磁盘容量)
# mount /dev/vgu01/lvu01 /u01 (重新 mount)
逻辑卷的容量减少
# lvreduce -l 500m /dev/vgu01/lvu01 (将 lvu01 减少到500m)
9、快照功能
lvm的逻辑卷具有快照功能可以将逻辑卷的数据保存为备份、以及快速的数据恢复。
# lvcreate -l 150m -s n snap /dev/vgu01/lvu01 (建立一个150m,名称为snap的快照)
# lvcreate –l 40m –n /dev/vgu01/lvu01_snap –s /dev/vgu01/lvu01 (创建快照(设置大小为总理的20%))
# lvremove /dev/vgu01/lvu01_snap (删除快照)
10、数据迁移
# pvmove –i 3 /dev/sdb1 /dev/sdb2 (将sdb1数据迁到sdb2上,3秒刷新一次)
11、查看 lvm 的命令
pvs,vgs,lvs,pvdisplay,vgdisplay,lvdisplay
12、逻辑卷失效后激活逻辑卷
当找路劲下不到逻辑卷,查看逻辑卷的时候设备变成了inactive状态的问题解决步骤如下:
查看pv -> 查看vg -> 查看lvm -> lvminactive问题解决
-- one.查看pv
命令:pvdisplay
可以看到pv 名称、大小、总大小、剩余空间大小、vg 名称
-- two.查看vg
命令:vgdisplay
可以看到vg名称、格式、大小、总大小、剩余大小
-- three.查看lvm
命令:lvdisplay、lvscan
所有lv名称,状态、大小,这里可以看到有个lvm状态是not available。
同时也可以从lvscan命令扫描lvm看到,lvm状态是inactive。
-- four.解决
激活vg 命令 vgchange 激活后挂载即可
[root@rac01 ~]# vgchange -ay vg名(vgu01)
4 logical volume(s) in volume group "vg名(vgu01)" now active
使用 lvscan 查看状态
-- 附lvm操作的相关命令
-- 物理卷命令
pvcreate 创建lvm物理卷
pvdisplay 显示已创建的物理卷信息
pvchange 设置pv的性能,允许或拒绝从这个磁盘上分配置另外的pe。
pvmove 在一个卷组中从源到目的移动已经分配的pe
pvremove 删除一个物理卷(也就是从物理卷中删除一个lvm标签)
-- 卷组命令
vgcreate 创建卷组
vgdisplay 显示卷组的信息
vgchange 激活或者撤消卷组,允许卷组使用或不使用quorum来挂载
vgchange -a y 激活所有卷组 (开机执行,redhat可在/etc/rc.d/rc.sysinit系统启动初始化脚本里可以找到)
vgchange -a n 关闭所有卷组(提示:必须在umount所有的文件系统后,才能成功执行
vgextend 通过添加磁盘扩充卷组
vgreduce 删除物理卷缩减卷组,vgscan 扫描所有磁盘寻找卷组
vgsync 同步镜像
remove 删除卷组
vgexport 从系统中删除一个卷组,但不修改在基于物理卷的信息
vgimport 通过扫描使用vgexport命令输出的物理卷在系统中增加一个
vgcfgbackup 保存卷组的配置信息,记住一个卷组有一个或多个物理卷组成
vgcfgrestore 恢复卷的配置信息
vgscan 读取系统中创建的所有卷组
-- 逻辑卷命令
lvcreate 生成逻辑卷
lvdisplay 显示逻辑卷的信息
lvchange 改变逻辑卷的特性,包括可用性、调度策略、权限、块重定位、分配策略、镜像缓存的可用性lvextend 增加逻辑卷的空间
extendfs 扩展文件系统的大小
lvreduce 减少逻辑卷的空间
lvremove 删除逻辑卷
lvsplit 分割镱像的逻辑卷
lvmerge 合并lvsplit过的逻辑卷
lvsync 同步逻辑卷
lvmmigrate 在一个分区中为逻辑卷迁移准备一个root文件
lvlnboot 用来建立root,primary swap ,or dump逻辑卷
lvlnboot 删除lvlnboot建立的逻辑卷
-- 其他命令
fdisk -l 查看系统中都认到了那些物理硬盘
mkfs 基于逻辑卷创建一个相应类型的文件系统
mkdir -p $mount_piont 创建一个挂载目录,创建好的文件系统位于:/dev/$create_vg_name/$lv_name
mount /dev/$create_vg_name/$lv_name $mount_piont 挂载文件系统