LVM-逻辑盘卷管理

LVM

 

一、简介


 

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

 

二、原理


 

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

 

                    LVM模型.jpg


 

        三、特点


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


四、相关管理工具命令


               pv管理工具:

      pvs:简要pv显示信息

                    pvdisplay:显示pv的详细信息

                    pvcreate /dev/DEVICE:创建pv


                vg管理工具:

                     vgs:简要vg显示信息

                     vgdisplay:显示vg的详细信息

                     vgcreate [-s #[mMgGtT]] VolumeGroupNAME PhysicalDevicePath[PhysicalDevicePath…]:创建VG

                     vgextend  VolumeGroupNAME PhysicalDevicePath[PhysicalDevicePath…]:扩展VG

                     vgreduce  VolumeGroupNAME PhysicalDevicePath[PhysicalDevicePath…]:缩减VG

                           注意:对VG做减法时,先做pvmove:将需要移除的pv上的pe先移到同一卷组中其他pv

                     vgremove :移除VG


                   lv管理工具:

                      lvs:简要LV显示信息

                      lvdisplay:显示LV的详细信息

                      lvcreate -L #[mMgGtT] -n NAME VolumeGroup:创建LV

                      lvremove /dev/VG_NAME/LV_NAME:移除LV

                   扩展逻辑卷:

                        lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME

                                       -L #:扩展到#大小;

                                       -L +#:扩展了#大小;

                        resize2fs /dev/VG_NAME/LV_NAME:重新定义文件系统的大小

                   缩减逻辑卷:

                        umount /dev/VG_NAME/LV_NAME:卸载文件系统

                        e2fsck -f /dev/VG_NAME/LV_NAME :文件系统的强制检测和修复       

                        resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]:缩减逻辑边界     

                        lvreduce -L  [-]#[mMgGtT] /dev/VG_NAME/LV_NAME:缩减LV大小

                        mount

                 快照:snapshot

                        lvcreate -L #[mMgGtT] -p r -s -n snapshot_lv_name original_lv_name



        五、实验



                

                实验目的:熟悉LV创建,扩展和缩减的流程及相关命令。试验中我们用/dev/md5/dev/sdf1/dev/sdg 来完成LVM实验。

                步骤:1、创建PV:pvcreate /dev/md5 /dev/sdf1 /dev/sdg(NOTE:此实验中的/dev/md5在上一个实验中被创建且挂载,需要先卸载才能进行PV的创建否则会报错

                                            创建PV.png

                                    2、分别用pvs和pvdisplay来查看刚刚创建的PV信息

                                            pvs命令.png     

                                            pvdisplay.png

                                    3、创建VG:vgcreate vg0 /dev/md5 /dev/sdf1 /dev/sdg

                                              创建VG.png

                                    4、用vgdisplay来查看刚刚创建的VG信息

                                                vgdisplay.png

                                                    主要信息说明:VG Name  VG的名称

                                                                VG Size  VG的总大小

                                                                PE Size  PE的大小,默认为4MB

                                                                Total PE  PE的总数量,5114 x 4MB = 19.98GB

                                                                Free PE / Size  剩余空间大小

                                   5、创建大小为5G的LVlvcreate -L 5G -n lv0 vg0

                                                    创建LV.png

                                   6、用lvdisplay来查看刚刚创建的LV信息

                                                   lvdisplay.png

                                                    主要信息说明:LV PATH              LV的路径,全名

                                                                LV NamE        LV的名称

                                                                                VG NAME            所属的VG

                                                                                LV  SIZE               LV的总大小

                                  7、创建LV后再使用命令查看VG情况,此时VFree的大小减少了5G分给了刚刚创建的LV

                                                    创建lv后VG情况.png

                                  8、对刚刚创建的lv0格式化:mkfs.ext4 /dev/vg0/lv0

                                                    格式化lv0.png

                                  9、在/下创建/testlv目录,并将格式化后的lv0挂载上去

                                                    lv0挂载.png

                                   10、将lv0信息写入配置文件/etc/fstab

                                                    写入配置信息.png

                                   11、至此,lv0的创建过程结束,下面对创建好的lv0进行扩容,要求扩容到10G

                                                    # lvextend -L10G /dev/vg0/lv0

                                                    # resize2fs /dev/vg0/lv0

                                                    lv扩容.png

                                    12、查看磁盘信息,发现已经扩容到10G

                                                    扩容后磁盘信息.png

                                    13、下面对lv0进行缩减,要求缩减到2G,注意:对lv进行缩减时需要离线操作,否则容易出现问题

                                              首先,我们需要卸载lv0:umount /dev/vg0/lv0

                                                           卸载lv0.png

                                              然后,强制检查文件系统,确认没有坏块:e2fsck -f /dev/vg0/lv0

                                                            检查文件系统确认没有坏块.png

                                              接着,缩小文件系统大小到2G:resize2fs /dev/vg0/lv0 2G

                                                            缩小文件系统.png


                                              最后,缩减lv大小到2G并挂载:# lvreduce -L 2G /dev/vg0/lv0

                                                                                                     # mount /dev/vg0/lv0 /testlv/

                                                            缩减lv.png

                                    14、lv0缩减成功


                

      

                        

 

 

 

原创文章,作者:Net18-天津-康康,如若转载,请注明出处:http://www.178linux.com/14724

(0)
Net18-天津-康康Net18-天津-康康
上一篇 2016-04-12
下一篇 2016-04-12

相关推荐

  • 磁盘配额配置

     实现磁盘配额 1、启用home家目录下的磁盘配额挂载选项vim /etc/fstab #在vim下可通过r!blkid /dev/sdb1调取UUIDUUID=aqvKA0-bL5B-MsuF-PIzQ-fl3P-G7E0-j3UlOI    /home   ext4  &nb…

    Linux干货 2016-08-30
  • 联通电信双链路内网VRRP+BFD&&PPTP+MYSQL+FreeRadius实现IDC堡垒机连接IDC机房

    一、具体需求与实现 1、多wan:两条宽带接入链路,使用VRRP+BFD技术,实现链路冗余; 2、IDC机房远程管理和登录限制:使用PPTP+freeRadius+mysql实现VPN,限制指定网段或IP进行拨号认证登录IDC机房,并编写脚本检查非法用户登录IDC机房服务器情况; 3、内网VLAN划分:利于安全管理、IP分流和带宽限制; 4、内网监控:使用N…

    Linux干货 2016-08-22
  • yum用法第一篇-简介及常见用法使用总结

    一、简介     yum( 全称为:Yellow dog Updater, Modified),是红帽(RedHat)家族(RedHat、Fedora、CentOS)中的前端shell的软件包管理器,主要基于对RPM包的管理,能够根据配置文件(类似于svn资源库配置文件)从指定的服务器自动下载RPM包进行安装,其最大的优势就是可…

    Linux干货 2015-09-22
  • 探索这个“男人”

    一、前言 正所谓了解一个命令就得了解他的用法,正好是要了解一个人就得了解他的兴趣爱好,处事态度以及为人是怎么样的。 二、man是什么 man – an interface to the on-line reference manuals Man是manual(手册)的缩写,使用权限是所有用户,man命令提供为linux系统在线提供了很好的帮助手册…

    Linux干货 2016-05-03
  • 安装包管理

       软件包管理 软件的运行和编译 ABI 由于window和linux不兼容 linux是ELF window 是PE 对应的内核解析方式不同,可以用虚拟化 API 只程序与程序的公用的接口,相互调用方式 程序源代码 –>预处理–>编译–>汇编–>链接 预处理只会引…

    Linux干货 2017-04-24
  • SHELL脚本编程之变量的种类

    变量 在进行脚本编程的时候,经常会使用到不同类型的变量,根据变量的生效范围,可大致分为以下的几类: 本地变量:生效范围为当前shell进程,对当前shell之外的其他shell进程,包括当前shell进程的子shell进程都是无效的,它的作用域就是当前shell进程 环境变量:生效范围是当前shell进程及其子进程 局部变量:生效范围是当前shell进程中某…

    Linux干货 2016-08-12