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   运维开发玄德公  阅读(23)  评论(0编辑  收藏  举报  

相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示