zoukankan      html  css  js  c++  java
  • GNU/Linux下LVM配置管理以及快照卷、物理卷、卷组、逻辑卷的创建和删除

    LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上、文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性。最大的优点是在不损伤数据的前提下调整存储空间的大小。

    本篇主要讲述LVM的创建、LVM的扩展与缩减和快照卷的使用三部分

    第一部分:LVM的创建

    LVM创建的大致步骤为

    1、将多个分区转化为多个物理卷PV(Physical Vomule)

       一个分区可以创建一个物理卷,可以在多块磁盘上创建物理卷。也可以做raid10磁盘阵列以后在做物理卷, 以    便有更快的读写及磁盘冗余。

    2、将多个物理卷创建为卷组VG(Vomule Group)

    3、将一个卷组VG划分为多个逻辑卷LV(Logical Vomule)

    LVM创建的具体步骤:

    第一步:创建LVM分区以及物理卷

    1、检测有几块可用磁盘以及检查驱动器上空闲硬盘空间的总量

    [root@wlm ~]# fdisk -l | grep "Disk /dev/[sh]d[a-z]"

    #检测有几块磁盘,以及磁盘信息

    Disk /dev/sda: 21.5 GB, 21474836480 bytes

    Disk /dev/sdb: 32.2 GB, 32212254720 bytes

    [root@wlm tmp]# df -h

    #查看磁盘使用情况

    Filesystem            Size  Used Avail Use% Mounted on

    /dev/sdb3              28G  4.0G   23G  16% /

    tmpfs                 504M     0  504M   0% /dev/shm

    /dev/sdb1             194M  190M     0 100% /boot

    磁盘/dev/sda没有使用

    2、创建LVM分区

    这里对fdisk以及分区就不详解了

    使用fdisk /dev/sda创建两个分区

    wKiom1TPduzCEqmUAAHgvEwW7dM394.jpg

    将两块分区格式改为8e,w退出

    wKiom1TPd7yzt7M-AACTMzJaqqw225.jpg

    3、创建物理卷

    将新创建的两个分区/dev/sda1 /dev/sda2转化成物理卷,主要是添加LVM属性信息并划分PE存储单元

    [root@wlm tmp]# pvcreate /dev/sda1 /dev/sda2

      Physical volume "/dev/sda1" successfully created

      Physical volume "/dev/sda2" successfully created

    [root@wlm tmp]# pvs

      PV         VG   Fmt  Attr PSize PFree

      /dev/sda1       lvm2 a--  2.01g 2.01g

      /dev/sda2       lvm2 a--  3.01g 3.01g

    [root@wlm tmp]# pvdisplay

      "/dev/sda1" is a new physical volume of "2.01 GiB"

      --- NEW Physical volume ---

      PV Name               /dev/sda1

      VG Name              

      PV Size               2.01 GiB

      Allocatable           NO

      PE Size               0  

      Total PE              0

      Free PE               0

      Allocated PE          0

      PV UUID               nhJsM3-RlXF-xTuH-vBKA-QZQA-1Hq3-fXUXS5

      

      "/dev/sda2" is a new physical volume of "3.01 GiB"

      --- NEW Physical volume ---

      PV Name               /dev/sda2

      VG Name              

      PV Size               3.01 GiB

      Allocatable           NO

      PE Size               0  

      Total PE              0

      Free PE               0

      Allocated PE          0

      PV UUID               ppfWNr-39xt-XeN7-xrTt-b2G3-SlIO-tTcMYH

    第二步:用两块物理卷创建卷组vg01

    [root@wlm tmp]# vgcreate vg01 /dev/sda{1,2}

      Volume group "vg01" successfully created

    [root@wlm tmp]# vgs

      VG   #PV #LV #SN Attr   VSize VFree

      vg01   2   0   0 wz--n- 5.01g 5.01g

    [root@wlm tmp]# vgdisplay

      --- Volume group ---

      VG Name               vg01

      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

      Act PV                2

      VG Size               5.01 GiB

      PE Size               4.00 MiB

      Total PE              1283

      Alloc PE / Size       0 / 0  

      Free  PE / Size       1283 / 5.01 GiB

      VG UUID               vaM594-DxAh-UCh0-RGU3-eEuX-ktQ5-NeRV31

    第三步:创建一个逻辑卷。使用lvcreate命令在卷组中创建一个逻辑卷lv01,大小-L指定1G,名称-n指定lv01

    [root@wlm tmp]# lvcreate -L 1G -n lv01 vg01

      Logical volume "lv01" created

    [root@wlm tmp]# lvs

      LV   VG   Attr      LSize Pool Origin Data%  Move Log Cpy%Sync Convert

      lv01 vg01 -wi-a---- 1.00g                                            

    [root@wlm tmp]# lvdisplay

      --- Logical volume ---

      LV Path                /dev/vg01/lv01

      LV Name                lv01

      VG Name                vg01

      LV UUID                tnkXZJ-gRQK-nAke-XW6C-oycy-Voep-9hKnYA

      LV Write Access        read/write

      LV Creation host, time wlm, 2015-02-02 21:36:40 +0800

      LV Status              available

      # open                 0

      LV Size                1.00 GiB

      Current LE             256

      Segments               1

      Allocation             inherit

      Read ahead sectors     auto

      - currently set to     256

      Block device           253:0

      

    [root@wlm tmp]# mkfs.ext4 /dev/vg01/lv01

    第四部:挂载

    [root@wlm tmp]# mkdir /lv01

    [root@wlm tmp]# mount /dev/vg01/lv01 /lv01/

    [root@wlm tmp]# mount -s

    /dev/sdb3 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)

    /dev/sdb1 on /boot type ext4 (rw)

    none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

    vmware-vmblock on /var/run/vmblock-fuse type fuse.vmware-vmblock (rw,nosuid,nodev,default_permissions,allow_other)

    sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

    /dev/mapper/vg01-lv01 on /lv01 type ext4 (rw)

    便于以后服务器重启自动挂载,需要将创建好的文件系统挂载信息添加到/etc/fstab里面

    为了查看/etc/fstab是否设置正确,可以先卸载逻辑卷data1,然后使用mount –a 使内核重新读取/etc/fstab,看是否能够自动挂载.

    [root@wlm tmp]# vim /etc/fstab

    wKioL1TPgk_Sv4-ZAAHbEJQU6XA746.jpg

    [root@wlm tmp]# umount /lv01/

    [root@wlm tmp]# mount -s | grep "/lv01"

    [root@wlm tmp]# mount -a

    [root@wlm tmp]# mount -s | grep "/lv01"

    /dev/mapper/vg01-lv01 on /lv01 type ext4 (rw)

    至此,LVM的创建结束

    第二部分:LVM的扩展与缩减

    卷组的扩张

    [root@wlm ~]# vgextend vg01 /dev/sda3  #将物理卷/dev/sda3加入卷组vg01

      Volume group "vg01" successfully extended

    逻辑卷的扩张:先扩张物理边界———在扩张逻辑边界

    扩张物边界

    命令:lvextend

           -L  [+]# /PATH/TO/LV

    [root@wlm tmp]# lvextend -L 2G /dev/vg01/lv01 要扩张到2G(扩张后的)

    wKioL1TPhYnT-wxeAABeva34i9E701.jpg

    扩展逻辑边界

    resize2fs

           resize2fs  -p /PATH/TO/LV

    [root@wlm tmp]# resize2fs -p /dev/vg01/lv01 要扩张到2G(扩张后的)

    wKioL1TPhZjQgUS3AADog55hmts773.jpg

    逻辑卷的缩减,有风险,先缩减逻辑边界——在缩减物理边界

    注意:1、不能在线缩减,得先卸载;

                   2、确保缩减后的空间大小依然能存储原有的所有数据;

                   3、在缩减之前应该强行检查文件,确保文件系统处于一致性状态

    df –lh

    umount  卸载

    e2fsck -f /dev/vg01/lv01强行文件系统检查,看是否有问题

    开始缩减

    resize2fs  /PATH/TO/PV 1G

    [root@wlm ~]# resize2fs /dev/vg01/lv01 1G

    resize2fs 1.41.12 (17-May-2010)

    resize2fs: New size smaller than minimum (275802)

    缩减(逻辑边界)为1G (缩减后的总共大小为1G)

    lvreduce  -L [-]#  /PATH/TO/LV

    [root@wlm ~]# lvreduce -L 1G /dev/vg01/lv01

      WARNING: Reducing active and open logical volume to 1.00 GiB

      THIS MAY DESTROY YOUR DATA (filesystem etc.)

    Do you really want to reduce lv01? [y/n]: y

      Reducing logical volume lv01 to 1.00 GiB

      Logical volume lv01 successfully resized

    缩减(物理边界)为1G

    mount   -a

    重新挂在

    第三部分:使用快照卷()

    1、生命周期为整个数据时长:在这段时长内,数据的增长量不能超出快照卷大小;

    2、快照卷应该是只读的;

    3、跟原卷在同一卷组内;

    lvcreate  -L #  -n  SLV_NAME -s  -p  r /PATH/TO/LV

       -L指定大小 –n名称    -s表示为快照卷    -p  只读  要做快照的源卷

    [root@wlm ~]# lvcreate -L 100M -n lv01_snap -s -p r /dev/vg01/lv01

      Logical volume "lv01_snap" created

     [root@wlm ~]# mount /dev/vg01/lv01_snap /mnt/

    mount: block device /dev/mapper/vg01-lv01_snap is write-protected, mounting read-only

    进行备份是可以从快照卷进行备份,备份完毕后可以卸载删除

    [root@wlm ~]# lvremove /dev/vg01/lv01_snap

    Do you really want to remove active logical volume lv01_snap? [y/n]: y

      Logical volume "lv01_snap" successfully removed

    管理LVM管理配置要用到的命令有:

         vgextend vg0 /dev/sdaz *将第三个物理卷添加进vg0物理卷组*

        fdisk -l :查看系统中都认到了那些物理硬盘

        pvdisplay:查看系统中已经创建好的物理卷

        pvcreate:创建一个新的物理卷

        pvremove:删除一个物理卷(也就是从物理卷中删除一个LVM标签)

        vgdisplay:查看系统中的卷组

        vgcreate:创建一个新的卷组

        vgreduce:从卷组中删除一个物理卷(也就是缩小卷组)

        vgremove:删除一个卷组

        lvdisplay:查看系统中已经创建好的逻辑卷

        lvcreate:创建一个新的逻辑卷

        lvreduce:缩小逻辑卷(也就是从一个逻辑卷中减少一些LE)

        lvremove:从系统中删除一个逻辑卷

        mkfs:基于逻辑卷创建一个相应类型的文件系统

        mkdir -p $mount_piont:创建一个挂载目录

        创建好的文件系统位于:

        /dev/$create_vg_name/$lv_name

        mount /dev/$create_vg_name/$lv_name $mount_piont:挂载文件系统

        lvextend -L 2G /dev/vg01/lv01 要扩张到2G(扩张后的物理边界)

        resize2fs -p /dev/vg01/lv01 要扩张到2G(扩张后的逻辑边界)

    以下是别人写的博客作为补充,出处http://dreamfire.blog.51cto.com/418026/1084729

    如果某一块磁盘或者分区故障了如何将数据快速转移到相同的卷组其他的空间去。

    1、通过pvmove命令转移空间数据

    2、通过vgreduce命令将即将坏的磁盘或者分区从卷组vgdata里面移除除去。

    3、通过pvremove命令将即将坏的磁盘或者分区从系统中删除掉。

    4、手工拆除硬盘或者通过一些工具修复分区。

    clip_image042

    clip_image044

    删除整个逻辑卷

    1、先通过umount命令卸载掉逻辑卷lvdata1

    2、修改/etc/fstab里面逻辑卷的挂载信息,否则系统有可能启动不起来。

    3、通过lvremove 删除逻辑卷lvdata1

    4、通过vgremove 删除卷组vgdata

    5、通过pvremove 将物理卷转化成普通分区。

    clip_image046

    删除完了,别忘了修改分区的id标识。修改成普通Linux分区即可。

    clip_image048

    总结:LVM逻辑卷是Linux里面一个很棒的空间使用机制,因为分区在没有格式化的情况下是没有办法加大或者放小的。通过LVM可以将你的磁盘空间做到灵活自如。

  • 相关阅读:
    idea原项目debug模式正常启动,突然长时间卡住无法启动的解决办法
    IntelliJ IDEA下SVN的配置及使用说明
    IntelliJ IDEA打开带SVN信息的项目不显示SVN信息——解决方法
    头文件string.h,cstring与string
    跨进程边界共享内核对象
    Windows进程间通讯(IPC)----共享内存
    Windows进程间通讯(IPC)----内存映射文件
    Windows进程间通讯(IPC)----管道
    C异常处理和C++异常处理的对比
    NtQuerySystemInformation获取进程/线程状态
  • 原文地址:https://www.cnblogs.com/xuxiuxiu/p/5901465.html
Copyright © 2011-2022 走看看