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

    一、 将扩展的硬盘分区

    新加一块SCSI硬盘,需要将其分成三个区:

    #fdisk  /dev/sdb
    进入fdisk模式:
    Command (m for help):p //查看新硬盘的分区
    Command (m for help):n //创建新分区
    
    可以用m命令来看fdisk命令的内部命令;n命令创建一个新分区;d命令删除一个存在的分区;p命令显示分区列表;t命令修改分区的类型ID号;l命令显示分区ID号的列表;a命令指定启动分区;w命令是将对分区表的修改存盘让它发生作用。
    
    Command action
    e extended //输入e为创建扩展分区
    p primary partition (1-4) //输入p为创建主分区,这里我们选择p
    
    Partion number(1-4):1 //第一个扩展分区,按你需求可以最多分4个主分区
    First Cylinder(1-1014,default 1): 1 //第一个主分区起始的磁盘块数
    Last cylindet or +siza or +sizeM or +sizeK: +1024MB //可以是以MB为单位的数字或者以
    
    磁盘块数,这里我们输入+1024MB表示分区大小为1G。
    
    
    这样我们就创建完一个分区,如果要创建更多分区可以照上面的步骤继续创建。
    
    创建完后用w保存分区。
    代码:
    
    Command (m for help): w
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    Syncing disks.
    
    #partprobe   //不用重启可使以上操作生效。
    
    这样就分区完,我们还要进行格式化
    
    #mkfs.ext3  /dev/sdb1 //如果有多个分区,则分区修改为sdb2这样

    二、创建逻辑卷的步骤

    1)通过pvcreate命令将linux分区处理成物理卷(PV);
    2)通过vgcreate命令将创建好的物理卷处理成卷组(Vg);
    3)通过lvcreate命令将卷组分成若干个逻辑卷(Lv);
    之后我们可以对逻辑卷进行格式化,挂载,删除等操作,我们可以动态的调整逻辑卷的大小,并且该操作不会影响我们在逻辑卷(Lv)上的数据。

    三、  物理卷创建管理操作

      1)pvcreate创建物理卷( 把普通Linux分区变成物理卷)

    格式:pvcreate /dev/sdb{1,2,3...}  

    [root@station1 ~]# pvcreate /dev/sdb{1,2,3,5,6,7}
      Physical volume "/dev/sdb3" successfully created
      Physical volume "/dev/sdb5" successfully created
      Physical volume "/dev/sdb6" successfully created
      Physical volume "/dev/sdb7" successfully created

       2)pvscan查看物理卷信息:会显示所有物理卷的情况。
          格式:pvscan

    [root@station1 ~]# pvscan
      PV /dev/sdb1                      lvm2 [964.81 MB]
      PV /dev/sdb2                      lvm2 [964.84 MB]
      PV /dev/sdb3                      lvm2 [964.84 MB]
      PV /dev/sdb5                      lvm2 [964.81 MB]
      PV /dev/sdb6                      lvm2 [964.81 MB]
      PV /dev/sdb7                      lvm2 [964.81 MB]
      Total: 6 [5.65 GB] / in use: 0 [0   ] / in no VG: 6 [5.65 GB]

     3)pvdisplay查看各个物理卷的详细参数
       格式:pvdisplay  [/dev/sdb{1,2,3...}]  不跟参数则显示所有的物理卷信息

    [root@station1 ~]# pvdisplay /dev/sdb1
      "/dev/sdb1" is a new physical volume of "964.81 MB"
      --- NEW Physical volume ---
      PV Name               /dev/sdb1
      VG Name
      PV Size               964.81 MB
      Allocatable           NO
      PE Size (KByte)       0
      Total PE              0
      Free PE               0
      Allocated PE          0
      PV UUID               FKaYKk-d46E-KHCQ-WRnn-jUUE-Cd1d-mM8mPN

    4)pvremove删除物理卷:当物理卷里的扩展快没有被使用时可以删除。
            格式:pvremove  /dev/sdb5

    [root@station1 ~]# pvremove /dev/sdb5
      Labels on physical volume "/dev/sdb5" successfully wiped
    [root@station1 ~]# pvscan
      PV /dev/sdb7   VG vg1             lvm2 [960.00 MB / 960.00 MB free]
      PV /dev/sdb1   VG vg0             lvm2 [964.00 MB / 964.00 MB free]
      PV /dev/sdb2   VG vg0             lvm2 [964.00 MB / 964.00 MB free]
      PV /dev/sdb3   VG vg0             lvm2 [964.00 MB / 964.00 MB free]
      PV /dev/sdb6                      lvm2 [964.81 MB]
      Total: 5 [4.70 GB] / in use: 4 [3.76 GB] / in no VG: 1 [964.81 MB]

    四、卷组的创建管理

    1)vgcreate创建卷组
               格式:vgcreate [-s  <8M|16M|...>] vg0 /dev/sdb{1,2,3...}
                    -s:指定扩展块(PE)的大小,默认为4MB;(相当与磁盘上的簇,扩展逻辑卷的基本单位。后面的值可以是8M 16M 32M 64M .....最多65532个扩展块。
                    vg0:新创建的卷组的名字。
                    /dev/sdb{1,2,3...}:需要的物理卷可以写多个;
    [root@station1 ~]# vgcreate vg0 /dev/sdb{1,2,3}
      Volume group "vg0" successfully created
    2)vgdisplay查看各个卷组的详细参数
               格式:vgdisplay  /dev/vg0

    [root@station1 ~]# vgdisplay /dev/vg0
      --- Volume group ---
      VG Name               vg0
      System ID
      Format                lvm2
      Metadata Areas        3
      Metadata Sequence No  1
      VG Access             read/write
      VG Status             resizable
      Cur PV                3
      Act PV                3
      VG Size               2.82 GB
      PE Size               4.00 MB   //扩展快大小 默认4MB
      Total PE              723
      Alloc PE / Size       0 / 0
      Free  PE / Size       723 / 2.82 GB
      VG UUID               w4q8ET-UBLY-rHwg-2ZVv-NOw4-dd1e-1ABr2f
    [root@station1 ~]# vgcreate -s 16M vg1 /dev/sdb{5,6,7}
      Volume group "vg1" successfully created
    [root@station1 ~]# vgdisplay /dev/vg1
      --- Volume group ---
      VG Name               vg1
      System ID
      Format                lvm2
      Metadata Areas        3
      Metadata Sequence No  1
      VG Access             read/write
      VG Status             resizable
      Cur PV                3
      Act PV                3
      VG Size               2.81 GB
      PE Size               16.00 MB     //指定扩展块大小为16MB
      Total PE              180
      Alloc PE / Size       0 / 0
      Free  PE / Size       180 / 2.81 GB
      VG UUID               x97eh2-JYxW-4Ygh-5axx-TquS-0vxR-YdFyJ1

    3)vgscan查看卷组的信息
            格式:vgsacn

    [root@station1 ~]# vgscan
      Found volume group "vg1" using metadata type lvm2
      Found volume group "vg0" using metadata type lvm2

      4)vgreduce缩小卷组:把物理卷重卷组中删除
              格式:vgreduce vg0 /dev/sdb3

    [root@station1 ~]# vgreduce vg0 /dev/sdb3
    Removed "/dev/sdb3" from volume group "vg0"

     5)vgextend扩展卷组:把某个物理卷添加到卷组中
               格式:vgextend vg0 /dev/sdb2   将物理卷/dev/sdb2添加到vg0卷组       

    [root@station1 ~]# vgextend vg0 /dev/sdb3
      Volume group "vg0" successfully extended

    6)vgremove删除卷组
                    格式:vgremove /dev/vg1

    [root@station1 ~]# pvscan
      PV /dev/sdb7   VG vg1   lvm2 [960.00 MB / 960.00 MB free]
      PV /dev/sdb5   VG vg1   lvm2 [960.00 MB / 960.00 MB free]
      PV /dev/sdb6   VG vg1   lvm2 [960.00 MB / 960.00 MB free]
      PV /dev/sdb1   VG vg0   lvm2 [964.00 MB / 964.00 MB free]
      PV /dev/sdb2   VG vg0   lvm2 [964.00 MB / 964.00 MB free]
      PV /dev/sdb3   VG vg0   lvm2 [964.00 MB / 964.00 MB free]
      Total: 6 [5.64 GB] / in use: 6 [5.64 GB] / in no VG: 0 [0   ]
    [root@station1 ~]# vgremove /dev/vg1
      Volume group "vg1" successfully removed
    [root@station1 ~]# pvscan
      PV /dev/sdb1   VG vg0             lvm2 [964.00 MB / 964.00 MB free]
      PV /dev/sdb2   VG vg0             lvm2 [964.00 MB / 964.00 MB free]
      PV /dev/sdb3   VG vg0             lvm2 [964.00 MB / 964.00 MB free]
      PV /dev/sdb5                      lvm2 [964.81 MB]
      PV /dev/sdb6                      lvm2 [964.81 MB]
      PV /dev/sdb7                      lvm2 [964.81 MB]
      Total: 6 [5.65 GB] / in use: 3 [2.82 GB] / in no VG: 3 [2.83 GB]

    五、逻辑卷的创建及管理:

    1)lvcreate创建逻辑卷命令:
    格式1lvcreate -L 512M -n data vg0
                    -L 512M:设置逻辑卷的大小为512M。
                    -n data:设置逻辑卷的名字为data ;表示法:/dev/卷组名/data
                    vg0 :设置是有那个卷组生成的逻辑卷。

    [root@station1 ~]# lvcreate -L 1000M -n data vg0
      Logical volume "data" created
    //创建一个容量为1000MB的逻辑卷data

    格式2lvcreate -l 32 -n data vg0
                    -l 32:生成的逻辑卷使用32个扩展块,逻辑卷大小=32*PE(默认4M)则为128M
                    -n data:逻辑卷的名字;
                    vg0 :设置是有那个卷组生成的逻辑卷。

    [root@station1 ~]# lvcreate -l 32 -n data128 vg0
      Logical volume "data128" created
    //创建一个32个扩展块,容量为32*4=128MB的逻辑卷data128

    2)格式化逻辑卷
    [root@station1 ~]#mkfs.ext3 /dev/vg0/data     

    3)lvsacn查看逻辑卷的信息
    [root@station1 ~]# lvscan
      ACTIVE            '/dev/vg0/data' [1000.00 MB] inherit
    4)lvdisplay查看逻辑卷的具体参数

    [root@station1 ~]# lvdisplay /dev/vg0/data
      --- Logical volume ---
      LV Name                /dev/vg0/data
      VG Name                vg0
      LV UUID                9Od1nq-cHmY-MlrL-vgXW-7Kam-pAfU-Qc8mal
      LV Write Access        read/write
      LV Status              available
      # open                 0
      LV Size                1000.00 MB
      Current LE             250
      Segments               2
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     256
      Block device           253:0

    5)增大逻辑卷大小
                    lvextend命令:增大逻辑卷大小
                格式:lvextend -L +100M /dev/vg0/data
    [root@station1 ~]# lvextend -L +1000M /dev/vg0/data
      Extending logical volume data to 1.95 GB
      Logical volume data successfully resized
    [root@station1 ~]#resize2fs /dev/vg0/data  使上面增加的立即生效。 如果是xfs文件系统格式,则使用xfs_grows命令

    [root@station1 ~]# resize2fs /dev/vg0/data
    resize2fs 1.39 (29-May-2006)
    Resizing the filesystem on /dev/vg0/data to 512000 (4k) blocks.
    The filesystem on /dev/vg0/data is now 512000 blocks long.
    [root@station1 ~]# lvscan
      ACTIVE            '/dev/vg0/data' [1.95 GB] inherit

    6)减少逻辑卷大小
                    lvreduce命令:减少逻辑卷大小
    格式:Lvreduce -L -100M /dev/vg0/data

    [root@station1 ~]# lvreduce -L -1000M /dev/vg0/data
      WARNING: Reducing active logical volume to 1000.00 MB
      THIS MAY DESTROY YOUR DATA (filesystem etc.)
    Do you really want to reduce data? [y/n]: y
      Reducing logical volume data to 1000.00 MB
      Logical volume data successfully resized

    #resize2fs /dev/vg0/data  使上面增加的立即生效。

    [root@station1 ~]# resize2fs /dev/vg0/data
    resize2fs 1.39 (29-May-2006)
    resize2fs: Bad magic number in super-block while trying to open /dev/vg0/data
    Couldn't find valid filesystem superblock.
    [root@station1 ~]# lvscan
      ACTIVE            '/dev/vg0/data' [1000.00 MB] inherit
      ACTIVE            '/dev/vg0/data128' [128.00 MB] inherit

    7)lvremove删除逻辑卷
     格式:lvremove /dev/卷组名/逻辑卷名

    [root@station1 ~]# lvremove /dev/vg0/data128
    Do you really want to remove active logical volume "data128"? [y/n]: y
      Logical volume "data128" successfully removed
    [root@station1 ~]# lvscan
      ACTIVE            '/dev/vg0/data' [1000.00 MB] inherit

    六、LVM的快照

    1)快照的创建
    lvcreate -l 64 -s -n databackup /dev/vg0/data
    -l 64:之前我们已经说过了这里是 64个扩展块,总容量=64*单扩展块大小
    -n databackup:生成的快照的名字。

    -s 表示创建快照 snapshot
    /dev/vg0/data:源逻辑卷名字。

    [root@station1 ~]# lvscan
      ACTIVE            '/dev/vg0/data' [1000.00 MB] inherit
    [root@station1 ~]# lvcreate -L 1000M -s -n databackup /dev/vg0/data
      Logical volume "databackup" created
    [root@station1 ~]# lvscan
      ACTIVE   Original '/dev/vg0/data' [1000.00 MB] inherit
      ACTIVE   Snapshot '/dev/vg0/databackup' [1000.00 MB] inherit

    2)快照的删除
      lvremove /dev/vg0/databackup

    [root@station1 ~]# lvremove /dev/vg0/databackup
    Do you really want to remove active logical volume "databackup"? [y/n]: y
      Logical volume "databackup" successfully removed

    七、挂载

    将新分的逻辑卷挂载到指定的目录下:

    格式:mount /dev/<vgname>/<lvname>  /要挂载的点

    Mkdir –p  /tmp/123      //建挂载点  在/tmp/123 下挂载

    # Mount  /dev/VolGroup0/data  /tmp/123

    设置永久挂载

    # vi /etc/fstab
    
    /dev/VolGroup0/data      /tmp/123     ext3       defaults  1  2

    八、总结

    创建逻辑卷的顺序:Linux分区---物理卷---卷组---逻辑卷
    删除逻辑卷的顺序:逻辑卷---卷组----物理卷---Linux分区

  • 相关阅读:
    private
    接口
    抽象类的认识
    静态导入和类中的代码块
    instanceof 与 应用类型强转
    重写的理解
    继承初体验
    赶紧收藏!春招Java面经总结,拿大厂Offer的必备复习资料!
    react native 升级到0.31.0的相关问题 mac xcode开发环境
    c# 线程池多任务处理并返回值
  • 原文地址:https://www.cnblogs.com/rusking/p/7847538.html
Copyright © 2011-2022 走看看