Linux存储基础(管理文件系统及存储)

Linux存储基础

在LINUX系统中有一个重要的概念:一切都是文件。 其实这是UNIX哲学的一个体现,而Linux是重写UNIX而来,所以这个概念也就传承了下来。在UNIX系统中,把一切资源都看作是文件,包括硬件设备。UNIX系统把每个硬件都看成是一个文件,通常称为设备文件,这样用户就可以用读写文件的方式实现对硬件的访问。 LVM是逻辑卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制。LVM通过在硬盘和文件系统之间添加一个逻辑层,来为文件系统屏蔽下层硬盘分区布局,提高硬盘分区管理的灵活性。 下图为Linux中磁盘空间管理或者划分的全流程。
在这里插入图片描述
使用LVM管理硬盘的基本过程如下:
● 创建分区
● 创建为物理卷
● 将多个物理卷组合成卷组
● 在卷组中创建逻辑卷
● 在逻辑卷之上创建文件系统

通过LVM管理硬盘之后,文件系统不再受限于硬盘的大小,可以分布在多个硬盘上,也可以动态扩容。

基本概念

  1. 物理存储介质(The physical media):指系统的物理存储设备,如硬盘,系统中为/dev/hda、/dev/sda等等,是存储系统最低层的存储单元。
  2. 分区(Logical Volume) :linux分区不同于windows,linux下硬盘设备名为(IDE硬盘为hdx(x为从a—d)因为IDE硬盘最多四个,SCSI,SATA,USB硬盘为sdx(x为a—z)),硬盘主分区最多为4个,所以主分区从sdb1开始到sdb4,逻辑分区从sdb5开始。
  3. 物理卷(Physical Volume,PV):指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块。物理卷包括一个特殊的标签,该标签默认存放在第二个 512 字节扇区,但也可以将标签放在最开始的四个扇区之一。该标签包含物理卷的随机唯一识别符(UUID),记录块设备的大小和LVM元数据在设备中的存储位置。
  4. 卷组(Volume Group,VG):由物理卷组成,屏蔽了底层物理卷细节。可在卷组上创建一个或多个逻辑卷且不用考虑具体的物理卷信息。
  5. 逻辑卷(Logical Volume,LV):卷组不能直接用,需要划分成逻辑卷才能使用。逻辑卷可以格式化成不同的文件系统,挂载后直接使用。
  6. 物理块(Physical Extent,PE):物理卷以大小相等的“块”为单位存储,块的大小与卷组中逻辑卷块的大小相同。
  7. 逻辑块(Logical Extent,LE):逻辑卷以“块”为单位存储,在一卷组中的所有逻辑卷的块大小是相同的。

磁盘和分区概述

物理磁盘一般按照硬盘材质可以分为机械硬盘和固态硬盘两种类型,按照接口类型又可以分为SCSI接口的硬盘、SATA接口的硬盘、SAS接口的硬盘等类型。
在这里插入图片描述

常见的磁盘与磁盘接口

磁盘分区的好处:
● 限制应用或用户的可用空间。
● 允许从同一磁盘进行不同操作系统的多重启动。
● 将操作系统和程序文件与用户文件分隔。
● 创建用于操作系统虚拟内存交换的单独区域。
● 限制磁盘空间使用情况,以提高诊断工具和备份映像的性能。

物理分区

在Linux中,一切设备皆文件,因此需要通过访问文件或文件目录实现对设备的访问,Linux中磁盘设备名存放在/dev目录中。
命名规则如下:
在这里插入图片描述

磁盘命名

Linux中,SSD、SAS、SATA类型的硬盘,都用sd来标识,IDE硬盘属于IDE接口类型的硬盘,用hd来标识。 通常所说的“硬盘分区”就是指修改磁盘分区表,注意以下情况:
● 考虑到磁盘的连续性,一般建议将扩展分区放在最后面的柱面内。
● 一个硬盘只有一个扩展分区,除去主分区,其它空间都分配给扩展分区。
● 硬盘容量=主分区+扩展分区;扩展分区容量=各个逻辑分区容量之和。
在这里插入图片描述

MBR分区类型

基本分区(primary partion) 基本分区也称主分区,引导分区、每块磁盘分区主分区与扩展分区加起来不能大于四个; 基本分区创建后可以立即使用,但是有分区数量上限。
扩充分区(extension partion)

  1. 每块磁盘内只能划分一块扩展分区;
  2. 扩展分区内可划分任意块逻辑分区;
  3. 扩展分区创建后不能直接使用,需要在扩展分区内创建逻辑分区。
    逻辑分区(logical partion) 逻辑分区实在扩展分区内创建的分区; 逻辑分区相当与一块存储介质,和其他逻辑分区主分区完全独立。

逻辑卷层管理

LVM的安装和确认

openEuler操作系统默认已安装LVM。 可通过

rpm -qa | grep lvm2

命令查询,若打印信息中包含“lvm2”信息,则表示已安装LVM;若无任何打印信息,则表示未安装,可参考以下内容进行安装。
Query/Verify package selection options:
-a, --all query/verify all packages
-f, --file query/verify package(s) owning file
-g, --group query/verify package(s) in group
-p, --package query/verify a package file

命令解释如下:
rpm -qa: 这个命令会列出系统上安装的所有 RPM 软件包。
|: 这是一个管道符号,用于将一个命令的输出作为另一个命令的输入。
grep lvm2: 这个命令会搜索输入中包含“lvm2”的行。
所以,当你运行 rpm -qa | grep lvm2 时,你会在输出中看到所有包含“lvm2”字符串的软件包名称。如果 LVM2 已经安装,你应该会在输出中看到 lvm2 或与 LVM2 相关的其他软件包名称。如果没有输出或没有包含 lvm2 的行,那么 LVM2 很可能没有安装在你的系统上。

  1. 在root权限下安装LVM。
[root@host /]# dnf install lvm2
  1. 查看安装后的rpm包。
[root@host /]# rpm -qa | grep lvm2
  1. 创建分区
[root@host ~]# fdisk /dev/sdb 
Command (m for help): n # add a new partition
Partition type 
p primary (0 primary, 0 extended, 4 free) 
e extended (container for logical partitions) 
Select (default p): p # 主分区 
Partition number (1-4, default 1): # 回车 
First sector (2048-10485759, default 2048): # 回车 
Last sector, +sectors or +size{K,M,G,T,P} (2048-10485759, default 10485759): # 回车 

Created a new partition 1 of type 'Linux' and of size 5 GiB. 
Command (m for help): t # 修改分区类型,在CentOS8中不用设置为 8e也可以 
Selected partition 1 
Hex code (type L to list all codes): 8e # LVM类型 
Changed type of partition 'Linux' to 'Linux LVM'. 

Command (m for help): w # 保存配置 
The partition table has been altered.

Calling ioctl() to re-read partition table. 
Syncing disks. 

[root@host ~]# fdisk -l 
Disk /dev/vda: 10 GiB, 10737418240 bytes, 20971520 sectors 
Units: sectors of 1 * 512 = 512 bytes 
Sector size (logical/physical): 512 bytes / 512 bytes 
I/O size (minimum/optimal): 512 bytes / 512 bytes 
Disklabel type: dos 
Disk identifier: 0x16a1e057 

Device Boot Start End Sectors Size Id Type 
/dev/sda1 * 2048 20971486 20969439 10G 83 Linux 
Disk /dev/sdb: 5 GiB, 5368709120 bytes, 10485760 sectors 
Units: sectors of 1 * 512 = 512 bytes 
Sector size (logical/physical): 512 bytes / 512 bytes 
I/O size (minimum/optimal): 512 bytes / 512 bytes 
Disklabel type: dos 
Disk identifier: 0x03864530 
Device Boot Start End Sectors Size Id Type 
/dev/sdb1 2048 10485759 10483712 5G 8e Linux LVM

成功地在 /dev/sdb 上创建了一个新的主分区,并将其类型设置为 Linux LVM。以下是步骤的简要概述和解释:

  1. 启动 fdisk 工具:fdisk /dev/sdb 命令用于对 /dev/sdb 磁盘进行分区。

  2. 添加新分区:输入 n 来创建新的分区。

    1. 您选择了 p 作为分区类型,这意味着您正在创建一个主分区。
    2. 您没有指定分区号,所以默认是 1。
    3. 您没有指定起始和结束扇区,所以它们分别默认为 2048 和 10485759。这意味着新分区将从 第 2048 个扇区开始,到第 10485759 个扇区结束,总共 5 GiB。
  3. 修改分区类型:输入 t 来修改分区的类型。

    您选择了 8e 作为新的分区类型,这代表 Linux LVM (Logical Volume Manager) 类型。LVM 允许您更灵活地管理磁盘空间,因为它允许您在物理磁盘上创建逻辑卷,这些逻辑卷可以跨多个物理磁盘,并可以动态地扩展和缩小。

  4. 保存更改:输入 w 将更改写入磁盘并退出 fdisk。

  5. 验证更改:使用 fdisk -l 命令列出所有磁盘的分区信息,以确认新的分区和类型已正确创建。

从您提供的输出中,我们可以看到 /dev/sdb1 分区已成功创建,大小为 5GiB,并且其类型为 8e(Linux LVM)。

接下来,使用 LVM 工具(如 pvcreate、vgcreate 和 lvcreate)来进一步配置这个新的 LVM 分区,例如创建物理卷、卷组和逻辑卷。

查看Linux是MBR还是GPT的方法如下

	1.  使用fdisk -l命令。若显示结果中的"Disk label type"的值为dos则分区是MBR,若该结果的值为gpt则分区是GPT。
	2.  使用parted -l命令。若显示结果中的"Partition Table"的值为msdos则分区是MBR,若该结果的值为gpt则分区是GPT。

fdisk和parted都是Linux下用于磁盘分区的工具,它们有以下区别:

	1.fdisk是一个传统的分区工具,它使用MBR分区方式,并且最多只能创建4个主分区。此外,fdisk不支持大于2TB的分区。
	2.parted是一个较新的分区工具,它使用GPT分区方式,可以创建超过4个的主分区,并且支持大于2TB的分区。

总的来说,fdisk和parted在分区方式、分区数量和分区大小支持等方面存在差异。在选择使用哪个工具时,需要根据具体的需求和场景来决定。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值