Linux 逻辑卷

news2024/10/7 18:29:16

目录

一、认识

1、概念

2、术语:

1)物理存储设备

2)物理卷

3)卷组

4)PE物理区域

5)逻辑卷

6)LE逻辑区域

7)VGDA卷组描述符区域

二、部署逻辑卷

1、物理卷管理 

2、卷组管理 

3、逻辑卷管理 

三、管理交换分区

1、命令

2、方式:

方式一

方式二 


一、认识

LVM是 Logical Volume Manager(逻辑卷管理)的简写,LVM将若干个磁盘或者磁盘分区连接为一个整块的卷组,形成一个存储池。管理员可以在卷组上任意创建逻辑卷,并进一步在逻辑卷上创建文件系统。 管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配。

1、概念

通过LVM技术,屏蔽了磁盘分区的底层差异,在逻辑上给文件系统提供了一个卷的概念,然后在这些卷 上建立相应的文件系统

2、术语:

1)物理存储设备

        ——系统的存储设备文件,如:/dev/hda1、/dev/sda

2)物理卷

        ——简称PV(physical volume),物理卷可以是整个硬盘、硬盘分区或从逻辑上与磁盘分区 具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘 等)比较,却包含有与LVM相关的管理参数。

3)卷组

        ——简称VG(Volume Group),可以看成单独的逻辑磁盘,建立在PV之上,一个卷组中至少 要包括一个PV,在卷组建立之后可以动态的添加PV到卷组中。卷组的名称可以自定义。

4)PE物理区域

        ——物理区域(physical extent)是物理卷中可用于分配的最小存储单元,物理区域的 大小默认为4MB。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一 致。

5)逻辑卷

        ——简称LV(logical volume),相当于物理分区。逻辑卷建立在卷组之上,卷组中的未分配 空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态的扩展或缩小空间。系统中的多个逻辑卷,可以 属于同一个卷组,也可以属于不同的多个卷组。

6)LE逻辑区域

        ——逻辑区域(logical extent)是逻辑卷中可用于分配的最小存储单元,逻辑区域的大 小取决于逻辑卷所在卷组中的物理区域大小。LE的大小和PE的大小一样。

7)VGDA卷组描述符区域

        ——和非LVM系统将包含分区信息的 元数据保存在位于分区的起始位置的分区表中一样,逻辑卷以及卷组相关的元数据也是保存在位于物理 卷起始处的卷组描述符区域中。VGDA包括以下内容:PV描述符、VG描述符、LV描述符和一些PE描述符。

二、部署逻辑卷

常见的LVM部署命令如图:

扩容思路:

  1. 给vg进行扩容/缩减(vgextend/vgreduce)

  2. 给lv进行扩容/缩减(lvextend/lvreduce)

  3. lv虽然扩展了,但是建立在其上的文件系统需要再单独扩展,xfs需要使用xfs_growfs命令扩展(xfs不支持缩减),ext4支持扩容及缩减使用的命令时resize2fs。

    lv扩容的前提是 vg有足够的空间可以挪给lv。

    vg缩减,前提有未分配的空间可以用于缩减。  

1、物理卷管理 

[root@localhost ~]# pvcreate /dev/nvme0n2p1    # 创建物理卷pv
[root@localhost ~]# pvs                        # 查看pv,详细查看使用pvdisplay

2、卷组管理 

[root@localhost ~]# vgcreate RedHat /dev/nvme0n2p{1,2}      # 创建vg
[root@localhost ~]# vgcreate -s 1G RedHat /dev/nvme0n2p{1,2}      # -s 指定PE大小
[root@localhost ~]# vgs                                     # 查看vg

# 扩展卷组,创建后,需重启虚拟机才能看到新建的分区
[root@localhost dev]# gdisk /dev/nvme0n2    # 创建一个新的分区
# 将新创建的nvme0n2p3扩到RedHat中
[root@localhost ~]# vgextend RedHat /dev/nvme0n2p3 
  Physical volume "/dev/nvme0n2p3" successfully created.
  Volume group "RedHat" successfully extended

3、逻辑卷管理 

[root@localhost ~]# lvcreate -n RedHat_1v1 -L +1.5G RedHat

# -L 指定LV 的大小
# -n: LV 的名字
# RedHat: 你从哪个VG中创建的LV

[root@localhost ~]# lvs    # 查看lv


# 扩容(注意:使用 -L +1.5G增加1.5G,如果增加到3G,使用-L 3G)
[root@localhost ~]# lvextend -L +1.5G /dev/RedHat/RedHat_1v1 
  Size of logical volume RedHat/RedHat_1v1 changed from 1.50 GiB (384 extents) to 3.00 GiB (768 extents).
  Logical volume RedHat/RedHat_1v1 successfully resized.


[root@localhost ~]# lvs /dev/RedHat/RedHat_1v1 

# 但此时文件系统并没有扩容,原因是创建卷组时只格式化了1.5G的容量,还需再格式化剩余的容量
# 如果df . -h 没有内容显示,可能是因为之前分区重启后没有进行挂载操作
[root@localhost Redhat_1v_one]# df . -h    
Filesystem                     Size  Used Avail Use% Mounted on
/dev/mapper/RedHat-RedHat_1v1  1.5G   43M  1.5G   3% /Redhat_1v_one

# 使用xfs_growfs文件系统扩容(自动把所有未格式化的容量扩容,只能增不能减)
[root@localhost ~]# xfs_growfs /dev/RedHat/RedHat_1v1 
[root@localhost ~]# df . -h    # 扩容后再次查看
Filesystem             Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root   17G  5.5G   12G  32% /

# 使用ext文件系统扩容
[root@localhost ~]# umount /Redhat_1v_one     # 先取消挂载
#检测文件系统,resize2fs之前会提示先要检测文件系统
[root@localhost ~]# e2fsck -f /dev/RedHat/RedHat_1v1 
[root@localhost ~]# resize /dev/RedHat/RedHat_1v1 3G    #重置文件系统大小
[root@localhost ~]# lvreduce -L 3G /dev/RedHat/RedHat_1v1 
[root@localhost ~]# lvresize -L 3G /dev/RedHat/RedHat_1v1 
[root@localhost ~]# mount /dev/RedHat/RedHat_1v1 /Redhat_1v_one/    # 重新挂载
[root@localhost ~]# df -h

xfs文件系统,只能扩容,不能缩减,用多少扩多少

ext文件系统,既支持扩容(使用resize2fs文件系统扩容),也支持缩减

无论是xfs还是ext4的逻辑卷调整大小都可以用该命令 lvresize -r -L 大小 -n lv设 备名

三、管理交换分区

在Linux系统中,swap交换分区的作用类似于Windows系统中“虚拟内存”。当有程序被调入内存后,但是该程序又不是常被CPU所取用时,那么这些不常被使用的程序将会被放到硬盘的swap交换分区当中, 而将速度较快的内存空间释放给真正需要的程序使用,以避免由于物理内存不足而造成的系统效能低的问题。如果系统没有swap交换分区,或者现有交换分区的容量不够用时,可扩展swap交换分区。

1、命令

        mkswap 分区设备名                        将指定的分区格式化为swap交换文件系统

        swapon 交换分区设备名 | -a           启用(或激活)指定的交换分区或所有交换分区

        swapoff 交换分区设备名 | -a           禁用指定的交换分区或所有交换分区

        swapoff -s                                        查看交换分区的使用情况

        free -m                                             以兆字节为单位显示物理内存、交换分区的使用情况

2、方式:

扩展swap交换分区的方式有两种:

  •         以磁盘分区的方式扩展swap交换分区
  •         以镜像文件的方式扩展swap交换分区

方式一

# 新建分区扩展交换空间
# 创建一个新的分区nvme0n2p4
[root@localhost ~]# fdisk /dev/nvme0n2

# 将nvme0n2p4格式化为swap交换文件系统
[root@localhost ~]# mkswap /dev/nvme0n2p4
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=1b83b30a-bd1b-4ea1-bf54-ff16115646dd

# 启用nvme0n2p4交换分区
[root@localhost ~]# swapon /dev/nvme0n2p4

# 查看nvme0n2p4的使用情况 或者使用cat /proc/swaps命令
[root@localhost ~]# swapon -s
Filename				Type		Size		Used		Priority
/dev/dm-1                               partition	2097148		0		-2    #系统
/dev/nvme0n2p4                          partition	1048572		0		-3    #新建交换分区

# 关闭交换分区
[root@localhost ~]# swapoff /dev/nvme0n2p4 

# 写入/etc/fstab/,实现开机挂载
[root@localhost ~]# vim /etc/fstab
/dev/nvme0n2p4  swap swap defaults 0 0

方式二 

# 使用一个文件来扩展交换空间
# if=input file     of=output file    /dev/zero生成一个无限长度的零字节数据
# 创建一个文件/swap,从无限零资源去读,每一块大小为1M,一共有1024块
[root@localhost ~]# dd if=/dev/zero of=/swap bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 8.06877 s, 133 MB/s

[root@localhost /]# ll -h    #此时已生成swap的交换空间
...
-rw-r--r--.   1 root root 1.0G Oct  7 13:42 swap
...

# 格式化交换空间
[root@localhost /]# mkswap swap

# 激活当前的交换空间
[root@localhost /]# swapon swap

# 查看当前的虚拟内存
[root@localhost /]# swapon -s
Filename				Type		Size		Used		Priority
/dev/dm-1                               partition	2097148		0		-2
/swap                                   file		1048572		0		-3

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

搭建Windows上的Qt桌面开发环境

搭建Windows上的Qt桌面开发环境 准备有效邮箱安装VS2019 CommunityMicrosoft个人账号注册地址下载在线安装器安装C工具链 安装QtQt开发者账号注册地址下载在线安装器安装Qt 5.15工具链和Qt Creator 使用Qt Creator编译示例工程配置构建套件(Kit)打开示例…

特殊笔记_10/7

安装node到第4.1就行(安装npm的淘宝镜像) Node.js安装与配置(详细步骤)_nodejs安装及环境配置_LI4836的博客-CSDN博客 安装vscode 下载组件: 点击第五个 Auto Close Tag:自动闭合标签 Chinese (Simpli…

RabbitMQ集群搭建详细介绍以及解决搭建过程中的各种问题 + 配置镜像队列——实操型

RabbitMQ集群搭建详细介绍以及解决搭建过程中的各种问题 配置镜像队列——实操型 1. 准备工作1.1 安装RabbitMQ1.2 简单部署搭建设计1.3 参考官网 2. RabbitMQ 形成集群的方法3. 搭建RabbitMQ集群3.1 部署架构3.2 rabbitmq集群基础知识3.2.1 关于节点名称(标识符&a…

2023年中国资产数字化监控运维管理系统行业分析:产品应用领域不断拓展[图]

资产监控运维管理是一门紧密结合生产实际的工程科学,是实现资产有效运营维护的重要手段。资产监控运维管理技术起源于美国和欧洲等国家和地区,经过几十年的理论研究和实际应用,资产监控运维管理技术为提高重大设备资产和系统的可靠性和安全性…

javaee ssm框架项目整合thymeleaf2.0 更多thymeleaf标签用法 项目结构图

创建ssmthymeleaf项目 创建ssmthymeleaf项目参考此文 thymeleaf更多常用标签 <!DOCTYPE html> <html lang"en" xmlns:th"http://www.thymeleaf.org"> <head><meta charset"UTF-8"><title>Title</title> …

练[WUSTCTF2020]朴实无华

[WUSTCTF2020]朴实无华 文章目录 [WUSTCTF2020]朴实无华掌握知识解题思路代码分析 关键paylaod 掌握知识 ​ 目录扫描&#xff0c;抓包放包&#xff0c;代码审计&#xff0c;php函数特性的了解&#xff1a;intval函数&#xff0c;md5特性绕过&#xff0c;RCE一些bypass方法 解…

新代仿真软件的使用方法

1、安装 必须解压到C盘根目录下面 2、按键功能说明 3、新代仿真密码 密码&#xff1a;520 4、繁体改简体 3209号参数&#xff1a;值改成119&#xff0c;重启后即可正常识别中文。 5、修改坐标 先进入【程序编辑】-【图形仿真】-按【F10】键-【仿真参数设定】 把绘图模式改…

泛微OA e-office平台uploadify.php任意文件上传漏洞

泛微OA e-office平台uploadify.php任意文件上传漏洞复现 0x01 前言 免责声明&#xff1a;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的…

横向AlGaN/GaN基SBD结构及物理模型数据库的开发

GaN基功率器件凭借其临界电场高、电子饱和漂移速度大、热导率高等优良性能在大功率快充、充电桩、新能源汽车等领域具备广泛应用空间。为进一步助推半导体高频、高功率微电子器件的发展进程&#xff0c;天津赛米卡尔科技有限公司技术团队依托先进的半导体TCAD仿真平台成功开发出…

给 Linux0.11 添加网络通信功能 (Day4: 完成 MIT6.S081 最终实验 网卡驱动(2. 启动 xv6 net 分支))

url: https://pdos.csail.mit.edu/6.S081/2020/labs/guidance.html lab guidance 介绍了调试技巧。 这种玩意儿可得好好看看啊&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 我们先把 xv6 跑起来吧&#xff0c;待会儿…

基于象群优化的BP神经网络(分类应用) - 附代码

基于象群优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于象群优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.象群优化BP神经网络3.1 BP神经网络参数设置3.2 象群算法应用 4.测试结果&#xff1a;5.M…

基于纵横交叉优化的BP神经网络(分类应用) - 附代码

基于纵横交叉优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于纵横交叉优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.纵横交叉优化BP神经网络3.1 BP神经网络参数设置3.2 纵横交叉算法应用 4.测试结果…

css记录写一个奇怪的按钮

完成作业的时候发现一个很有意思的按钮&#xff0c;记录一下记录一下 看看界面 可以看出是一个奇形怪状的按钮&#xff0c;而且在按下的时候&#xff0c;图片和文字的颜色会改变 尝试解决 <!DOCTYPE html> <html lang"zh"> <head><meta chars…

Zabbix监控系统 第一部分:zabbix服务部署+自定义监控项+自动发现与自动注册(附详细部署实例)

这里是目录 一、Zabbix概述1.1 简介1.2 zabbix组件1.2.1 zabbix server1.2.2 zabbix agent1.2.3 zabbix proxy1.2.4 zabbix get1.2.5 zabbix sender 1.3 工作原理1.4 端口号1.5 zabbix中预设的键值1.6 自定义监控项1.7 邮件报警的思路1.8 Zabbix自动发现和自动注册1.8.1 zabbix…

从 Greenplum 到 YMatrix,某头部动力电池厂商核心业务数据的迁移实践

前言 随着数字化浪潮的不断深入&#xff0c;近年来企业对于数据库的功能诉求不断多元化&#xff0c;同时数据量大幅增长&#xff0c;包括 Greenplum 在内的许多原有的数据库技术应对起来日渐捉襟见肘&#xff0c;一些大型企业替换和升级数据库的需求愈发迫切。 本文将为大家完…

五.docker+jenkins自动部署项目

一.敏捷开发相关概念 1.微服务的痛点 再来看一下我们的微服务架构 &#xff0c; 每个组件都需要服务器去部署&#xff0c;加起来可能需要几十个甚至上百个服务器。这样的微服务项目在部署上会遇到什么问题&#xff1f; 需要很多很多的服务器&#xff0c;服务器的采购安装&am…

picodet onnx转其它芯片支持格式时遇到

文章目录 报错信息解决方法两模型精度对比 报错信息 报错信息为&#xff1a; Upsample(resize) Resize_0 not support attribute coordinate_transformation_mode:half_pixel. 解决方法 整个模型转换过程是&#xff1a;paddle 动态模型转成静态&#xff0c;再用paddle2onnx…

open62541交叉编译

好久没有做嵌入式Arm Linux 的开发了。最近要将open62541 的应用程序移植到i.mx6u 嵌入式控制器。网络上讲解i.mx6 交叉编译的文章太多了。但是都过于复杂&#xff0c;大多数使用虚拟机实现。其实在ubuntu OS 下&#xff0c;开发ARM 嵌入式应用软件相对是相当简单的。这里记录了…

日期相关工具类

日期相关工具类 【一】介绍【1】SimpleDateFormat 为什么是线程不安全【2】解决 SimpleDateFormat 线程不安全的方法 【二】LocalDate API【三】LocalTime API【四】LocalDateTime API【五】转换关系【1】LocalDateTime 与 LocalDate 之间的转换【2】LocalDateTime 与 Date 之间…

chrome浏览器如何多开

在网上寻找关于Chrome浏览器多开的教程时&#xff0c;你可能会发现操作相对复杂。然而&#xff0c;最近我发现了一个名为EasyBR浏览器的工具&#xff0c;作者使用程序将繁琐的步骤简化了。 主要功能 EasyBR浏览器具有以下主要功能&#xff1a; 批量账号管理&#xff1a;可以…