在系统的使用过程中,往往会出现这样的问题,由于刚开始无法估计需要的磁盘空间,导致后期磁盘空间不够,使得数据没地方存储,又或者后期磁盘空间过大,造成资源的浪费。这种在使用之前无法估计磁盘大小的问题可以通过LVM来解决。

LVM时将一个或多个磁盘的分区在逻辑上集合,相当于一个大硬盘来使用,当磁盘空间不够时,可以将其他磁盘的分区空间加入其中,这样可以实现磁盘空间的动态管理。下文将对这种磁盘的拉伸和压缩空间进行介绍。

LVM里分为PV、VG、LV。在LV的空间用满了之后,就需要重新在VG中加入空间,当VG空间用完后,需要从PV中获取,当PV空间用完之后,就需要重新加入磁盘分区了,这样就可以实现在LV空间不足时的空间供给。PV、VG、LV的查看可以通过命令"pvs"、"vgs"和"lvs"来实现。

1、建立

建立时需要先新建一个分区,并将分区的功能标识设为LVM,即先输入"t",选定分区后输入"8e"。

输入"pvcreate 磁盘分区"创建一个PV,如下图所示。然后输入"vgcreate vg0 磁盘分区"来建立VG,"vg0"为VG的名称,可以自行设置。最后输入"lvcreate -L 200M -n lv0 vg0"来分配磁盘空间,其中"200M"为分配的磁盘大小,"lv0"为LV的名称,可以自行设置。

完成后会出现一个"/dev/vg0/lv0"磁盘分区,输入"mkfs.xfs /dev/vg0/lv0 -f"格式化这个分区,然后就可以进行挂载了。

2、添加空间

如下图所示,当分得的200M空间用完后,需要给lv0里面添加空间,则可以输入命令"lvextend -L 400M /dev/vg0/lv0"来添加400M的空间。但此时空间不会添加进去,需要对新加入的空间进行格式化,但不能使用"mkfs.xfs"来格式化,需要输入"xfs_growfs /dev/vg0/lv0"来格式化,完成后空间即可添加进去。

当VG和PV的空间都使用完后,需要重新从新的磁盘分区中添加,如下图所示,在PV中再添加一个磁盘分区,在分区建立好后,输入"pvcreate 新的磁盘分区"将磁盘分区添加到PV中,再输入"vgextend vg0 新的磁盘分区"将新加入的空间添加到vg中。

3、磁盘缩小

xfs的文件模式不能进行磁盘缩小,所以如果有需要用到磁盘缩小,需要将磁盘格式化成"ext4"文件模式。

如下图所示,在进行磁盘缩小之前,取消挂载后将文件格式格式化为"ext4"。

在进行磁盘缩小时,必须先缩小设备,再缩小lv0,缩小空间如下图步骤所示,先对设备取消挂载,再输入"e2fsck -f /dev/vg0/lv0"对设备中的文件进行扫描,使得数据安全,这样在缩减过度时会警告。完成后输入"resize2fs /dev/vg0/lv0 200M"即将设备缩减至200M,这是对设备进行缩减。完成后重新挂载,再输入"lvreduce -L 200M /dev/vg0/lv0"对lv0进行缩减。

"ext4"文件模式下的空间添加和xfs相同,但是在最后一步格式化添加空间时需要输入"resize2fs /dev/vg0/lv0",而不是输入"xfs_growfs /dev/vg0/lv0"。

4、PV中磁盘的移除

有多个磁盘并且空间还充足时,如果需要移除其中的一个磁盘,则需要进行以下操作:

如果移除的磁盘中有数据,就需要使用"pvmove 移除磁盘 其他磁盘"来将移除磁盘的数据移入其他磁盘当中。

完成数据移动或者移除磁盘没有数据,输入"vgreduce vg0 移除磁盘",将移除磁盘的空间从vg中取出来。最后输入"pvremove 移除磁盘"即可将指定磁盘移除。

5、数据备份

与快照相似,LVM中也提供快照备份的功能,例如下图,将目录挂载在/mnt下,并在其中建立10个文件,取消挂载后输入命令"lvcreate -L xxxM -n lv0-backup -s /dev/vg0/lv0"来对磁盘进行快照备份,xxxM为快照数据需要改变的大小,可以自行设置。完成后重新挂载到/mnt下。

快照备份完成后,输入"rm -fr /mnt/*"删除这10个文件,此时这10个文件并没有被永久删除,取消挂载后输入"lvremove /dev/vg0/lv0-backup"删除这个快照备份,再输入"lvcreate -L xxxM -n lv0-backup -s /dev/vg0/lv0"重新进行快照备份,完成后挂载到/mnt下,删除的10个文件就会重新出现。

6、LVM的移除

在不需要使用LVM时,就可以对LVM进行移除了。移除的步骤如下图所示:

首先取消挂载,输入"lvremove /dev/vg0/lv0-backup"删除快照,如果没有可忽略,输入"lvremove /dev/vg0/lv0"移除LV,输入"vgremove vg0"移除VG,输入"pvremove 磁盘分区"移除PV,至此LVM的移除就完成了。

完成后也可以输入"pvs"、"vgs"和"lvs"查看是否移除。

以上就是LVM在学习工作中的一些简要介绍与应用。

linux初学者-磁盘拉伸缩减篇的更多相关文章

  1. linux初学者-磁盘分区方式篇

    linux初学者-磁盘分区方式篇 一般的计算机都会采用mbr分区方式,这种分区方式只能够建立四个主分区,如果还需要或更多的分区,就需要将其中一个主分区建立成一个扩展分区,在里面建立逻辑分区,这些分区信 ...

  2. linux初学者-磁盘加密篇

    linux初学者-磁盘加密篇 因为保密需要,一般系统中会在文件和磁盘中进行加密,但是文件的加密比较容易破解,不安全.所以在特殊需要下,会对磁盘进行加密,磁盘加密后在磁盘损坏的同时,其中的数据也会损坏, ...

  3. linux初学者-磁盘配额篇

    linux初学者-磁盘配额篇 在使用磁盘时,只要有权限,不管什么用户都可以在其中写入数据,但是如果是多人在一个磁盘中写入数据,就会出现争议,如果一个用户将磁盘空间用完,那么其他人无法再使用.如下图所示 ...

  4. Linux中磁盘分区——理论篇

    Linux中磁盘分区——理论篇 现在主流的分区的方式有两种——MBR分区和GPT分区,本文将着重介绍MBR分区底层原理,及用相关命令验证相关原理 Linux中磁盘分区理论篇 为什么要对磁盘进行分区 M ...

  5. linux初学者-NFS网络文件系统篇

    linux初学者-NFS网络文件系统篇 在上一篇的SAMBA篇中介绍了linux系统和windows系统之间共用的网络文件系统CIFS,主要用于客户端是windows的情况.在linux系统之间,所用 ...

  6. linux初学者-CIFS网络文件系统篇

    linux初学者-CIFS网络文件系统篇 CIFS是一种通用网络文件系统,主要用于网络设备之间的文件共享.CIFS可以在linux系统和windows系统之间共享文件,因此这种文件系统主要用于客户端是 ...

  7. linux初学者-DNS集群篇

    linux初学者-DNS集群篇 DNS服务器一般在使用时,为了缓解服务器的压力,多使用一个主DNS服务器,多个副DNS服务器,这些DNS服务器就组成了一个DNS集群. 在DNS主服务器配置好后,需要另 ...

  8. linux初学者-延迟及定时任务篇

    linux初学者-延迟及定时任务篇 在linux系统的学习工作中,南面会遇到需要延迟进行的任务和需要定时去完成的任务,就像手机的闹钟一样,这时候就需要用到linux系统当中的系统延迟和定时任务的设置了 ...

  9. linux初学者-普通磁盘分区篇

    linux初学者-普通磁盘分区篇 磁盘是计算机的重要组成部分,是记录数据的场所.在使用磁盘时,经常需要对其进行分区来实现不同的用途.下文将介绍在linux系统中普通磁盘分区的方法. "fdi ...

随机推荐

  1. 在 .pro里加入 QMAKE_CXXFLAGS += /MP 将并行编译(VC),加快编译速度(姚冬的办法),或者-j4参数(MinGW)

    但是只对VC编译器有效果. 另外还可以自己设置stdafx.h文件 http://www.zhihu.com/question/23045749 C:\Qt\Qt5.6.2_static\bin\qm ...

  2. Spectre小计

    今天安装了vs2017,而后又安装了wdk,随便写了一个控制台测试程序,居然报错.网上也查了一圈,也没有得到解决.报错内容如下: MSB8038:已启用Spectre缓解,但找不到Spectre缓解库 ...

  3. Mysql 自定义HASH索引带来的巨大性能提升

    有这样一个业务场景,需要在2个表里比较存在于A表,不存在于B表的数据.表结构如下: T_SETTINGS_BACKUP | CREATE TABLE `T_SETTINGS_BACKUP` ( `FI ...

  4. SYN1621型 定位定向授时设备

    SYN1621型 定位定向授时设备 定位定向授时设备使用说明视频链接: http://www.syn029.com/h-pd-274-0_310_39_-1.html 请将此链接复制到浏览器打开观看 ...

  5. redis在asp.net 中的应用

    1.redis介绍 Nosql数据库作为关系型数据库的补充,在互联网公司已经得到广泛的运用.redis便是其中的代表之一,redis是一种(key,value)基于内存的数据库,并支持多种数据结构,如 ...

  6. Java并发之Semaphore和Exchanger工具类简单介绍

    一.Semaphore介绍 Semaphore意思为信号量,是用来控制同时访问特定资源的线程数数量.它的本质上其实也是一个共享锁.Semaphore可以用于做流量控制,特别是公用资源有限的应用场景.例 ...

  7. 异常:Parameter 'username' not found. Available parameters are [arg1, arg0, param1, param2]

    内容中包含 base64string 图片造成字符过多,拒绝显示

  8. GRPC Oauth IdentityServer4

    Server端 StartUp类: using System; using System.Collections.Generic; using System.Linq; using System.Th ...

  9. PHP学习(1)

  10. kafka入门(三)备份

    一.相关概念 备份相关的角色 Kafka消息备份分三个角色:分别是Leader副本.Follower副本.ISR集合 Leader副本 负责直接响应client端的读写请求,即和生产者和消费者直接对接 ...