百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Linux系统磁盘分区管理LVM概念及扩容操作

nanshan 2025-01-14 16:08 15 浏览 0 评论

LVM的全称为Logical Volume Manager,逻辑卷管理。它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组(volume group)形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logical volumes),并进一步在逻辑卷组上创建文件系统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配。当系统添加了新的磁盘,通过LVM管理员就不必将磁盘的文件移动到新的磁盘上以充分利用新的存储空间,而是直接扩展文件系统跨越磁盘即可。

LVM相关概念

  • 物理卷(Physical Volume,PV):物理卷是LVM中的基本单元,可以是硬盘、SSD或分区。使用pvcreate命令将物理磁盘或分区转换为物理卷。
  • 卷组(Volume Group,VG):卷组是由一个或多个物理卷组成的逻辑单元,相当于一个存储池。通过使用vgcreate命令创建卷组,将物理卷添加到卷组中。
  • 逻辑卷(Logical Volume,LV):逻辑卷是从卷组划分出来的独立存储单元,类似于硬盘上的一个分区。使用lvcreate命令创建逻辑卷,可以指定逻辑卷的大小和格式。
  • 物理区(Physical Extent,PE):物理区是卷组中的最小分配单元,通常是4MB或更小的大小。卷组中的空间被划分为一组物理区,逻辑卷和物理卷都在物理区级别上进行分配。

以上是LVM的主要组成部分。物理卷被组合成卷组,而卷组中的空间可以根据需要划分为逻辑卷。逻辑卷可以通过挂载到文件系统树上的特定目录来访问和使用。

LVM流程

物理磁盘->物理卷(PV)->加入卷组(VG)->卷组中抽取空间,制作逻辑卷(LV)->格式化->挂载

LVM实操

命令“lsblk”查看当前系统上的磁盘分区情况。

可以看到当前硬盘分区是一个标准分区结构:

  • sda是一个20GB的磁盘,有三个分区:
  • sda1是一个200MB的分区,被挂载为/boot,用于存储引导文件(启动分区);
  • sda2是一个2GB的分区,被标记为[SWAP],用于交换空间(虚拟内存);
  • sda3是一个17.8GB的分区,被挂载为根目录/,用于存储操作系统和用户数据。
  • sr0是一个虚拟光驱。

我们在虚拟机上添加一块5G新磁盘并采用LVM分区。

1. 首先把sdb这块新硬盘设置为物理卷(PV)。“pvcreate /dev/sdb” 将指定的磁盘或分区转换为LVM中的物理卷PV。创建成功后,输入“pvdisplay” 查看新建的物理卷PV信息。

  • PV Name:物理卷的名称为/dev/sdb。
  • VG Name:物理卷尚未分配给任何卷组,因此该字段为空。
  • PV Size:物理卷的总大小为5.00 GiB。
  • Allocatable:当前物理卷不可分配(Allocatable = NO)。
  • PE Size:物理卷上的物理区PE大小为0,这意味着物理卷尚未格式化或分割成任何逻辑结构。
  • Total PE:物理卷上总共的物理区数量为0。
  • Free PE:物理卷上可用的物理区数量为0,即全部空间都尚未分配给任何逻辑卷。
  • Allocated PE:已经分配给逻辑卷的物理区数量为0,即尚未在物理卷上创建任何逻辑卷。
  • PV UUID:物理卷的唯一标识符。

2.成功创建了物理卷后,需要使用“vgcreate my_disk /dev/sdb”命令再创建一个卷组VG。然后使用“vgdisplay”查看验证是否创建成功。

  • VG Name:卷组的名称为my_disk。
  • Format:卷组使用的格式为lvm2,代表LVM的第二版本。
  • Metadata Areas:卷组中的元数据区域数量为1,即指定了一个物理卷。
  • Metadata Sequence No:元数据序列号为1,用于跟踪元数据的更改。
  • VG Access:卷组以读写方式访问。
  • VG Status:卷组状态可调整大小(resizable),表示卷组中的逻辑卷大小可以调整。
  • MAX LV:卷组最大逻辑卷数量为0。
  • Cur LV:当前卷组中的逻辑卷数量为0。
  • Open LV:当前处于打开状态的逻辑卷数量为0。
  • Max PV:卷组中最大物理卷数量为0。
  • Cur PV:当前物理卷数量为1。
  • Act PV:当前活跃的物理卷数量为1。
  • VG Size:卷组的总大小为不到5.00 GiB。
  • PE Size:物理区PE的大小为4.00 MiB。这是卷组中逻辑和物理卷的分配单位。
  • Total PE:卷组中的总物理区数量为1279。
  • Alloc PE / Size:已分配给逻辑卷的物理区数量为0,对应的大小为0。
  • Free PE / Size:可用的物理区数量为1279,对应的大小为不到5.00 GiB。
  • VG UUID:卷组的唯一标识符。

3.成功创建卷组后,需要把物理卷PV分配到卷组VG中,也就是创建逻辑卷LV,使用“lvcreate -L 4G -n my_home my_disk”命令,在卷组my_disk中创建一个逻辑卷my_home大小为 4GB。此时使用命令“lvdisplay”查看验证逻辑卷是否创建成功。

  • LV Path:逻辑卷的路径为/dev/my_disk/my_home。
  • LV Name:逻辑卷的名称为my_home。
  • VG Name:逻辑卷所属的卷组名称为my_disk。
  • LV UUID:逻辑卷的唯一标识符。
  • LV Write Access:逻辑卷的读写权限为读写(read/write)。
  • LV Creation host, time:逻辑卷的创建主机,创建时间。
  • LV Status:逻辑卷的状态为可用(available)。
  • open:逻辑卷当前打开的文件描述符数量为0。
  • LV Size:逻辑卷的大小为4.00 GiB。
  • Current LE:逻辑卷当前的逻辑区(Logical Extent)数量为1024。
  • Segments:逻辑卷的段数量为1。
  • Allocation:逻辑卷的分配策略为继承(inherit)。
  • Read ahead sectors:逻辑卷当前的预读扇区数为8192。
  • Block device:逻辑卷的块设备名称为253:0。

根据输出,逻辑卷my_home的状态为可用,大小为4.00 GiB,在/dev/my_disk/my_home路径上可以访问。

4.上述完成,LVM分区已经创建好,接下来就是对该分区进行格式化,使用“mkfs.ext4 /dev/my_disk/my_home”命令赋予它文件系统。

5.最后一步,我们需要给刚刚新建的逻辑分区创建一个挂载点,也就是新建一个文件夹。

挂载是在操作系统层面上进行的,它创建了一个链接,使得文件系统中的数据可以通过指定的挂载点在操作系统中访问。一旦文件系统被成功挂载,用户可以在挂载点下访问和操作文件。其实挂载就是一种链接,它是操作系统与存储设备的接口,我们通过挂载点去访问存储设备。

此时可以看到文件与分区已经挂载完成,不过这里要注意:通过命令行的方式挂载分区,等到虚拟机重启的时候就会消失,如果要永久挂载需要到/etc/fstab 进行设置。

LVM 扩充、缩减

LVM是动态分配存储空间的技术,我们可以随时为该逻辑卷增加或减少空间,这种操作不限于是同一块磁盘,也可以是其他磁盘,这也极大的方便我们随时更改空间。

我们再增加一块5G的新硬盘。

使用“vgextend my_disk /dev/sdc”加入卷组,然后“vgdisplay”查看是否扩充成功。

最后使用命令“lvextend -L +5.9G -r /dev/my_disk/my_home”给逻辑卷扩充空间,第一块硬盘剩下的1G和第二块硬盘5G(有些文件的占用,总共5.99G)。

如果要缩减逻辑卷空间使用命令“lvreduce -L -5G -r /dev/my_disk/my_home”。通过“df -h”查看空间调整情况。

相关推荐

0722-6.2.0-如何在RedHat7.2使用rpm安装CDH(无CM)

文档编写目的在前面的文档中,介绍了在有CM和无CM两种情况下使用rpm方式安装CDH5.10.0,本文档将介绍如何在无CM的情况下使用rpm方式安装CDH6.2.0,与之前安装C5进行对比。环境介绍:...

ARM64 平台基于 openEuler + iSula 环境部署 Kubernetes

为什么要在arm64平台上部署Kubernetes,而且还是鲲鹏920的架构。说来话长。。。此处省略5000字。介绍下系统信息;o架构:鲲鹏920(Kunpeng920)oOS:ope...

生产环境starrocks 3.1存算一体集群部署

集群规划FE:节点主要负责元数据管理、客户端连接管理、查询计划和查询调度。>3节点。BE:节点负责数据存储和SQL执行。>3节点。CN:无存储功能能的BE。环境准备CPU检查JDK...

在CentOS上添加swap虚拟内存并设置优先级

现如今很多云服务器都会自己配置好虚拟内存,当然也有很多没有配置虚拟内存的,虚拟内存可以让我们的低配服务器使用更多的内存,可以减少很多硬件成本,比如我们运行很多服务的时候,内存常常会满,当配置了虚拟内存...

国产深度(deepin)操作系统优化指南

1.升级内核随着deepin版本的更新,会自动升级系统内核,但是我们依旧可以通过命令行手动升级内核,以获取更好的性能和更多的硬件支持。具体操作:-添加PPAs使用以下命令添加PPAs:```...

postgresql-15.4 多节点主从(读写分离)

1、下载软件[root@TX-CN-PostgreSQL01-252software]#wgethttps://ftp.postgresql.org/pub/source/v15.4/postg...

Docker 容器 Java 服务内存与 GC 优化实施方案

一、设置Docker容器内存限制(生产环境建议)1.查看宿主机可用内存bashfree-h#示例输出(假设宿主机剩余16GB可用内存)#Mem:64G...

虚拟内存设置、解决linux内存不够问题

虚拟内存设置(解决linux内存不够情况)背景介绍  Memory指机器物理内存,读写速度低于CPU一个量级,但是高于磁盘不止一个量级。所以,程序和数据如果在内存的话,会有非常快的读写速度。但是,内存...

Elasticsearch性能调优(5):服务器配置选择

在选择elasticsearch服务器时,要尽可能地选择与当前业务量相匹配的服务器。如果服务器配置太低,则意味着需要更多的节点来满足需求,一个集群的节点太多时会增加集群管理的成本。如果服务器配置太高,...

Es如何落地

一、配置准备节点类型CPU内存硬盘网络机器数操作系统data节点16C64G2000G本地SSD所有es同一可用区3(ecs)Centos7master节点2C8G200G云SSD所有es同一可用区...

针对Linux内存管理知识学习总结

现在的服务器大部分都是运行在Linux上面的,所以,作为一个程序员有必要简单地了解一下系统是如何运行的。对于内存部分需要知道:地址映射内存管理的方式缺页异常先来看一些基本的知识,在进程看来,内存分为内...

MySQL进阶之性能优化

概述MySQL的性能优化,包括了服务器硬件优化、操作系统的优化、MySQL数据库配置优化、数据库表设计的优化、SQL语句优化等5个方面的优化。在进行优化之前,需要先掌握性能分析的思路和方法,找出问题,...

Linux Cgroups(Control Groups)原理

LinuxCgroups(ControlGroups)是内核提供的资源分配、限制和监控机制,通过层级化进程分组实现资源的精细化控制。以下从核心原理、操作示例和版本演进三方面详细分析:一、核心原理与...

linux 常用性能优化参数及理解

1.优化内核相关参数配置文件/etc/sysctl.conf配置方法直接将参数添加进文件每条一行.sysctl-a可以查看默认配置sysctl-p执行并检测是否有错误例如设置错了参数:[roo...

如何在 Linux 中使用 Sysctl 命令?

sysctl是一个用于配置和查询Linux内核参数的命令行工具。它通过与/proc/sys虚拟文件系统交互,允许用户在运行时动态修改内核参数。这些参数控制着系统的各种行为,包括网络设置、文件...

取消回复欢迎 发表评论: