项目三 磁盘管理与文件系统
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用来解决以下问题:
- 存储空间的动态分配:解决固定分区大小带来的限制,允许根据需求动态调整存储空间。
- 提高存储空间利用率:通过卷组管理,充分利用所有硬盘空间,避免浪费。
- 提升系统性能:通过跨硬盘的数据分布,提高数据访问速度,解决性能瓶颈问题。
- 增强数据安全性:通过镜像和条带化技术,提高数据的容错能力和安全性。
- 简化数据备份和恢复:快照功能简化了数据备份和恢复过程,提高了效率。
- 简化系统维护:统一的存储管理简化了系统维护工作,降低了管理复杂性。