zoukankan      html  css  js  c++  java
  • Linux学习之CentOS(二十六)Linux磁盘管理:LVM逻辑卷的创建及使用

    您可以通过点击 右下角 的按钮 来对文章内容作出评价, 也可以通过左下方的 关注按钮 来关注我的博客的最新动态。 
    
    如果文章内容对您有帮助, 不要忘记点击右下角的 推荐按钮 来支持一下哦   
    
    如果您对文章内容有任何疑问, 可以通过评论或发邮件的方式联系我: 501395377@qq.com  / lzp501395377@gmail.com
    
    如果需要转载,请注明出处,谢谢!!

    在上一篇随笔里面 Linux学习之CentOS(二十五)--Linux磁盘管理:LVM逻辑卷基本概念及LVM的工作原理,详细的讲解了Linux的动态磁盘管理LVM逻辑卷的基本概念以及LVM的工作原理,包括LVM中最重要的四个基本点(PE、PV、VG以及LV),这篇随笔将会详细的讲解LVM逻辑卷的创建、使用以及删除.

    一、创建LVM逻辑卷

    我们通过图文并茂的方式来看看如何创建我们的LVM,在上一篇随笔中,我们已经熟悉了LVM的工作原理,首先是要将我们的物理硬盘格式化成PV,然后将多个PV加入到创建好的VG中,最后通过VG创建我们的LV。所以我们第一步就是将我们的物理硬盘格式化成PV(物理卷)

    ①将物理硬盘格式化成PV(物理卷)  使用的是 pvcreate 命令

    这里我已经事先虚拟化了3快物理硬盘,每块硬盘的大小为8G,通过 fdisk -l 命令可以查看

    [root@xiaoluo ~]# fdisk -l
    
    Disk /dev/sda: 21.5 GB, 21474836480 bytes
    255 heads, 63 sectors/track, 2610 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00093d90
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1               1         523     4194304   82  Linux swap / Solaris
    Partition 1 does not end on cylinder boundary.
    /dev/sda2   *         523        2611    16776192   83  Linux
    
    Disk /dev/sdb: 8589 MB, 8589934592 bytes
    255 heads, 63 sectors/track, 1044 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00000000
    
    
    Disk /dev/sdc: 8589 MB, 8589934592 bytes
    255 heads, 63 sectors/track, 1044 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00000000
    
    
    Disk /dev/sdd: 8589 MB, 8589934592 bytes
    255 heads, 63 sectors/track, 1044 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00000000

    这里我们根据上面图所示,我们先将 /dev/sdb、 /dev/sdc 两块硬盘格式化成PV

    [root@xiaoluo ~]# pvcreate /dev/sdb /dev/sdc 
    Physical volume
    "/dev/sdb" successfully created Physical volume "/dev/sdc" successfully created

    创建完PV以后,我们可以使用pvdisplay(显示详细信息)、pvs命令来查看当前pv的信息

    [root@xiaoluo ~]# pvdisplay
      "/dev/sdb" is a new physical volume of "8.00 GiB"
      --- NEW Physical volume ---
      PV Name               /dev/sdb
      VG Name               
      PV Size               8.00 GiB
      Allocatable           NO
      PE Size               0   
      Total PE              0
      Free PE               0
      Allocated PE          0
      PV UUID               93UEEl-cxBU-A4HC-LNSh-jp9G-uU5Q-EG8LM9
       
      "/dev/sdc" is a new physical volume of "8.00 GiB"
      --- NEW Physical volume ---
      PV Name               /dev/sdc
      VG Name               
      PV Size               8.00 GiB
      Allocatable           NO
      PE Size               0   
      Total PE              0
      Free PE               0
      Allocated PE          0
      PV UUID               lH1vul-KBHx-H2C6-wbt1-8AdK-yHpr-bBIul5
       
    [root@xiaoluo ~]# pvs
      PV         VG   Fmt  Attr PSize PFree
      /dev/sdb        lvm2 a--  8.00g 8.00g
      /dev/sdc        lvm2 a--  8.00g 8.00g

    通过这两个命令我们可以看到我们已经创建好的PV的信息,两个PV都是8G,目前还没有使用,PFree都是8G.

    ②创建卷组(VG),并将PV加入到卷组中  通过 vgcreate 命令

    在创建完PV以后,这时候我们需要创建一个VG,然后将我们的PV都加入到这个卷组当中,在创建卷组时要给该卷组起一个名字

    [root@xiaoluo ~]# vgcreate xiaoluo /dev/sdb /dev/sdc 
    Volume group
    "xiaoluo" successfully created

    同样,在创建好VG以后,我们也可以使用 vgdisplay 或者 vgs 命来来查看VG的信息

    [root@xiaoluo ~]# vgdisplay 
      --- Volume group ---
      VG Name               xiaoluo
      System ID             
      Format                lvm2
      Metadata Areas        2
      Metadata Sequence No  1
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                0
      Open LV               0
      Max PV                0
      Cur PV                2  // 当前这里有两个PV,分别是我们的 /dev/sdb 和 /dev/sdc
      Act PV                2
      VG Size               15.99 GiB  // 当前VG的大小
      PE Size               4.00 MiB  // 通过这个我们也可以看到我们LVM默认的PE大小就是4M
      Total PE              4094  // 因为VG里面存放的就是各个PV中的PE,所以PE的数量就是VG大小除以默认PE的大小
      Alloc PE / Size       0 / 0   
      Free  PE / Size       4094 / 15.99 GiB
      VG UUID               B8eavI-21kD-Phnm-F1t1-eo4K-wgvg-T5qUbt
       
    [root@xiaoluo ~]# vgs
      VG      #PV #LV #SN Attr   VSize  VFree 
      xiaoluo   2   0   0 wz--n- 15.99g 15.99g

    ③基于卷组(VG)创建逻辑卷(LV)  通过 lvcreate 命令

    因为创建好的PV、VG都是底层的东西,我们上层使用的是逻辑卷,所以我们要基于VG创建我们的逻辑卷才行

    [root@xiaoluo ~]# lvcreate -n mylv -L 2G xiaoluo
    Logical volume
    "mylv" created

    通过 lvcreate 命令基于VG创建好我们的逻辑卷,名字为mylv,大小为2G,同样我们可以使用 lvdisplay 或者 lvs 命令来查看创建好的逻辑卷的信息

    [root@xiaoluo ~]# lvdisplay 
      --- Logical volume ---
      LV Path                /dev/xiaoluo/mylv  // 逻辑卷的路径
      LV Name                mylv  // 逻辑卷的名字
      VG Name                xiaoluo  // 逻辑卷所属卷组的名字
      LV UUID                PYuiYy-WpI6-XZB8-IhnQ-ANjM-lcz0-dlk4LR
      LV Write Access        read/write
      LV Creation host, time xiaoluo, 2013-05-23 23:45:08 +0800
      LV Status              available
      # open                 0
      LV Size                2.00 GiB  // 逻辑卷的大小
      Current LE             512
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     256
      Block device           253:0
       
    [root@xiaoluo ~]# lvs
      LV   VG      Attr      LSize Pool Origin Data%  Move Log Cpy%Sync Convert
      mylv xiaoluo -wi-a---- 2.00g 

    这样子我们的逻辑卷也就已经创建好了,我们这个时候再通过 vgs 还有 pvs 命令查看一下我们的PV与VG的信息

    [root@xiaoluo mnt]# vgs
      VG      #PV #LV #SN Attr   VSize  VFree 
      xiaoluo   2   1   0 wz--n- 15.99g 13.99g  // 我们看到LV的数量此时变成了1,因为我们刚创建好了一个LV,LVFree还有14G
    [root@xiaoluo mnt]# pvs PV VG Fmt Attr PSize PFree
    /dev/sdb xiaoluo lvm2 a-- 8.00g 6.00g  // 刚创建好的LV用的是 /dev/sdb 这块硬盘的,所以这块硬盘的PFree还剩下6G /dev/sdc xiaoluo lvm2 a-- 8.00g 8.00g

    我们发现,当我们每创建完一个LV时,VG与PV的信息都是时时在变化的,并且我们创建LV的大小是根据当前VG的大小来决定的,不能超过当前VG的剩余大小!

    我们在上一篇随笔里面有讲过,每创建好一个逻辑卷,都会在 /dev 目录下出现一个以该卷组命名的文件夹,基于该卷组创建的所有的逻辑卷都是存放在这个文件夹下面,我们可以查看一下

    [root@xiaoluo ~]# ls /dev/xiaoluo/mylv 
    /dev/xiaoluo/mylv

    我们每创建一个新的逻辑卷,该VG目录下都会多出这么一个设备。

    二、格式化并使用我们的逻辑卷

    我们已经创建好了我们的PV、VG以及LV,这时候我们如果要使用逻辑卷,就必须将其格式化成我们需要用的文件系统,并将其挂载起来,然后就可以像使用分区一样去使用逻辑卷了

    [root@xiaoluo ~]# mkfs.ext4 /dev/xiaoluo/mylv 
    mke2fs
    1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 131072 inodes, 524288 blocks 26214 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=536870912 16 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 Writing inode tables: done Creating journal (16384 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 31 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.

    格式化我们的逻辑卷以后,就可以使用 mount 命令将其进行挂载,我们将其挂载到 /mnt 目录下

    [root@xiaoluo ~]# mount /dev/xiaoluo/mylv /mnt
    [root@xiaoluo
    ~]# mount /dev/sda2 on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0") none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) /dev/mapper/xiaoluo-mylv on /mnt type ext4 (rw)
    [root@xiaoluo
    ~]# cd /mnt/ [root@xiaoluo mnt]# ls lost+found [root@xiaoluo mnt]# touch xiaoluo.txt [root@xiaoluo mnt]# ls lost+found xiaoluo.txt

    我们看到,我们的卷组已经挂载好了,并且可以像使用分区一样来对其进行文件操作了。

    三、删除逻辑卷

    我们在创建好逻辑卷后可以通过创建文件系统,挂载逻辑卷来使用它,如果说我们不想用了也可以将其删除掉。

    注意:】对于创建物理卷、创建卷组以及创建逻辑卷我们是有严格顺序的,同样,对于删除逻辑卷、删除卷组以及删除物理卷也是有严格顺序要求的

    ①首先将正在使用的逻辑卷卸载掉  通过 umount 命令

    ②将逻辑卷先删除  通过 lvremove 命令

    ③删除卷组  通过 vgremove 命令

    ④最后再来删除我们的物理卷  通过 pvremove 命令

    [root@xiaoluo /]# mount /dev/xiaoluo/mylv /mnt/
    [root@xiaoluo /]# umount /mnt/ [root@xiaoluo /]# lvremove /dev/xiaoluo/mylv Do you really want to remove active logical volume mylv? [y/n]: y Logical volume "mylv" successfully removed [root@xiaoluo /]# vgremove xiaoluo Volume group "xiaoluo" successfully removed [root@xiaoluo /]# pvremove /dev/sdb Labels on physical volume "/dev/sdb" successfully wiped

    此时我们的刚创建的逻辑卷 mylv,卷组 xiaoluo以及物理卷 /dev/sdb 已经从我们当前操作系统上删除掉了,通过 lvs、vgs、pvs命令可以查看一下

    [root@xiaoluo /]# lvs
      No volume groups found  // 逻辑卷已经没有了
    [root@xiaoluo
    /]# vgs No volume groups found  // 卷组也没有了
    [root@xiaoluo
    /]# pvs PV VG Fmt Attr PSize PFree /dev/sdc lvm2 a-- 8.00g 8.00g  // sdb物理卷已经没有了,只剩下 sdc物理卷了

    本篇随笔详细讲解了LVM逻辑卷的创建、使用及删除,在下一篇随笔里我们将继续讲解LVM逻辑卷的知识,包括如何对逻辑卷进行动态的拉伸以及对其进行压缩!!!

     

  • 相关阅读:
    面试口试技巧
    windbg+psscor2查看方法源代码
    用UIScrollView做一个支持两点触控缩放图片
    vs2008使用过AnkhSVN后不能绑定到vss的问题解决
    IOS开发之手势——UIGestureRecognizer 共存(转)
    windbg创建dump文件
    面向.NET开发人员的WinDbg入门教程(转)
    Vector:no such file or directory解决
    .net调试插件sosex的mk命令显示调用堆栈
    NSString 中包含中文字符时转换为NSURL
  • 原文地址:https://www.cnblogs.com/xiaoluo501395377/p/3096087.html
Copyright © 2011-2022 走看看