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 ...
随机推荐
- 深入理解计算机系统 BombLab 实验报告
又快有一个月没写博客了,最近在看<深入理解计算机系统>这本书,目前看完了第三章,看完这章,对程序的机器级表示算是有了一个入门,也对 C 语言里函数栈帧有了一个初步的理解. 为了加深对书本内 ...
- 对SpringMVC架构进行工程拆分遇到的问题总结
经过一个月的开发,一个单一的SpringMVC教育类创业项目正式上线,随着时间的推移,业务流量逐渐增大,最近对这个单一的工程从零进行SOA分布式改造,改造包括dubbo改造,集成化部署.高可用集群,负 ...
- C#版剑指Offer-001二维数组中的查找
题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...
- Java基础篇01
01. 面向对象 --> 什么是面向对象 面向对象 面向对象程序设计,简称OOP(Object Oriented Programming). 对象: 指人们要研究的任何事物,不管是物理上具体的事 ...
- (2)Linux文件和目录操作命令
简单就是高效 pwd cd -/~/.. tree–a/d/f/i/L mkdir–p/v/m touch ls –l/a//i/h/F cp –r/p/d/a mv rm –f/r/i rmdir ...
- MySQL之基础操作
一.安装 Mysql是最流行的关系型数据库管理系统之一,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数 ...
- spark入门(三)键值对操作
1 简述 Spark为包含键值对类型的RDD提供了一些专有的操作.这些RDD被称为PairRDD. 2 创建PairRDD 2.1 在sprk中,很多存储键值对的数据在读取时直接返回由其键值对数据组成 ...
- Codeforces 778A:String Game(二分暴力)
http://codeforces.com/problemset/problem/778/A 题意:给出字符串s和字符串p,还有n个位置,每一个位置代表删除s串中的第i个字符,问最多可以删除多少个字符 ...
- 源代码扫描工具Fortify SCA与FindBugs的简单对比
前段时间因为工作原因需要对java源代码进行扫描,现结合使用经验对静态代码扫描工具Fortify SCA与FindBugs进行一个简单的对比. 一.Fortify SCA Fortify SCA是由全 ...
- JS代码实现复制功能
本人没什么基础看了好久百度,不知道为什么在百度上问一个js实现copy功能会多出那么多代码出来,感觉废话一堆效果还没能达到需要复制 的效果. 然而在我看来,js复制代码 无非就那么几句罢了.原生cop ...