当前位置: 首页 > news >正文

lvm的创建,扩容,回缩

lvm 的创建,扩容,回缩
lvm逻辑盘卷管理(LogicalVolumeManager)
lvm是在linux的环境下对磁盘分区的管理,lvm的好处就在于可以在线扩容,就是在分区正在挂载的时候动态扩容,开始做系统的时候需要为每个分区指定大小,如果分区空间用完,这个分区就无法再往里面添加文件,只能备份分区里面的文件,然后重新分区,这样很麻烦。但是如果是用的是lvm的话,就可以动态添加分区的大小
pv:物理卷
vg:卷组(volume group)
lv:逻辑卷组(logical volumes)
创建的顺序是先将分区制作成物理卷,在将若干个物理卷制作成卷组,在卷组之上建立逻辑卷

一、创建lvm

                  1、划出1个分区,我这里是/dev/sda5大小为1G
# fdisk /dev/sda
Command (m for help): n                             //添加
First cylinder (2886-10443, default 2886):     //直接回车,使用默认柱面
Using default value 2886
Last cylinder or +size or +sizeM or +sizeK (2886-10443, default 10443): +1G //大小1G
Command (m for help): t           //指定分区类型
Partition number (1-6): 5                    //5代表第五个分区,这里是sda5
Hex code (type L to list codes): 8e //8e代表lvm
Changed system type of partition 5 to 8e (Linux LVM)
Command (m for help): w                   //w保存退出
The partition table has been altered!
# partprobe /dev/sda  通知内核分区表发生改变
# pvcreate /dev/sda5 首先建立pv
# vgcreate vg0 /dev/sda5 建立vg,这个vg名字为vg0
#lvcreate -L 500M -n lv0 vg0 在vg0中建立逻辑卷,名字为lv0
# lvs 使用lvs命令查看刚刚创建的逻辑卷
LV    VG   Attr   LSize   Origin Snap% Move Log Copy% Convert
lv0 vg0 -wi-a- 500.00M
# mkfs.ext3 /dev/vg0/lv0                             //格式化刚刚创建的逻辑卷
# mkdir /lvm                                                    //创建文件夹,作为挂载点
# mount /dev/vg0/lv0       /lvm/                //挂载上
# df    -h                                                //查看挂载
/dev/mapper/vg0-lv0    485M   11M 449M   3% /lvm
创建完成。
现在开始动态扩容lvm

二、动态增大lvm

# vgs 使用vgs查看当前卷组是否有空余空间。
VG    #PV #LV #SN Attr   VSize   VFree
vg0     1   1   0 wz--n- 964.00M          464.00M
我要将lvm增大到1500M ,当前的lvm是500M 还需要1G的空间,vg的剩余空间没有这么多,我只能在建立一个pv ,然后将新添加的pv划入vg。我才能增大lvm
#fdisk /dev/sda 方法同上。在添加一个1G的分区/dev/sda6
#pvcreate /dev/sda6
#vgextend   vg0 /dev/sda6         将新创建的pv划入vg0卷组里
# vgs
VG    #PV #LV #SN Attr   VSize        VFree
vg0     2   1   0 wz--n- 1.88G       1.39G
现在剩余空间为1.39G
# lvextend -L 1500M          /dev/vg0/lv0  
# lvs
LV    VG   Attr   LSize Origin Snap% Move Log Copy% Convert
lv0 vg0 -wi-ao        1.46G  
使用lvs查看当前的lvm .我的逻辑卷已经变成了1500M,但是我使用df查看的时候发现
/dev/mapper/vg0-lv0    485M   11M 449M   3% /lvm
这里还是显示我的lvm是485M,扩容的时候要注意,只有lvm增大的时候,增大的那部分空间是不能用的,因为没有文件系统,所以现在我们要使用resize2fs这个命令来增大lvm的文件系统
# resize2fs /dev/vg0/lv0
# df -h
/dev/mapper/vg0-lv0    1.5G   11M 1.4G   1% /lvm
这个时候lvm就已经变成了1.5G
说完了增大,我还想将lvm回缩到500M这个就需要用到lvm的回缩功能

三、lvm的减小

注意:减小的时候lvm不能是挂载状态,否则回缩文件系统会失败
减小的方法跟增大的方法类似,但是与增大正好相反,增大时先增大lvm然后拉伸文件系统,而减小则是先回缩文件系统,然后在缩小lvm
# umount /dev/vg0/lv0 首先卸载lvm
# resize2fs /dev/vg0/lv0 500M
resize2fs 1.39 (29-May-2006)
Please run 'e2fsck -f /dev/vg0/lv0' first.
系统提示我们要先运行e2fsck -f /dev/vg0/lv0这个命令,这个命令是强制检查我们的这个lvm设备
# e2fsck -f /dev/vg0/lv0
# resize2fs /dev/vg0/lv0 500M
resize2fs 1.39 (29-May-2006)
Resizing the filesystem on /dev/vg0/lv0 to 512000 (1k) blocks.
The filesystem on /dev/vg0/lv0 is now 512000 blocks long.
系统提示说/dev/vg0/lv0现在已经500M了
# lvresize -L 500M /dev/vg0/lv0 //减小lvm
WARNING: Reducing active logical volume to 500.00 MB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv0? [y/n]: y 这里询问我们是否要减小lvm
Reducing logical volume lv0 to 500.00 MB
Logical volume lv0 successfully resized 这里提示lvm已经成功减小
# mount /dev/vg0/lv0 /lvm 再次挂载lvm
# df -h 查看挂载,变成了500M
/dev/mapper/vg0-lv0    485M   11M 454M   3% /lvm


本文转自 周新宇1991 51CTO博客,原文链接:http://blog.51cto.com/zhouxinyu1991/1269440,如需转载请自行联系原作者

相关文章:

  • 阿里云云市场成API经济领跑者
  • 数据库笔记15:Date类
  • Linux 磁盘分区、格式化、目录挂载
  • truncate后恢复包---FY_Recover_Data.pck 包的内容
  • MVC分页
  • Java用webSocket实现tomcat的日志实时输出到web页面
  • 阻塞赋值与非阻塞赋值(verilog篇)
  • 《软件需求十步走》阅读笔记4
  • 【VBA编程】01.第一个VBA程序Hello world
  • Linux Runtime PM介绍【转】
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • c作业3
  • Day23_IO第五天
  • 安装eclipse,配置tomcat
  • virt-manager管理整个云平台的instances
  • [数据结构]链表的实现在PHP中
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • canvas 绘制双线技巧
  • CEF与代理
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • CSS盒模型深入
  • golang中接口赋值与方法集
  • JavaScript对象详解
  • JS实现简单的MVC模式开发小游戏
  • MySQL用户中的%到底包不包括localhost?
  • October CMS - 快速入门 9 Images And Galleries
  • REST架构的思考
  • vue-loader 源码解析系列之 selector
  • WePY 在小程序性能调优上做出的探究
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 浮动相关
  • 面试总结JavaScript篇
  • 新版博客前端前瞻
  • 应用生命周期终极 DevOps 工具包
  • NLPIR智能语义技术让大数据挖掘更简单
  • 从如何停掉 Promise 链说起
  • 我们雇佣了一只大猴子...
  • #pragma data_seg 共享数据区(转)
  • $L^p$ 调和函数恒为零
  • (4)Elastix图像配准:3D图像
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (Note)C++中的继承方式
  • (TOJ2804)Even? Odd?
  • (笔试题)合法字符串
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • ;号自动换行
  • @KafkaListener注解详解(一)| 常用参数详解
  • @Transactional类内部访问失效原因详解