Centos/linux根目录扩容、分区、挂载。LVM、物理卷、逻辑卷

时间:2024-04-30 13:23:20

目录

  • 前言    (空格) :分区挂载和扩容是两码事
  • 基本术语
  • 一、LVM结构
  • 二、分区挂载
  • 命令
    • 1. 开始划分
        • 1-1. 创建磁盘分区。
    • 注意,分区需要使用‘8e’类型来使他们可用于LVM
        • 1-2 进行磁盘扩展之后发现我的sda这块磁盘变为了80G,但是sda下的sda1和sda2分区依旧是之前的70个G。此时就需要将新增的磁盘利用起来,就需要进行分区。
        • 1-3 进行分区
    • 2 挂载
        • 2-1 查看 df -h
        • 2-2. 分区格式化
        • 2-3. 挂载
      • 2-4. test
        • 2-5. 永久挂载
  • 四、磁盘扩容:使用LVM对root进行扩容
        • 1. 提前了解的知识
        • 2. 命令
      • 3. VM整体流程:
        • 3-1 进入磁盘管理:
        • LVM配置
        • 3-2. 为之前新增的分区创建物理卷
          • 3-2-1 通过pvcreate /dev/xxx 将刚才的分区创建为物理卷
          • 3-3-2 扩展卷分组
          • 3-2-3 扩展逻辑卷
          • 3-2-4 扩展完成后还要将文件系统扩大或者使用resize2fs
      • 4 验证 df -h

前言    (空格) :分区挂载和扩容是两码事

  每个Linux使用者在安装Linux时都会遇到这样的困境:在为系统分区时,如何精确评估和分配各个硬盘分区的容量,因为系统管理员不但要考虑到当前某个分区需要的容量,还要预见该分区以后可能需要的容量的最大值。因为如果估 计不准确,当遇到某个分区不够用时管理员可能甚至要备份整个系统、清除硬盘、重新对硬盘分区,然后恢复数据到新分区。

  虽然有很多动态调整磁盘的工具可以使用,例如PartitionMagic等等,但是它并不能完全解决问题,因为某个分区可能会再次被耗尽;另外一个方面这需要 重新引导系统才能实现,对于很多关键的服务器,停机是不可接受的,而且对于添加新硬盘,希望一个能跨越多个硬盘驱动器的文件系统时,分区调整程序就不能解决问题。

因此完美的解决方法应该是在零停机前提下可以自如对文件系统的大小进行调整,可以方便实现文件系统跨越不同磁盘和分区。幸运的是Linux提供的逻辑盘卷管理(LVM,LogicalVolumeManager)机制就是一个完美的解决方案。

    逻辑卷管理器(LogicalVolumeManager)本质上是一个虚拟设备驱动,是在内核中块设备和物理设备之间添加的一个新的抽象层次,如图4-1所示。它可以将几块磁盘(物理卷,PhysicalVolume)组合起来形成一个存储池或者卷组(VolumeGroup)。LVM可以每次从卷组中划分出不同大小的逻辑卷(LogicalVolume)创建新的逻辑设备。底层的原始的磁盘不再由内核直接控制,而由LVM层来控制。对于上层应用来说卷组替代了磁盘块成为数据存储的基本单元。LVM管理着所有物理卷的物理盘区,维持着逻辑盘区和物理盘区之间的映射。LVM逻辑设备向上层应用提供了和物理磁盘相同的功能,如文件系统的创建和数据的访问等。但LVM逻辑设备不受物理约束的限制,逻辑卷不必是连续的空间,它可以跨越许多物理卷,并且可以在任何时候任意的调整大小。相比物理磁盘来说,更易于磁盘空间的管理。
在这里插入图片描述

    从用户态应用来看,LVM逻辑卷相当于一个普通的块设备,对其的读写操作和普通的块设备完全相同。而从物理设备层来看,LVM相对独立于底层的物理设备,并且屏蔽了不同物理设备之间的差异。因而在LVM层上实现数据的连续保护问题,可以不需要单独考虑每一种具体的物理设备,避免了在数据复制过程中因物理设备之间的差异而产生的问题。从LVM的内核实现原理上看,LVM是在内核通用块设备层到磁盘设备驱动层的请求提交流之间开辟的另外一条路径,即在通用块设备层到磁盘设备驱动层之间插入了LVM管理映射层用于截获一定的请求进行处理,如图4-2所示。 [1]
在这里插入图片描述
用户通过lvm提供接口,依靠内核创建一系列LVM逻辑卷,所有对lvm逻辑卷的读写操作最终都会由LVM在通用块设备层下方截获下来,进行更进一步的处理。这里的进一步处理主要指的是完成写请求的映射,是将请求的数据根据实际情况进行一些拆分和重定位操作,从而可以将请求和数据分发到实际的物理设备中去。 [1]

基本术语

    前面谈到,LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的存储卷,在存储卷上建立文件系统。首先我们讨论以下几个LVM术语:

  • 物理存储介质(PhysicalStorageMedia)
    指系统的物理存储设备:磁盘,如:/dev/hda、/dev/sda等,是存储系统最底层的存储单元。
  • 物理卷(Physical Volume,PV)
    指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
  • 卷组(Volume Group,VG)
    类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷)。
  • 逻辑卷(Logical Volume,LV)
    类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)。
  • 物理块(Physical Extent,PE)
    PE是物理卷PV的基本划分单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。所以物理卷(PV)由大小等同的基本单元PE组成。
  • 逻辑块(Logical Extent,LE)
    逻辑卷LV也被划分为可被寻址的基本单位,称为LE。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。

图1所示LVM抽象模型,展示了PV、VG、LV三者之间关系:
在这里插入图片描述

一、LVM结构

在这里插入图片描述

二、分区挂载

命令

#管理磁盘分区
fdisk /dev/sda	#其中sda是一块虚拟磁盘

#查看磁盘和下面的分区情况
lsblk

#查看虚拟机磁盘使用情况
df -Th

#分区格式化
mkfs.xfs /dev/sda3	#其中,mkfs是命令,xfs将分区格式化为什么类型的文件系统,/dev/sda3就是需要格式化的分区

#实现(取消)挂载
mount(umount) /dev/sda3 /mnt/test	#其中/dev/sda3是新增的分区,/mnt/test是挂载的目录

#查看挂载信息
mount

1. 开始划分

1-1. 创建磁盘分区。

注意,分区需要使用‘8e’类型来使他们可用于LVM

   预先在linux服务器/ 或VMware上添加一块磁盘。随后通过 lsblk 命令查看新添加的磁盘。通过fdisk /dev/<新增磁盘名>对新增磁盘进行管理,实现分区,磁盘情况如下:

需要将vda、vdb剩余资源划分给/data下
在这里插入图片描述

在这里插入图片描述

1-2 进行磁盘扩展之后发现我的sda这块磁盘变为了80G,但是sda下的sda1和sda2分区依旧是之前的70个G。此时就需要将新增的磁盘利用起来,就需要进行分区。

在这里插入图片描述

1-3 进行分区
------------------------------- -----------------------------------------------------
 fdisk /dev/vda
 
	 n-->p-->t-->8e-->w-->partprobe
 
  fdisk /dev/vdb
 
	 n-->p-->t-->8e-->w-->partprob

    使用fdisk /dev/sda对sda磁盘进行管理,然后就会进入到管理界面。通过使用m来查看帮助。
按下n来创建新(new)的分区,然后再按p来创建主分区。此时会叫你选择分区号,因为我之前有sda1和2,所以默认就是3号分区。这时候回车就行。

  然后就是对这块分区进行设置大小。默认回车就是将刚才新加的磁盘大小全部放入这个分区中。
  然后可以按下p来查看此时这个磁盘的分区,我显示的为三块分区,sda1、2、3。第三块是刚才创建的,为10G。
  最后按下w进行保存。
在这里插入图片描述
  最后使用partprode重新识别磁盘。
此时输入lsblk命令就会出现三块分区
在这里插入图片描述

2 挂载

2-1 查看 df -h

虽然成功进行了分区,但是实际上容量并没用扩展,输入df -h就可以看到并没有将10G利用起来。并且我的想法是将10G加在/目录下。所以此时我们就需要进行挂载操作,将其挂载到/目录下。
在这里插入图片描述

2-2. 分区格式化

首先就是需要将分区格式化(就是文件系统),通过df -T查看文件系统类型。可以看到/目录下类型是xfs,系统是CentOS 7.6的系统,
所以我格式化的格式是xfs。

mkfs.xfs /dev/sda3。

在这里插入图片描述

2-3. 挂载

现在就可以进行挂载了,先在mnt目录下创建一个test文件夹,/mnt 目录通常用于临时挂载其他文件系统或设备。然后使用命令

mount /dev/sda3 /mnt/test

意思就是将sda3这块分区挂载到/mnt/test 上。可以使用mount命令查看挂载信息。在最后一行发现以及挂载成功。
在这里插入图片描述

2-4. test

在test目录下创建一个test文件,在里面写上内容。然后使用

umount /dev/sda3

命令取消挂载,再查看test目录下没有了刚才的test.txt文件。
创建一个新的目录test2,将sda3挂载到test2下面,

mount /dev/sda3 /mnt/test2

然后就会查看到test2下面有test.txt文件并且里面就是刚才写的内容。
在这里插入图片描述
在这里插入图片描述

2-5. 永久挂载

注意:此时只是临时挂载,重启后会失效,即重启后挂载点消失。这时候就需要进行永久挂载,也就是自动挂载。
永久挂载:通过修改 /etc/fstab实现挂载。

vim /etc/fstab

/dev/sda3  /mnt/test     xfs     defaults        0 0

修改完后执行mount -a或者重启电脑。(目前我还没尝试过这个,我还没有这个需求,需要的可以试试

在这里插入图片描述

到这里【分区挂载】 就全部结束了,可以重启服务器测试验证

———————————————— ————————————————

四、磁盘扩容:使用LVM对root进行扩容

1. 提前了解的知识

    在 LVM(Logical Volume Manager)中,有三个重要的概念:物理卷(Physical Volume),卷组(Volume Group),和逻辑卷(Logical Volume)。

  • 物理卷(Physical Volume):

    物理卷是实际的硬盘驱动器或分区,它们作为 LVM 的基础存储单元。当你添加硬盘或分区到 LVM 时,它们被标记为物理卷。物理卷上的数据可以通过卷组和逻辑卷进行管理。物理卷通常对应于实际的硬件存储设备,如硬盘驱动器或分区。

  • 卷组(Volume Group):

    卷组是一个或多个物理卷的集合。物理卷被添加到卷组中,形成一个逻辑存储池。卷组为逻辑卷提供了逻辑的抽象层,允许对物理存储进行更灵活的管理。你可以在卷组中动态地添加或删除物理卷,从而扩展或收缩卷组的大小。

  • 逻辑卷(Logical Volume):

    逻辑卷类似于传统的硬盘分区,但更加灵活。它是在卷组上创建的,可以动态调整大小,而不需要重新分区或格式化。逻辑卷允许你在一个或多个物理卷上创建文件系统,并提供对数据的高度抽象和灵活性。在逻辑卷上可以执行许多操作,如调整大小、创建快照、移动等。

疏理关系:物理卷构成卷组,而卷组上层创建逻辑卷。这个层次结构提供了对存储资源更灵活的控制,并允许在不中断系统运行的情况下进行动态扩/缩容。

2. 命令
#查看物理卷
pvdisplay

#查看卷组
vgdisplay

#查看逻辑卷
lvdisplay

#创建物理卷
pvcreate /dev/sda3 #sda3是创建的新分区

#添加物理卷到卷组中
vgextend centos /dev/sda3 #centos是卷组

#增加逻辑卷大小
lvextend -L +10G /dev/centos/root <卷组名字>#10G是卷组空闲的大小,/dev/centos/root是逻辑卷路径,因为本身root这个逻辑卷就在centos卷组下所有可以不写。

#在XFS文件系统上扩展(增加)文件系统的大小
xfs_growfs /dev/mapper/centos-root	#/dev/mapper/centos-root为/目录的文件系统名字,通过df -h查看
————————————————

3. VM整体流程:

对新的硬盘/dev/vdb 创建磁盘分区->变成物理卷(PV)->加入卷组(VG)->卷组中抽调空间,制作逻辑卷->格式化->挂载

fdisk /dev/vdb
3-1 进入磁盘管理:
n(new) -> p(primary) -> 回车(默认全部空间)/或 +50G(指定 扩多少)  -> t修改分区类型 -> 8e(代码LVM)  -> w  保存

按下t修改分区类型,然后将分区改为8e(LVM)类型。随后按下w保存。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

LVM配置

查看卷分组为centos

vgdisplay -v   

在这里插入图片描述

3-2. 为之前新增的分区创建物理卷

通过pvdisplay 可以查看物理卷个数,

3-2-1 通过pvcreate /dev/xxx 将刚才的分区创建为物理卷
 pvcreate /dev/vdb1

在这里插入图片描述
通过pvdisplay查看
在这里插入图片描述

3-3-2 扩展卷分组

使用vgextend centos /dev/vdb1,将vdb1已经是物理卷的分区(可能没有用全部容量),添加到centos卷组中。此时Free PE空闲的大小就变为了50GiB了。但这时还没完,我们需要将卷组扩展的大小分配给逻辑卷中。

vgextend centos /dev/vdb1

注:"centos"是vgdisplay命令查到的卷分组名
在这里插入图片描述
在这里插入图片描述
使用lvdisplay查看逻辑卷,发现有一个centos-root, 这就是我们想要扩容的地方。

3-2-3 扩展逻辑卷

使用lvextend -L +50G /dev/centos/root <卷组的名字>命令将centos卷组下空闲的空间给root

lvextend -L +50G /dev/centos/root

在这里插入图片描述
但是此时通过df -h命令,发现/目录下还是没有扩大。
需要在 XFS 文件系统上扩展(增加)文件系统的大小。
使用xfs_growfs /dev/mapper/centos-root命令。

3-2-4 扩展完成后还要将文件系统扩大或者使用resize2fs
xfs_growfs /dev/centos/root

在这里插入图片描述

4 验证 df -h

在这里插入图片描述