zoukankan      html  css  js  c++  java
  • 基于CentOS 6 系统创建逻辑卷LVM,执行扩容,缩减,删除等操作

     基于CentOS 6 系统创建逻辑卷LVM,执行扩容,缩减,删除等操作
    2016-08-29 05:37:57
    标签:Linux LVM Fstab VG PV
    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://51eat.blog.51cto.com/11892702/1843663

    什么是逻辑卷?

    LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。

    LVM的工作原理其实很简单,它就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。举例如我增加一个物理硬盘,这个时候上层的服务是感觉不到的,因为呈现给上层服务的是以逻辑卷的方式。

    LVM最大的特点就是可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。如果我们新增加了硬盘,其也不会改变现有上层的逻辑卷。作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性。

    LVM的技术需求与产生背景

    企业日益变化的存储需求使得传统的磁盘分区存储显得不够灵活,磁盘空间总有一天会被数据填满,那该怎么办呢?

    这个时候逻辑卷盘LVM的诞生也就顺时改进了存储技术,也大大优化在线存储技术实现磁盘在线动态管理,降低了企业的管理成本。

    基本逻辑卷LVM的管理概念:

    PV(Physical Volume)- 物理卷 
    即物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘,也可以是raid设备

    VG(Volumne Group)- 卷组 
    卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。

    LV(Logical Volume)- 逻辑卷 
    逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组。

    PE(Physical Extent)- 即物理块

    LVM 默认使用4MB的PE区块,而LVM的LV最多仅能含有65534个PE (lvm1 的格式),因此默认的LVM的LV最大容量为4M*65534/(1024M/G)=256G。PE是整个LVM 最小的储存区块,也就是说,其实我们的资料都是由写入PE 来处理的。简单的说,这个PE 就有点像文件系统里面的block 大小。所以调整PE会影响到LVM 的最大容量!不过,在CentOS 6.x 以后,由于直接使用 lvm2 的各项格式功能,因此这个限制已经不存在了。

    现在开始我们的实验环境搭配:

    我们逻辑卷的搭建全部在虚拟机上实现,如果有什么不同的配置选项,建议还是以生产环境为主要验证对象。

    虚拟机是:VMware Workstation 12

    系统是:Centos6.8   |  LVM版本:lvm2.2

    磁盘我们采用一个分区和一个整块硬盘,容量大小分区10G,磁盘20G

    (因为我们的实验环境是一个分区和一整块硬盘。但对于raid设备实现逻辑卷,生产环境中应该是比较少用,所以我们不介绍),相信您学完此方法用raid来实现逻辑卷管理,自然不在话下。

    注意:分出单个磁盘分区,需要加卷标,如果是一整块硬盘就不用加卷标直接格式化就行。

    哦,对了。我先要删除逻辑卷的实验环境。这个删除有意思,完全是反着来的。

    接下来第一步;对单个硬盘分出一个分区  (简单磁盘分区,命令fdisk ,一大步)

    wKiom1fDJgSCsiZAAAB0hYFOSng882.png-wh_50

    wKioL1fDJr6jfW1UAACZWZYw8ZA880.png-wh_50

    第一个磁盘分区我们分完了,看看小伙伴们,分区是不是很简单呢...

    接下来第二步;独立一块硬盘我们不用分区直接拿来创建物理卷就行

    把刚分好的分区与单个硬盘一起创建为物理卷(磁盘的名称以自己系统检测出来的为准我这里是sdb,sdc)

    [root@localhost ~]#pvcreate /dev/sd{b1,c} (创建物理卷,命令pvcreate ,二大步)

    wKioL1fDKaOR0W6SAAAkwBbJoEU806.png-wh_50

    创建成功,并且用pvs看格式为lvm2 

    接下来第三步;创建卷组

    把/dev/sdb1和/dev/sdc组合创建为一个卷组,卷组名为vg0

    [root@localhost ~]# vgcreate vg0 /dev/sd{b1,c}(创建卷组,命令vgcreate ,三大步)

    wKioL1fDKwzyxfHHAAAZnLZKDuw396.png-wh_50

    创建成功,并且用vgs查看VG对应的卷组名是vg0,显示PV卷有两个,共30GB的空间容量

    接下来第四步;创建逻辑卷

    把新增的卷组容量加入逻辑卷中,逻辑卷名为lv0

    [root@localhost ~]# lvcreate -n lv0 -L 10G vg0 (创建逻辑卷,命令lvcreate ,四大步)

    此命令的意思是:从vg0 中分出10G的空间给lv0使用

    wKiom1fDLInQqTaoAAAiYAaHUOM759.png-wh_50

    显示整个逻辑卷的详细信息 lvdisplay

    wKioL1fDLcWx6OSKAABenl5UIBc071.png

    接下来第五步;格式化逻辑卷 

    注意:我们是先创建完pv,vg和lvm之后再格式化为ext4文件系统,跟raid的格式化是反着来的。

    [root@localhost ~]# mkfs.ext4 /dev/vg0/lv0 (格式化逻辑卷,命令mkfs.ext4,五大步)

    wKioL1fDLuPAMpTqAABy2zmYY0c911.png

    接下来第六步;挂载逻辑卷(挂载逻辑卷之前要先把逻辑卷路径写入配置文件fstab)

    vim /etc/fstab (挂载逻辑卷修改fstab文件,六大步1)

    wKiom1fDMGeg5EyoAAA-NWQgAX4473.png

    [root@localhost ~]# mount /dev/vg0/lv0 /mnt/lv0/ (挂载逻辑卷,六大步2)

    注意;先要在创建挂载目录,用mkdir -p /mnt/lv0 ,(-p递归创建目录,妈的老跟我说基什么什么,记不住。)

    到此基本算成功搭起了逻辑卷,往下就是一些简单修改测试了。不过您可以尝试reboot下看配置是否永久生效!

    wKioL1fDMNSQ5xGfAAAmCgjDoFg016.png

    接下来第七步;在已挂载的逻辑卷内拷贝文件测试 

    拷贝文件测试的时候我老是cp不成功加-r也不成功,后来经过几次折腾忽然想起了别名alias。仿佛一语惊醒梦我中人

    因为默认系统给cp命令做了一个别名,默认是cp -i选项。所以在复制文件不想提示就在cp别名前面加个注释就行。

    拷贝文件测试与写入文件测试均不受影响,可正常执行

    [root@localhost ~]# cd /mnt/lv0/  (在逻辑卷下测试文件,七大步)

    [root@localhost lv0]# dd if=/dev/zero of=f1 bs=1M count=1024

    wKioL1fDOTTgqnzYAAAvKzgxxdc693.pngwKioL1fDOTSwKKIHAAAWUenzyqo380.png

    接下来第八步;扩展逻辑卷(前提卷组有空间)

    [root@localhost ~]# lvextend -L +10G /dev/vg0/lv0  (扩展逻辑卷,命令lvextend,八大步)

    在lv0逻辑卷中原有的基础上增加了10G空间,原有10G+10G等于20G扩容成功

    wKiom1fDOyPyXCHJAAA2_f2IcXc141.png

    wKioL1fDOyOgijn4AAA7TQwBC8g796.png

    以上扩容逻辑卷可能存在磁盘数据不同步问题,实际已增加,但是不显示(我一次增加成功并显示)
    如果新增空间没显示记得同步下;

    resize2fs /dev/vg0/lv0 (只能同步ext系列文件系统)

    接下来第九步;扩展卷组(前提卷物理卷有空间)

    先把磁盘创建为物理卷 

    [root@localhost~]# pvcreate /dev/sdd  (扩展卷组,命令vgextend,九大步)

    我创建了一个20G的物理卷,原来逻辑卷是30G还剩10G

    wKioL1fDPa-xM3IcAAAbM75CR2k682.png

    把物理卷加入卷组

    [root@localhost~]# vgextend vg0 /dev/sdd

    我对组加入了一个20G的物理卷,原来逻辑卷是30G还剩10G,增加后总共50G空间还剩30G空间

    wKiom1fDPgiTGDd4AAAZMoKsMzg444.pngwKiom1fDP1WCoLRzAABTtY55RqI266.png

    扩展卷组成功 (df命令是看当前系统已挂载文件系统信息)

    注意:如果用df命令 查看文件系统大小,但实际扩容空间是不显示的。因为你增加的是空间容量并不是格式化后

    的文件系统容量,所以你需要执行第八步的同步命令来新增文件系统容量

    [root@localhost ~]# resize2fs /dev/vg0/lv0

    wKiom1fDQv-i9sCNAAAdGUzP04s208.png

    wKiom1fDQwCi5OeYAAAgFo3YcGY878.png

    接下来第十步;缩减逻辑卷空间(前提必须离线操作) (缩减文件系统空间,命令resize2fs,十大步)

    先卸载逻辑卷系统 umount /mnt/lv0

    wKioL1fDRKmi2QWnAAAeM2TwCQQ693.png

     再缩减文件系统,先执行e2fsck -f命令检查文件系统信息

    [root@localhost ~]# e2fsck -f /dev/vg0/lv0

    [root@localhost ~]# resize2fs /dev/vg0/lv0 10G

    wKiom1fDS0Xgm-fLAABM5UJGVN0081.png 

    [root@localhost ~]# lvreduce /dev/vg0/lv0 -L 10G

    再挂载 

    wKioL1fDTISzAVrYAAAkrBtqj-w445.png

    wKiom1fDTRCQRP4DAAAvM2s7afQ355.png

    wKiom1fDTY_irQHpAAAokBajS3w548.png

    到此逻辑卷卷缩减成功。

    接下来第十一步;缩减卷组(前提必须离线操作) (缩减卷组空间,命令vgreduce,十一大步)

    先卸载逻辑卷系统 umount /mnt/lv0,再查看pv信息

    wKioL1fDTqvjgc-NAAAw7PGeWkw349.png

    [root@localhost ~]# vgreduce vg0 /dev/sdd

    将vg0组的sdd磁盘移除该组

    wKiom1fDT3CQ_2jVAAAqotifZmk701.png

    查看vgs信息,空间少了

    wKiom1fDT9CADqvFAAARcTxI7bM465.png

    到此vg0组的空间缩减成功。

    接下来第十二步最后一步;删除逻辑卷 (这个有意思,是把创建LVM的步骤反过来操作,十二大步)

    正确执行以下四条命令,方可彻底删除逻辑卷,特别简单。

    1,umount /mnt/lv0  (先把逻辑卷的lv0挂载取消)

    2,lvremove /dev/vg0/lv0 (用lvremove 命令后面跟设备地址移除LV)

    3,vgremove vg0 (用vgremove 加卷组名,移除vg0卷组)

    4,pvremove /dev/sdb1 /dev/sdc /dev/sdd (移除所有PV物理卷)

    wKioL1fDVAnx0sBcAACJvAsr90c579.png

    到此结束整个测验。(有需要补充的可以留言,欢迎指正)

    后面的关于逻辑卷快照的相关测验,后续奉上。学习太累了,睡觉困的一笔

    本文出自 “51eA” 博客,请务必保留此出处http://51eat.blog.51cto.com/11892702/1843663

  • 相关阅读:
    JDK8 直接定义接口中静态方法
    Spring+Netty+WebSocket实例
    基于Maven,Spring+ActiveMQ实现,贴近实际
    Netty+WebSocket简单实现网页聊天
    ActiveMQ简单入门实例
    WCF 的日志配置
    AutoMapper使用笔记
    博客园现代化建设——AutoMapper
    jqplot formatString 日期格式化列表
    MongoDB实战开发 【零基础学习,附完整Asp.net示例】
  • 原文地址:https://www.cnblogs.com/renliping/p/6861869.html
Copyright © 2011-2022 走看看