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在学习工作中的一些简要介绍与应用。
linux初学者-磁盘拉伸缩减篇的更多相关文章
- linux初学者-磁盘分区方式篇
linux初学者-磁盘分区方式篇 一般的计算机都会采用mbr分区方式,这种分区方式只能够建立四个主分区,如果还需要或更多的分区,就需要将其中一个主分区建立成一个扩展分区,在里面建立逻辑分区,这些分区信 ...
- linux初学者-磁盘加密篇
linux初学者-磁盘加密篇 因为保密需要,一般系统中会在文件和磁盘中进行加密,但是文件的加密比较容易破解,不安全.所以在特殊需要下,会对磁盘进行加密,磁盘加密后在磁盘损坏的同时,其中的数据也会损坏, ...
- linux初学者-磁盘配额篇
linux初学者-磁盘配额篇 在使用磁盘时,只要有权限,不管什么用户都可以在其中写入数据,但是如果是多人在一个磁盘中写入数据,就会出现争议,如果一个用户将磁盘空间用完,那么其他人无法再使用.如下图所示 ...
- Linux中磁盘分区——理论篇
Linux中磁盘分区——理论篇 现在主流的分区的方式有两种——MBR分区和GPT分区,本文将着重介绍MBR分区底层原理,及用相关命令验证相关原理 Linux中磁盘分区理论篇 为什么要对磁盘进行分区 M ...
- linux初学者-NFS网络文件系统篇
linux初学者-NFS网络文件系统篇 在上一篇的SAMBA篇中介绍了linux系统和windows系统之间共用的网络文件系统CIFS,主要用于客户端是windows的情况.在linux系统之间,所用 ...
- linux初学者-CIFS网络文件系统篇
linux初学者-CIFS网络文件系统篇 CIFS是一种通用网络文件系统,主要用于网络设备之间的文件共享.CIFS可以在linux系统和windows系统之间共享文件,因此这种文件系统主要用于客户端是 ...
- linux初学者-DNS集群篇
linux初学者-DNS集群篇 DNS服务器一般在使用时,为了缓解服务器的压力,多使用一个主DNS服务器,多个副DNS服务器,这些DNS服务器就组成了一个DNS集群. 在DNS主服务器配置好后,需要另 ...
- linux初学者-延迟及定时任务篇
linux初学者-延迟及定时任务篇 在linux系统的学习工作中,南面会遇到需要延迟进行的任务和需要定时去完成的任务,就像手机的闹钟一样,这时候就需要用到linux系统当中的系统延迟和定时任务的设置了 ...
- linux初学者-普通磁盘分区篇
linux初学者-普通磁盘分区篇 磁盘是计算机的重要组成部分,是记录数据的场所.在使用磁盘时,经常需要对其进行分区来实现不同的用途.下文将介绍在linux系统中普通磁盘分区的方法. "fdi ...
随机推荐
- 前端开发在uc浏览器上遇到的坑
关于uc 的flex 和textarea 的width:100%: 这些天再做一个wap的项目,本想着手机上不用考虑兼容性问题,可以大刀阔斧搞,fuck ie678! 在pc上完成页面开发,在chro ...
- 学习Java,容易被你忽略的小细节(2)
昨天心情真的太糟糕了,写完<学习Java,值得注意你注意的问题(1)>之后,迎来些许的支持以后就是一片片的谴责.我的主页上涌现出许许多多Java方面的牛人,谴责我水平太低,写的问题太初级. ...
- win10 下的YOLOv3 训练 wider_face 数据集检测人脸
1.数据集下载 (1)wider_face 数据集网址为 http://shuoyang1213.me/WIDERFACE/index.html 下载以上几项文件(这里推荐 google Drive ...
- lock和synchronized如何选择?
1.lock是一个接口,而synchronized是java关键字,synchronized是内置的语言实现. 2.synchronized在发生异常时,会自动释放线程占有的锁,因此不会导致死锁,而l ...
- springboot如何读取自定义配置项
我们springboot项目有自己默认的配置文件,一般地由application.yml和bootstrap.yml组成,前者是模块的配置,后者是微服务的配置,后台比前者先被框架加载. 我们有时需要自 ...
- ThinkPHP判断post,get操作
define('REQUEST_METHOD',$_SERVER['REQUEST_METHOD']); define('IS_GET', REQUEST_METHOD =='GET' ? true ...
- Python笔记【5】_字符串&列表&元组&字典之间转换学习
#!/usr/bin/env/python #-*-coding:utf-8-*- #Author:LingChongShi #查看源码Ctrl+左键 #数据类型之间的转换 Str='www.baid ...
- 从Spring的几个阶段理解其工作过程
Spring框架非常强大,想要彻底弄懂Spring是非常困难的. 为了便于了解Spring的工作原理,我们来研究一下,Spring是怎么加载的,Spring会经过几个阶段. 我们站在Javaweb ...
- java-NIO-概念
现在使用NIO的场景越来越多,很多网上的技术框架或多或少的使用NIO技术,譬如Tomcat,Jetty 一.概述 NIO主要有三大核心部分:Channel(通道),Buffer(缓冲区), Selec ...
- python3 连接数据库注意点
类库:pymysql ''' Created on 2019年 @author: Root ''' import pymysql from name import getName # 数据库连接信息 ...