LVM学习_逻辑卷管理

作者: 皮皮大 | 来源:发表于2019-05-24 18:17 被阅读13次

    Linux 逻辑卷管理LVM


    什么是 LVM

    • LVM 逻辑卷管理是Linux环境下对磁盘分区进行管理的一种机制;LVM建立在硬盘和分区之上的一个逻辑层,用于提高磁盘分区管理的灵活性。
    • 通过LVM系统管理员可以便捷地管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组(volume group),形成一个存储池;并且在卷组的基础上创建文件系统(命名文件和放置文件的逻辑存储和恢复系统)。
    • 管理员可以方便地通过LVM调整存储卷组的大小,可以按照组的方式进行命令、管理和分配,例如按照用途“development”等进行命名,而不是使用“sda”等磁盘名。

    逻辑分区的创建顺序:物理分区 > 物理卷 > 卷组 > 逻辑卷 > 挂载


    分区

    硬盘的分区机制主要分为两种:MBR和GPT

    MBR

    • Master Boot Record,主引导记录,传统的分区机制;应用于大多数的PC设备,具有主分区、扩展分区、逻辑分区。

    • 支持32或64位系统,支持分区数量有限,只支持硬盘数量不超过2T的硬盘。该分区总共有16个字节。只有在MBR分区机制下才存在主分区、扩展分区、逻辑分区的概念。

    • 主分区

    1. 每块硬盘都只有一个主引导扇区,0号磁头的第一个扇区,大小为512字节。主引导扇区包含MBR(主引导记录,446字节),DPT(分区表,64字节),MN(结束标志,2个字节,是AA和55)。BIOS读取MBR的时候总是最后检查这两个结束标志。
    2. 硬盘为分区列表保留了64个字节的存储空间,每个分区的对象占据16个字节。主引导分区也叫主分区,能够存储4个分区的数据。
    3. 一块硬盘最多划分4个主分区。windows系统一般需要安装在这个分区中,最多有4个。
    • 扩展分区
    1. 扩展分区也是主分区的一种,不同之处在于可以划分为无数个逻辑分区,且无法格式化。
    2. 扩展分区只能有一个,然后细分为逻辑分区。在MBR硬盘中,分区号为1-4是主分区或者扩展分区,最多一个。
    • 逻辑分区
    1. 逻辑分区的编号只能从5开始。逻辑分区利用链表进行链接,如果E盘中的信息丢掉,那么操作系统将找不到F盘。
    2. 逻辑分区是由扩展分区是由连续切割出来的分区。
      MBR=446bytes程序代码+64bytes分区表+2bytes标志位,其中分区表中每16bytes识别一个分区,一共可以识别4个(主分区+扩展分区)

    总结:分区方式:确保至少一个主分区,主分区最多4个,扩展分区最多1个,二者的编号只能从1-4;逻辑分区的文件名编号只能从5开始:

    1.png 2.png

    GPT

    • 全局唯一标识分区表(GUID Partition Table, GPT),新的分区管理机制.
    • 解决了MBR的缺点:支持超过2T的硬盘,兼容MBR,不存在扩展分区和逻辑分区,只有主分区,支持分区数目最多可有128个。
    • GPT分区区域就是用户使用的分区,也是用户进行数据存储的区域。分区区域的起始地址和结束地址由GPT头定义。

    LVM 工作原理

    • 通过将底层的物理硬盘进行封装,然后以逻辑卷的方式呈现给上层应用。
    • 在传统的磁盘管理机制,上层应用直接访问文件系统,从而对底层的物理硬盘进行读取;
    • 在LVM中,通过底层硬盘的封装,当需要对物理硬盘进行操作时,不再对分区直接进行操作,而是通过LVM对底层的磁盘进行操作。
    • LVM将存储虚拟化,使用逻辑卷,不受限于物理磁盘的大小。

    LVM 优点

    1. 灵活的容量:当使用逻辑卷,文件系统能够扩展到多个磁盘上,能够将多个磁盘或者磁盘分区成单一的逻辑卷;
    2. 存储池的伸缩性强:通过命令的形式来扩大或缩小逻辑卷大小,不必重新格式化分区或者磁盘设备;
    3. 设备命令方便:用户能够根据适合自身的方式进行设备命名;
    4. 数据再分配:数据能够在磁盘在线的情况下进行移动和分配;
    5. 卷快照:使用逻辑卷获得设备快照,用来一致性备份或者测试数据更新效果而不影响真实数据。
    6. 逻辑卷的大小可以动态管理,不会丢失现有数据,提高磁盘管理的灵活性。
    7. ......

    LVM术语

    • 物理存储介质(PM:The Physical Media)

    系统的存储设备,存储系统最低的存储单元,如:/dev/sda,/dev/hda1

    • 物理卷 (PV:Physical Volume)

    磁盘分区或从逻辑上和磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,包含有和LVM相关的管理参数。

    • 卷组(VG: Volume Group)

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

    • 逻辑卷(LV, Logical Volume)

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

    • 线性逻辑卷 (Linear Volumes)

    一个线性逻辑卷聚合多个物理卷成为一个逻辑卷。比如,如果你有两个60GB硬盘,你能生成120GB的逻辑卷.

    • 物理单元 PE(physical extent)

    每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是能被LVM寻址的最小单元。PE的大小是可设置的,默认为4MB。

    • 逻辑单元 LE(logical extent)

    逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。

    关系图如下:


    image.png

    安装LVM 管理工具

    1. 检查系统中是否安装了LVM管理工具
    rpm -qa|grep lvm
    
    1. 如果没有安装,使用yum方式安装
    yum install lvm*
    
    1. 再次检查,如下显示则正确安装
    rpm -qa|grep lvm
    
    lvm2-libs-2.02.180-10.el7_6.3.x86_64
    llvm-private-6.0.1-2.el7.x86_64
    lvm2-2.02.180-10.el7_6.3.x86_64
    mesa-private-llvm-3.9.1-3.el7.x86_64
    

    LVM实现过程

    • 通过fdisk工具将磁盘转换成Linux分区;
    • 通过pvcreate命令将Linux分区转换成物理卷(PV);
    • 通过vgcreate命令将建好的物理卷处理成卷组(VG);
    • 通过lvcreate命令将卷组分成逻辑卷(LV);


      4.png

    Linux分区及逻辑卷操作

    创建磁盘阵列分区

    使用分区工具(如:fdisk等)创建LVM分区,方法和创建其他一般分区的方式是相同的,差别仅仅是LVM的分区类型为8e

    1、使用root账户登录

    su - root
    

    2、检查磁盘阵列的分区信息,通过 fdisk -l 查看

    fdisk -l            # 查看磁盘阵列的分区信息
    

    3、格式化磁盘

    fdisk /dev/sdc              # 选中未分区的磁盘,添加新的分区
    Command (m for help): m     # m查看分区命令帮助
    Command action
       a   toggle a bootable flag
       ......(省略)
       x   extra functionality (experts only)
       
    Command (m for help): n    # 创建新的分区
    Partition type:
       p   primary (0 primary, 0 extended, 4 free)
       e   extended
    Select (default p): p      # 选择p(primary)创建主分区 
    Partition number (1-4, default 1): 1    # 分区编号,主分区从1开始
    First sector (2048-35643391, default 2048):   # 柱面起止位置,直接默认值
    Using default value 2048
    Last sector, +sectors or +size{K,M,G} (2048-35643391, default 35643391): 
    Using default value 35643391
    Partition 1 of type Linux and of size 17 GiB is set
    
    Command (m for help): t    # 设置分区的系统id号
    Selected partition 1
    Hex code (type L to list all codes): 8e   # 主分区id为8e
    Changed type of partition 'Linux' to 'Linux LVM'
    
    Command (m for help):w     # 将分区信息写入分区表,保存并退出fdisk命令
    The partition table has been altered!
    ......(省略)
    Syncing disks.
    

    4、 重启系统显示磁盘阵列分区信息

    fdisk -l   # 查看分区信息
    
    Device Boot      Start         End      Blocks   Id  System
    /dev/sdc1        2048     35643391    17820672   8e  Linux LVM
    

    创建物理卷

    5、创建及查看物理卷PV

    利用pvcrea命令将添加到卷组的所有分区或磁盘创建为物理卷。

    pvcreate /dev/sdc1    # 创建物理卷
    pvcreate /dev/sdc2
    pvcreate /dev/sdc3
    
    pvdisplay             # 查看物理卷
    pvs/pvscan            # 查看简略信息
    pvremove /etc/sdc1    # 删除物理卷(不执行命令)
    

    创建卷组及扩容

    6、把分区创建成一个卷组VG

    • 将使用pvcreate建立的物理卷创建为一个完整卷组。
    • vgcreate在创建卷组时,设置使用大小为4 MB的PE(默认为4MB),表示卷组上创建的所有逻辑卷以4MB为增量单位来进行扩充或缩减。


      image.png
    vgcreate vg1 /dev/sdc1 /dev/sdc2 /dev/sdc3  # vg1 是创建的卷组名设备称
    vgdisplay vg1            # 查看卷组
    vgs/vgs                  # 查看简略信息 
    vgchange -a y vg1        # 激活逻辑卷
    vgremove  vg1            # 删除卷组
    vgextend vg1 /dev/sdc1   # 通过物理磁盘sdc扩容
    pvresize /dev/md         # 通过raid设备间接扩容
    

    创建逻辑卷

    7、创建逻辑卷LV

    例如:从vg1中划分一个100M,名字是lv1的卷组

    lvcreate -L 100M -n lv1 vg1  # 创建逻辑卷
    lvextend -L +1G /dev/vg1/lv1 # LV扩容,增加1G容量
    resize2fs /dev/vg1/lv1       # 文件系统扩容
    
    umount /dev/vg1/lv           # 删除需先卸载
    lvremove /dev/vg1/lv1        # 删除逻辑卷
    

    -L :指定创建的LV大小;

    -n:LV的名称;

    -l:创建LV的PE数量


    格式化并挂载

    8、格式化并挂载

    mkfs.ext4 /dev/vg1/lv1      # 格式化
    mount /dev/vg1/lv1 /mnt/    # 挂载 /mnt/为挂载目录
    df -h                       # 查看分区 
    df -TH                      # 查看实际的磁盘容量
    

    逻辑卷创建的具体流程如下图:

    • 最后再温习一遍


      3.png

    相关文章

      网友评论

        本文标题:LVM学习_逻辑卷管理

        本文链接:https://www.haomeiwen.com/subject/nrunzqtx.html