热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于linux:Linux系统LVM逻辑卷

一、LVMfs(filesystem文件系统)lv(logicalvolume逻辑卷):每个卷组中能够定义一个或多个逻辑卷,逻辑卷是位于物理分区上的信息汇合。vg(volumegr

传统分区的问题:

如果分区空间用满了,只能从新分区。
解决方案:加一个逻辑(软件)中间层。
以下有三个解决方案(逻辑层):

LVM,老牌的,很成熟,能够实现在线动静扩大(不能实现高可用)。
stratis,应用精简文件系统来解决空间节约问题。
3、vdo

一、LVM
fs (file system文件系统)
lv (logical volume 逻辑卷):每个卷组中能够定义一个或多个逻辑卷,逻辑卷是位于物理分区上的信息汇合。
vg (volume group 卷组):卷组是可用物理硬盘的汇合,能够逻辑地看成一块大硬盘,一个卷组由一个或多个物理卷组成。
pv (physical volume物理卷):物理卷是底层真正提供容量,一个物理卷能够是整个磁盘、或磁盘上的分区。
PE (Physical Extend),咱们的LVM磁盘治理中PE的默认大小是4M大小(能够指定大小),其实PE就是咱们逻辑卷治理的最根本单位(一旦确定将不能扭转)。比如说我有一个400M的硬盘,那么在将其格式化成PV的时候,其理论就是将这块物理硬盘划分成了100个的PE,因为PE默认的大小就是4M。

dm: device mapper,将一个或多个底层块设施组织成一个逻辑设备的模块;

   /dev/dm-#

1.1、装置lvm工具

yum install lvm2

罕用的 LVM 部署命令

性能/命令 物理卷治理 卷组治理 逻辑卷治理

扫描 pvscan vgscan lvscan

建设 pvcreate vgcreate lvcreate

显示 pvdisplay vgdisplay lvdisplay

删除 pvremove vgremove lvremove

扩大 vgextend lvextend

放大 vgreduce lvreduce

1.2、创立逻辑卷:
1.2.1、环境筹备
我应用的是3A服务器近程连贯的
应用一块硬盘的两个分区 /dev/sdb2 /dev/sdb3
或者两个硬盘/dev/sdb 、 /dev/sdc
1.2.2、创立pv(Physical volume物理卷)
在分区或磁盘内写入一段元数据(标识以后分区或磁盘是一个pv)

pvcreate /dev/sdb2 /dev/sdb3

如果报错:

Device /dev/sdb excluded by a filter.

Device /dev/sdc excluded by a filter.

可能是因为此硬盘曾经分区,存在分区表

查看创立的pv

1、# pvs

2、# pvdisplay

1.2.3、创立VG(Volume group 卷组)
将指定的PV,逻辑上进行组合成一个大的存储池

-s 参数,可指定PE大小,默认为4MB
把两块硬盘设施退出到fantest 卷组中,而后查看卷组的状态

vgcreate fantest /dev/sdb2 /dev/sdb3

查看创立的VG

1、# vgs

2、# vgdisplay

1.2.4、创立LV(Logical volume逻辑卷)
切割出一个约为 150MB 的逻辑卷设施,这里须要留神切割单位的问题。在对逻辑卷进行切割时有两种计量单位。

-L参数:第一种是以容量为单位,所应用的参数为-L。例如,应用-L 150M 生成一个大小为 150MB 的逻辑卷。

-l参数:另外一种是以根本单元的个数为单位,所应用的参数为-l。每个根本单元的大小默认为 4MB。例如,应用-l 37 能够生成一个大小为 37×4MB=148MB 的逻辑卷。

应用所有闲暇空间:lvcreate -n opt -l 100%FREE centos

查看LV:
1、# lvs

2、# lvdisplay

1.2.5、格式化LV,创立文件系统
把生成好的逻辑卷进行格式化,创立文件系统

mkfs -t xfs /dev/fantest/lv01

或者

mkfs.ext4 /dev/fantest/lv01

1.2.6、挂载lv
创立一个目录,用于挂载lv:

mkdir /home/lv01

mount /dev/fantest/lv01 /home/lv01

把挂载信息写入到配置文件,使其永恒失效

echo “/dev/fantest/lv01 /home/lv01 xfs defaults 0 0” >> /etc/fstab

1.3、扩容逻辑卷
1.3.1、如果VG还有足够空间可调配时,间接调配即可
只有卷组(VG)中有足够的资源,就能够始终为逻辑卷(LV)扩容。

1.3.1.1、查看VG的资源状况

1.3.1.2、逻辑卷扩容

1.3.1.2.1、-l参数:另外一种是以根本单元的个数为单位,所应用的参数为-l。每个根本单元的大小默认为 4MB。例如,应用-l 37 能够生成一个大小为 37×4MB=148MB 的逻辑卷

具体操作与-L参数类似,参考下方方法即可

1.3.1.2.2、-L参数:是以容量为单位,所应用的参数为-L。例如,应用-L 150M 生成一个大小为 150MB 的逻辑卷。

先查看未扩容前,逻辑卷资源占用状况

执行以下命令,扩容逻辑卷(LV):

lvextend -L +100M /dev/fantest/lv01

执行以下命令,扩容xfs文件系统 或者在lvextend 命令中退出-r 参数

xfs_growfs /home/lv01

1.3.2、如果VG没有足够空间可调配,则先创立PV,扩容卷组(VG)后再扩容逻辑卷(LV)
扩大前查看资源状况

先创立pv

pvcreate /dev/sdb4

扩容VG

vgextend fantest /dev/sdb4

1.4、放大逻辑卷
相较于扩容逻辑卷,在对逻辑卷进行缩容操作时,其失落数据的危险更大。所以在生产

环境中执行相应操作时,肯定要提前备份好数据。另外 Linux 零碎规定,在对 LVM 逻辑卷进行缩容操作之前,要先查看文件系统的完整性(当然这也是为了保障咱们的数据安全)。在执行缩容操作前记得先把文件系统卸载掉。

tips:放大逻辑卷时,残余的空间大小必须为一个PV的大小以上

1.4.1、迁徙数据
这里拿/home 测试,先将/home下内容备份删除,并卸载/home

1.4.2、放大逻辑卷
1.4.2.1、ext文件系统

将逻辑卷大小调整为10G

resize2fs /dev/centos/home 10G

resize2fs命令是用来增大或者膨胀未加载的“ext2/ext3/ext4”文件系统的大小

1.4.2.2、xfs文件系统

放大home 逻辑卷的大小为3G

lvreduce -L 3G /dev/centos/home

把生成好的逻辑卷进行格式化,创立文件系统

mkfs.xfs -f /dev/centos/home

1.5、删除逻辑卷
当生产环境中想要重新部署 LVM 或者不再须要应用 LVM 时,则须要执行 LVM 的删除

操作。为此,须要提前备份好重要的数据信息,而后顺次删除逻辑卷、卷组、物理卷设施,这个程序不可颠倒。

1.5.1、勾销逻辑卷与目录的挂载关联,删除配置文件中永恒失效的设施参数。

umount /home/lv01

vi /etc/fstab

1.5.2、删除逻辑卷设施

lvremove /dev/fantest/lv01

1.5.3、删除卷组,此处只写卷组名称即可,不须要设施的绝对路径

vgremove fantest

1.5.4、删除物理卷设施

pvremove /dev/sdb3 /dev/sdb

1.6、逻辑卷快照
LVM 的快照卷性能有两个特点:

➢ 快照卷的容量必须等同于逻辑卷的容量;

➢ 快照卷仅一次无效,一旦执行还原操作后则会被立刻主动删除。

1.6.1、应用-s 参数生成一个快照卷,应用-L 参数指定切割的大小。另外,还须要在命令前面写上是针对哪个逻辑卷执行的快照操作

lvcreate -L 100M -s -n kuaizhao /dev/fantest/fan

1.6.2、在逻辑卷所挂载的目录中创立一个 100MB 的垃圾文件,而后再查看快照卷的状态。能够发现存储空间占的用量回升了

dd if=/dev/zero of=/home/lvm_test/test.txt count=1 bs=100M

1.6.3、为了校验 kuaizhao 快照卷的成果,须要对逻辑卷进行快照还原操作。在此之前记得先卸载掉逻辑卷设施与目录的挂载

umount /home/lvm_test

如果报错:

umount: /home/lvm_test: target is busy.

    (In some cases useful info about processes that use

     the device is found by lsof(8) or fuser(1))

可能是有用户正在占用目录

lvconvert –merge /dev/fantest/kuaizhao

1.6.4、快照卷会被主动删除掉,并且刚刚在逻辑卷设施被执行快照操作后再创立进去的 100MB 的垃圾文件也被革除了。

mount /dev/fantest/fan /home/lvm_test


推荐阅读
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 开发笔记:实验7的文件读写操作
    本文介绍了使用C++的ofstream和ifstream类进行文件读写操作的方法,包括创建文件、写入文件和读取文件的过程。同时还介绍了如何判断文件是否成功打开和关闭文件的方法。通过本文的学习,读者可以了解如何在C++中进行文件读写操作。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ... [详细]
  • Python使用Pillow包生成验证码图片的方法
    本文介绍了使用Python中的Pillow包生成验证码图片的方法。通过随机生成数字和符号,并添加干扰象素,生成一幅验证码图片。需要配置好Python环境,并安装Pillow库。代码实现包括导入Pillow包和随机模块,定义随机生成字母、数字和字体颜色的函数。 ... [详细]
  • 本文整理了315道Python基础题目及答案,帮助读者检验学习成果。文章介绍了学习Python的途径、Python与其他编程语言的对比、解释型和编译型编程语言的简述、Python解释器的种类和特点、位和字节的关系、以及至少5个PEP8规范。对于想要检验自己学习成果的读者,这些题目将是一个不错的选择。请注意,答案在视频中,本文不提供答案。 ... [详细]
  • 大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记
    本文介绍了大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记,包括outputFormat接口实现类、自定义outputFormat步骤和案例。案例中将包含nty的日志输出到nty.log文件,其他日志输出到other.log文件。同时提供了一些相关网址供参考。 ... [详细]
  • 使用C++编写程序实现增加或删除桌面的右键列表项
    本文介绍了使用C++编写程序实现增加或删除桌面的右键列表项的方法。首先通过操作注册表来实现增加或删除右键列表项的目的,然后使用管理注册表的函数来编写程序。文章详细介绍了使用的五种函数:RegCreateKey、RegSetValueEx、RegOpenKeyEx、RegDeleteKey和RegCloseKey,并给出了增加一项的函数写法。通过本文的方法,可以方便地自定义桌面的右键列表项。 ... [详细]
author-avatar
A丶Iice-fjl
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有