zoukankan      html  css  js  c++  java
  • CentOS6.8 配置LVM

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

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

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

    基本的逻辑卷管理概念:

      PV(Physical Volume)- 物理卷 
        物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘,也可以是raid设备

      VG(Volumne Group)- 卷组 
        卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。

      LV(Logical Volume)- 逻辑卷 
        逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组。

    摘自:https://www.cnblogs.com/mchina/p/linux-centos-logical-volume-manager-lvm.html

      逻辑卷、卷组、物理卷、硬盘的关系图:

    简单的理解LVM,就是把多块物理硬盘合并起来,变成一块大硬盘,然后根据自己的需求来划分实际的挂载大小磁盘;

    1.查看目前服务器的磁盘

    [root@localhost ~]# fdisk -l
    
    磁盘 /dev/sdc:5368 MB, 5368709120 字节,10485760 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    
    
    磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    
    
    磁盘 /dev/sdd:5368 MB, 5368709120 字节,10485760 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节

    目前服务上有三块未使用硬盘,/dev/sdb,/dev/sdc,/dev/sdd,下面我们首先创建一下物理卷

    2.创建物理卷

    [root@localhost ~]# pvcreate /dev/sd{b,c}
      Physical volume "/dev/sdb" successfully created.
      Physical volume "/dev/sdc" successfully created.

    3.创建卷组,我们基于/dev/sdb, /dev/sdc 来创建卷组;

    [root@localhost ~]# vgcreate vg /dev/sd{b,c}
      Volume group "vg" successfully created

    4.创建逻辑卷,在vg 卷组上创建逻辑卷lv1;

    [root@localhost ~]# lvcreate -n lv1 -L 8G vg 
      Logical volume "lv1" created.

    5.创建完成以后我们查看下我们逻辑卷、物理卷、卷组相关信息

      i.查看物理卷信息

    [root@localhost ~]# pvdisplay  /dev/sdc    #也可以通过pvs查看
      --- Physical volume ---
      PV Name               /dev/sdc   #物理卷名字
      VG Name               vg         #属于vg卷组
      PV Size               5.00 GiB / not usable 4.00 MiB   #物理卷的大小
      Allocatable           yes 
      PE Size               4.00 MiB    #PE大小,PE是lVM最小的存储单位,于磁盘的扇区,文件系统的block类似;
      Total PE              1279
      Free PE               510
      Allocated PE          769
      PV UUID               OkxuWM-b0oI-UsGz-zAmN-NBeO-dP5q-m3tp8M 
       

      ii.查看卷组信息

    [root@localhost ~]# vgdisplay  vg   # vgs 也可以查看
      --- Volume group ---
      VG Name               vg
      System ID             
      Format                lvm2
      Metadata Areas        2
      Metadata Sequence No  2
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                1
      Open LV               0
      Max PV                0
      Cur PV                2
      Act PV                2
      VG Size               9.99 GiB    #vg总共大小,因为我这边使用的两块硬盘的
      PE Size               4.00 MiB
      Total PE              2558
      Alloc PE / Size       2048 / 8.00 GiB
      Free  PE / Size       510 / 1.99 GiB
      VG UUID               vAtU6L-meiS-Y5FV-OtII-6zX0-plUe-c7K5LA

      iii.查看逻辑卷信息

    [root@localhost ~]# lvdisplay /dev/vg/lv1   #通过lvs 也可以查看
      --- Logical volume ---
      LV Path                /dev/vg/lv1
      LV Name                lv1
      VG Name                vg
      LV UUID                51qmlr-suvX-TyMF-DOBZ-bL4r-0AEk-cxF96q
      LV Write Access        read/write
      LV Creation host, time localhost.localdomain, 2018-05-29 15:13:00 +0800
      LV Status              available
      # open                 0
      LV Size                8.00 GiB  # 当前lv大小
      Current LE             2048
      Segments               2
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     8192
      Block device           253:2

    6.创建文件系统

    [root@localhost ~]# mkfs.ext4 /dev/vg/lv1   # 基于lv1 创建文件系统
    mke2fs 1.42.9 (28-Dec-2013)
    文件系统标签=
    OS type: Linux
    块大小=4096 (log=2)
    分块大小=4096 (log=2)
    Stride=0 blocks, Stripe width=0 blocks
    524288 inodes, 2097152 blocks
    104857 blocks (5.00%) reserved for the super user
    第一个数据块=0
    Maximum filesystem blocks=2147483648
    64 block groups
    32768 blocks per group, 32768 fragments per group
    8192 inodes per group
    Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
    
    Allocating group tables: 完成                            
    正在写入inode表: 完成                            
    Creating journal (32768 blocks): 完成
    Writing superblocks and filesystem accounting information: 完成 

    7.挂载(mount)lv1

    [root@localhost ~]# mount /dev/vg/lv1 /opt/
    [root@localhost ~]# df -h
    文件系统                 容量  已用  可用 已用% 挂载点
    /dev/mapper/centos-root   17G  3.3G   14G   20% /
    devtmpfs                 982M     0  982M    0% /dev
    tmpfs                    993M     0  993M    0% /dev/shm
    tmpfs                    993M  9.0M  984M    1% /run
    tmpfs                    993M     0  993M    0% /sys/fs/cgroup
    /dev/sr0                 4.3G  4.3G     0  100% /mnt
    /dev/sda1               1014M  125M  890M   13% /boot
    tmpfs                    199M     0  199M    0% /run/user/0
    /dev/mapper/vg-lv1       7.8G   36M  7.3G    1% /opt

    8.当lv1 空间不足的时候,我们需要来扩展下lv1,扩展逻辑卷lv1

    # 查看卷组剩余空间
    [root@localhost ~]# vgs
      VG     #PV #LV #SN Attr   VSize   VFree
      centos   1   2   0 wz--n- <19.00g    0 
      vg       2   1   0 wz--n-   9.99g 1.99g
    # 将剩余的空间均扩展到lv1
    [root@localhost ~]# lvextend /dev/vg/lv1 -L +1.99g
      Rounding size to boundary between physical extents: 1.99 GiB.
      Size of logical volume vg/lv1 changed from 8.00 GiB (2048 extents) to 9.99 GiB (2558 extents).
      Logical volume vg/lv1 successfully resized.

    9.更新文件系统,扩展完成逻辑卷以后,逻辑卷大小增加了,但是实际空间大小没有变大,所以我们需要更新下文件系统

    # 查看文件大小
    [root@localhost ~]# df -h
    文件系统                 容量  已用  可用 已用% 挂载点
    /dev/mapper/centos-root   17G  3.3G   14G   20% /
    devtmpfs                 982M     0  982M    0% /dev
    tmpfs                    993M     0  993M    0% /dev/shm
    tmpfs                    993M  9.0M  984M    1% /run
    tmpfs                    993M     0  993M    0% /sys/fs/cgroup
    /dev/sr0                 4.3G  4.3G     0  100% /mnt
    /dev/sda1               1014M  125M  890M   13% /boot
    tmpfs                    199M     0  199M    0% /run/user/0
    /dev/mapper/vg-lv1       7.8G   36M  7.3G    1% /opt
    # 更新文件系统
    [root@localhost ~]# resize2fs /dev/vg/lv1 
    resize2fs 1.42.9 (28-Dec-2013)
    Filesystem at /dev/vg/lv1 is mounted on /opt; on-line resizing required
    old_desc_blocks = 1, new_desc_blocks = 2
    The filesystem on /dev/vg/lv1 is now 2619392 blocks long.
    # 再次查看我们的文件系统大小
    [root@localhost ~]# df -h
    文件系统                 容量  已用  可用 已用% 挂载点
    /dev/mapper/centos-root   17G  3.3G   14G   20% /
    devtmpfs                 982M     0  982M    0% /dev
    tmpfs                    993M     0  993M    0% /dev/shm
    tmpfs                    993M  9.0M  984M    1% /run
    tmpfs                    993M     0  993M    0% /sys/fs/cgroup
    /dev/sr0                 4.3G  4.3G     0  100% /mnt
    /dev/sda1               1014M  125M  890M   13% /boot
    tmpfs                    199M     0  199M    0% /run/user/0
    /dev/mapper/vg-lv1       9.8G   36M  9.2G    1% /opt

    这样证明我们已经扩展完成了,逻辑卷,但是当文件系统依然无法当前存储的时候,但是我们的卷组空间已经不足,我们需要来扩展我们的卷组,下面扩展下卷组

    注意:

      resize2fs命令            针对的是ext2、ext3、ext4文件系统
      xfs_growfs命令         针对的是xfs文件系统

    10.扩展卷组

    # 创建物理卷
    [root@localhost ~]# pvcreate /dev/sdd
    
    #扩展卷组
    [root@localhost ~]# vgextend vg /dev/sdd 
    
    #查看当前卷组的大小
    [root@localhost ~]# vgdisplay vg
      --- Volume group ---
      VG Name               vg
      System ID             
      Format                lvm2
      Metadata Areas        3
      Metadata Sequence No  4
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                1
      Open LV               1
      Max PV                0
      Cur PV                3
      Act PV                3
      VG Size               <14.99 GiB
      PE Size               4.00 MiB
      Total PE              3837
      Alloc PE / Size       2558 / 9.99 GiB
      Free  PE / Size       1279 / <5.00 GiB
      VG UUID               vAtU6L-meiS-Y5FV-OtII-6zX0-plUe-c7K5LA

    这样我们的逻辑卷大小从10G增加到了15G,便于我们再次扩展上层的LV,lv不足时从vg中要空间,vg不足时需要添加pv来增加空间;

    11.回缩LV空间大小

      i.卸载挂载目录

    # 检查下逻辑卷是否处于挂载中如果是挂载状态需要先卸载
    [root@localhost ~]# df -h
    文件系统                 容量  已用  可用 已用% 挂载点
    /dev/mapper/centos-root   17G  3.3G   14G   20% /
    devtmpfs                 982M     0  982M    0% /dev
    tmpfs                    993M     0  993M    0% /dev/shm
    tmpfs                    993M  9.3M  983M    1% /run
    tmpfs                    993M     0  993M    0% /sys/fs/cgroup
    /dev/sr0                 4.3G  4.3G     0  100% /mnt
    /dev/sda1               1014M  125M  890M   13% /boot
    tmpfs                    199M     0  199M    0% /run/user/0
    /dev/mapper/vg-lv1       9.8G   36M  9.2G    1% /opt
    [root@localhost ~]# umount /opt/

      ii.检查文件系统

    #回缩的前必须执行,没有执行的时候会提示
    [root@localhost ~]# e2fsck -f /dev/vg/lv1
    e2fsck 1.42.9 (28-Dec-2013)
    第一步: 检查inode,块,和大小
    第二步: 检查目录结构
    第3步: 检查目录连接性
    Pass 4: Checking reference counts
    第5步: 检查簇概要信息
    /dev/vg/lv1: 11/655360 files (0.0% non-contiguous), 83119/2619392 blocks

      iii.回缩文件系统,再次回缩逻辑卷大小

    # 回缩文件系统为3G
    # resize2fs  逻辑卷名称 缩小至多大
    [root@localhost ~]# resize2fs /dev/vg/lv1 3G
    resize2fs 1.42.9 (28-Dec-2013)
    Resizing the filesystem on /dev/vg/lv1 to 786432 (4k) blocks.
    The filesystem on /dev/vg/lv1 is now 786432 blocks long.
    # 回缩逻辑卷大小,回缩其实就是减小,添加的时候通过+,减少的时候通过 - 来实现
    [root@localhost ~]# lvreduce -L -7G /dev/vg/lv1
    WARNING: Reducing active logical volume to 2.99 GiB.
    THIS MAY DESTROY YOUR DATA (filesystem etc.)
    Do you really want to reduce vg/lv1? [y/n]: y
    Size of logical volume vg/lv1 changed from 9.99 GiB (2558 extents) to 2.99 GiB (766 extents).
    Logical volume vg/lv1 successfully resized.
    # 挂载目录,查看文件系统是否变小,注意这里需要注意文件系统的大小一定小于等于逻辑卷的大小,如果不满足时挂载会出现错误
    # 由于我这边回缩的时候导致文件系统大于逻辑系统挂载时提示
    [root@localhost ~]# mount /dev/vg/lv1 /opt/
    mount: 文件系统类型错误、选项错误、/dev/mapper/vg-lv1 上有坏超级块、
    缺少代码页或助手程序,或其他错误
    
    有些情况下在 syslog 中可以找到一些有用信息- 请尝试
    dmesg | tail 这样的命令看看。
    # 重新的扩展下逻辑卷,再次重置大小,然后再次挂载
    [root@localhost ~]# mount /dev/vg/lv1 /opt/
    [root@localhost ~]# df -h
    文件系统 容量 已用 可用 已用% 挂载点
    /dev/mapper/centos-root 17G 3.3G 14G 20% /
    devtmpfs 982M 0 982M 0% /dev
    tmpfs 993M 0 993M 0% /dev/shm
    tmpfs 993M 9.2M 983M 1% /run
    tmpfs 993M 0 993M 0% /sys/fs/cgroup
    /dev/sr0 4.3G 4.3G 0 100% /mnt
    /dev/sda1 1014M 125M 890M 13% /boot
    tmpfs 199M 0 199M 0% /run/user/0
    /dev/mapper/vg-lv1 3.9G 32M 3.6G 1% /opt

    注意:

      xfs文件系统没有办法回缩,这个只能针对ext 文件系统

    12.删除逻辑卷(创建lvm时,我们需要先创建pv、vg、lv,删除的时候我们需要从上往下删除,先删除lv、vg、pv)

    # 挂载状态删除逻辑卷,提示正在使用中
    [root@localhost ~]# lvremove /dev/vg/lv1 
      Logical volume vg/lv1 contains a filesystem in use.
    
    #卸载挂载目录
    [root@localhost ~]# umount /opt/
    
    #删除文件系统
    [root@localhost ~]# lvremove /dev/vg/lv1 
    Do you really want to remove active logical volume vg/lv1? [y/n]: y
      Logical volume "lv1" successfully removed
    
    # 删除查看卷组大小
    [root@localhost ~]# vgs
      VG     #PV #LV #SN Attr   VSize   VFree  
      centos   1   2   0 wz--n- <19.00g      0 
      vg       3   0   0 wz--n- <14.99g <14.99g

    13.删除卷组

    # 删除卷组
    [root@localhost ~]# vgremove vg 
      Volume group "vg" successfully removed
    # 查看我们是否还有vg卷组
    [root@localhost ~]# vgs  #此时vg卷组已经不存在
      VG     #PV #LV #SN Attr   VSize   VFree
      centos   1   2   0 wz--n- <19.00g    0 

    14.删除物理卷

    #删除物理卷
    [root@localhost ~]# pvremove /dev/sdb
      Labels on physical volume "/dev/sdb" successfully wiped.
  • 相关阅读:
    解释器模式
    命令模式
    责任链模式
    代理模式
    享元模式
    外观模式
    装饰器模式
    组合模式
    过滤器模式
    js广告浮动
  • 原文地址:https://www.cnblogs.com/mengyu/p/9104940.html
Copyright © 2011-2022 走看看