RHEL7 逻辑卷管理

-- 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)

逻辑卷的容量减少

# umount /dev/vgu01/lvu01 (umount要扩容的逻辑卷)

# lvreduce -L 500M /dev/vgu01/lvu01 (将 lvu01 减少到500M)

# e2fsck -f /dev/vgu01/lvu01 (检查磁盘完整性) 

# resize2fs /dev/vgu01/lvu01 (重置磁盘容量)

# mount /dev/vgu01/lvu01 /u01    (重新 mount)


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 挂载文件系统

--------------------------------------------------------------------------------------------------------------


上一篇:如何基于数据快速构建用户模型(Persona)?


下一篇:html5