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

     

    什么是LVM

    LVM是逻辑卷管理(Logical Volume Manager)的简称,它是建立在物理存储设备之上的一个抽象层,允许你生成逻辑存储卷,与直接使用物理存储在管理上相比,提供了更好灵活性。

    LVM将存储虚拟化,使用逻辑卷,你不会受限于物理磁盘的大小,另外,与硬件相关的存储设置被其隐藏,你可以不用停止应用或卸载文件系统来调整卷大小或数据迁移.这样可以减少操作成本.

    image

    如上图所示:

    • 最底层是物理硬盘:/dev/sda1、/dev/sdb1、/dev/sdc1...
    • 中间层:存储虚拟化,所有物理硬盘视为一个逻辑集合(卷组)
    • 最顶层:将卷组划分为多个逻辑卷,逻辑卷大小可以动态调整等。

    基本概念

    • 物理存储介质(The Physical Media)
      这里指系统的存储设备,如:/dev/hda1、/dev/sda等等,是存储系统最低层的存储单元。

    • 物理卷(PV, Physical Volume)
      物理卷就是指磁盘,磁盘分区或从逻辑上和磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有和LVM相关的管理参数。当前LVM允许你在每个物理卷上保存这个物理卷的0至2份元数据拷贝.默认为1,保存在设备的开始处.为2时,在设备结束处保存第二份备份.

    • 卷组(VG, Volume Group)
      LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。能在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。

    • 逻辑卷(LV, Logical Volume)
      LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上能建立文件系统(比如/home或/usr等)。

    • 物理卷的意义:一块物理硬盘不能直接使用,需要经过分区、格式化等操作之后变成物理卷之后才能使用。

    • 1个卷组底层有多个物理卷。

    • 1个卷组可以创建多个逻辑卷,逻辑卷的大小可以动态调整。

    比起正常的硬盘分区管理,LVM更富于弹性:

    • 使用卷组(VG),使众多硬盘空间看起来像一个大硬盘。
    • 使用逻辑卷(LV),可以创建跨越众多硬盘空间的分区。
    • 可以创建小的逻辑卷(LV),在空间不足时再动态调整它的大小。
    • 在调整逻辑卷(LV)大小时可以不用考虑逻辑卷在硬盘上的位置,不用担心没有可用的连续空间。It does not depend on the position of the LV within VG, there is no need to ensure surrounding available space.
    • 可以在线(online)对逻辑卷(LV)和卷组(VG)进行创建、删除、调整大小等操作。LVM上的文件系统也需要重新调整大小,某些文件系统也支持这样的在线操作。
    • 无需重新启动服务,就可以将服务中用到的逻辑卷(LV)在线(online)/动态(live)迁移至别的硬盘上。

    从零开始,给/home分配最大磁盘空间

    linux系统安装过程省略,现在的场景是系统按最小模式安装,物理硬盘有大量空间未被格式化,目前拟将硬盘剩余空间分配给/home目录。

    前期准备:
    0.1 磁盘分区情况:
    fdisk -l
    
    0.1 磁盘空间使用情况:
    df -h
    
    如果2种情况的磁盘容量不相等,则说明有磁盘未使用。可以继续后续操作
    
    1. 新增分区
    fdisk /dev/sda
    c
    p
    n
    p
    3
    w
    
    2.partprobe(or reboot)
    
    3. 查看逻辑卷
    vgdisplay
    
    fdisk -l
    
    4. 创建逻辑卷组
    vgcreate vg_zy /dev/sda4
    
    vgcreate -s 32M VolGroup01 /dev/sdb1
    
    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...}:需要的物理卷可以写多个;
    
    
    
    5. 创建逻辑卷
    vgs 
    
    lvcreate -L800g -n home vg_zy
    
    6. 建立文件系统
    mkfs -t ext4 /dev/vg_zy/home
    
    7. 查看/home目录挂载点  df -h /home
    
    8. 挂载存储
    mount /dev/vg_zy/home /home
    
    9. 修改fstab配置文件实现自动挂载
    df -h /home 查看
    vim /etc/fstab
    
    /dev/mapper/vg_zy-home  /home  ext4  defaults  1  2
    
    
    第五列是dump备份设置。
    
    当其值设置为1时,将允许dump备份程序备份;设置为0时,忽略备份操作;
    
    第六列是fsck磁盘检查设置。
    
    其值是一个顺序。当其值为0时,永远不检查;而 / 根目录分区永远都为1。其它分区从2开始,数字越小越先检查,如果两个分区的数字相同,则同时检查。
    
    

    将新增硬盘空间扩容给/ddhome

    在此示例中,/ddhome目录也是新建的目录。

    1.==不重启显示新增的磁盘信息==
    ls /sys/class/scsi_host/
    echo "- - -" > /sys/class/scsi_host/host0/scan
    echo "- - -" > /sys/class/scsi_host/host1/scan
    echo "- - -" > /sys/class/scsi_host/host2/scan
    
    查看卷组:vgs
    
    显示逻辑卷:lvs
    
    查看物理卷信息: pvdisplay
    
    df -T  #查看分区格式
    
    2.将新增的磁盘(硬件)添加到卷组
    #vgextend centos /dev/sdb
    vgextend vgname /dev/sdc
    
    3.新建逻辑卷:在卷组centos创建名为"/dev/mapper/centos-ddhome"的逻辑卷
    lvcreate -L 1300G -n ddhome centos
    
    4.格式化逻辑卷
    mke2fs -t ext4 /dev/mapper/centos-ddhome
    
    5.挂载目录
    rm -rf /ddhome && mkdir /ddhome
    mount /dev/mapper/centos-ddhome /ddhome
    
    df -h
    

    逻辑卷扩容

    1.不重启显示新增的磁盘信息
    ls /sys/class/scsi_host/
    echo "- - -" > /sys/class/scsi_host/host0/scan
    echo "- - -" > /sys/class/scsi_host/host1/scan
    echo "- - -" > /sys/class/scsi_host/host2/scan
    
    fdisk -l 查看新增磁盘是否已经显示
    
    2.将新增的磁盘添加到卷组
    vgextend vg_ddz /dev/sdc
    
    3.新增500G
    lvextend -L +500G /dev/mapper/vg_ddz-lv_ddhome
    lvextend -l +100%FREE /dev/mapper/vg_ddz-lv_ddhome
    
    4.同步文件系统
    resize2fs /dev/mapper/vg_ddz-lv_ddhome
    or
    xfs_growfs /dev/mapper/centos-root
    

    释放逻辑卷A磁盘空间,分配给逻辑卷B

    1.查看正在使用/home的进程
    fuser -l /home
    ps -ef|grep xxx
    kill -9 pid
    
    2.卸载挂载目录
    umount /home
    
    3.检查vg_ddz-lv_home文件的错误性
    e2fsck -f /dev/mapper/vg_ddz-lv_home
    
    4.调整/home为100G
    resize2fs -p /dev/mapper/vg_ddz-lv_home 80G
    
    5.缩减物理边界
    lvreduce -L 80G /dev/mapper/vg_ddz-lv_home
    输入y
    
    6.重新挂载/home
    mount /home
    
    7.查看卷组vg可用空间
    vgs
    
    8.新增逻辑卷
    lvcreate -L 150G -n lv_ddhome vg_ddz
    
    9.格式化逻辑卷
    mke2fs -t ext4 /dev/mapper/vg_ddz-lv_ddhome
    
    10.挂载目录
    rm -rf /ddhome && mkdir /ddhome
    mount /dev/mapper/vg_ddz-lv_ddhome /ddhome
    
    11.查看结果
    df -h
    

    ext3升级到ext4

    umount /ddhome
    e2fsck -f /dev/mapper/vg_ddz-lv_ddhome #可能要执行2遍
    tune2fs -O extents,uninit_bg,dir_index /dev/mapper/vg_ddz-lv_ddhome
    fsck -pf /dev/mapper/vg_ddz-lv_ddhome
    mount -t ext4 /dev/mapper/vg_ddz-lv_ddhome /ddhome
    
    

    总结

    image

    通过上面的实践,可以再根据上图,加深对LVM的理解。

    参考文献

  • 相关阅读:
    在TreeView控件节点中显示图片
    PAT 甲级 1146 Topological Order (25 分)
    PAT 甲级 1146 Topological Order (25 分)
    PAT 甲级 1145 Hashing
    PAT 甲级 1145 Hashing
    PAT 甲级 1144 The Missing Number (20 分)
    PAT 甲级 1144 The Missing Number (20 分)
    PAT 甲级 1151 LCA in a Binary Tree (30 分)
    PAT 甲级 1151 LCA in a Binary Tree (30 分)
    PAT 甲级 1149 Dangerous Goods Packaging
  • 原文地址:https://www.cnblogs.com/zhangrui153169/p/12761975.html
Copyright © 2011-2022 走看看