小知识 - 逻辑卷创建、扩展、缩减、删除及拆除和移动

创建逻辑卷

1 创建物理卷(使用分区或硬盘创建都可)

注意:创建分区时,分区格式需修改为8e,表示LVM逻辑卷

#创建磁盘分区,分区类型为8e,逻辑分区
[root@CentOS8 ~]# echo -e 'n\np\n\n\n+2G\nt\n8e\nw\n'| fdisk /dev/sdb

Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
……省略部分信息……
Command (m for help): Selected partition 1
Hex code (type L to list all codes): Changed type of partition 'Linux' to 'Linux LVM'.

Command (m for help): The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

#创建物理卷(可先查看下已有的物理卷)
[root@CentOS8 ~]# pvs
[root@CentOS8 ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created.
  

2 将创建好的物理卷添加到卷组中

#创建vg 名称为vg0,设置PE大小为16M,把/dev/sdb1 加入vg 中
[root@CentOS8 ~]# vgcreate -s 16M vg0 /dev/sdb1
  Volume group "vg0" successfully created

#查看卷组信息
[root@CentOS8 ~]# vgs
[root@CentOS8 ~]# vgdisplay  		 	显示的信息更详细

#查看所有分区的UUID和文件系统类型
[root@CentOS8 ~]# blkid

3 从卷组中划分区域创建逻辑卷

#设定逻辑卷大小的3种方式,方式1:通过-L 直接指定空间大小
[root@CentOS8 ~]# lvcreate -n lv0 -L 2G vg0

#方式2:通过-l 指定PE的数量
[root@CentOS8 ~]# lvcreate -n lv0 -l 100 vg0

#方式3:通过-l 100%FREE 指定PE所有可用的VG空间
[root@CentOS8 ~]# lvcreate -n lv0 -l 100%FREE vg0

4 创建文件系统

#设置的ext4 文件系统(可根据实际需求设置文件系统类型)
[root@CentOS8 ~]# mkfs.ext4 /dev/vg0/lv0
mke2fs 1.44.6 (5-Mar-2019)
Creating filesystem with 409600 4k blocks and 102544 inodes
Filesystem UUID: 8d0ee6f4-ffbe-4f05-b5f1-ab85daa822d8
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

5 创建挂载目录并挂载逻辑卷,查看挂载情况

#创建挂载点并设置成开机自动挂载
[root@CentOS8 mnt]# mkdir /mnt/lv0
#设置开机自动挂载,可使用文件名,也可使用UUID
#方式1:文件名挂载
[root@CentOS8 mnt]# echo "/dev/vg0/lv0 /mnt/lv0    ext4    default  0 0" >> /etc/fstab

#方式2:UUID挂载
#获取UUID
[root@CentOS8 mnt]# blkid /dev/vg0/lv0
/dev/vg0/lv0: UUID="8d0ee6f4-ffbe-4f05-b5f1-ab85daa822d8" TYPE="ext4"
[root@CentOS8 mnt]# echo "UUID=8d0ee6f4-ffbe-4f05-b5f1-ab85daa822d8 /mnt/lv0    ext4    default  0 0" >> /etc/fstab

#手动挂载
[root@CentOS8 mnt]# mount -a
[root@CentOS8 mnt]# df -h

6 拷贝部分内容到挂载目录中,并查看挂载目录的中内容

[root@CentOS8 ~]# cp /etc/* /mnt/lv0; ls /mnt/lv0

扩展逻辑卷

分两种情况
1 VG 有足够的空间可直接扩展LV(逻辑卷)
2 VG 没有足够的空间,先扩展VG,然后扩展LV
以下演示是第二种情况,VG没有足够的空间

1 增加硬盘,创建物理卷

#创建硬盘后,系统识别
[root@CentOS8 ~]# for i in /sys/class/scsi_host/host*/scan;do echo "- - -" > $i;done

#创建物理卷
[root@CentOS8 ~]# pvcreate /dev/sdc

2 扩展已有的卷组

#查看已有的卷组,选择要扩展的卷组
[root@CentOS8 ~]# vgdisplay
#扩展卷组 vg0
[root@CentOS8 ~]# vgextend vg0 /dev/sdc

3 扩展逻辑卷

#-L size:表示扩展到LV 逻辑卷中的总容量大小;-L +size:表示在原基础上增加的容量大小
[root@CentOS8 ~]# lvextend -L +5G /dev/vg0/lv0

4 给新增的pe空间创建文件系统,否则该空间不生效

#ext4 使用命令resize2fs xfs 使用xfs_growfs
[root@CentOS8 ~]# resize2fs /dev/vg0/lv0
[root@CentOS8 ~]# xfs_growfs /dev/vg0/lv0

注意:扩展空间的文件系统必须跟原逻辑卷保持一致

可将步骤3 和步骤4 合并,一步实现

#-r 创建与原逻辑卷相同的文件系统
[root@CentOS8 ~]# lvextend -L +5G -r /dev/vg0/lv0

缩减逻辑卷

注意:1 缩减有风险,建议先备份再缩减;2 xfs 文件系统不可缩减

1 取消逻辑卷的挂载

[root@CentOS8 ~]# umount /mnt/lv0

2 检测文件系统完整性(必做,不做系统也会强制要求做,否则无法缩减)

[root@CentOS8 ~]# fsck -f /dev/vg0/lv0

3 缩减文件系统

[root@CentOS8 ~]# resize2fs /dev/vg0/lv0 1G

4 缩减逻辑卷

[root@CentOS8 ~]# lvreduce -L 1G /dev/vg0/lv0

5 挂载原文件

[root@CentOS8 ~]# mount -a

拆除卷组中指定的PV存储设备

需确保同卷组有足够的PE空间

假设需拆除的是/dev/sdc 中的逻辑卷

1备份数据并取消挂载

[root@CentOS8 ~]# cp /dev/vg0/lv0/* /tmp/backup
[root@CentOS8 ~]# umount /mnt/lv0

2 将当前需拆除逻辑卷中被占用的PE空间内容移动到同卷组的PE空间中

[root@CentOS8 ~]# pvmove /dev/sdc

3 从卷组中移除

[root@CentOS8 ~]# vgreduce vg0 /dev/sdc

4 从PV中移除

[root@CentOS8 ~]# pvremeove /dev/sdc

跨主机迁移逻辑卷(数据保留)

现有两个分区,分别是/dev/sdb、/dev/sdc。都有逻辑卷,现需将sdb 迁移到其他主机中

1 将逻辑卷中所有使用的PE空间移动到同一个磁盘(被迁移)中

#将/dev/sdc 中的逻辑卷迁移到/dev/sdb 中
[root@CentOS8 ~]# pvmove /dev/sdc

2 修改被迁移磁盘中的卷组名称,逻辑卷名称(防止其他主机中存在出现重名)

注意:实际修改的是软链接的名称,通过 ll 命令查看

[root@CentOS8 ~]# vgrename vg0 centos8vg0
[root@CentOS8 ~]# lvrename /dev/centos8vg0/lv0 /dev/centos8vg0/centos8lv0

[root@CentOS8 ~]# ll /dev/centos8vg0/centos8lv0
lrwxrwxrwx 1 root root 7 Aug 20 11:27 /dev/centos8vg0/centos8lv0 -> ../dm-0

3 取消挂载

[root@CentOS8 ~]# umount /mnt/lv0

4 禁用卷组

[root@CentOS8 ~]# vgchange -an centos8vg0

5 导出卷组

[root@CentOS8 ~]# vgexport centos8vg0

6 关机拔出磁盘(虚拟机中,找到对应的vmdk文件,将该文件复制)

7 将磁盘插入到新主机(虚拟机中,将复制的文件新增到该主机中)

8 识别硬盘

[root@CentOS8 ~]# for i in /sys/class/scsi_host/host*/scan;do echo "- - -" > $i;done

9 导入卷组

[root@CentOS8 ~]# vgimport centos8vg0

10 启用卷组

[root@CentOS8 ~]# vgchange -ay centos8vg0

11 创建挂载点,挂载即可

[root@CentOS8 ~]# mkdir /mnt/centos8lv0
[root@CentOS8 ~]# mount /dev/centos8vg0/centos8lv0 /mnt/centos8lv0

删除逻辑卷

1 备份好数据后,取消逻辑卷的挂载,删除持久化配置文件中对应的条目

[root@CentOS8 ~]# umount /mnt/lv0
[root@CentOS8 ~]# vim /etc/fstab

2 删除LV逻辑卷设备

#查看lv逻辑卷信息
[root@CentOS8 ~]# lvs

#依次删除当前卷组的逻辑卷
[root@CentOS8 ~]# lvremove /dev/vg0/lv0
Do you really want to remove active logical volume vg0/lv0? [y/n]: y
  Logical volume "lv0" successfully removed

3 删除VG卷组

[root@CentOS8 ~]# vgremove /dev/vg0
  Volume group "vg0" successfully removed

4 删除物理卷

[root@CentOS8 ~]# pvremove /dev/sdb1
  Labels on physical volume "/dev/sdb1" successfully wiped.

5 检查

[root@CentOS8 ~]# lvdisplay
[root@CentOS8 ~]# vgdisplay
[root@CentOS8 ~]# pvdisplay

如果都没有之前删除的逻辑卷信息,说明操作正确

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值