Linux 逻辑卷

目录

一、认识

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.rhkb.cn/news/150292.html

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

相关文章

防御安全第五次作业

1. 什么是数据认证,有什么作用,有哪些实现的技术手段? 数据认证是指保证数据的真实性、完整性和可信度,以确保数据不被篡改或伪造。其作用包括但不限于: 保护关键数据不被恶意篡改或损坏 提供数据来源的可靠性和安全性…

E: Unable to locate package XXX

问题描述: 当使用 apt-get install XXX 安装包时,出现错误 E: Unable to locate package XXX 解决方法: apt-get update apt-get install XXX

为什么append到父节点后的子节点发生修改,父节点打印出来的也会变化

今天走查前端代码&#xff0c;发现历史代码写出来的不规范&#xff0c;但是他还是在生产运行了很久的代码&#xff0c;仔细思量后发现&#xff0c;其实原理是对的&#xff0c;只是看起来不美观&#xff0c;不易读而已。 废话不说&#xff0c;先上demo代码 <!DOCTYPE html&g…

【Spring Boot】创建一个 Spring Boot 项目

创建一个 Spring Boot 项目 1. 安装插件2. 创建 Spring Boot 项目3. 项目目录介绍和运行注意事项 1. 安装插件 IDEA 中安装 Spring Boot Helper / Spring Assistant / Spring Initializr and Assistant插件才能创建 Spring Boot 项⽬ &#xff08;有时候不用安装&#xff0c;直…

维修派单系统好用吗?如何实现数字化后勤管理?

在当今社会&#xff0c;各种设备和设施的正常运转对于单位和组织来说至关重要。然而&#xff0c;由于各种因素的影响&#xff0c;设备和设施在日常运行过程中难免会出现故障。这时&#xff0c;高效的维修服务就显得尤为重要。而“的修”维修派单系统&#xff0c;就是一种专为维…

2023八股每日一题(九月份)

文章目录 9月13日【JDK、JRE、JVM之间的区别】9月14日【什么是面向对象&#xff1f;】9月15日【和equals比较】9月16日【final 关键字的作用】9月17日【String、StringBuffer、StringBuilder】9月18日【重载和重写的区别】9月19日【接口和抽象类的区别】9月20日【List和Set的区…

力扣第572题 另一棵树的子树 c++深度(DFS)注释版

题目 572. 另一棵树的子树 简单 给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 二叉树 tree 的一棵子树包括 tree 的某个节点和这个节点的所有…

数据挖掘(3)特征化

从数据分析角度&#xff0c;DM分为两类&#xff0c;描述式数据挖掘&#xff0c;预测式数据挖掘。描述式数据挖掘是以简介概要的方式描述数据&#xff0c;并提供数据的一般性质。预测式数据挖掘分析数据建立模型并试图预测新数据集的行为。 DM的分类&#xff1a; 描述式DM&#…

为什么企业都在申报“高新技术”?有以下十大好处!

随着信息技术时代的迅速发展&#xff0c;很多企业为了能够在同行中脱颖而出&#xff0c;都会选择办理一些和企业相关的资质证书&#xff0c;以便提升企业的核心竞争力&#xff0c;今天同邦信息科技的小编就告诉大家为什么那么多企业都选择申报“高新技术”企业&#xff1f; 首先…

Cocos Creator3.8 项目实战(四)巧用九宫格图像拉伸

一、为什么要使用九宫格图像拉伸 相信做过前端的同学都知道&#xff0c;ui &#xff08;图片&#xff09;资源对包体大小和内存都有非常直接的影响。 通常ui 资源都是图片&#xff0c;也是最占资源量的资源类型&#xff0c;游戏中的ui 资源还是人机交互的最重要的部分&#xff…

若依分离版-前端使用

1 执行 npm install --registryhttps://registry.npm.taobao.org&#xff0c;报错信息如下 npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving: ktg-mes-ui3.8.2 npm ERR! Found: vue2.6.12 npm ERR! node_modu…

张量-规约计算

作为Tensorflow中常见的一种计算方式,规约计算在操作时会有降维的功能。在所有规约计算系列的操作函数中,都是以reduce开头来命名,以函数名所命名的手段来降维。 每个函数都有axis参数,即沿哪个方向使用函数名所命名的方法对输入的tensor进行降维。axis的默认值是None,即把inp…

Ubuntu 2204 搭建 nextcloud 个人网盘

Nextcloud是一套用于创建网络硬盘/云盘以存放文件的客户端-服务器软件&#xff0c;Nextcloud 完全开源并且免费。 一、搭建 ubuntu apache2 mysql php &#xff08;lamp&#xff09;环境 因为 nextcloud 服务是使用 php 语言和 mysql 数据库的web服务&#xff0c;因此需要…

TS中Class类的继承

我们有下面一个代码&#xff0c;其中创建了一个Dog类和Cat类&#xff0c;这两个类中都有姓名和年龄属性和bark方法 class Dog {name: string;age: number;constructor(name: string, age: number) {this.name name;this.age age;}bark() {console.log(this.name "汪汪…

计算机竞赛 题目:基于深度学习卷积神经网络的花卉识别 - 深度学习 机器视觉

文章目录 0 前言1 项目背景2 花卉识别的基本原理3 算法实现3.1 预处理3.2 特征提取和选择3.3 分类器设计和决策3.4 卷积神经网络基本原理 4 算法实现4.1 花卉图像数据4.2 模块组成 5 项目执行结果6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基…

ElasticSearch更新数据后查不到的问题

一、前言 上一篇文章还是2个星期前写的&#xff0c;近段时间有点懒&#xff0c;本来这篇也不太愿意动笔写&#xff0c;但这两天关注数据&#xff0c;发现新的一年已经收获了4个粉丝&#xff0c;首先感谢大家的关注&#xff0c;我以后还是会尽量多写一点。这篇文章讲一下今天我…

组件的挂载和渲染

React的挂载和渲染 React的生命周期中包括三个主要的阶段&#xff1a;挂载、渲染以及卸载。 很多小伙伴包括我自己可能对挂载和渲染的概念比较模糊&#xff0c;今天这篇文章主要的目的是为了解答我们的这个小疑惑~ 这张图是从其他地方搬运过来的&#xff0c;这张图中描述的主…

1358. 包含所有三种字符的子字符串数目

1358. 包含所有三种字符的子字符串数目 C代码&#xff1a;滑动窗口、前缀 // 只存在abc // 存在三种字符的子串数量、左边窗口满足&#xff0c;窗口后边的也就满足 int numberOfSubstrings(char * s){int hash[3] {0};int n strlen(s);int ans 0;int l 0;for (int i -1; …

Zookeeper经典应用场景实战(二)

文章目录 1、 Zookeeper 分布式锁实战1.1、 什么是分布式锁1.2、 基于数据库设计思路1.3、 基于Zookeeper设计思路一1.4、 基于Zookeeper设计思路二 1、 Zookeeper 分布式锁实战 1.1、 什么是分布式锁 在单体的应用开发场景中涉及并发同步的时候&#xff0c;大家往往采用Sync…

新基建智慧铁路:高铁沿线综合视频监控及风险智能预警管理方案

一 、方案背景 铁路沿线安全环境直接关系铁路运输安全畅通。随着我国铁路特别是高速铁路运营里程不断增加&#xff0c;改善铁路沿线安全环境对保障铁路高质量发展和人民群众生命财产安全的作用更加突出。为了保障高铁的安全运营&#xff0c;高铁对安防尤其是视频监控的需求不断…