RHEL8存储结构和硬盘管理

本文详细介绍了RHEL8系统中的存储结构,包括从/开始的目录层次,物理设备命名规则,以及文件系统原理。重点讲解了硬盘操作,如fdisk分区,mkfs格式化,mount挂载,并探讨了如何配置/etc/fstab实现自动挂载。此外,还涵盖了添加交换分区,磁盘容量配额管理,以及VDO虚拟数据优化技术,最后提到了软硬链接的使用。

一切从/开始

在Linux系统中,文件系统遵循文件系统层次标准(Filesystem Hierarchy Standard,HFS)以及udev硬件命名规则,文件和目录的命名严格区分大小写,文件名称中不得包含(/),通过在shell终端输入tree命令查看rhel8目录


物理设备命名规则

硬件设备文件放在/dev目录下,命名如下表所示:

硬件设备

文件名称

IDE设备

/dev/hd[a-d]

SCSI/SATA/U盘

/dev/sd[a-d]

Virtio设备

/dev/vd[a-d]

软驱

/dev/fd[0-1]

打印机

/dev/lp[0-15]

光驱

/dev/cdrom

鼠标

/dev/mouse

磁带机

/dev/st0 或 /dev/ht0

一般硬盘设备都是以“/dev/sd”开头,a~z表示26块不同的硬盘,默认从a开始分配,主分区或扩展分区编号从1开始到4结束,逻辑分区编号从5开始,例如/dev/sdc6表示的是硬盘编号为c、分区编号为6的逻辑分区。

硬盘设备由大量的扇区组成,每个扇区的容量为512字节,其中第一个扇区最重要,里面保存着主引导记录和分区表信息。主引导记录占用446字节,分区表占用64字节,结束符占用2字节。分区表中没记录一个分区占用16字节,这样一来最多只有4个分区信息可以写到第一个扇区中,这四个分区就是主分区。为了解决分区数不够的问题,可以将第一个扇区的分区表中16字节的空间(扩展分区)拿出来指向到另外一个分区,然后在扩展分区中创建出逻辑分区,扩展分区其实并不是一个真正的分区,这样一来就有3个主分区、1个扩展分区和多个逻辑分区。

446字节

16字节

16字节

16字节

16字节

2字节

主引导记录(MBR)

分区1

分区2

分区3

分区4

结束符


文件系统

Linux系统支持数十个文件系统,包括Ext2、Ext3、Ext4、XFS。Linux系统有个名为super block的“硬盘地图”,Linux并不是把文件内容直接写入到这个“硬盘地图”里面,而是在里面记录着整个文件系统的信息,Linux把每个文件的权限与属性记录到inode中,而且每个文件占用一个独立的inode表格,该表格的默认大小为128字节,里面记录着如下信息:

  • 该文件的访问权限(read、write、execute)

  • 该文件的所有者与所属组(owner、group)

  • 该文件的大小(size)

  • 该文件的创建时间或内容修改时间(Ctime)

  • 该文件的最后一次访问时间(Atime)

  • 该文件的修改时间(Mtime)

  • 文件的特殊权限(SUID、SGID、SBIT)

  • 该文件的真实数据地址(point)

而文件的实际内容则保存在block块中(大小一般是1KB、2KB或4KB)。

Linux内核中的软件层为用户提供了一个虚拟文件系统(Virtual File System,VFS)接口,这样用户实际上在操作文件时就是统一对这个虚拟文件系统进行操作了。


硬盘操作

我们在虚拟机中额外添加两块硬盘,重启以后的硬盘名称应该是/dev/sdb和/dev/sdc。

fdisk分区

fdisk命令用于新建、修改、删除硬件分区表信息,英文全称“format disk”,语法格式为“fdisk 磁盘名称”。

fdisk命令中的参数以及作用如下表

参数

作用

m

查看全部可用参数

n

添加新的分区

d

删除某个分区信息

l

列出所有可用的分区类型

t

改变某个分区的类型

p

查看分区表信息

w

保存并退出

q

不保存直接退出

新建一个5G的主分区

输入l查看所有分区类型 输入p查看查看分区信息

输入w保存退出。

lsblk命令将以树状列出所有块设备,包括查看磁盘挂载信息,英文全称为“list block id”,输入lsblk查看,可以看到sdb下已经有一个分区sdb1。

mkfs格式化

使用mkfs命令格式化sdb1分区,文件类型为xfs

mount挂载

mount命令用于挂载文件系统,格式为“mount 文件系统 挂载目录”,可用参数有 -a和-t。-a参数会在执行后自动检查/etc/fstab文件中有无被疏漏挂载的设备文件,如果有则自动挂载;-t参数用来指定文件系统类型,Linux系统会自动进行判断。我们新建/newFS目录用于挂载sdb1,使用df -h查看挂在状态和硬盘使用量信息

du命令用来查看分区或目录所占用的磁盘容量大小,英文全称为“disk usage”,语法格式为“du -sh 目录名称”,我们为/newFS复制一些文件,然后使用du命令查看

配置/etc/fstab,使用mount -a自动挂载

vim /etc/fstab 编辑fstab文件,添加一行

然后执行mount -a以后就会自动挂载。

添加交换分区

我们新建一个5G的主分区作为交换分区,分区类型为swap,请注意输入l修改分区类型为82

上面我们新建了一个swap分区类型的主分区,接下来使用mkswap命令格式化为swap交换分区

使用free -h 查看交换分区大小

使用swapon命令挂载刚才新建的swap分区sdb2 再次输入free -h查看交换分区大小变化情况

可以看到swap容量从2G增加到7G 我们使用swapoff命令卸载sdb2交换分区

可以看到swap容量从7G减少到2G了。

为了能够让新的交换分区设备在重启后依然生效,需要在/etc/fstab配置文件中进行配置并保存:

不放心的话,使用cat查看一下配置文件内容


磁盘容量配额

Linux系统中可以使用quota技术进行磁盘容量配额管理,从而限制用户的磁盘可用容量或创建文件的最大数量。quota技术有软限制和硬限制:

  • 软限制:当到达软限制时会提示用户,但允许用户在限定的额度内继续使用。

  • 硬限制:当到达硬限制时会提示用户,且强制终止用户的操作。

在RHEL8系统中默认已经安装了quota服务程序包,但存储设备却默认没有开启对quota技术的支持,此时需要手动编辑/etc/fstab配置文件并重启一次系统,让系统中的启动目录

(/boot)能够支持quota技术。

在重启后使用mount命令查看,即可发现/boot目录已经支持quota磁盘配额技术了:

接下来创建一个用于检查quota磁盘容量配额效果的用户tom,并针对/boot目录增加其他人的写权限,保证用户能够正常写入数据:

xfs_quota命令用于管理设备的磁盘容量配额,语法为“xfs_quota [参数] 配额 文件系统”,其中-x参数是专家模式,-c参数用于以参数形式设置要执行的命令,接下来用xfs_quota命令设置用户tom对/boot目录的quota磁盘容量配额:软限制和硬限制分别为3MB和6MB,创建文件数量的软限制和硬限制为3个和6个。

xfs_quota -x -c 'limit bsoft=3m bhard=6m isoft=3 ihard=6 tom' /boot

使用xfs_quota -x -c report /boot查看

edquota命令用于管理系统的磁盘容量配额,英文全称为“edit quota”,语法格式为“edquota [参数] 用户名”,-u参数用于指定要对哪个用户进行设置,-g参数用于指定要对哪个用户组进行设置,执行命令以后会调用vi或vim编辑器:


VDO虚拟数据优化

VDO(Virtual Data Optimize,虚拟数据优化)是一种通过压缩或删除存储设备上的数据来优化存储空间的技术。安装 yum install kmod-kvdo vdo,接下来使用磁盘sdc来创建一个全新的VDO卷,名为storage:

vdo create --name=storage --device=/dev/sdc --vdoLogicalSize=200G

如果记不住命令可以通过man命令过滤出参考命令:

man vdo | grep vdo.*create

使用status参数查看新建卷的概述信息:

新创建的vdo卷storage在/dev/mapper目录下

格式化vdo卷storage(时间稍长耐心等待):

mkfs.xfs /dev/mapper/storage

挂在前使用udevadm settle命令对设备进行一次刷新操作,避免刚才的配置没有生效:

如果想查看使用情况,使用vdostat命令即可,human-readable参数的作用是将存储容量自动进位,以人们更容易阅读的方式输出:

如果想看逻辑存储空间,可以使用df -h命令:

VDO设备卷在创建后会一直存在,但需要手动配置/etc/fstab文件后才能在下一次重启后自动挂载,对于这种逻辑存储设备建议使用UUID进行挂载,不建议使用设备名,我们可以使用blkid命令查询UUID然后复制下来:

接下来编辑/etc/fstab配置文件,注意defaults后面追加",_netdev",表示等系统及网络都启动后再挂载vdo设备卷:

UUID=287f68f9-7a81-469d-9a65-c2ceb068f4fa       /storage        xfs     defaults
,_netdev        0 0

软硬方式链接

ln命令用于创建文件的软硬链接,英文全称为“link”,语法格式为“ln [参数] 原始文件名 链接文件名”,可用参数如下表:

参数

作用

-s

创建软链接也就是“符号链接”(如果不带-s参数则表示创建硬链接)

-f

强制创建文件或目录的链接

-i

覆盖前先询问

-v

显示创建链接的过程

至于软硬链接的区别请找度娘。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值