项目三 磁盘管理与文件系统
3.1 项目知识准备
3.1.1 硬盘
如果从存储数据的介质上来区分,硬盘可分为机械硬盘(Hard Disk Dirve,HHD)和固态硬盘(Solid State Disk,SSD),机械硬盘采用磁性碟片来存储数据,而固态硬盘通过闪存颗粒来存储数据。
1 机械硬盘
机械硬盘(HDD,Hard Disk Drive)是一种数据存储设备,它使用旋转的磁盘(通常为金属盘片)和移动的读写头来存储和检索数据。机械硬盘是计算机中常见的存储设备之一,具有容量大、成本相对较低的特点。不过,与固态硬盘(SSD)相比,机械硬盘的读写速度较慢,且由于其机械部件的存在,对震动和冲击更为敏感,耐用性可能略低。
机械硬盘的主要组成部分包括:
- 磁盘:硬盘中的数据存储介质,通常由多个旋转的磁盘组成。
- 读写头:用于读取或写入数据的设备,它悬浮在磁盘表面,不接触磁盘。
- 主轴:支撑磁盘旋转的轴。
- 控制器:管理数据的读写过程,与计算机系统通信。
机械硬盘的容量通常从几百GB到数TB不等,适用于需要大量存储空间的应用场景,如视频编辑、大型数据库存储等。随着技术的发展,机械硬盘也在不断改进,例如通过增加磁盘数量、提高磁盘转速(如7200RPM)来提升性能。然而,固态硬盘因其更快的读写速度和更好的耐用性,正在逐渐取代机械硬盘在许多应用领域的地位。
2 固态硬盘
固态硬盘(SSD,Solid State Drive)是一种使用闪存芯片作为存储介质的数据存储设备。与传统的机械硬盘(HDD)相比,固态硬盘具有许多显著的优点:
-
速度:SSD的读写速度远远超过HDD,这使得计算机启动更快,程序加载和运行更加迅速。
-
耐用性:由于SSD没有移动部件,它们对震动和冲击更加抵抗,因此更耐用,适合在移动设备中使用。
-
能耗:SSD的能耗通常低于HDD,这有助于延长笔记本电脑和其他便携设备的电池寿命。
-
噪音:由于SSD没有机械部件,它们在运行时几乎没有噪音。
-
热量:SSD产生的热量比HDD少,有助于保持系统的冷却。
-
尺寸和重量:SSD通常比HDD更轻巧,有助于制造更薄更轻的设备。
然而,固态硬盘也有一些局限性:
- 成本:尽管价格在逐渐下降,但相同容量的SSD通常比HDD更昂贵。
- 写入次数限制:SSD的闪存单元有一定的写入次数限制,尽管对于大多数用户来说,这并不是一个实际问题。
- 容量:SSD的容量通常小于HDD,尤其是在高端市场。
固态硬盘的类型包括:
- SATA SSD:使用SATA接口,与许多现有的计算机系统兼容。
- NVMe SSD:使用更快的NVMe协议,通常通过M.2或U.2接口连接,提供更高的性能。
- PCIe SSD:通过PCIe接口直接连接到主板,提供极高的数据传输速度。
固态硬盘适用于需要快速读写性能的应用,如游戏、视频编辑、专业图形设计和企业级应用。随着技术的进步和成本的降低,SSD正变得越来越普及。
3.1.2 Linux的文件系统
Linux文件系统详细介绍
Linux文件系统是一个树状结构,以根目录 / 开始,所有文件和目录都位于根目录下。它遵循文件系统层次标准(Filesystem Hierarchy Standard, FHS),这个标准定义了文件和目录的组织方式。
主要特点:
- 层次结构:所有文件和目录都按照一定的层次结构组织。
- 权限管理:每个文件和目录都有相应的权限设置,包括读(r)、写(w)、执行(x)。
- 文件类型:支持多种文件类型,包括普通文件、目录、符号链接、设备文件、管道、套接字等。
- 挂载点:可以挂载不同的存储设备或远程文件系统到特定的目录。
- 文件系统类型:支持多种文件系统类型,每种类型都有其特定的特性和用途。
常用目录:
/bin:存放基本的二进制执行文件。/etc:系统配置文件。/home:用户的个人目录。/var:存放变量数据,如日志文件。/tmp:存放临时文件。/usr:用户应用程序。/proc:虚拟文件系统,提供系统和进程信息。
文件系统管理工具:
ls:列出目录内容。cd:改变当前目录。cp:复制文件或目录。mv:移动或重命名文件或目录。rm:删除文件或目录。df:报告文件系统的磁盘空间使用情况。du:估计文件或目录的磁盘使用量。
6个常用的Linux文件系统类型
| 文件系统类型 | 特点 | 常用场景 |
|---|---|---|
| ext4 | 扩展文件系统第四版,高可靠性,支持大文件和大量子目录。 | 通用场景,大多数Linux发行版默认文件系统。 |
| XFS | 高性能文件系统,适合大数据量和高并发操作。 | 数据库、高性能计算、大数据应用。 |
| Btrfs | 支持快照、校验和、压缩等高级功能,适合高级存储需求。 | 数据备份、虚拟化环境、需要数据完整性的场景。 |
| NTFS | 微软Windows的文件系统,Linux可通过特定驱动程序访问。 | 需要与Windows系统进行文件共享的跨平台应用。 |
| FAT32 | 兼容性好,广泛用于U盘、SD卡等便携式存储设备。 | 跨操作系统的文件交换。 |
| ZFS | 高级文件系统,支持数据完整性、压缩、去重等,依赖特定硬件。 | 数据中心、存储池、高级存储解决方案。 |
| tmpfs | 基于内存的文件系统,用于存放临时数据,读写速度快。 | 临时数据存储,提高性能的场景。 |
在选择文件系统类型时,需要考虑性能、可靠性、兼容性以及特定应用的需求。例如,对于需要高性能和大数据处理的应用,可能会选择XFS或ZFS;而对于需要与Windows系统共享数据的场景,则可能会选择NTFS或FAT32。
3.1.3 物理设备的命名规则
Linux系统中的物理设备命名规则有助于快速识别和访问设备。以下是一些主要的设备类型及其命名规则的描述:
硬盘驱动器
- IDE硬盘:以
hd开头,后跟一个字母(如hda、hdb)。 - SATA硬盘:以
sd开头,后跟一个或两个字母(如sda、sdb、sdc1),其中第二个字母表示分区。
网络接口卡
- 以太网:以
eth开头,后跟数字(如eth0、eth1)。 - 无线网络:可能以
wlan或wlp开头,后跟数字。
声卡
- 通常以
sound开头,后跟数字(如sound0、sound1)。
打印机
- 以
lp开头,后跟数字(如lp0、lp1)。
调制解调器
- 以
tty开头,后跟一个斜杠和数字(如ttyS0、ttyS1)。
字符设备和串行端口
- 串行端口通常以
tty开头,后跟一个大写字母和数字的组合(如ttyS0、ttyUSB0)。
图形显示设备
- 以
fb开头,后跟数字(如fb0表示帧缓冲设备)。
随机数生成器
- 以
random开头,后跟数字(如random0)。
基于UUID的命名
- 在
/dev/disk/by-uuid/目录下,设备可以通过其UUID进行识别,提供更稳定的命名方式。
表格:Linux物理设备命名示例
| 设备类型 | 命名规则示例 | 描述 |
|---|---|---|
| 硬盘 | /dev/sda | 第一个SATA硬盘 |
| 分区 | /dev/sda1 | /dev/sda的第一个分区 |
| 网络接口 | /dev/eth0 | 第一个以太网接口 |
| 无线网络 | /dev/wlp3s0 | 无线网络接口,可能以wlp开头 |
| 声卡 | /dev/snd/card0 | 声卡设备,可能包含snd和数字 |
| 打印机 | /dev/lp0 | 第一个打印机设备 |
| 调制解调器 | /dev/ttyS0 | 第一个串行端口调制解调器 |
| 串行端口 | /dev/ttyUSB0 | USB到串行端口适配器 |
| 显示设备 | /dev/fb0 | 帧缓冲设备 |
| 随机数生成 | /dev/random | 随机数生成设备 |
| UUID命名 | /dev/disk/by-uuid/ | 基于UUID的设备命名,如/dev/disk/by-uuid/123e4567-e89b-12d3-a456-426655440000 |
请注意,上述表格中的命名规则示例仅供参考,实际的设备名称可能因系统配置和内核版本而异。例如,声卡的设备文件可能因使用的声卡驱动不同而有所变化。此外,随着技术的发展,新的设备和命名规则可能会被引入。
3.2项目实施
3.2.1 任务一: 添加及配置硬盘
在CentOS 8中添加及配置硬盘的步骤通常包括以下几个阶段:物理安装硬盘、分区、格式化、挂载以及更新/etc/fstab文件以实现自动挂载。以下是详细的步骤:
步骤1:物理安装硬盘
- 关闭系统电源。(VM中保持Linux系统关机)
- 安装新的硬盘到服务器或计算机的硬盘槽中。
这一步在VM中的体现如下:
找到CentOS 8 >>> 点击编辑虚拟机设置;

弹出虚拟机设置框>>>选择硬盘>>>添加;

弹出添加硬件向导>>>选择添加硬盘,下一步>>>选择SCSI的虚拟磁盘类型,下一步>>>默认创建新虚拟磁盘,下一步>>>指定虚拟磁盘的大小,默认将虚拟磁盘拆分成多个文件,下一步>>>默认,点击完成。

- 重新启动系统。
步骤2:检测新硬盘
-
打开终端。
-
使用
lsblk或fdisk -l命令来查看当前系统中的硬盘列表,确认新硬盘已经被系统识别。lsblk # 或者 sudo fdisk -l

步骤3:分区
-
使用
fdisk或parted命令来创建新的分区。这里以fdisk为例:sudo fdisk /dev/sdX其中
/dev/sdX是新硬盘的设备名(例如/dev/sdb)。 -
在
fdisk提示符下,按m查看帮助,然后按n创建新分区。 -
选择分区类型(例如
p为主分区,e为扩展分区)。 -
设置分区大小。
-
输入
w保存更改并退出fdisk。

步骤4:格式化分区
-
使用
mkfs命令为新分区创建文件系统。例如,创建ext4文件系统:#可以使用命令sudo fdisk -l 查看并确认,再进行格式化分区 sudo mkfs.ext4 /dev/sdXN其中
/dev/sdXN是新分区的设备名(例如/dev/sdb1)。
步骤5:挂载分区
-
创建一个挂载点目录:
#newdisk可以和分区同名 sudo mkdir /mnt/newdisk -
挂载分区到新目录:
sudo mount /dev/sdXN /mnt/newdisk

步骤6:更新/etc/fstab文件
作用是确保在系统启动时,特定的分区或存储设备能够自动挂载到预期的目录(挂载点)。{一般这一步初学者也可以不做}
-
找到或创建一个UUID。使用
blkid命令获取分区的UUID:sudo blkid
-
打开
/etc/fstab文件进行编辑:#当然,如果后面遇到需要永久挂载的项目时,方法一样 sudo nano /etc/fstab -
在文件末尾添加一行,指定UUID、挂载点、文件系统类型以及挂载选项:
UUID=你的分区UUID /mnt/newdisk ext4 defaults 0 2
-
保存并关闭编辑器。(按照系统操作提示)
步骤7:测试挂载
-
使用
mount -a命令测试挂载配置:sudo mount -a如果没有错误消息,说明配置正确。
步骤8:重新挂载(如果需要)
-
如果需要重新挂载分区到不同的目录,先卸载当前挂载点:
sudo umount /mnt/newdisk -
创建新的挂载点并重新挂载:
sudo mkdir /mnt/newmountpoint sudo mount /dev/sdXN /mnt/newmountpoint -
更新
/etc/fstab文件中的挂载点路径。
步骤9:重启系统
-
重启系统以确保分区在启动时自动挂载:
sudo reboot
请注意,上述步骤中的设备名(如/dev/sdX和/dev/sdXN)需要根据你的实际情况替换为正确的设备和分区名。此外,操作过程中需要具有root权限或使用sudo来执行需要特权的命令。在编辑/etc/fstab文件时要特别小心,因为错误的配置可能会导致系统无法启动。
3.2.2 任务二 在Linux中配置RAID
CentOS 8提供了对RAID技术的支持,可以使用软RAID方法创建,使用 mdsdm lh立和管理B提)设备。
在Linux中配置RAID的步骤:
-
准备磁盘分区:
- 确保至少有四个磁盘分区,例如
/dev/sdb1、/dev/sdc1、/dev/sdd1和/dev/sde1,它们的大小相同,例如都是2GB。
- 确保至少有四个磁盘分区,例如
-
设置分区类型:
-
使用
fdisk命令将这些分区的文件系统类型设置为“Linux raid autodetect”。具体操作如下:[root@localhost~]# fdisk /dev/sdb 命令(输入m获取帮助):t 分区号(1,2,默认2):1 Hex代码(输入L列出所有代码):fd -
重复上述步骤为其他分区设置类型。
-
-
检查
mdadm工具是否安装:-
使用
rpm -q mdadm命令检查mdadm是否已安装。如果未安装,使用以下命令安装:[root@localhost~]# yum install mdadm
-
-
检查磁盘是否已配置RAID:
- 使用
mdadm -E /dev/sd[b-e]1命令检查磁盘是否已经配置过RAID。如果显示“No md superblock detected”,说明磁盘尚未配置RAID。
- 使用
-
创建RAID:
-
使用
mdadm命令创建RAID5,包括一个备用硬盘分区。命令如下:[root@localhost~]# mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sd[b-d]1 -spare-devices=1 /dev/sde1参数说明:
--create:创建RAID。--level=5:指定使用RAID5级别。--raid-devices=3:指定3个硬盘分区作为数据存储。--spare-devices=1:指定1个硬盘分区作为备用。
-
-
格式化RAID设备:
-
使用
mkfs.xfs命令将新创建的RAID设备格式化为xfs文件系统:[root@localhost~]# mkfs.xfs /dev/md0
-
-
查看RAID的详细信息:
- 使用
mdadm --detail /dev/md0命令查看RAID的详细信息,包括活动设备数、工作设备数、失败设备数和备用设备数。
- 使用
-
创建挂载点并挂载RAID设备:
-
创建一个目录作为挂载点,然后将RAID设备挂载到该目录:
[root@localhost~]# mkdir /mnt/md0 [root@localhost~]# mount /dev/md0 /mnt/md0
-
-
模拟硬盘损坏:
-
这一步是可选的,用于测试RAID的容错能力。首先,将一个硬盘分区标记为失效:
[root@localhost~]# mdadm /dev/md0 -f /dev/sdc1 -
然后,使用
mdadm --detail /dev/md0查看当前的RAID状态,确认硬盘分区已标记为失效。
-
-
修复RAID:
-
如果硬盘分区修复或更换,可以将其重新添加到RAID中:
[root@localhost~]# mdadm /dev/md0 -a /dev/sdc1
-
-
取消挂载和停止RAID:
-
在完成测试或不再需要RAID时,可以取消挂载RAID设备并停止RAID:
[root@localhost~]# umount /mnt/md0 [root@localhost~]# mdadm --stop /dev/md0
-
-
删除磁盘分区的RAID信息:
-
如果需要彻底删除RAID配置,可以使用以下命令:
[root@localhost~]# mdadm --zero-superblock /dev/sd[b-d]1
-
请注意,这些步骤提供了一个基本的RAID配置指南,具体操作可能需要根据你的系统环境和需求进行调整。
3.2.3 扩展任务 :配置逻辑卷管理(LVM)
逻辑卷管理(LVM)是一种强大的磁盘管理工具,特别适合需要灵活(动态磁盘管理技术)管理和扩展存储空间的场景。它通过提供灵活的存储管理方式,解决了传统分区管理的诸多问题,提高了存储效率和系统性能,增强了数据的安全性和可靠性。对于系统管理员来说,LVM是一个不可或缺的工具,能够帮助他们更有效地利用磁盘资源,满足日益增长的存储需求。以下是LVM的介绍:
关键概念:
-
物理卷(PV, Physical Volume):这是LVM中最基本的单元,是实际的磁盘或磁盘分区的一部分。物理卷包含元数据,用于LVM管理。
-
卷组(VG, Volume Group):由一个或多个物理卷组成的集合,相当于一个存储池。卷组中的所有空间可以被用来创建逻辑卷。
-
逻辑卷(LV, Logical Volume):从卷组中分配出来的空间,可以动态调整大小。逻辑卷可以被格式化为不同的文件系统,并挂载到系统中使用。
-
物理区域(PE, Physical Extent):LVM中用于分配空间的基本单位。每个物理卷、卷组和逻辑卷都是由一系列的物理区域组成的。
-
逻辑区域(LE, Logical Extent):逻辑卷中的分配单位,逻辑卷由一系列的逻辑区域组成。
作用:
-
灵活性:LVM允许用户在不重新分区的情况下,动态调整逻辑卷的大小,这为存储管理提供了极大的灵活性。
-
空间管理:LVM可以将多个物理硬盘组合成一个大的卷组,统一管理这些硬盘上的空间,使得空间分配更加高效。
-
性能提升:通过将数据分布在多个物理硬盘上,LVM可以提高数据访问的速度,尤其是在进行大量读写操作时。
-
容错能力:LVM支持镜像和条带化,可以提高数据的安全性和可靠性。
-
简化备份和恢复:LVM提供了快照功能,可以快速创建逻辑卷的副本,便于备份和恢复数据。
-
跨多个磁盘扩展文件系统:用户可以创建跨越多个物理硬盘的逻辑卷,从而扩展单一文件系统的大小。
-
易于维护:LVM的配置和维护相对简单,用户可以通过命令行工具轻松管理磁盘空间。
为什么会有这种技术?
LVM技术的出现是为了解决传统磁盘分区管理方式的一些限制和问题:
- 固定大小的分区:传统分区一旦创建,其大小固定,难以调整,这在资源分配上不够灵活。
- 空间利用率低:不同分区可能会有剩余空间,但这些空间不能被其他分区使用,导致空间浪费。
- 性能瓶颈:单一硬盘的性能可能成为系统瓶颈,限制了整体性能的提升。
- 数据安全问题:单一硬盘的故障可能导致数据丢失,需要更高级的数据保护机制。
- 维护困难:随着系统的发展,磁盘管理变得越来越复杂,需要一种更高效的管理方式。
用来解决什么问题?
LVM用来解决以下问题:
- 存储空间的动态分配:解决固定分区大小带来的限制,允许根据需求动态调整存储空间。
- 提高存储空间利用率:通过卷组管理,充分利用所有硬盘空间,避免浪费。
- 提升系统性能:通过跨硬盘的数据分布,提高数据访问速度,解决性能瓶颈问题。
- 增强数据安全性:通过镜像和条带化技术,提高数据的容错能力和安全性。
- 简化数据备份和恢复:快照功能简化了数据备份和恢复过程,提高了效率。
- 简化系统维护:统一的存储管理简化了系统维护工作,降低了管理复杂性。



















