zoukankan      html  css  js  c++  java
  • 逻辑卷(lv)管理(LVM)

      可以灵活改变分区大小。这里的分区叫做lv,lv创建在 vg中,vg由pv组成。pv可以由磁盘创建也可以由物理分区创建。灵活改变分区大小,就是调整lv的大小。lv可以调整的范围受到vg大小的限制,而 vg的大小可以通过改变pv来灵活变化。于是lv的大小理论上完全可控,即使生产需求不断变化,只需要增加pv即可满足需求的变化。

      pv操作,创建(pvcreate)、删除(pvremove)、扫描(pvscan)、查看(pvs、pvdisplay)、转移(pvmove)。

      vg操作,vgcreate、vgremove、vgextend、vgreduce、vgs、vgdisplay、vgscan、vgrename……

      lv操作,lvcreate、lvremove、lvextend(扩展)、lvreduce、lvresize(缩减)、lvs、lvdisplay……

     1.创建lv


    1.1.创建 pv

    pvcreate /dev/sdb /dev/sdc

      pvcreate <磁盘> <磁盘> <......>

    pvs
    pvdisplay

      只看某一个pv

    pvs /dev/sdb
    pvdisplay /dev/sdb

     

    1.2.创建 vg

    vgcreate 10vps /dev/sdb /dev/sdc

                    vgcreate <卷组名> <pv1> <pv2> <......>

    vgs
    vgdisplay

      创建vg时,可以使用选项“-s”,修改PE(逻辑卷的物理存储块)大小(没有指定该选项时,使用默认大小值)。

    vgcreate -s 128M 10vps /dev/sdb /dev/sdc
    display 10vps

     

    1.3.创建 lv

    lvcreate -n lv_one -L 200G 10vps
    lvcreate -n lv_two -L 500G 10vps

      lvcreate -n <卷名> -L <卷大小值> <卷组名>

      选项说明:

      选项“L”卷大小可以使用大小单位:M、G、T、S、……

      单位“S”使用的是PE的数量。在pv创建时使用PE数量,与PE的大小(vg创建时确定)确定lv的大小。

      选项“p”,用来指定分区权限:r|rw。

    1.4.挂载 lvs 分区

    mkfs.ext4 /dev/10vps/lv_one
    mount  -t ext4 /dev/10vps/lv_one /opt/mysql_data
    mkfs.ext4 /dev/10vps/lv_two
    mount -t ext4 /dev/10vps/lv_two /opt/oracle_data
    mount /dev/mapper/10vps-lv_three /opt/db_apps

      mount </dev/卷组名/卷名> <挂载点>

      mount /dev/mapper/<卷组名-卷名> <挂载点>

      * 要是需要以 UUID 来自动挂载,在刚创建完成时,没有 UUID 。

       需要格式化以后才会有 UUID 。

     

    2.删除pv

    2.1.删除 lv

    lvremove /dev/10vps/lv_one
    lvremove /dev/10vps/lv_two

    2.2.删除 vg

    vgremove /dev/10vps

    2.3.删除 pv

    pvremove /dev/sdb /dev/sdc

    3.增加 vg

    pvcreate /dev/sdd
    vgextend 10vps /dev/sdd

    4.缩减vg

       使用pvmove命令把数据移走,然后删除pv。缩减后的vg,把其中的pv移除,这时pv就不属于任何vg,可以删除pv或者重新分配。

    pvs
    pvmove /dev/sdb
    vgreduce 10vps /dev/sdc

    5.扩展lv

      增加的时候不用卸载分区;减少、删除的时候需要卸载。首先增加lv的大小,而后接着修改文件系统大小。

    lvextend -L 500G /dev/10vps/lv_one

       大小增加“到”500G;“-L +500G”增加500G空间大小。

    查看大小,对比结果……

    lvs
    df -hP
    resize2fs -p /dev/10vps/lv_one

      修改过文件系统大小,这次再查看。选项“-p”表示扩展到最大可使用的大小。

    eg:增加根分区,把剩余空间全加到根分区的卷

    # lvextend /dev/mapper/vg_hhh-lv_root /dev/sda3
    # lvs

    wKiom1gWyCKTSOlbAAAwY7PvudE409.png

    # df -h

    wKiom1gWyFmwkWiTAABPsLZ9bpI771.png

      还需要修改文件系统大小才能真正完成扩展。

     

    6.缩减lv

      缩减时,先缩减文件系统大小,而后修改lv大小。缩减的时候,需要卸载分区、确保分区文件系统数据一致性完整。

     缩减到100G

    lvs
    umount /dev/10vps/lv_one
    e2fsck -f /dev/10vps/lv_one
    resize2fs /dev/10vps/lv_one 100G
    lvreduce -L -200G /dev/10vps/lv_one
    lvs
    mount ……
    df -h
    vgs
    pvmove /dev/sdd
    vgreduce 10vps /dev/sdd
    pvremove /dev/sdd

     

    7.创建快照

      快照针对已有lv创建,大小自行斟酌。

    语法:

    lvcreate  [-l|--extents  LogicalExtentsNumber[%{VG|FREE|ORIGIN}]  |  -L|--size   LogicalVolumeSize[bBsSkKmMgGtTpPeE]]   [-c|--chunksize   Chunk-
           Size[bBsSkK]]   [--noudevsync]   [--ignoremonitoring]   [--monitor  {y|n}]  [-n|--name  SnapshotLogicalVolume{Name|Path}]  -s|--snapshot  {[Vol-
           umeGroup{Name|Path}/]OriginalLogicalVolumeName -V|--virtualsize VirtualSize[bBsSkKmMgGtTpPeE]}

      快照是为了备份而生,创建完快照,可以直接挂载,挂载后存在被快照lv的数据。从而可以从快照完成备份操作。这个备份是个完全备份,并不能保证被备份lv数据变化后的结果能及时回复。

    ===========

    lvcreate -s -L 200G -p r -n snapshotLV /dev/vg_name/OriginalLV

      快照lv需要跟被快照lv处于同一个vg。 快照的时间点处于命令执行的时刻。

     

    lvremove /dev/vg_name/snapshotLV

      快照完成备份后,可以卸载后删除。

    一切代码都是为了生活,一切生活都是调剂
  • 相关阅读:
    配置PyCharm(背景色+字体大小+解释器选择)
    面向对象的三大特性(封装、继承、多态)
    hashlib模块
    logging模块
    Mac OSX系统、Linux、Windows命令行教程
    Python2和Python3的一些语法区别
    python——内置函数和lambda匿名函数
    python——异常处理
    SVN
    实体框架Entity Framework 4.1快速入门
  • 原文地址:https://www.cnblogs.com/argor/p/7910553.html
Copyright © 2011-2022 走看看