LVM - Linux磁盘逻辑卷管理器概念讲解、实践及所遇到的问题

news2024/12/29 9:51:27

  1、lvm概念

  逻辑卷管理器(LogicalVolumeManager)本质上是一个虚拟设备驱动,是在内核中块设备和物理设备之间添加的一个新的抽象层次,它可以将几块磁盘(物理卷,PhysicalVolume)组合起来形成一个存储池或者卷组(VolumeGroup)。LVM可以每次从卷组中划分出不同大小的逻辑卷(LogicalVolume)创建新的逻辑设备。底层的原始的磁盘不再由内核直接控制,而由LVM层来控制。对于上层应用来说卷组替代了磁盘块成为数据存储的基本单元。LVM管理着所有物理卷的物理盘区,维持着逻辑盘区和物理盘区之间的映射。LVM逻辑设备向上层应用提供了和物理磁盘相同的功能,如文件系统的创建和数据的访问等。但LVM逻辑设备不受物理约束的限制,逻辑卷不必是连续的空间,它可以跨越许多物理卷,并且可以在任何时候任意的调整大小。相比物理磁盘来说,更易于磁盘空间的管理。

  2、为什么要用LVM

  每个Linux使用者在安装Linux时都会遇到这样的困境:在为系统分区时,如何精确评估和分配各个硬盘分区的容量,因为系统管理员不但要考虑到当前某个分区需要的容量,还要预见该分区以后可能需要的容量的最大值。因为如果估 计不准确,当遇到某个分区不够用时管理员可能甚至要备份整个系统、清除硬盘、重新对硬盘分区,然后恢复数据到新分区。
虽然有很多动态调整磁盘的工具可以使用,例如PartitionMagic等等,但是它并不能完全解决问题,因为某个分区可能会再次被耗尽;另外一个方面这需要 重新引导系统才能实现,对于很多关键的服务器,停机是不可接受的,而且对于添加新硬盘,希望一个能跨越多个硬盘驱动器的文件系统时,分区调整程序就不能解 决问题。
因此完美的解决方法应该是在零停机前提下可以自如对文件系统的大小进行调整,可以方便实现文件系统跨越不同磁盘和分区。幸运的是Linux提供的逻辑盘卷管理(LVM,LogicalVolumeManager)机制就是一个完美的解决方案。

  3、传统分区带来的问题

  传统的文件系统是基于分区的,一个文件系统对应一个分区。这种方式比较直观,但不易改变。当一个分区空间已满时,无法对其扩充,只能采用重新分区/建立文件系统,非常麻烦;或把分区中的数据移到另一个更大的分区中。
当采用LVM时:

  1、将硬盘的多个分区由LVM统一为卷组管理,可以方便的加入或移走分区以扩大或减小卷组的可用容量,充分利用硬盘空间;

  2、文件系统建立在LVM上,可以跨分区,方便使用;

  3、当系统空间不足而加入新的硬盘时,不必把用户的数据从原硬盘迁移到新硬盘,而只须把新的分区加入卷组并扩充逻辑卷即可。

使用LVM主要是方便管理、增加了系统的扩展性。可以跨分区,多个硬盘组合。

  4、LVM实现原理图解及构造

在这里插入图片描述
在这里插入图片描述

   LVM若要成功建立,由以下几部分组成

  物理磁盘(PhysicalStorageMedia)

  物理磁盘是指系统的物理存储设备:磁盘,如:/dev/hda、/dev/sda等,是存储系统最底层的存储单元。

  物理卷(Physical Volume,PV)

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

  卷组(Volume Group,VG)

  卷组是指非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷)。

  逻辑卷(Logical Volume,LV)

  类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)。

  5、lvm举例讲解

   可能这样说对于小白来说可能不太容易理解,下面举个例子所有吃货都能理解的例子来讲解一下什么是LVM

   比如现在有ABCD四个人,A现在有半斤面粉,B现在有半斤水,C现在有1两葱,D现在有1两油(此时这半斤面粉,半斤水,1两葱和1两油就好比上图的4块PV物理卷硬盘),进行不进行lvm操作的话,是操作者说了算,此时该操作者就属于厨师,如果这个厨师嫌麻烦的话,就安排A吃属于他自己的半斤面粉,B就喝属于他自己半斤水,C就吃属于自己的1两葱,D就吃属于自己的一两油,ABCD四个人井水不犯河水。

   如果现在ABCD四个人找到了厨师,想把他们的食材进行一下融合,ABCD把属于自己的面,水,油,葱全部给到厨师,厨师根据4个人提供的食材的量给他们融合在一起,帮他们做成一张葱油饼(此时这张葱油饼就好比上图的VG),葱油饼(VG)的大小取决于ABCD提供的食材(PV)的多少,如果提供的量多,就可以做成一张大饼,如果提供的量少,就可以做成一张小饼。

  ABCD四个人就等待分配属于自己的葱油饼即可,此时每个人分配到的葱油饼的大小(lv)就是根据每个人的饭量大小来取。

  PV是不可改变大小的,VG和LV是可以分配大小的。

  VG进行扩大容量操作是所有硬盘都划分了,盘容量不够用了,需要重新添加硬盘,类似于ABCD都是大胃王,不够他们吃的,这时候又打电话叫E来送食材来加原料

  VG进行缩减容量是将部分空间变成未分配状态或者给到别的VG,操作类似于ABCD带的食材量太多了,有一块饼还没做,等待下次在做或者将食材再做个酱香饼啥的

  LV进行扩大容量操作是一开始给了一个挂载点10个G的空间,但是不够用了,需要将空间扩大到20G,容量索取的话需要在别的挂载点上压缩出来或者直接使用VG未分配的空间,类似于这张饼就这么大,1个人分一张饼,A不够吃,要不去看看还有没有剩下的饼,没有剩下的饼,就得看看BCD谁的饼没吃完,给A一些吃

  LV进行缩减容量操作是一开始给了一个挂载点100个G的空间,但是不够用了,需要将空间缩小到50G,容量压缩出来的话直接变成未分配的空间或者给别的分区,厨师给B一张饼,但是B的饭量小,剩下的饼要不就剩下,谁饿了去盘子里拿,要不就问问ACD,谁不够吃,直接把B吃不下的饼给到ACD。

  6、lvm前准备工作

  如果之前的硬盘有数据,需要提前将磁盘里面的数据进行数据备份,毕竟数据无价,备份完后将磁盘取消挂载并注释掉之前fstab关于磁盘自动挂载的条目信息,必要时在做完前面操作后进行系统重启,重

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

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

相关文章

iOS 主要语言切换问题

前言 上架时需要把主要语言切换成英文,存储时一直提示“因为您必须先为使用这种语言的每个版本提供所有必需的截屏”错误。 错误截图 解决方案: 1、增加英文的截图去审核,审核过了再切换主要语言 官方文档出处 END.

uniapp小程序使用scroll-view组件实现上下左右滚动触发事件

在做uniapp开发小程序的时候,有一个需求是在一个表格区域里面可以上下左右滑动元素,并实现表头和左侧的标签联动效果,就想趣运动里面选择场地的效果一样,这里就用到了scroll-view组件,scroll-view官网文档地址&#xf…

安卓、iOS、iPad三端搞定,不再剧荒!

哈喽,各位小伙伴们好,我是给大家带来各类黑科技与前沿资讯的小武。 之前给大家推荐过各种看剧姿势,但很多苹果、平板端的小伙伴还是存在更好的需求体验,今天给大家推荐这款可以在安卓、iOS和平板上都能安装使用,不再剧…

音视频捕捉技术:LCC382 SDI采集卡深度解析

在日新月异的多媒体时代,高质量的音视频采集已成为众多领域不可或缺的一环。为此,灵卡科技精心打造了LCC382 —— 一款集高效性、灵活性与前沿技术于一身的SDI输入与环出、HDMI输出音视频采集卡,旨在满足从专业直播、视频会议到医疗影像、安防…

F5 Big-IP的一些查看命令

1 查看主机名,序列号,版本号 system —>configuration—>Device

Linux系统中pts和tty会话删除

一、背景 一台CentOS6.7主机存在iscsi盘,为了正常卸载此iscsi盘,需要先将所有相关会话退出使用该iscsi盘。 检查发现存在多个系统用户登录的情况。 二、问题 无法使用kill -9删除linux会话,提示信息为“-bash: kill: (16680) - Operation not…

开发利器 - docker 安装运行 mysql

本文选择安装的mysql版本为5.7 ,安装环境 mac 1、查看镜像是否存在 docker search mysql:5.7 2、拉取镜像 docker pull mysql:5.7 3、运行镜像 docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORDroot1234 -d mysql:5.7 --name:指定容器…

[AI]-(第1期):OpenAI-API调用

文章目录 一、OpenAI API中使用GPT-3.5-turbo模型充值方式使用模型计费方式价格说明相关限制和条款 二、接入一个OpenAI API流程1. 获取OpenAI API 密钥2. 集成ChatGPT到小程序3. 处理用户输入4. 调用OpenAI API5. 返回回复至小程序6. 持续优化7. Postman请求示例 三、通用AI客…

2024最新洗地机推荐,洗地机怎么选?热门品牌哪个最好用?

在现代生活中,忙碌的日常让家庭清洁变得更加繁重和耗时。然而,洗地机的引入彻底改变了这一状况。凭借其强大的清洁效果和简便的使用方式,洗地机能够迅速清除地面上的各种污垢,使清洁工作变得轻松自如。正因为如此,洗地…

windows编译opencv4.9

opencv很多人在windows上编译感觉特别麻烦,没有linux下方便,设定以下三点,我们几乎会无障碍。 1 安装cuda,cudnn 安装好cuda,cudnn,把cudnn的头文件,库等等拷贝到cuda的安装目录下面&#xff…

抖音电商发展受限,视频号反而成了短视频电商风口?这是为什么?

哈喽~我是电商月月 抖音小店发展的如火如荼间,视频号也正式推出了自己的电商平台 视频号小店的推出,引的众多商家讨论 很多人都觉得视频号的流量比不过抖音,玩互联网的人群【年轻群体】都集中在抖音上了,有抖音在,视…

惠普打印机无线网络连接设置

休息一下,灌个水。这次没多少内容,具体步骤惠普官网上都有,唯一增加的是对安装过程中踩的坑做了一个说明。 一.打印机无线网络连接设置步骤 惠普打印机设置无线网络连接,共16个步骤。 1. 在电脑上打开任意浏览器&am…

k8s证书续期

证书即将到期了如何进行证书续签 k8s版本V1.23.6 1.查看证书期限 kubeadm certs check-expiration如果证书即将到期,此处的天数应该是几天,在过期之前进行续期,保证集群的可用 2. 备份证书 避免出现问题可以回退 cp -r /etc/kubernetes …

FreeRTOS消息队列queue.c文件详解

消息队列的作用 消息队列主要用来传递消息,可以在任务与任务之间、中断与任务之间传递消息。 传递消息是通过复制的形式,发送方发送时需要不断复制,接收方接收时也需要不断复制。虽然会有内存资源的浪费,但是可以保证安全。 假…

Java基础教程 - 7 面向对象-1

更好的阅读体验:点这里 ( www.doubibiji.com ) 更好的阅读体验:点这里 ( www.doubibiji.com ) 更好的阅读体验:点这里 ( www.doubibiji.com ) 7 面向对象 面向对象&am…

神经网络复习--循环神经网络

文章目录 RNNLSTM神经网络GAN神经网络 RNN 有些任务人工神经网络,CNN解决不了,自然语言处理中,输入和输出之间不独立,而传统神经网络中,输入和输出都是相互独立的,因此需要一种神经网络让输出和之前的输入…

Go微服务: 接入Prometheus性能监控平台与Grafana平台

接入Prometheus 在 go-micro 生成的模板中, 我们一如既往的完成基础工作之后 进入main.go工作的代码编写,main.go package mainimport ("fmt""log""strconv""github.com/go-micro/plugins/v4/registry/consul"opentracing…

[更改挂载点]重新挂载硬盘

显示磁盘空间使用情况 df -hdf -h 命令的输出显示了文件系统的磁盘空间使用情况。 这里 /dev/nvme0n1p1 设备(大小为 880GB)已经被挂载到 /media/nvidia/SSD 目录下,并且使用了 304GB,剩余 532GB,使用率为 37%。这意…

Django视图Views

Views视图 HttpRequest 和HttpResponse Django中的视图主要用来接受web请求,并做出响应。视图的本质就是一个Python中的函数视图的响应分为两大类 1)以Json数据形式返回(JsonResponse) 2)以网页的形式返回 2.1)重定向到另一个网页 (HttpRe…

JAVA云his医院管理系统源码 SaaS模式+融合B/S版电子病历 基于云计算技术开发的云his医院管理系统

JAVA云his医院管理系统源码 SaaS模式融合B/S版电子病历 基于云计算技术开发的云his医院管理系统 定义 美国著名教授Morris.Collen于1988年曾著文为医院信息系统下了如下定义:利用电子计算机和通讯设备,为医院所属各部门提供病人诊疗信息和行政管理信息…