• 使用LVM方式创建linux文件系统,详细教程


    前面呢是一些LVM的知识介绍,可以直接跳转到后面的实操训练

    LVM逻辑卷管理器

    之前介绍了RAID,在硬盘分好区,或者部署好RAID磁盘阵列之后,再想修改硬盘分区大小就不容易了。换而言之,当用户想要随着实际需求的变化调整硬盘分区的大小时,会受到硬盘灵活性的限制。这时就需要一项非常普及的硬盘设备资源管理技术------LVM。LVM允许用户对硬盘资源进行动态调整。

    LVM技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘进行卷组合并。这样一来,用户不必关心物理硬盘设备的底层架构和布局,就可以实现对硬盘分区的动态调整。

    ae47f028ab5baaba829cafce01de3fe6

    部署lvm逻辑卷

    首先,我们要明白,部署lvm需要逐个配置物理卷,卷组和逻辑卷。

    常用的部署命令

    功能/命令物理卷管理卷组管理逻辑卷管理
    扫描pvscanvgscanlvscan
    建立pvcreatevgcreatelvcreate
    显示pvdisplayvgdisplaylvdisplay
    删除pvremovevgremovelvremove
    扩展vgextendlvextend
    缩小vgreducelvreduce
    1. 让新添加的两块硬盘设备支持lvm技术。

      pvcreate  /dev/sdb /dev/sdc
      
      • 1
    2. 把两块硬盘设备加入到storage卷组中,然后查看卷组的状态

      vgcreate storage /dev/sdb /dev/sdc
      
      • 1
      vgdisplay
      
      • 1
    3. 切割出一个约为150mb的逻辑卷设备

      这里需要注意切割单位的问题,在对逻辑卷进行切割时有两种计量单位。第一种是以容量为单位,所使用的参数是-L。例如,使用-L 150MB 生产一个大小为150MB的逻辑卷。另外一种是以基本单元的个数为单位,所使用的参数为-l。每个基本单元的大小默认为4MB。例如,使用-l 37可以生成一个大小为37x4MB=148MB的逻辑卷。

      lvcreate -n vo -l 37 storage
      
      • 1
      lvdisplay
      
      • 1
    4. 把生成好的逻辑卷进行格式化,然后挂载使用。

    ​ linux系统会把lvm中的逻辑卷设备存放在/dev设备目录中(实际上是做一个符号链接)同时会以卷组的名称来建立一个目录,其中保存了逻辑卷的设备映射文件(即/dev/卷组名称/逻辑卷名称)。

    mkfs.ext4 /dev/storage/vo
    
    • 1
    mkdir /linuxprobe
    
    • 1
    mount /dev/storage/vo  /linuxprobe
    
    • 1
    1. 查看挂载状态,并写入配置文件,使其永久生效
    df -h
    
    • 1
    echo "/dev/storage/vo  /linuxprobe ext4 defaults 0 0" >> /etc/fstab
    
    • 1

    扩容逻辑卷

    扩展前一定要记得卸载设备与挂载点的关联。

    umount /linuxprobe
    
    • 1

    把上个实验中的逻辑卷vo扩展至290mb

    lvextended -L 290M /dev/storage/vo
    
    • 1

    检查硬盘完整性,并重置硬盘容量。

    e2fsck -f /dev/storage/vo
    
    resize2fs /dev/storage/vo
    
    • 1
    • 2
    • 3

    resize2fs命令是用来增大或者收缩未加载的“ext2/ext3/ext4”文件系统的大小。

    重新挂载硬盘,并查看挂载状态。

    mount -a   #这个命令是挂载fatab文件上的内容
    
    df -h
    
    • 1
    • 2
    • 3

    缩小逻辑卷

    缩小逻辑卷的丢失数据的风险较大,我们一定要提前备份好数据。

    在执行缩容操作之前记得先把文件系统卸载掉:

    umount /linuxprobe
    
    • 1

    检查文件系统的完整性

    e2fsck -f /dev/storage/vo
    
    • 1

    把逻辑卷vo的容量减少到120MB

    resize2fs /dev/storage/vo 120M
    
    lvreduce -L 120M  /dev/storage/vo
    
    • 1
    • 2
    • 3

    重新挂载文件系统并查看状态

    mount -a
    
    df -h
    
    • 1
    • 2
    • 3

    逻辑卷快照

    LVM快照卷的特点:

    • 快照卷的容量必须等同于逻辑卷的容量;
    • 快照卷仅一次有效,一旦执行还原操作后则会被立即删除。

    首先查看卷组信息

    vgdisplay
    
    • 1

    看到卷组有空闲容量,接下来我们使用重定向往逻辑卷设备所挂载的目录中写入一个文件。

    echo "Welcome to Linuxprobe.com" > /linuxprobe/readme.txt
    
    ls -l /linuxprobe
    
    • 1
    • 2
    • 3

    第一步:使用-s参数生成一个快照卷,使用-L参数指定切割的大小。另外,还需要在命令后面写上是针对哪个逻辑卷执行的快照工作。

    lvcreate -L 120M -s -n SNAP /dev/storage/vo
    
    lvdisplay
    
    • 1
    • 2
    • 3

    第二步:在逻辑卷所挂载的目录中创建一个100MB的垃圾文件,然后查看快照卷的状态,你是可以发现存储空间占的用量上升了。

    dd if=/dev/zero of=/linuxprobe/files count=1 bs=100M
    
    lvdisplay
    
    • 1
    • 2
    • 3

    第三步:为了效验SNAP快照卷的效果,需要对逻辑卷进行快照还原操作。在此之前记得先卸载掉逻辑卷设备与目录的挂载。

    umount /linuxprobe
    lvconvert --merge /dev/storge/SNAP
    
    • 1
    • 2

    第四步:快照卷会被自动删除,并且刚刚在逻辑卷设备被执行快照操作后再创建出来的100MB的垃圾文件也被清除了。

    mount  -a
    
    ls /linuxprobe/
    
    • 1
    • 2
    • 3

    删除逻辑卷

    当生产环境想要重新部署LVM或者不在需要使用LVM时,则需要执行LVM的删除操作,为此你就要提前备份好重要的数据信息,然后依次删除逻辑卷,卷组,物理卷设备,这个顺序不可颠倒。

    第一步:取消逻辑卷与目录的挂载关联,删除配置文件中永久生效的设备参数。

    umount /linuxprobe
    
    vim /etc/fstab
    
    • 1
    • 2
    • 3

    第二步:删除逻辑卷设备,输入y来确认操作。

    lvremove /dev/storage/vo
    
    
    • 1
    • 2

    第三步:删除卷组,此处只写卷组名即可,不需要设备的绝对路径

    vgremove storage
    
    • 1

    第四步:删除物理设备

    pvremove  /dev/sdb  /dev/sdc
    
    • 1

    实操训练

    1. 首先你用去看看电脑硬盘的使用情况
    fdisk  -l  #查看当前磁盘的分区情况
    
    • 1
    1. 对磁盘进行分区:
    fdisk /dev/sdb
    
    • 1
    1. 进去之后会有一些比较重要的命令
    image-20220919143604959
    参数功能
    -b指定每个分区的大小
    -l列出指定的外围设备的分区表状况
    -s将指定的分区大小输出到标准输出上,单位为区块
    -u搭配”-l”参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址
    -v显示版本信息
    -m查看全部可用参数
    -n添加新的分区
    -d删除某个分区信息
    -t改变某个分区的类型
    -p查看分区表信息
    -w保存并退出
    -q不保存直接退出

    image-20220919145249147

    然后,我们在添加分区的时候,有个主分区,,扩展分区,逻辑分区,我们浅浅了解一手:

    主分区数量至少1个,最多4个(如果存在扩展分区,则最多3个)。主分区可以直接使用,主分区本身不能继续分区,一个主分区就是一个逻辑磁盘。

    扩展分区0个或1个,会占用一个主分区号,不能直接使用,必须在其上建立逻辑分区后才能用。 其实就是把1个主分区拿过来进行分区扩展了。

    逻辑分区可以若干个,通过扩展分区建立,可以直接使用,扩展分区的容量是所有逻辑分区容量之和(如果扩展分区被完全使用的话)。

    合理的磁盘分区会方便我们的文件挂载使用的。

    在我们使用w退出之后,记得使用这个命令:

    partprobe    重新加载磁盘分区信息,并更改到系统内核
    
    • 1

    🏳️‍🌈重头戏来了:

    我们下面就把整个sdb100G扩展到centos卷组中去,并创建如下的需求:

    10G /oracle
    10G /grid
    10G /orasystem
    10G /arch
    剩余空间全部分给 /oradata

    image-20220919150058759

    1. 让新添加的硬盘设备支持LVM技术。
    pvcreate  /dev/sdb
    
    • 1

    image-20220919150817924

    2.接下来呢。我们要把这个硬盘设备加入到centos这个卷组,如果在此之前没有centos这个卷组,那么就用vgcreate 命令,如果有就是下面的命令:

    vgextend centos /dev/sdb
    
    • 1
    image-20220919151825153
    1. 创建逻辑卷,这一步就是要面向需求了:我们要根据上面的需求依次创建对应的逻辑卷。

    image-20220919153450064

    1. 接下来我们就需要将这些生成好的逻辑卷格式化,然后进行挂载

    ​ linux系统会把lvm中的逻辑卷设备存放在/dev设备目录中(实际上是做一个符号链接)同时会以卷组的名称来建立一个目录,其中保存了逻辑卷的设备映射文件(即/dev/卷组名称/逻辑卷名称)。

    image-20220919153721866

    上面展示的是格式化为xfs类型的操作。

    下面我们就是要去创建一个目录,一会好去挂载:

    image-20220919160024431

    最后的最后,我们要把这些挂载内容写入/etc/fstab中去:

    在配置文件中,我们可以使用uuid去配置。

    blkid
    
    • 1

    image-20220919160713688

    vi /etc/fatab
    
    • 1
    UUID=0e157636-1b3f-413b-a68d-5db7d0b03de0  /oracle                xfs     defaults        0 0
    UUID=da09987c-281d-402d-972c-ac56d5844d29  /grid                  xfs     defaults        0 0
    UUID=51720d40-66ba-44b9-a667-378a06fd87d7  /orasystem             xfs     defaults        0 0
    UUID=df06626c-5495-4828-b6b2-63f4cdec257c  /arch                  xfs     defaults        0 0
    UUID=328c9d42-a8a3-43c3-8d99-bda2d28f856e  /oradata               xfs     defaults        0 0
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    记录每天学习的新知识: Room
    如何快速看懂英文论文?
    Java用fastjson转换JSON对象和字符串
    基于tensorflow和NasNet的皮肤癌分类项目
    django-haystack使用小结
    华为ensp nat转换实验
    基于java+springboot+mybatis+vue+elementui的眼镜商城系统
    计算机毕业设计node+vue基于微信小程序的货物管理系统的设计与实现
    [NCTF2019]Fake XML cookbook-1|XXE漏洞|XXE信息介绍
    计算器(c++基础)
  • 原文地址:https://blog.csdn.net/wxnshuai/article/details/126936585