Ubuntu LVM 逻辑卷操作 创建 删除

2023-05-16

在这里插入图片描述

先检查新硬盘是否插入: fdisk -l 或者 df -h 或者 lsblk

创建LVM

1、将物理磁盘设备初始化为物理卷

pvcreate /dev/sdb /dev/sdc

查看物理卷信息:pvdispaly 或者 pvs
如果报错 Device /dev/sdb excluded by a filter
解决办法如下:
fdisk -l 参看磁盘情况,需要扩容的盘dev/sdb 还存在
重建分区和再次创建卷的时候擦除签名信息

parted /dev/sdb
mklabel msdos
Yes
quit

重建就完成了,然后重新 pvcreate /dev/sdb 即可

2、创建卷组,并将上面两个PV加入卷组vg1中

vgcreate vg1 /dev/sdb /dev/sdc

3、基于卷组vg1创建2G大小空间的逻辑卷

lvcreate -n lv1 -L 2G vg1

如果使用全部剩余空间,则使用

lvcreate -n lv1 -L 100%FREE vg1

查看卷组信息:vgdisplay 或者 vgs
4、为创建好的逻辑卷格式化创建文件系统

mkfs.ext4 /dev/vg1/lv1 

查看逻辑卷信息:lvdisplay 或者 lvs
5、将格式化好的逻辑卷挂载到 /mnt 中 使用

mount/dev/vg1/lv1 /mnt 

删除 LVM

0、卸载已经挂载

umount /mnt

1、删除LV

lvremove /dev/vg1/lv1

2、删除 VG

vgremove vg1

3、删除物理卷

pvremove /dev/sdb

【LVM背景讲解】

在此之前,传统的linux的磁盘管理 和 window 的磁盘管理大同小异,都是使用MBR磁盘分区方式,通过磁盘分区、再去创建文件系统;

问题:

当分区的空间不够用时无法扩展其大小,只能通过添加硬盘、创建新的分区来扩充空间,但是新添加进来的硬盘是作为独立文件系统存在的,原有的文件系统并未得到扩充,上层应用很多时候只能访问一个文件系统。所以只能让现有磁盘下线,换上新的磁盘之后,再将原始数据导入。

如果在实际生产环境的服务器中,出现这种分区已用完的时,我们是很难对原有分区处理扩容的,处理的方式就是我们不得不先扩容更大的新分区,然后停止项目的运行,移动项目到新的扩容分区中;非常麻烦
LVM 就很好的解决了上面分区扩容麻烦的问题;

LVM(Logical volume Manager) 逻辑卷管理:通过将底层物理硬盘抽象地封装起来,以逻辑卷的形式表现给上层系统。逻辑卷的大小可以动态调整,而且不会丢失现有的数据。新加入的硬盘也不会改变现有上层的逻辑卷。

作为一种 动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性!
我们能操作的只是 逻辑卷,逻辑卷说白了,就是可伸缩的 “分区卷”,其分区大小可以动态调节,而不受制于原始的固定分区大小;

LVM 的底层概念

在这里插入图片描述

一句话概括

物理磁盘被格式化为PV(physical volume),空间被分为一个个PE(physical extend)【大小为 4 MB,为逻辑卷的最小单位】。不同的PV加入同一个VG(volume group),不同PV的PE全部进入VG的PE池内。LV(logicalvolume)基于PE创建,大小为PE的整数倍,组成LV的PE可能来自于不同的物理磁盘。LV现在就能挂载使用了。

详解:

假如有一块硬盘,我们使用LVM技术时,将硬盘插入服务器中,将该硬盘条带化(格式化)成物理卷PV,即把硬盘空间划分为以4M的基准切割N多个PE;比如一个硬盘容量为400M,那么一共就有100(400/4) 个PE;(PE是逻辑卷空间管理的最基本单位,PE默认是4M大小 创建一个卷组VG,可以理解为空间池(或者说地址池),作用是用来装 PE 的,如上图,多个硬盘的PE装入到了 VG 中;VG 必须有名称的;VG的大小由多少个PE来决定;基于卷组VG来创建我们每个逻辑卷LV(相当于传统的分区),从VG拿出来多少个PE到LV中,这个LV的空间就有多大;我们把创建好的逻辑卷格式化,然后挂载,就可以用了;LV必须有名称的;LV的大小由多少个PE来决定; 当创建好卷组VG时,会创建目录 /dev/卷组名/ ;而当逻辑卷创建好时,会创建文件/dev/卷组名/逻辑卷名; 注意:组成逻辑卷的PE可以来自不同的硬盘,如上图,sda的PE是灰色的,而sdb的PE是白色的,lV有3个灰1个白的PE:

image

我们不需要关心也不能操作 VG、PV 和 PE,我们只能操作 LV逻辑卷;
当我们对LV拉伸活收缩时,实际上就是增加活减少PE,来达到伸缩LV逻辑卷的目的;
对 卷组VG 的伸缩,就是加减硬盘;

image
总结:

  • 物理磁盘被格式化为PV

  • 空间被分为一个个PE 不同的PV加入同一个VG

  • 不同PV的PE全部进入VG的PE池内

  • LV基于PE创建,大小为PE的整数倍,组成LV的PE可能来自不同物理磁盘 LV现在就直接可以格式化后挂载使用了

  • LV的扩充缩减实际上就是增加或减少组成该LV的PE的数量。其过程不丢失原始数据

更多操作参考链接

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu LVM 逻辑卷操作 创建 删除 的相关文章

  • libicui18n.so.52:无法打开共享对象文件

    我一直在使用 libicu 来检测在 docker ubuntu 内部运行的节点应用程序中的字符集 这是通过模块完成的节点 icu 字符集检测器 https github com mooz node icu charset detector
  • 为 Qt 应用程序创建 Linux 安装

    我刚刚用 Qt Creator 制作了一个很棒的程序 我对自己很满意 如何将其从台式机移至笔记本电脑 那么 最好的方法是安装程序 对吗 对于 Ubuntu 这是一个 Debian 软件包 对吗 我怎么做 有人这样做过吗 他们可以分享 QT
  • apt-get install tzdata 非交互式

    当我尝试 apt get install y tzdata 将显示用于选择时区的命令行选项 我试图在脚本中使用它来进行一些设置 如何在没有用户输入的情况下使 apt get 运行 我知道重新配置 tzdata 我可以做 echo Ameri
  • NMCLI 设备不可用

    我正在尝试在 ubuntu core 16 04 上配置带有蜂窝接口的新设备 我有 NMCLI 包在上面运行 在添加连接之前 我检查了接口 nmcli dev DEVICE TYPE STATE CONNECTION eth1 ethern
  • Apache 反向代理的基本身份验证问题

    我想为在 Ubuntu 服务器 12 04 1 上运行的 Apache 反向代理站点添加基本身份验证 网络应用程序是Jenkins http jenkins ci org运行在 Java EE 容器上 我在中添加了以下配置httpd con
  • SSH 无法对 [email protected] 进行身份验证

    最近 我在 Github com 上注册了一个免费计划 我按照他们的说明生成 ssh 密钥以添加到我的帐户 然而 当我尝试ssh v email protected cdn cgi l email protection 我收到此错误 deb
  • PostgreSQL - 致命:用户“myuser”身份验证失败[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我刚刚在我的 Ubuntu Box 中安装了 PostGreSQL 我想做的第一件事就是创建一个数据库 我读了文档 http www postgres
  • 交叉编译armv5,但它创建v7二进制文件

    我设法为arm926ej s创建了一个目标文件我在 qemu 上使用 Debian Arm arm linux gnueabi gcc 4 4 static O c mcpu arm926ej s hello c o hello root
  • Tomcat 6找不到mysql驱动

    这里有一个类似的问题 但关于类路径 ClassNotFoundException com mysql jdbc Driver https stackoverflow com questions 1585811 classnotfoundex
  • 如何授予 apache 使用 NTFS 分区上的目录的权限?

    我在一台带有 20GB 硬盘的旧机器上运行 Linux Lubutu 12 10 我有一个 1 TB 外部硬盘 上面有一个 NTFS 分区 在该分区上 有一个 www 目录 用于保存我的网页内容 它在启动时自动安装为 media t515
  • 没有名为“PIL”的模块

    当我尝试时遇到错误 from PIL import Image ImageFilter 在 Python 文件中我收到一条错误消息ModuleNotFoundError No module named PIL 到目前为止 我已经尝试卸载 重
  • 无法使用maven编译java项目

    我正在尝试在 java 16 0 1 上使用 maven 构建 IntelliJ 项目 但它无法编译我的项目 尽管 IntelliJ 能够成功完成 在此之前 我使用maven编译了一个java 15项目 但我决定将所有内容更新到16 0 1
  • opencv_contrib编译错误:类没有成员

    我必须实现 SURF 算法来进行图像拼接 我在使用列出的库时遇到了问题here https stackoverflow com questions 33560251 opencv 3 0 0 ubuntu 14 04 nonfree non
  • 如何在 GNU/Linux 上设置 Subversion (SVN) 服务器 - Ubuntu [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一台运行 Ubuntu 的笔记本电脑 我想将其用作 Subversion 服务器 既让我自己在本地承诺 也让其他人远程承诺 要使其
  • 更改“/usr/bin/”的所有权:不允许操作

    我刚刚改变了我的所有者 犯了一个巨大的错误 usr bin from root对一个普通人user 每当我尝试执行时 sudo chown root usr bin这给了我 chown changing ownership of usr b
  • 在 Ubuntu 16.04 上编译 PCL 1.7,CMake 生成的 Makefile 中出现错误

    我正在尝试让 PCL 1 7 点云库 而不是其他 pcl 在 Ubuntu 16 04 上运行 我最终希望用于 C 的东西 但现在我只是想让这些例子工作 我使用的是 Ubuntu GNU 5 3 1 附带的默认编译器和 Cmake 版本 3
  • ubuntu 的 CSS 更少(并且自动编译)? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我尝试过 simples 但现在 l
  • Python子进程Exec格式错误

    抱歉 如果这个问题很愚蠢 我正在使用Pythonsubprocess在 Ubuntu Natty 11 04 中调用 bat 文件的语句 但是 我收到错误消息 Traceback most recent call last File pfa
  • OpenSSL 未签名证书静默

    遇到了麻烦 还有其他一些相关的帖子 但没有那么具体 我正在尝试为开发机器默默地生成证书 这些是我最初运行的命令 但被要求输入密码 openssl genrsa des3 out server key 1024 openssl req new
  • Nginx 作为负载均衡器,具有 75% 和 25% 加权路由

    我是 Nginx 新手 我有两台服务器 serverA 和 serverB 我希望 75 的请求发送到 serverA 其余 25 的请求发送到 serverB 这可能吗 使用nginx加权路由 stream upstream stream

随机推荐

  • py基础之掷骰子游戏的实现

    掷骰子游戏 xff08 循环的使用及掌握 xff09 0 两个骰子都是1 6 1 玩游戏要有金币 xff0c 没有金币不能玩游戏 2 玩一局游戏赠金币一枚 xff0c 充值获得金币 3 充值为10元的倍数 xff0c 10元 20个金币 x
  • centOS 不能上外网怎么下载依赖 (通过挂载镜像)

    问题 我们在服务器上部署系统环境的时候 xff0c 常常会遇到找不到该命令 bash span class token operator span span class token punctuation span span class t
  • linux 搭建FTP服务器

    linux 搭建FTP服务器 网上对于ftp搭建有很多 xff0c 但是说的比较的麻烦 xff0c 而且十分容易出错 xff0c 并且在创建完成后存在一些配置的注意事项 废话不多说 xff0c 现在开始 1 安装 vsftpd 安装FTP服
  • 提取论文中公式神奇(写论文的福音)

    写论文还在愁怎么写复杂的公式吗 xff0c 想引用其他的论文的公式 xff0c 发现都是这样的 P X i
  • java中list.add添加元素覆盖之前的问题

    1 在码代码时 xff0c 发现一个问题 xff1a 使用 list lt object gt list 61 new Arraylist lt object gt list add object xff1b 出现之前添加的元素被最后的元素
  • 线性最优解java实现+Cplex java调用

    一 xff1a cplex的使用 xff1a 1 1 导入cplex jar 包的地址 xff1a https pan baidu com s 1Q0Bv24EQdelV2rY IrLoZQ 提取码 xff1a xn14 1 2 将cple
  • KNN算法(K临近算法)及使用KNN算法实现手写数字0-9识别

    首先感谢博主倔强的小彬雅 xff0c 本文使用的素材及部分代码来源其博文机器学习入门 用KNN实现手写数字图片识别 xff08 包含自己图片转化 xff09 xff0c 需要下载素材的可以到其博文最后进行下载 关于KNN算法 knn算法也叫
  • 如何学习开源飞控

    前言 有一段时间没有更新文章了 新的一年新气象 xff0c 因此还是要抽出时间 xff0c 写点总结与思考 xff0c 对自己的成长也是很有帮助 今天主要想聊一下开源飞控的学习 本人在5年前 xff0c 在知乎下写过一篇回答 xff0c 如
  • 控制系统的观测器基础知识

    1 为什么需要用到观测器 控制原理中的系统框图 xff0c 往往都是假设反馈状态为理想值 但在工程实践中 xff0c 这个是做不到的 一般我们采用传感器测量控制的反馈状态 xff0c 而传感器的测量值 xff0c 存在几个问题 xff1a
  • 浅谈飞控的软件设计

    写在前面 开这个专栏的目的主要是深感自己对飞控软件 算法的知识点过于杂乱 xff0c 很久没有进行系统的总结了 xff0c 因此决定写几篇文章记录一些飞控开发过程的知识点 主要是针对一些软件 算法部分进行讨论 xff0c 如内容有错误 xf
  • 飞控IMU数据进阶处理(FFT,滤波器)

    前面的文章 xff08 知乎专栏 https zhuanlan zhihu com c 60591778 xff09 曾简单讲过IMU数据 xff08 陀螺仪 加速度数据 xff09 的校准以及一阶低通滤波 本文在此基础上更进一步讲一下数据
  • (5)py接口自动化之配置文件&数据库连接详解

    目录 一 配置文件 ini amp yaml 1 作用 2 ini A 语法 B 特点 C 操作方法 3 yaml A 安装第三方库 B 支持的数据类型 C 特性 D 语法 E 数据读取 二 数据库连接与pytho配置文件 1 安装数据库
  • 再谈IMU数据处理(滤波器)

    本文开始前 xff0c 先回答一个问题 上一篇文章最后提到了卡尔曼滤波器用来做一维数据的数字滤波处理 xff0c 最终的实验结果说 xff1a 该模型下的卡尔曼滤波处理与二阶IIR低通滤波处理效果几乎一致 有网友指出是错误的 xff0c 卡
  • s3操作ceph 创建bucket 报错 命名 错误 botocore.exceptions.ClientError: An error occurred (InvalidBucketName)

    报错信息 Traceback span class token punctuation span most recent call last span class token punctuation span s3 create bucke
  • windows 10 上传文件夹到 Linux服务器 压缩文件夹 到tar.gz格式

    有时候需要把win10上的一个文件夹传到Linux服务器上 简洁的做法是先压缩成 tar gz 再用xftp上传 其中win端的压缩软件一般无法直接压缩成tar gz格式 可用在cmd中 用命令压缩 xff1a span class tok
  • NS3 socket 发送 packet因Tag值过大发送失败

    NS3使用中遇到一个问题 xff1a NS3中当Tag内值过大 xff08 没有超过数据结构可用大小 xff09 的时候 出现socket Send xff08 packet xff09 失败的情况 现在有三个节点 结构如下 span cl
  • 一行代码安装Tensorflow GPU Ubuntu20.04 Windows

    本文内容 xff1a Ubuntu20 04下使用Anaconda 配置Tensorflow GPU环境 Windows操作系统也可行 xff0c 换成Win下的anaconda安装方法即可 Why conda xff1f 使用conda安
  • python无法引用另一个python文件问题 文件名命名问题

    问题 xff1a python的from xxxx py import 语句无法获取另一个python文件 例子 xff1a 在A py的同级目录下有另一个文件xxx xxx py xff08 文件无错 xff0c 可运行 xff09 在A
  • Ubuntu20.04 安装显卡驱动 安装pytorch

    1 查看推荐的驱动 ubuntu span class token operator span drivers devices driver span class token operator span nvidia span class
  • Ubuntu LVM 逻辑卷操作 创建 删除

    先检查新硬盘是否插入 xff1a fdisk l 或者 df h 或者 lsblk 创建LVM 1 将物理磁盘设备初始化为物理卷 pvcreate dev sdb dev sdc 查看物理卷信息 xff1a pvdispaly 或者 pvs