Linux:存储管理和LVM磁盘

发布时间 2023-11-28 15:05:15作者: Huan&

一  、存储管理

1. 存储概览
1.1 从磁盘的工作原理上分类磁盘
机械磁盘 HDD
固态磁盘 SSD

1.2 从插拔方式上分类磁盘
热插拔
非热插拔

1.3 从硬盘接口上分类磁盘
IDE-SATA(串行ATA)
SCSI-SAS(串行SCSI)
PCIE接口
FC光纤接口

1.4 从连接方式上分类
本地存储
外部存储
网络存储
1.5硬盘内部图如下:

 

1.5.1.1 MBR中主分区、 扩展分区、逻辑分区总结

主分区和扩展分区最多有4个;
扩展分区最多只能有1个;
逻辑分区由扩展分区生;
能被格式化后使用的分区为主分区和逻辑分区; 扩展分区不能直接使用;
逻辑分区的数量由操作系统决定。

2.基本分区

2.1磁盘设备相关命令

lsblk: 查看系统中所有块设备文件

fdisk -l 或 gdisk -l: 查看磁盘的分区情况

blkid:查看分区的UUID、文件系统类型

2.2 管理基本分区的步骤
添加新磁盘设备
用MBR或GPT将磁盘分区
将各个可用分区格式化为ext3,ext4,xfs等文件系统
将格式化好的分区挂载
2.3 用fdisk工具将磁盘设备做MBR格式分区
MBR分区可分14个区(4个主分区,扩展分区,逻辑分区)
一块新磁盘的分区、格式化、挂载步骤:

分区:fdisk /dev/sdb
分完区后,要用这个命令让内核重新加载一下分区表,才能在/dev目录里找到新分区文件:partprobe /dev/sdb
2.4 用gdisk工具将磁盘设备做GPT格式分区
GPT 128个主分区

分区: gdisk /dev/sdc
partprobe /dev/sdc
2.5 格式化分区后的分区
有两个命令可用:

mkfs.xxx
mkfs -t xxx

硬盘的分区方式有2种,如下图所示:

3.交换分区

3.1交换分区的作用

防止out of memory

4. ext2/ext3/ext4日志式文件系统(Journaling filesystem)
4.1 ext2/ext3/ext4日志式文件系统的工作原理
日志式文件系统工作的三个步骤:

准备阶段:当系统要写入一个文件时,会先在日志区记录这个文件准备写入的信息
实际写入阶段:将metadata原信息写入inode;将实际数据写入block;更新inode bitmap、block bitmap、superblock
结束阶段:完成数据和metadata的写入和inode bitmap、block bitmap、superblock的更新后,在日志记录区块中清楚这个文件的信息

4.2 新建一个文件的过程
先确定使用者对于想要创建文件的目录是否有w和x权限
根据inode bitmap找到没有使用的inode号码,并将文件的权限和属性写入
根据block bitmap没有使用的block号码,把实际数据写入,并更新inode的block指向信息
将刚刚写入的inode和block在更新inode bitmap和block bitmap,并更新superblock的内容
4.3 文件不一致的状态
如果断电或内核发生错误,可能刚刚写完inode和block的数据,还没来得及更新inode bitmap、block bitmap,superblock中的原数据,这就造成了元数据与实际不符的情况Inconsistent

4.4 修复文件不一致的状态文件系统
4.4.1 文件不一致的现象
系统无法启动
系统某个分区只读
4.4.2 修复文件不一致的命令
fsck和e2fsck-fy

 如何利用备份的superblock修复主superblock
5. xfs文件系统
5.1 与ext4相比xfs文件系统的优势
创建文件系统(格式化)时快;
文件系统修复时快;
容量更大
5.2 xfs文件系统概述
与ext4一样都是日志式文件系统;

inode和block都是系统需要要到时才动态配置生成的;xfs文件系统有三个区:数据区data section存放inode、block、superblock   日志区log section   实时运行区realtime section

 

二  、LVM磁盘

1.LVM解释
  在我们的生产工作中,有时候会出现这种情况,我们规划主机的时候只给了/home 50GB,等到用户众多之后,这个文件系统不够大,此时怎么办?我们可以加一块新硬盘,然后重新分区并格式化,将/home的数据完整地复制过来,然后将原本的分区卸载重新挂载新分区,是可以解决但是比较麻烦,有没有更简单的方法呢?有的! 就要用到LVM了(即逻辑卷管理器)。

  LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制。它主要的作用是:

能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性。
/boot分区用于存放引导文件,不能基于LVM创建。
2.LVM机制的基本概念
  LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的存储卷,在存储卷上建立文件系统。以下几个是LVM术语:

物理卷(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组成。

 

LVM结构如下图所示:

 

  总的来说,创建逻辑卷的过程就是先在整个硬盘或者一个分区创建由PE构成的物理卷(PV)。接下来,将物理卷上比较分散的各物理卷的存储空间组成一个逻辑整体,即卷组(VG)。最后,基于卷组这个整体,分割出不同的数据存储空间,形成逻辑卷(LV),形成逻辑卷之后用户才能挂载并使用存贮空间。