磁盘存储简介

embedded/2024/9/23 19:40:09/

硬盘

  • 磁盘的内部结构及原理
  • 分区表
  • 磁盘阵列

磁盘的内部结构及原理

  • 磁盘的内部结构及原理
    https://blog.csdn.net/xiaofeng_yang/article/details/138598159
  • 详细了解硬盘的工作原理
    https://www.bilibili.com/video/BV1iT411o7sW?vd_source=17ec636d673142d7ce4f4250839f49fe

在这里插入图片描述

  1. 盘片(Platters):
    盘片是机械硬盘的核心组件,通常是由金属或玻璃材料制成的圆形碟片,盘片的正反两面会涂有磁性物质。硬盘的上下盘面都会利用,都可以存储数据,成为有效盘片,也有极个别的硬盘盘面数为单数。每一个这样的有效盘面都会有盘面号,按顺序从上至下从“0”开始依次编号。
  2. 磁道(Tracks):
    磁盘在格式化时被划分成许多同心圆,这些同心圆轨迹叫做磁道(Track)。磁道从外向内从0开始顺序编号。每个磁道又被划分为若干个扇区。
  3. 扇区(Sectors):
    在磁盘里的磁道上等分出若干个弧段,这些弧段便是磁盘的扇区,每个扇区可以存放512个字节或4KB(通常情况下是512字节),磁盘驱动器在向磁盘读取和写入数据时,要以扇区为单位。通常扇区与扇区之间也有一定间隔(逻辑上的间隔,物理上没有任何间隔,但是每个扇区的开头都有一个同步信息,外围电路可以用来判断一个扇区的开始)
    硬盘的最小单位就是扇区,是真实存在的,一般大小是512字节,这个大小是在硬盘出厂时设置,不能修改。
  4. 簇(Cluster)或块(block):
  • 块‌和‌簇‌都是‌操作系统中用于文件存储的最小逻辑单位。块通常指的是在‌Linux系统中用于文件存储的最小逻辑单位,而簇则是在‌Windows系统中用于文件存储的最小逻辑单位。因为文件系统不是一个扇区一个扇区的来读数据,太慢了,它是一个块一个块的读取数据,一般大小是4KB(这个值可以修改,在格式化分区的时候修改)。读取一个块,实际上是从硬件设备读取一个或多个扇区,一个block只能存放一个文件内容,无论这个文件有多小。一个文件可能会占用多个block,每读取一个block就会消耗一次磁盘io。如果要提升磁盘io性能,那么尽可能一次io读取更多的数据,但是block也不是越大越好,
  • 块‌和‌簇‌都是‌文件系统使用的逻辑概念,非磁盘物理特性。文件系统中操作系统与磁盘交互的基本单位是块(簇),操作系统与内存交互的基本单位是页。
    页、块‌、簇‌都是逻辑概念,人为定义的大小,页通常指的是‌内存中的数据存储单元,而块则是指‌硬盘或其他存储设备上的数据存储单元
  • 将相邻的若干个扇区称为了一个簇或者块。操作系统读写磁盘的基本单位是扇区,而文件系统的基本单位是簇或者块。

常见的文件系统有:ext2、ext3、ntfs、fat32
注意: ‌FAT32‌文件系统支持的最大分区大小为32GB,单个文件大小不能超过4GB。‌

文件系统是操作系统与驱动器之间的接口,当操作系统请求从硬盘里读取一个文件时,会请求相应的文件系统(FAT 16/32/NTFS)打开文件。扇区是磁盘最小的物理存储单元,但由于操作系统无法对数目众多的扇区进行寻址,所以操作系统就将相邻的扇区组合在一起,形成一个簇,然后再对簇进行管理。每个簇可以包括2、4、8、16、32或64个扇区。显然,簇是操作系统所使用的逻辑概念,而非磁盘的物理特性。


<font color="red">**操作系统规定一个簇中只能放置一个文件的内容,因此文件所占用的空间,只能是簇的整数倍。而如果文件实际大小小于一簇,它也要占一簇的空间。所以,一般情况下文件所占空间要略大于文件的实际大小,只有在少数情况下,即文件的实际大小恰好是簇的整数倍时,文件的实际大小才会与所占空间完全一致。**</font>

在这里插入图片描述

如在Windows下,随便找个几字节的文件,在其上面点击鼠标右键选择属性,看看实际大小与占用空间两项内容, 如大小:2字节(2个字母),占用空间:4KB(4096字节)。这里的占用空间就是你机器分区的簇大小,因为再小的文件都会占用空间,逻辑基本单位是4K,所以都会占用4K。 簇一般有这几类大小4K,8K,16K,32K,64K等。簇越大性能越好,但空间浪费严重。簇越小性能相对越低,但空间利用率高。FAT32格式的文件系统簇的大小默认为4K。
在这里插入图片描述

  • 格式化硬盘分区时,分配单元大小 这项其实就是文件系统中的簇的大小
  • 快速格式化(Quick Format):快速擦除存储介质上的文件系统信息和目录结构,但不会对存储介质上的数据进行完全清除。在快速格式化过程中,文件系统会被重新初始化,但存储介质上的数据仍然存在,只是文件系统无法访问它们。【完全格式化的时间较短】
  • 完全格式化(Full Format):完全格式化是一种更彻底的格式化方法,它会擦除存储介质上的文件系统信息、目录结构以及存储介质上的所有数据。在完全格式化过程中,存储介质会被完全清空并重新初始化,所有数据都会被彻底删除。【完全格式化的时间较长】

分区表

  • 什么是磁盘分区表
    ‌‌磁盘分区表是用于记录了硬盘的物理结构和逻辑划分,用于指导操作系统如何识别和管理硬盘分区。
    它记录了分区在物理磁盘上的开始和结束位置,使得操作系统能够识别和管理不同的数据区域。
    倘若硬盘丢失了分区表,数据就无法按顺序读取和写入,导致无法操作。

磁盘分区表主要有两种类型:‌MBR(Master Boot Record)和‌GPT(GUID Partition Table)。‌

  • MBR分区
    传统的分区方案(称为MBR分区方案)是将分区信息保存到磁盘的第一个扇区(MBR扇区)中的64个字节中,每个分区项占用16个字节,这16个字节中存有活动状态标志、文件系统标识、起止柱面号、磁头号、扇区号、隐含扇区数目(4个字节)、分区总扇区数目(4个字节)等内容。
    MBR分区方案 硬盘主分区数目不能超过4个的原因:MBR扇区只有64个字节用于分区表,而每个分区项占用16个字节,所以只能记录4个分区的信息。后来为了支持更多的分区,引入了扩展分区及逻辑分区的概念。但每个分区项仍用16个字节存储
    MBR分区方案无法支持超过2TB容量的磁盘: 因为这一方案用4个字节存储分区的总扇区数,最大能表示2的32次方的扇区个数,按每扇区512字节计算,每个分区最大不能超过2TB。也因为这个缺陷,出现了GPT分区。

  • GPT分区表
    在MBR硬盘中,分区信息直接存储于主引导记录(MBR)中(主引导记录中还存储着系统的引导程序)。但在GPT硬盘中,分区表的位置信息储存在GPT头中。但出于兼容性考虑,硬盘的第一个扇区仍然用作MBR,之后才是GPT头。

在这里插入图片描述

  • MBR 与 GPT 的分区限制对比
  1. MBR 的分区限制在于,它最多支持创建 4 个主分区。不过,这个限制可以通过创建扩展分区来绕过(3 个主分区 + 1 个扩展分区)。在扩展分区中,又可以包含多个逻辑分区。但是,逻辑分区不能用作引导卷,这也是它的一个重要限制。
  2. 相较于 MBR,GPT 可以创建多达 128 个分区而无需借助逻辑分区(这个数量限制是由 Windows 所设定的)。

磁盘阵列

参考文章:
RAID磁盘阵列原理分析总结:https://cloud.tencent.com/developer/article/2127608
磁盘阵列(RAID) 详解: https://juejin.cn/post/7350520171611881523

RAID(Redundant Arrays of Independent Disks,独立硬盘冗余阵列):利用虚拟化存储技术把多个相对便宜的硬盘组合起来,形成一个硬盘组(硬盘阵列组,操作系统只会把它当作一个硬盘,实际上是一个逻辑硬盘),从而提供比单个硬盘更高的存储性能冗余的数据安全(数据备份),以及大大提高IO速度。

RAID 主要有三个关键技术:镜像(Mirroring)、数据条带(Data Stripping)和数据校验(Data parity)。

  • 数据条带: 将数据分片保存在多个不同的磁盘,多个数据分片共同组成一个完整数据副本。
    当访问数据时,可以同时对位于不同磁盘上数据进行读写操作, 从而获得非常可观的 I/O 性能提升。
  • 镜像: 将数据复制到多个磁盘,一方面可以提高可靠性,另一方面可并发从两个或多个副本读取数据来提高读性能。显而易见,镜像的写性能要稍低, 确保数据正确地写到多个磁盘需要更多的时间消耗。
  • 数据校验: 利用冗余数据进行数据错误检测和修复,冗余数据通常采用海明码、异或操作等算法来计算获得。不过数据校验需要从多处读取数据并进行计算和对比,会影响系统性能。

不同等级的 RAID 采用一个或多个以上的三种技术,来获得不同的数据可靠性、可用性和 I/O 性能。 至于设计何种 RAID (甚至新的等级或类型)或采用何种模式的 RAID ,需要在深入理解系统需求的前提下进行合理选择,综合评估可靠性、性能和成本来进行折中的选择。

  1. JBOD
    目前 JBOD 常指磁盘柜,而不论其是否提供 RAID 功能。JBOD 将多个物理磁盘串联起来,提供一个巨大的逻辑磁盘。 JBOD 的数据存放机制是由第一块磁盘开始按顺序往后存储,当前磁盘存储空间用完后,再依次往后面的磁盘存储数据。 JBOD 存储性能完全等同于单块磁盘,而且也不提供数据安全保护。它只是简单提供一种扩展存储空间的机制,JBOD 可用存储容量等于所有成员磁盘的存储空间之和
  2. RAID0
    RAID0把连续的数据分散到多个磁盘上存取,系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求,由于并行I/O作数据可以充分利用总线的带宽显著提高磁盘整体存取性能。
    在这里插入图片描述
  3. RAID1
    RAID1将数据完全一致地分别写到工作磁盘和镜像磁盘,它的磁盘空间利用率为 50%。
    RAID1 在数据写入时,响应时间会有所影响,但是读数据的时候没有影响。当读取数据时,系统先从RAID 0的源盘读取数据,如果读取数据成功,则系统不去管备份盘上的数据;如果读取源盘数据失败,则系统自动转而读取备份盘上的数据,不会造成用户工作任务的中断。
    在这里插入图片描述
  4. RAID01和RAID10
    RAID01和RAID10两者都是Raid0和Raid1的组合体
    RAID 01:是先做条带化再作镜像
    RAID10: 是先做镜像再作条带化。N(偶数,N≥4)块盘两两镜像后,再组合成一个RAID0。
    在这里插入图片描述
  5. RAID5
    RAID5是目前最常见的 RAID 等级,使用最多,数据条带、镜像、数据校验三种技术都采用了。
  • N(N≥3)块盘组成阵列,一份数据产生N-1个条带,同时还有1份校验数据,共N份数据在N块盘上循环均衡存储
  • N块盘同时读写,读性能很高,但由于有校验机制的问题,写性能会下降。
  • 可靠性高,允许坏1块盘,不影响所有数据,当同时损坏两块时则无法计算,造成数据丢失。
    ****加粗样式****

http://www.ppmy.cn/embedded/114728.html

相关文章

从Profinet到Ethernet IP网关技术重塑工业网络,数据传输更流畅

Profinet转Ethernet IP网关在未来工业领域可能产生以下重要影响并发挥关键作用&#xff1a;促进工业设备集成与互操作性&#xff1a;打破协议壁垒&#xff1a;在工业场景中&#xff0c;存在多种不同的工业以太网协议&#xff0c;设备往往因协议差异而难以直接通信。 Profinet转…

nacos和eureka的区别详解

Nacos 和 Eureka 都是服务发现和注册中心的解决方案&#xff0c;但它们在功能、设计和使用场景上有所不同。以下是它们的详细区别&#xff1a; 1. 基本概念 Eureka&#xff1a;是由 Netflix 开发的服务发现工具。它主要用于 Java 微服务架构中的服务注册与发现。Eureka 通过 R…

linux-网络管理-网络配置

Linux 网络管理与网络配置 在Linux系统中&#xff0c;网络管理是系统管理员的重要职责之一。网络配置包括如何配置网络接口、管理IP地址、网关、DNS等核心网络设置。现代Linux系统提供了多种工具用于网络管理&#xff0c;既包括传统的命令行工具&#xff0c;也包括现代的网络管…

网络爬虫requests访问请求过程

在当今互联网时代,数据的获取变得尤为重要,而网络爬虫作为自动化获取数据的一种方式,受到了越来越多编程爱好者和数据分析人员的青睐。Python 语言以其简洁的语法和丰富的库,成为了实现网络爬虫的首选工具。其中,requests库是一个非常流行且强大的工具,用于发送 HTTP 请求…

Python+Pytest框架,“api_key.py文件怎么编写“?

1、在"api_keyword"文件夹下新增"api_key.py" import allure import requests import json import jsonpath from deepdiff import DeepDifffrom config import *allure.title("测试用例执行") class ApiKey:allure.step(">>>:开…

MySQL学习(视图总结)

文章目录 MySQL的视图视图基本操作创建视图修改视图 练习 MySQL的视图 视图是虚拟的表&#xff0c;是从数据库中一个或多个表中导出来的表&#xff0c;作用是可以隐藏一些数据&#xff0c;也可以将一些复杂的查询结果做成视图。数据库只保存视图的定义&#xff0c;而不保存视图…

PostgreSQL的流复制断点续传

PostgreSQL的流复制断点续传 PostgreSQL的流复制&#xff08;Streaming Replication&#xff09;具有断点续传的能力&#xff0c;这意味着当主节点和备用节点之间的连接由于网络故障等原因中断后&#xff0c;备用节点会自动从中断点继续接收WAL&#xff08;Write-Ahead Loggin…

策略路由与路由策略的区别

&#x1f423;个人主页 可惜已不在 &#x1f424;这篇在这个专栏 华为_可惜已不在的博客-CSDN博客 &#x1f425;有用的话就留下一个三连吧&#x1f63c; 目录 一、主体不同 二、方式不同 三、规则不同 四、定义和基本概念 一、主体不同 1、路由策略&#xff1a;是为了改…