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

    一、简介

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

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

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

    基本的逻辑卷管理概念:

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

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

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

    关系图如下:

    二、LVM操作:

    1、新建一个分区:

    可以用fdisk,parted

    2、创建pv:

    创建:
    pvcreate /dev/sdb1
    查看:
    pvs,pvdisplay,pvscan

    3、创建vg:

    创建:
    vgcreate vg_name /dev/sdb1
    查看:
    vgdisplay,vgs,pvscan
    vgdisplay参数说明:
    
    VG Name        #VG的名称
    VG Size        #VG的总大小
    PE Size        #PE的大小,默认为4MB
    Total PE       #PE的总数量,5114 x 4MB = 19.98GB
    Free PE / Size   #剩余空间大小

    4、创建lv:

    创建:
    lvcreate -L 100G -n lv_name vg_name
    查看:
    lvdisplay,vgs
    lvdisplay参数说明:
    LV Path   #LV的路径,全名
    LV Name   #LV的名字
    VG Name   #所属的VG
    LV Size   #LV的大小

    5、格式化lv:

    格式化:
    mkfs.ext4 /dev/vg_name/lv_name
    挂载:
    mount /dev/vg_name/lv_name /data
    将挂载信息写入/etc/fstab:

    将挂载命令写入到启动文档:

    6、lv的扩容:

    1、查看vg里有没有空余的空间:
    vgs
    2、增加容量:
    lvextend -L +10G /dev/vg_name/lv_name
    3、df -h磁盘没有变化,执行以下命令(系统还不认识新加的容量):
    resize2fs  /dev/vg_name/lv_name
    注:报resize2fs: Bad magic number in super-block 当尝试打开 /dev/vg_name/lv_name 时,找不到有效的文件系统超级块。
    (1)查看文件系统类型 cat /etc/fstab | grep lv_name,是xfs类型的话执行:
    xfs_growfs /dev/vg_name/lv_name

    7、vg的扩容:

    1、新创建个pv:
    pvcreate /dev/sdc1
    2、将pv加入vg里:
    vgextend vg_name /dev/sdc1
    3、查看容量:
    vgs

    8、lv缩减:

    1、umount 文件系统:
    umount  /data
    2、缩减文件系统(提示需要先检查磁盘):
    resize2fs /dev/vg_name/lv_name 4G
    3、检查磁盘:
    e2fsck –f /dev/vg_name/lv_name
    4、再次缩减磁盘:
    resize2fs /dev/vg_name/lv_name 40G
    5、缩减lv:
     lvreduce /dev/vg_name/lv_name –L 40G
    6、挂载查看:
    mount  /dev/vg_name/lv_name  /data

    9、vg缩减:

    1、umount 文件系统
    2、查看当前的PV详情
    3、将/dev/sdc1 从vg_nme中移除
    4、再次查看PV情况
    5、查看vg0 的情况
  • 相关阅读:
    pkg_resources.DistributionNotFound: The 'catkin-pkg==0.4.9' distribution was not found
    gsl库安装
    json ubuntu下安装
    系统安装情况以及深度学习环境搭建
    ros 编程习惯
    ubuntu系统ftp连接 以及ssh连接
    redmine问题
    maven仓库私服配置
    SVN配置管理(trunk、branches、tags)
    Gitolite配置管理和GIT基本操作
  • 原文地址:https://www.cnblogs.com/chimeiwangliang/p/7872430.html
Copyright © 2011-2022 走看看