Linux-LVM创建和扩容

news2024/12/30 1:23:40

文章目录

  • 1. 直接上手
    • 1.2 LVM 概念
      • 1.2.1 关键术语
    • 1.3 LVM使用步骤
      • 1.3.1 创建物理卷(PV)
      • 1.3.2 创建卷组(VG)
      • 1.3.3 创建逻辑卷(LV)
      • 1.3.4 格式化逻辑卷
      • 1.3.5 挂载逻辑卷
      • 1.3.6 扩展和缩小逻辑卷
        • 1.3.6.1 扩展逻辑卷
        • 1.3.6.2 缩小逻辑卷
  • 2. 实战
    • 2.1 从零开始创建LVM
      • 2.1.2 操作步骤
    • 2.2 已有LVM结构,扩容到指定目录
      • 2.2.1 操作步骤

1. 直接上手

逻辑卷管理(Logical Volume Manager, LVM)是 Linux 中用于磁盘和分区管理的一种技术,它提供了一种更加灵活的方式来管理存储空间。

1.2 LVM 概念

LVM 是一种抽象层,位于物理存储设备之上,文件系统之下。通过 LVM,我们可以创建逻辑卷(Logical Volumes, LVs),这些逻辑卷可以从一个或多个物理卷(Physical Volumes, PVs)中分配空间。LVM 还支持卷组(Volume Groups, VGs),这是一种包含一个或多个物理卷的容器。

1.2.1 关键术语

  1. PV(物理卷):物理卷是LVM中的一个基本单元,通常是一个或多个磁盘分区,也可以是整个磁盘。
  2. VG(卷组):卷组是由一个或多个物理卷组成的集合,可以看作是一个存储池。
  3. LV(逻辑卷):逻辑卷是建立在卷组上的,它是卷组中的一个或多个物理卷的子集,通常用于挂载文件系统,可以看作是一个可以动态调整大小的分区。
  4. PE(物理扩展):物理卷中的最小可寻址单元,通常大小为 4MB。
  5. LE(逻辑扩展):逻辑卷中的最小可寻址单元,与 PE 对应。

1.3 LVM使用步骤

1.3.1 创建物理卷(PV)

1.使用 pvcreate 命令来创建物理卷。

pvcreate /dev/sdb1

1.3.2 创建卷组(VG)

1.使用 vgcreate 命令来创建卷组。

vgcreate myVG0 /dev/sdb1

这里的myVG0是逻辑卷的名称。

1.3.3 创建逻辑卷(LV)

1.使用 lvcreate 命令来创建逻辑卷。

lvcreate -L 10G -n myVG0 myLV0

这里 -L 指定逻辑卷的大小,-n 指定逻辑卷的名称,这个命令的作用是在名为myVG0的卷组中创建一个名为myLV0的逻辑卷,其大小为10GB。

1.3.4 格式化逻辑卷

1.使用 mkfs 命令来格式化逻辑卷。

mkfs.ext4 /dev/myVG0/myLV0

1.3.5 挂载逻辑卷

1.使用 mount 命令来挂载逻辑卷到指定目录。

mkdir /mnt/myLVdisk
mount /dev/myVG0/myLV0 /mnt/myLVdisk

1.3.6 扩展和缩小逻辑卷

1.3.6.1 扩展逻辑卷

1.添加新的物理卷到卷组

pvcreate /dev/sdc
vgextend myVG /dev/sdc

2.扩展逻辑卷的大小。

lvextend -L +5G /dev/myVG0/myLV0

3.调整文件系统的大小以匹配新的逻辑卷大小。

resize2fs /dev/myVG0/myLV0
1.3.6.2 缩小逻辑卷

1.缩小文件系统的大小。

umount /mnt/myLV
resize2fs /dev/myVG0/myLV0 9G

2.缩小逻辑卷的大小。

lvreduce -L 9G /dev/myVG0/myLV0



2. 实战

2.1 从零开始创建LVM

假设你有两个512G的硬盘 /dev/sda/dev/sdb,现想要/dev/sdb转换为 LVM 结构,创建一个名为 dataVG 的卷组,然后在其中创建一个大小为511.9GB的逻辑卷 dataLV。并将其格式化为 ext4 文件系统,最后挂载到 /mnt/tmp 目录。

在这里插入图片描述

lsblk 是一个在Linux系统中用来列出所有可用的块设备(例如硬盘驱动器、固态驱动器、USB驱动器等)的命令行工具。该命令提供了一个易于阅读的表格格式,显示了每个设备的名称、挂载点、分区布局等信息。

lsblk

2.1.2 操作步骤

1.下载并安装lvm2软件包以及它所需的任何其他包。

apt install -y lvm2

2.创建物理卷。

pvcreate /dev/sdb

在这里插入图片描述

3.显示物理卷的相关信息。

pvdisplay
pvs

在这里插入图片描述

pvdisplay:显示有关物理卷的详细信息,包括其大小、分配的PE(物理扩展)数量、以及它属于哪个卷组等。如果你需要查看特定物理卷的详细信息,可以使用 pvdisplay /dev/sdXN

pvs:以表格形式显示所有物理卷的摘要信息,包括它们的名称、大小、PE大小和状态。

4.创建卷组。

vgcreate dataVG /dev/sdb

在这里插入图片描述

5.查看系统中所有卷组的详细信息。

vgdisplay

在这里插入图片描述

vgdisplay 是一个用于显示卷组(Volume Group)信息的命令行工具,它是LVM(逻辑卷管理器)的一部分。使用 vgdisplay 可以查看系统中所有卷组的详细信息,或者指定特定的卷组来获取详细信息。如果你想要查看特定卷组的信息,可以使用 -v--volumes 选项,后面跟上卷组的名称。

6.创建逻辑卷

lvcreate -L 511.9G -n dataLV dataVG

在这里插入图片描述

因为PE Size占了4MB,所以可用的VG Size不足512GB。

7.显示逻辑卷的相关信息

lvdisplay
lvs

在这里插入图片描述

lvdisplay 命令显示特定逻辑卷的详细信息。如果你想查看特定逻辑卷的详细信息,可以在命令后面加上逻辑卷路径

lvs 命令以表格形式显示所有逻辑卷的摘要信息。它会列出每个逻辑卷的名称、所属卷组、当前大小、使用的PE(物理扩展)数量、以及是否激活等信息。

8.查看/dev目录下的卷组和逻辑卷。

ls -l /dev/ | grep -i dataVG
ls -l /dev/dataVG

在这里插入图片描述

我们创建的VGLV,本质上是在/dev目录下创建了文件。

9.格式化逻辑卷。

mkfs.ext4 /dev/dataVG/dataLV

在这里插入图片描述

10.查看逻辑卷的分区信息和健康状态。

fdisk -l
fsck.ext4 /dec/dataVG/dataLV

在这里插入图片描述

使用 fsck 命令可以检查文件系统的完整性。请注意,在运行 fsck 之前,确保逻辑卷未被挂载。

fdisk 是一个用于磁盘分区的命令行工具,-l 选项表示列出所有分区表,而不需要交互式操作。

  1. 创建挂载点,并挂载逻辑卷。

    mkdir /mnt/tmp
    mount /dev/dataVG/dataLV /mnt/tmp
    

在这里插入图片描述

12.查看文件系统信息。

df -Th

在这里插入图片描述

使用 df -Th 命令可以查看所有已挂载的文件系统及其类型。






2.2 已有LVM结构,扩容到指定目录

假设你有两个的硬盘 /dev/sdb200G 和 /dev/sdc100G,且/dev/sdb已经是LVM 结构,现欲将/dev/sdc100G硬盘扩容到/mnt/tmp中。

2.2.1 操作步骤

1.查看已有文件系统信息。

df -Th

在这里插入图片描述

2.列出可用的块设备。

lsblk

在这里插入图片描述

3.创建物理卷。

pvcreate /dev/sdc

在这里插入图片描述

4.将物理卷添加到现有卷组:

vgextend dataVG /dev/sdc

在这里插入图片描述

vgextend 命令用于向现有的卷组(Volume Group)中添加一个或多个新的物理卷(Physical Volumes,PVs)。物理卷可以是磁盘、磁盘分区或整个磁盘设备。使用 vgextend 可以增加卷组的容量,从而允许在该卷组中创建更大的逻辑卷(Logical Volumes,LVs)。

5.确认卷组dataVG中可用的空间量。

vgs --noheadings --units g --separator : --nosuffix --all --options vg_name,free

在这里插入图片描述

以简化格式输出卷组(VG)的名称及其可用的自由空间(单位为 GB),这里是对该命令各选项的解释:

  • --noheadings: 不显示表头。

  • --units g: 显示以 GB 为单位的值。

  • --separator :: 使用冒号作为字段之间的分隔符。

  • --nosuffix: 不显示单位后缀(如 G、T 等)。

  • --all: 包括所有卷组的信息。

  • --options vg_name,free: 只显示卷组名称和自由空间这两个字段。

6.扩展一定的大小,如40GB:

lvextend -L +40G /dev/dataVG/dataLV

在这里插入图片描述

7.调整文件系统大小。

resize2fs /dev/dataVG/dataLV

在这里插入图片描述

resize2fs 是一个用于调整 ext2ext3ext4 文件系统大小的命令行工具。它允许你增加或减少文件系统的容量,以适应底层存储设备的大小变化。这个命令特别适用于以下情况:

  • 当你使用 lvextend 增加了逻辑卷的大小,并且希望文件系统能够使用新增的空间。
  • 当你需要缩小文件系统以释放空间给其他用途。

8.验证文件系统信息。

df -Th

在这里插入图片描述

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

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

相关文章

Science Robotics 受螳螂视觉启发的立体人工复眼技术及其边缘计算应用

在自然界中,生物体的独特生理结构和功能一直是人类技术创新的灵感源泉。节肢动物,尤其是昆虫类生物,高效的视觉系统吸引了众多研究者的关注。所有昆虫当中,螳螂因其独特的视觉机制(左眼和右眼视野重叠形成的立体视觉&a…

网络编程项目篇

一、tftp客户端下载 1)tftp协议概述 简单文件传输协议,适用于在网络上进行文件传输的一套标准协议,使用UDP传输 特点: 是应用层协议 基于UDP协议实现 数据传输模式 octet:二进制模式(常用&#xff0…

【SpringBoot】SpringBoot中分页插件(PageHelper)的使用

目录 1.分页概念 2.原生写法 3.PageHelper插件分页查询 3.1 介绍 3.2 使用 3.3 Page对象和PageInf对象 1.分页概念 用户查询的数据不可能一次性全部展示给用户(如果用户有一万条数据呢),而是分页展示给用户,这就是分页查询。…

Hospital Information System (HIS)

Hospital Information System (HIS) 医院门诊就诊流程

快速体验Ollama安装部署并支持AMD GPU推理加速

序言 Ollama 是一个专注于本地运行大型语言模型(LLM)的框架,它使得用户能够在自己的计算机上轻松地部署和使用大型语言模型,而无需依赖昂贵的GPU资源。Ollama 提供了一系列的工具和服务,旨在简化大型语言模型的安装、…

深入理解JVM运行时数据区(内存布局 )5大部分 | 异常讨论

前言: JVM运行时数据区(内存布局)是Java程序执行时用于存储各种数据的内存区域。这些区域在JVM启动时被创建,并在JVM关闭时销毁。它们的布局和管理方式对Java程序的性能和稳定性有着重要影响。 目录 一、由以下5大部分组成 1.…

【html+css 绚丽Loading】 - 000004 玄天旋轮

前言:哈喽,大家好,今天给大家分享htmlcss 绚丽Loading!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 &#x1f495…

STM32 编码器模式详解

编码器模式 stm32的定时器带的也有编码器模式。 所用的编码器是有ABZ三相,其中ab相是用来计数,z相输出零点信号。 AB相根据旋转的方向不同,输出的波形如下图所示: 从图上可以看出来,cw方向A相会超前B相90度左右&#…

egret 拖尾的实现 MotionStreak

背景:egret项目中需要用到拖尾效果,引擎原生没有提供,参考cocos2dx 的 MotionStreak实现拖尾效果。 原理 拖尾的原理很简单,定时记录节点的位置,根据运行的轨迹和指定的拖尾宽度生成拖尾网格,然后将纹理绘…

VS2019开发跨平台(Linux)程序时,怎么配置第三方库的路径

一、问题描述: 使用跨平台编译时,VS2019总是提示链接openssl库有问题; 二、错误时的配置: 1、前提 openssl在Linux系统默认下是1.0.0版本,而自己准备好的是1.1.1版本,并且路径完全不在一个地方&#xf…

【Linux-进程】系统初识:冯诺依曼体系结构

系列文章:《Linux入门》 目录 冯诺依曼体系结构 1)硬件上 🌷1.什么是冯诺依曼体系结构? 🌷2.冯诺依曼结构的五个主要组成部分 1.运算器 2.控制器 3.存储器 4.输入输出 设备 ⁉️3.为什么还需要内存呢&#xf…

c++数据结构算法复习基础-- 4 -- 线性表-单向循环链表-常用操作接口-复杂度分析

1、单向循环链表一 1)特点 每一个节点除了数据域,还有一个next指针域指向下一个节点(存储了下一个节点的地址) 末尾节点的指针域指向了头节点 析构函数思路图 2)代码实现 //定义结点 //单向循环链表 class CircleLink { public://构造函数…

使用python基于fastapi发布接口(一)

FastAPI官网地址 FastAPI基于Python 3.6+和Starlette框架,天生就带着高性能和异步的基因。 FastAPI的文档生成功能简直是开发者的福音! 你不再需要手动编写API文档,FastAPI能自动帮你搞定。 FastAPI还超级灵活,支持各种数据库和认证方式,无论是SQLite、PostgreSQL还是M…

【xilinx】TPM可信平台模块与 Zynq UltraScale+ PS SPI 接口

本博客(Venu Inaganti)介绍了可信平台模块 (TPM) 与 Zynq UltraScale PS SPI 控制器的连接。 目前唯一具有 TPM 的评估板是 KR260/KV260 SOM,因此为了帮助正在试验 Zynq UltraScale 设备的用户,本文介绍了如何通过 PMOD 连接器与…

【MongoDB】Java连接MongoDB

连接URI 连接 URI提供驱动程序用于连接到 MongoDB 部署的指令集。该指令集指示驱动程序应如何连接到 MongoDB,以及在连接时应如何运行。下图解释了示例连接 URI 的各个部分: 连接的URI 主要分为 以下四个部分 第一部分 连接协议 示例中使用的 连接到具有…

计算机视觉中的上采样与下采样:深入浅出实例代码解析

文章目录 一、引言二、下采样(Downsampling)三、上采样(Upsampling)1. 最近邻插值2.双线性插值3.转置卷积(Deconvolution)4.代码部分 四、总结 在计算机视觉领域,尤其是在深度学习和卷积神经网络…

宝塔面板部署webman项目+nginx反向代理

新建站点 新建一个站点,php版本选择纯净态即可,反正都是用不上的,域名填写你申请得到的域名 拉取代码 新建一个目录,然后将代码部署到本地 启动项目 推荐使用宝塔面板的进程守护管理器启动项目,其实就是用superviso…

ATT格式与Intel格式x86汇编指令的区别

AT&T公司 这个公司的创始人就是发明电话的贝尔,而Unix和C语言都是出自贝尔实验室的产物。 Intel公司 世界上第一片CPU是1971年发明的,型号是Intel生产的4004微处理器。 两种格式的区别 AT&T格式Intel格式目的操作数d、源操作数s op s, d 注…

vue2中使用i18n配置elementUi切换语言

1、下载插件 npm i vue-i18n8.22.2 2、新建文件夹i18n 3、编写index.js文件 import Vue from "vue"; import VueI18n from "vue-i18n"; import locale from element-ui/lib/locale; // 引入 elementui 的多语言 import enLocale from element-ui/lib/l…

【MySQL】C/C++连接MySQL客户端,MySQL函数接口认知,图形化界面进行连接

【MySQL】C/C引入MySQL客户端 安装mysqlclient库mysql接口介绍初始化mysql_init链接数据库mysql_real_connect下发mysql命令mysql_query获取出错信息mysql_error获取执行结果mysql_store_result获取结果行数mysql_num_rows获取结果列数mysql_num_fields判断结果列数mysql_field…