lvm扩容和脚本实现

一、linux磁盘和磁盘管理

linux一切皆文件,linux中的磁盘是以设备文件的形式展示出来的

1、设备文件的名称

linux磁盘设备文件的访问标识:/dev/[s|h]d[a-z][1-n]
	# [s|h]:磁盘设备接口类型  [a-z]:磁盘的编号  [1-n]:分区标号

2、常用命令:df du fdisk lsblk mkfs

# df命令  查看文件系统的使用情况
[root@lihu-test ~]# df -Th
#文件系统名字             类型       大小   使用  剩余  使用率 挂载在哪个文件
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/centos-root xfs        96G  2.5G   93G   3% /
devtmpfs                devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs                   tmpfs     1.9G     0  1.9G   0% /dev/shm
tmpfs                   tmpfs     1.9G  8.6M  1.9G   1% /run
tmpfs                   tmpfs     1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/sda1               xfs       509M  182M  328M  36% /boot
tmpfs                   tmpfs     379M     0  379M   0% /run/user/0
# du命令 查看文件、文件夹的大小
du -sh # 常用选项搭配
# fdisk 查看磁盘情况、磁盘分区
# lsblk 查看linux中的磁盘,文件系统
# mkfs  格式化
二、LVM

​ LVM-逻辑卷管理,是linux环境下对磁盘分区进行管理的一种机制。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,LVM可以让用户在无需停机的情况下方便的调整各个分区的大小

LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的存储卷。在存储卷上建立文件系统

相关术语解释
物理存储介质系统设备,磁盘:/dev/sda、/dev/sdb。
物理卷(PV)LVM的基本存储逻辑块,包含了LVM相关的管理参数
卷组(VG)由一个或多个物理卷PV组成,可以在VG上创建逻辑卷
逻辑卷(LV)创建在VG上,在逻辑卷上可以建立文件系统
物理块(PE)每一个物理卷PV被划分为PE,是PV的基本单元,PE默认大小为4MB,可修改

从一块磁盘到逻辑卷需要:创建磁盘分区->创建物理卷、卷组,并在卷组中添加物理卷->创建逻辑卷->格式化逻辑卷->挂载

三、实操

​ 实验环境:linux 20G磁盘

​ 实验目的:先创建一个10G和一个5G的逻辑卷,然后给10G的扩容成10G

1、创建磁盘分区 — fdisk

​ 为了使磁盘分区具有LVM功能,磁盘分区类型需要为8e

​ 1个扇区为512字节,2个扇区1kb,2048扇区为1Mb。

​ 对于已经创建的分区也可以修改其分区类型。

2、创建物理卷 — pvcreate

pvcreate  /dev/sdb1  # /dev/sdb1为作为物理卷的磁盘分区

​ 其他PV相关命令

​ pvdisplay:查看详细物理卷信息

​ pvchange:修改pv的属性

​ pvs:查看所有物理卷

3、创建卷组 — vgcreate

vgcreate data /dev/sdb1   # vgcreate [卷组名字] [物理卷]	

​ 给卷组添加PV

vgextend data /dev/sdb2   # vgextend [卷组名字] [物理卷]

​ 其他vg相关命令

​ vgrename:vg重命名

​ vgs:查看所有卷组

​ --units:设置显示空间大小的单位 M/G等

4、创建逻辑卷 — lvcreate

lvcreate -L 10G -n data_part1 data # 在data卷组上创建大小为10G的逻辑卷,名字为data_part1

​ -L:指定大小 -n 指定名字

​ 其他lv相关命令:

​ lvextend:lv扩容 -L指定大小 参数为lv名字

(base) [root@lihu-test ~]# lvextend -L +3G /dev/data/data_part1 
  Size of logical volume data/data_part1 changed from 10.00 GiB (2560 extents) to 13.00 GiB (3328 extents).
  Logical volume data/data_part1 successfully resized.

​ lvreduce:减少lv大小

(base) [root@lihu-test ~]# lvreduce -L -3G /dev/data/data_part1 
  WARNING: Reducing active logical volume to 11.99 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce data/data_part1? [y/n]: y
  Size of logical volume data/data_part1 changed from 14.99 GiB (3838 extents) to 11.99 GiB (3070 extents).
  Logical volume data/data_part1 successfully resized.

5、格式化逻辑卷和挂载 — mkfs mount

 mkfs.xfs /dev/data/data_part1  # 格式化
mount /dev/data/data_part1 data_part/  # 挂载

6、扩容逻辑卷

​ 使用lvextend命令去进行扩容

四、简单的脚本实现
#! /bin/bash
re="y"
echo “开始磁盘扩容”
# echo $lvm_name
while [ "$re" == "y" ]
do
    lvs
    read -p "(依次输入需要扩容的lvm系统和添加的大小G:)"  lvm_name size_add
    # 根据lvm找到对于的vg
    vg_name=$(lvs|grep "$lvm_name "|awk '{print $2}')
    echo $vg_name
    if [ "$vg_name" == "" ];
    then
        echo "没找到这个逻辑卷,请核对后重新输入"
        continue
    fi
    # echo $vg_name
    # 查看vg剩余容量,输出,并对比
    free_size=$(vgs --units G|grep "$vg_name "|awk '{print $7}')
    echo $vg_name"剩余"$free_size
    free_size=$(echo $free_size | sed 's/[a-zA-Z]//' | awk -F '.' '{print $1}')
    echo $free_size $size_add
    if [ $size_add -le $free_size ];
    then
        lvextend -L +$size_add'G' /dev/$vg_name/$lvm_name
    else
        echo "vg剩余空间不足"
        continue
    fi
    re="n"
done
lvs
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值