03-LV-逻辑卷

@

1. 相关命令

作用 pv(物理卷) vg(卷组) lv(逻辑卷)
创建 pvcreate vgcreate lvcreate
扫描更改 pvscan vgscan lvscan
基本信息 pvs vgs lvs
详细信息 pvdisplay vgdisplay lvdisplay
扩展 —— vgextend lvextend
删除 pvremove vgremove lvremove
修改 —— vgchange lvchange
缩小 —— —— lvreduce

2. 创建lv

1)创建pv

# pvcreate /dev/vdb

2)创建vg

# vgcreate vg01 /dev/vdb /dev/vdc ……

3)创建lv

# lvcreate -L 1G -n lv01 vg01
  • 说明:
  • -L 指定分配给 lv空间大小。
  • -l PE数量,默认4M。
    vg是多个PE(块)组成的,而且每个vg块的PE最大数量是65534。查看PE可用pvdisplay。
  • -n, 指定lv名。

4)验证

#lvscan

5)格式化

# mkfs.ext4 /dev/vg01/lv01

等同于

# mkfs.ext4 /dev/mapper/vg01-lv01

6)挂载(见“linux基础-挂载”)

3. 扩展lv

1)扩展vg

# vgextend vg01 /dev/vdd

2)扩展lv

  • 给lv添加指定大小空间
# lvextend -L +1G /dev/vg01/lv01
  • 将vg的资源都给指定lv
# lvextend -l 100%vg /dev/vg01/lv02

或者

# lvcreate -l 100%vg -n ${lv_name} ${vg_name}

3)刷新

不刷新lvs命令可见扩容结果,但是df -Th 看不见。

# resize2shfs /dev/vg01/lv01
  • 如果格式化的时候是xfs格式(比如centos的根目录),使用如下命令:
xfs_growfs /dev/centos/root

4. lv 快照

1)创建快照

# lvcreate -L 100M -s -n lv01_snap /dev/vg01/lv01

2)快照自动增长

# vim /etc/lvm/lvm.conf
snapshot_autoextend_threshold=70
snapshot_autoextend_percent=50

# service lvm2-monitor start

5. 改名

  • 语法
    # lvrename /dev/vg名/旧lv名 新lv名
  • 示例
# lvrename /dev/storage/pv_storage lv_storage

示例:见【备份服务器添加lv】第三步

6. FAQ

6.1 lv为xfs的格式时刷新

如系统盘的跟目录挂载为/,格式化方式为 xfs。

【报错】

不能用resize2shfs 刷新分区,因为它使用的是ext4,报错结果如下:

[root@vc-dev02 overlay2]# resize2fs /dev/centos/root
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: Bad magic number in super-block 当尝试打开 /dev/centos/root 时

【解决】

需要用xfs_growfs命令刷新

# xfs_growfs /dev/mapper/centos-root

7. 挂载脚本

用指定磁盘创建lv并挂载到目录

#!/bin/bash
############# 定义变量 ##########################
time_stamp=`date +%s`
echo "已有磁盘信息如下:"
fdisk -l |grep -e "/dev/sd" -e "/dev/vd"
read -p "请输入要挂载的磁盘(如:/dev/sdb) "  sd_name
if [ -z "${sd_name}" ]
  then
    sd_name="/dev/sdb"
fi

read -p "请输入磁盘要挂载位置的全路径(默认/data)" dir_name
if [ -z "${dir_name}" ]
  then
    dir_name=/data
fi


echo " ###### [ create pv ] ########### "
pvs
pvcreate ${sd_name}
pvs

echo " ############### create vg #################"
echo "目前vg信息如下:"
vgs
read -p  "请输入新vg名 (如:vg01) 1)不能和已有vg名重复  2) 直接回车默认 vg+时间戳 : " vg_name
if [ -z "${vg_name}" ]
  then
    vg_name=vg${time_stamp}
fi

vgcreate ${vg_name} ${sd_name}

echo "############# create lv #########################"
echo "目前lv信息如下:"
lvs
read -p  "请输入新lv名 (如:lv01) 1)不能和已有lv名重复  2) 直接回车默认 lv+时间戳 : " lv_name
if [ -z "${lv_name}" ]
  then
    lv_name=lv${time_stamp}
fi
lvcreate -l 100%vg -n ${lv_name} ${vg_name}

echo "############# 格式化 pv  #########################"
mkfs.ext4 /dev/${vg_name}/${lv_name}


echo "############# 挂载磁盘 #########################"
mkdir ${dir_name} -p
mount  /dev/${vg_name}/${lv_name} ${dir_name}

uuid=`blkid|grep ${vg_name}-${lv_name} |awk -F \" '{print $2}'`
echo "UUID=${uuid}      ${dir_name}     ext4    defaults        0 0" >> /etc/fstab

df -Th|grep ${dir_name}

posted on 2021-09-16 10:51  运维开发玄德公  阅读(21)  评论(0编辑  收藏  举报  来源

导航