LVM操作

news/2024/12/26 16:30:27/文章来源:https://www.cnblogs.com/xulinforDB/p/18633428

1. LVM操作

目录
  • 1. LVM操作
    • 1.1. LVM介绍
      • 1.1.1. LVM - 优点
    • 1.2. 基本概念
      • 1.2.1. 1.物理卷-----PV(Physical Volume)
      • 1.2.2. 2.卷组--------VG(Volumne Group)
      • 1.2.3. 3.逻辑卷-----LV(Logical Volume)
      • 1.2.4. 4.物理区域--PE(Physical Extent)
      • 1.2.5. 5.逻辑区域―LE(Logical Extent)
      • 1.2.6. 6.卷组描述区域-----(Volume Group Descriptor Area)
    • 1.3. 常用命令
      • 1.3.1. 磁盘扫描
      • 1.3.2. 创建LVM磁盘
        • 1.3.2.1. 分区
        • 1.3.2.2. 创建物理卷PV
        • 1.3.2.3. 创建卷组VG,用于管理PV以及LV
        • 1.3.2.4. 创建好了卷组之后,下面就要创建逻辑卷(LV)
        • 1.3.2.5. 格式化并挂载目录
        • 1.3.2.6. 设置磁盘开机自动挂载(配置/etc/fstab文件)
      • 1.3.3. 扩盘操作
        • 1.3.3.1. 1.查看需要扩盘的分区和已存在的PV
        • 1.3.3.2. 2.将分区创建为PV
        • 1.3.3.3. 3.扩容VG
        • 1.3.3.4. 4.扩容LV
      • 1.3.4. 磁盘缩容
      • 1.3.5. swap扩容操作
    • 1.4. 常用命令
      • 1.4.1. 1.物理卷命令
      • 1.4.2. 2.卷组命令
      • 1.4.3. 3.逻辑卷命令
      • 1.4.4. 4.逻辑卷管理命令

1.1. LVM介绍

LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制

1.1.1. LVM - 优点

LVM通常用于装备大量磁盘的系统,但它同样适于仅有一、两块硬盘的小系统。

小系统使用LVM的益处:
传统的文件系统是基于分区的,一个文件系统对应一个分区。这种方式比较直观,但不易改变:

1.不同的分区相对独立,无相互联系,各分区空间很易利用不平衡,空间不能充分利用;
2.当一个文件系统/分区已满时,无法对其扩充,只能采用重新分区/建立文件系统,非常麻烦;或把分区中的数据移到另一个更大的分区中;或采用符号连接的方式使用其它分区的空间。
3.如果要把硬盘上的多个分区合并在一起使用,只能采用再分区的方式,这个过程需要数据的备份与恢复。

当采用LVM时,情况有所不同:

1.硬盘的多个分区由LVM统一为卷组管理,可以方便的加入或移走分区以扩大或减小卷组的可用容量,充分利用硬盘空间;
2.文件系统建立在逻辑卷上,而逻辑卷可根据需要改变大小(在卷组容量范围内)以满足要求;
3.文件系统建立在LVM上,可以跨分区,方便使用;

大系统使用LVM的益处:

1、在使用很多硬盘的大系统中,使用LVM主要是方便管理、增加了系统的扩展性。2、在一个有很多不同容量硬盘的大型系统中,对不同的用户的空间分配是一个技巧性的工作,要在用户需求与实际可用空间中寻求平衡。3、用户/用户组的空间建立在LVM上,可以随时按要求增大,或根据使用情况对各逻辑卷进行调整。当系统空间不足而加入新的硬盘时,不必把用户的数据从原硬盘迁移到新硬盘,而只须把新的分区加入卷组并扩充逻辑卷即可。同样,使用LVM可以在不停服务的情况下。把用户数据从旧硬盘转移到新硬盘空间中去。

1.2. 基本概念

1.2.1. 1.物理卷-----PV(Physical Volume)

物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘。

1.2.2. 2.卷组--------VG(Volumne Group)

卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。

1.2.3. 3.逻辑卷-----LV(Logical Volume)

逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷要以属于同一个卷组,也可以属于不同的多个卷组。

1.2.4. 4.物理区域--PE(Physical Extent)

物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小可根据实际情况在建立物理卷时指定。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一致。

1.2.5. 5.逻辑区域―LE(Logical Extent)

逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。

1.2.6. 6.卷组描述区域-----(Volume Group Descriptor Area)

卷组描述区域存在于每个物理卷中,用于描述物理卷本身、物理卷所属卷组、卷组中的逻辑卷及逻辑卷中物理区域的分配等所有信息,卷组描述区域是在使用pvcreate建立物理卷时建立的。

1.3. 常用命令

1.3.1. 磁盘扫描

方法1:
安装如下工具
使用rescan-scsi-bus.sh工具扫盘(目的检测新磁盘):

yum install sg3_utils

方法二:
直接通过脚本执行扫描(脚本详情参考rescan-scsi-bus-linux扫盘.sh)

rescan-scsi-bus.sh

扫描磁盘:(root用户下执行)

rescan-scsi-bus.sh

1.3.2. 创建LVM磁盘

1.3.2.1. 分区

创建LVM磁盘的磁盘可以有两种:

  • 未分区的磁盘
  • 分区过后的磁盘

1.查看添加的硬盘是否存在。

fdisk -l |grep dev

2.进入分区工具设置,设置为lvm格式。
fdisk方式创建分区

#创建新的分区
fdisk /dev/sdb
n   新增一个分区
1   分区编号1
p   查看分区信息
w   保存#设置为lvm格式
fdisk /dev/sdb
p   查看分区信息
t   修改分区格式
8e  设置为8e
p   查看分区信息
w    保存

2T以上的磁盘,part方式分区
part方式分区:

#创建分区名称为p1的磁盘分区
parted -s /dev/sdb mklabel gpt mkpart p1 ext3 1 100%
parted /dev/sdb mklabel gpt mkpart 1 ext4 1 100%
parted /dev/sdb mklabel gpt mkpart 1 ext3 1 2.6T#格式化分区
mkfs.ext4 /dev/sdb1
mkfs.xfs /dev/sdb1

1.3.2.2. 创建物理卷PV

#先查看磁盘
fdisk -l | grep dev#查看PV
pvs
pvdisplay#创建PV(/dev/sdb和/dev/sdb1为新建的PV的名称)
pvcreate /dev/sdb
或者
pvcreate /dev/sdb1

删除PV

pvremove /dev/sdb

1.3.2.3. 创建卷组VG,用于管理PV以及LV

#查看VG
vgs
vgdisplay#创建VG(vgdata 为新建的VG名称,/dev/sdb为pv名称)
vgcreate vgdata /dev/sdb

删除PV

vgremove vgdata

1.3.2.4. 创建好了卷组之后,下面就要创建逻辑卷(LV)

#查看帮助
lvcreate --help#查看LV
lvs
lvdisplay#将整个盘扩到LV(data LV名,vgdata vg的名称)
lvcreate -l 100%VG -n data vgdata#创建1.63T的LV(data LV名,vgdata vg的名称)
lvcreate -L 1.63t -n data vgdata**删除LV**
lvremove data

1.3.2.5. 格式化并挂载目录

执行lvdisplay查看逻辑卷信息,获取逻辑卷LV的Path
格式化

ext4格式磁盘格式化:(/dev/vgdata/data  为lvdisplay中的 LV Path)
mkfs.ext4 /dev/vgdata/dataxfs格式磁盘格式化:
mkfs -t xfs /dev/vgdata/data
或者:
mkfs.xfs /dev/vgdata/data

挂载(/dev/vgdata/data 为lvdisplay中的 LV Path)

mount /dev/vgdata/data /data

1.3.2.6. 设置磁盘开机自动挂载(配置/etc/fstab文件)

挂载指定的名称(/dev/mapper/vgdata-data 可以通过df -h 查看或者直接使用LV Path(/dev/vgdata/data)

vi /etc/fstab
#xfs
/dev/mapper/vgdata-data               /data            xfs     rw,noatime,inode64,allocsize=16m        1 2
/dev/mapper/vgdata-data               /data            xfs     rw,noatime        1 2#ext4:
/dev/mapper/vgdata-data        /data                   ext4    defaults        1 2

1.3.3. 扩盘操作

1.3.3.1. 1.查看需要扩盘的分区和已存在的PV

fdisk -l |grep dev
pvs

将/dev/sdc用于扩盘
通常不用将sdc分区,直接创建pv

1.3.3.2. 2.将分区创建为PV

pvcreate /dev/sdc    #sdc为分区名

查看划分的PV盘的大小

pvs
pvdisplay 

1.3.3.3. 3.扩容VG

vg的扩容有两种方式:
方法一:VG 没有使用完
vgs查看是否有空余空间,没有的话需要添加磁盘(pv盘),和vg名称,这里是vgdata
如果有VG有剩余空间:(直接执行下面的扩命令)

#将LV扩容1G
lvextend -L +1GB /dev/mapper/vgdata-data

方法二:将新建的PV加入VG
如何空间不足的话执行如下的命令,将新的pv键入到VG中

将名为/dev/sdc的PV加入名为 vgdata中(vgdata通过vgs或者vgdisplay查看)
vgextend vgdata /dev/sdcvgdata;需要扩容的vg
/dev/sdc1: 新建的PV名称

1.3.3.4. 4.扩容LV

简化步骤

1.将分区创建为PV
pvcreate /dev/sdc2.选择PV加入到VG
vgextend vgdata /dev/sdc3.扩容LV
lvextend -l +100%FREE /dev/mapper/vgdata-data /dev/sdc4.重新调整分区大小
xfs_growfs  /dev/mapper/vgdata-data6.查看扩容是否成功df -h

1.将新的VG全部加入到LV中

lvextend -l +100%FREE /dev/mapper/vgdata-data/dev/mapper/vgdata-data :vg名称(这个名字通过df -h查看得到)

2.只扩展5G

lvextend -L +5G /dev/mapper/vgdata-data

3.或者按百分比扩展

lvextend -l +30%FREE /dev/mapper/vgdata-data

4.检查逻辑卷

e2fsck -f /dev/mapper/vgdata-data

5.重新调整分区大小

EXT4
重新加载逻辑卷,使LV扩容生效(会有点慢)
resize2fs  /dev/mapper/vgdata-dataxfs
// 执行调整
xfs_growfs  /dev/mapper/vgdata-data

6.查看扩容是否成功

df -h

1.3.4. 磁盘缩容

lvreduce 缩容,不可“在线”操作 lv1:3GB-->1GB
1.卸载文件系统

umount /lv1/

2.查看是否成功卸载

mount |grep lv1|wc -l

3.查看当前lv1 状态

lvs |grep lv1

4.进行磁盘检查

e2fsck -f /dev/vg0/lv1

5.调整文件系统

resize2fs /dev/vg0/lv1 1G

6.查看lv1 大小,未变

lvs |grep lv1

7.通过lvduce命令进行缩容

lvreduce -L 1GB /dev/vg0/lv1

8.再次查看lv1大小,减少

lvs |grep lv1

9.重新挂载

mount /dev/vg0/lv1  /lv1/

10.查看当前状态

df -H |grep lv1

1.3.5. swap扩容操作

1.查看swap分区

swapon -s

2.关闭swap

swapoff -a

3.扩容

lvextend -L 32G /dev/centos/swap

4.格式化

mkswap 

5.打开sapw

swapon -a

6.查看

free -g

1.4. 常用命令

1.4.1. 1.物理卷命令

一般维护命令:

pvscan #在系统的所有磁盘中搜索已存在的物理卷
pvdisplay 物理卷全路径名称 #用于显示指定物理卷的属性。
pvdata 物理卷全路径名称 #用于显示物理卷的卷组描述区域信息,用于调试目的。
pvchange Cx|--allocation {y|n} 物理卷全路径名 #用于改变物理卷的分配许可设置物理卷的创建与删除命令
pvcreate 设备全路径名 #用于在磁盘或磁盘分区上创建物理卷初始化信息,以便对该物理卷进行逻辑卷管理。
pvmove 源物理卷全路径我[目的物理卷全路径名] #用于把某物理卷中的数据转移到同卷组中其他的特刊卷中。

1.4.2. 2.卷组命令

一般维护命令

vgscan #检测系统中所有磁盘
vgck [卷组名] #用于检查卷组中卷组描述区域信息的一致性。
vgdisplay [卷组名] #显示卷组的属性信息
vgrename 原卷组名 新卷组名
vgchange -a y|n [卷组名] #改变卷组的相应属性。是否可分配
vgchange -l 最大逻辑卷数 #卷组可容纳最大逻辑卷数
vgchange -x y|n [卷组名] #卷是否有效
vgmknodes [卷组名|卷组路径] #用于建立(重新建立)已有卷组目录和其中的设备文件卷组配置的备份与恢复命令
vgcfgbackup [卷组名] #把卷组中的VGDA信息备份到“/etc/lvmconf”目录中的文件
vgcfgrestore -n 卷组名 物理卷全路命名 #从备份文件中必得指定物理卷的信息卷组的建立与删除命令
vgcreate 卷组名 物理卷全路径名[物理卷全路径名]
vgmove 卷组名

卷组的扩充与缩小命令

vgextend 卷组名 物理卷全路径名[物理卷全路径名]
vgreduce 卷组名 物理卷全路径名[物理卷全路径名]

卷组的合并与拆分

vgmerge 目的卷组名 源卷组名 #合并两个已经存在的卷组,要求两个卷组的物理区域大小相等且源卷组是非活动的。
vgsplit 现有卷组 新卷组 物理卷全路径名[物理卷全路径名]

卷组的输入与输出命令

vgexport 卷组名
vgimport 卷组名 卷组中的物理卷[卷组中的物理卷]

1.4.3. 3.逻辑卷命令

一般命令

lvscan
lvdisplay 逻辑卷全路径名[逻辑卷全路径名]
lvrename 旧逻辑卷全路径名 新逻辑卷全路径名
lvrename 卷组名 旧逻辑卷名 新逻辑卷名
lvchange
e2fsadm -L +|- 逻辑卷增减量 逻辑卷全路径名

逻辑卷的创建与删除命令

lvcreate
lvremove

逻辑卷的扩充与缩小命令

lvextend -L|--size +逻辑卷大小增量 逻辑卷全路径名
lvreduce q -L|--size +逻辑卷减小量 逻辑卷全路径名

1.4.4. 4.逻辑卷管理命令

lvmdiskscan #检测所有的SCSI、IDE等存储设备
lvmchange -R|--reset #复位逻辑卷管理器
lvmsadc [日志文件全路径名] #收信逻辑卷管理器读写统计信息,保存到日志文件中。
lvmsar 日志文件全路径名 #从lvmsadc命令生成的日志文件中读取并报告逻辑卷管理器的读写统计信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/859350.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Centos7创建LVM磁盘管理

Centos7创建LVM磁盘管理 2019-06-02阅读 3840 环境介绍 在centos7下需要挂载两个新的磁盘。为了方便后续的扩容方便,决定将这其设置为LVM管理的方式。 查看一下当前有哪些新增的数据盘,如下: [root@runsdata-test-0004 ~]# df -h Filesystem Size Used Avail Use% Mou…

iostat命令详解

iostat命令详解 简介 iostat主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。 iostat可以提供更丰富的IO性能状态数据,i…

学习笔记(四十九):Text常用场景

1、设置文本断行及折行Text(this.content).fontSize(14).textAlign(TextAlign.End).textOverflow({ overflow: TextOverflow.Ellipsis }).wordBreak(WordBreak.BREAK_WORD).maxLines(this.contentMaxLine) 作者:听着music睡出处:http://www.cnblogs.com/xqxacm/Android交流群…

VS2022 + OpenSSL 3.0实现DES、AES、RSA加密

​ 一、DES加密 #include <openssl/des.h> #include <cstdio> #include <iostream> #include <cstdlib> #include <iomanip> #define MAX_LINE 1024 #pragma warning(disable : 4996)using namespace std;signed main() {const_DES_cblock key …

SARscape洪水分类工具使用说明

SARscape6.1新增洪水分类工具,可以从多时相SAR数据提取洪水信息。工具主要使用了模糊分类技术——模糊C均值分类器(FCM),可加入坡度参数去除阴影的影响。 本文以洪水前后哨兵1数据为例,介绍洪水分类工具的使用。如下图为洪水发生前后两期已经经过预处理的后向散射系数图像…

汽车以旧换新政策的数字化协同解决方案

随着《汽车以旧换新补贴政策》的落地实施,汽车市场迎来了新的增长机遇。政策驱动与市场竞争的双重压力下,如何在短时间内整合资源、抢占市场先机,成为汽车经销商和销售团队的共同挑战。借助在线协同工具,企业能够打破部门与组织边界,实现从政策到执行全流程的高效管理,为…

36MT160-ASEMI开关电源整流方桥36MT160

36MT160-ASEMI开关电源整流方桥36MT160编辑:ll 36MT160-ASEMI开关电源整流方桥36MT160 型号:36MT160 品牌:ASEMI 封装:D-63 特性:插件整流方桥 正向电流:35A 反向耐压:1600V 恢复时间:>2000ns 引脚数量:5 芯片个数:4 芯片尺寸:50MIL 浪涌电流:500A 漏电流:>10…

java8--方法--格式化输出--printf

System.out.printf("%,.2f",10000.0 / 3.0); 效果图:ps: 在分隔符后可以指定字符串长度 System.out.printf("%,10.2f",10000.0 / 3.0); 效果图:

JDBC核心6步

1JDBC简介 java DataBase Connectivity,又称java数据库连接是独立于任何数据库管理系统的api java提供接口规范,由各个数据库厂商提供接口的实现,厂商提供的实现封装成jar文件,也就是我们俗称的数据库驱动jar包 学习JDBC,充分体现了面向接口编程的好处2.JDBC核心6步 1.注册…

【python应用】基于 Python 的远程管理工具:PyChi 远程管理系统

一、引言 在现代 IT 环境中,远程管理工具是开发者和运维人员必不可少的利器。本文将为大家介绍一个基于 Python 构建的多功能远程管理工具 PyChi,它能够让你轻松地对远程客户端进行管理操作,包括文件管理、系统命令执行、截图、录音等功能。二、软件简介 PyChi 是一个基于异…

Hexo-Github-pages-实现个人博客

Hexo + Github pages 实现个人博客 一、过程总览和回顾 我是新手,2024/12/21号尝试着自己搭建自己的个人博客网站,起初是只想着在自己本地电脑环境上搭建 一开始使用了Hugo,据说是世界上最快的静态网页生成器,但是捣鼓了一个下午,无功而返第一个原因:阅读官方文档不够仔细…

AI智能分析视频分析网关热知识:视频分析技术如何帮助提升城市公共安全?

城市公共安全是社会发展的重要基础,而视频分析技术的应用为提升这一领域的效率和效果提供了强有力的支持。随着城市化进程的加快,公共安全面临的挑战日益增多,如何有效监控和管理城市环境中的安全隐患,已成为城市管理者亟待解决的问题。接下来,我们将详细探讨视频分析技术…