linux初学者-磁盘拉伸缩减篇

 

linux初学者-磁盘拉伸缩减篇

        在系统的使用过程中,往往会出现这样的问题,由于刚开始无法估计需要的磁盘空间,导致后期磁盘空间不够,使得数据没地方存储,又或者后期磁盘空间过大,造成资源的浪费。这种在使用之前无法估计磁盘大小的问题可以通过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在学习工作中的一些简要介绍与应用。

原文地址:https://www.cnblogs.com/davidshen/p/8145941.html