磁盘存储简介

news2024/9/20 7:52:59

硬盘

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

磁盘的内部结构及原理

  • 磁盘的内部结构及原理
    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.coloradmin.cn/o/2148392.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

1.3 等价类划分法

欢迎大家订阅【软件测试】 专栏&#xff0c;开启你的软件测试学习之旅&#xff01; 文章目录 前言1 单功能2 等价划分法3 测试步骤3.1 分析需求3.2 设计测试点3.3 将测试点转为可执行用例文档3.4 执行测试3.5 缺陷管理 前言 在现代软件开发中&#xff0c;确保核心功能的有效性…

一个手机号注册3个抖音号的绿色方法?

下面这是我注册的新账号&#xff0c;显示未实名&#xff0c;在手机号这里显示辅助手机号绑定&#xff0c;手机号绑定这里显示未绑定。如果你需要矩阵&#xff0c;那么&#xff0c;还需要设置好头像&#xff0c;以及介绍&#xff0c;这些都可以正常设置。 再好的方法&#xff0c…

Docker UI强大之处?

DockerUI是一款由国内开发者打造的优秀Docker可视化管理工具。它拥有简洁直观的用户界面&#xff0c;使得Docker主机管理、集群管理和任务编排变得轻松简单。DockerUI不仅能展示资源利用率、系统信息和更新日志&#xff0c;还提供了镜像管理功能&#xff0c;帮助用户高效清理中…

分类预测 | Matlab实现SMA-CNN-SVM黏菌算法优化卷积支持向量机分类预测

分类预测 | Matlab实现SMA-CNN-SVM黏菌算法优化卷积支持向量机分类预测 目录 分类预测 | Matlab实现SMA-CNN-SVM黏菌算法优化卷积支持向量机分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现SMA-CNN-SVM黏菌算法优化卷积支持向量机分类预测&#xff0…

游戏陪玩系统源码搭建教程,如何配置陪玩系统的第三方云储存

陪玩系统开发运营级别陪玩成品搭建 支持二开源码交付&#xff0c;游戏开黑陪玩系统: 多客陪玩系统&#xff0c;游戏开黑陪玩&#xff0c;线下搭子&#xff0c;开黑陪玩系统 前端uniapp后端php&#xff0c;数据库MySQL 1、长时间的陪玩APP源码开发经验&#xff0c;始终坚持从客户…

末端回路漏电监测仪为何不可或缺?

末端回路漏电监测仪 接地故障保护器 智能电力继电器 智能型剩余电流继电器 智能动作保护器 在2022年8月14日一个寻常的午后&#xff0c;庄南地的一片豆角田边&#xff0c;发生了一场令人痛心的意外。杨某与其父亲杨某某正忙于灌溉作物&#xff0c;却不料&#xff0c;一场本可避…

分布式光伏监控系统光储充一体化助力源网荷储

近期&#xff0c;河南省发展改革委发布了“源网荷储新政策”&#xff0c;允许第三方在企业自有或周边土地建设分布式光伏和分散式风电&#xff0c;并将电力出售给用电企业&#xff0c;为“隔墙售电”创造了有利条件。在当前分布式可再生能源装机占比迅速提升、消纳问题日益突出…

【固件升级】Bootloader(三)

1. bootloader方案 类型作用说明RT_threadBOOT带操作系统-使用组件-精简裸机BOOT精简 关于bootloader的软件方案要求第一点要求必须占用资源小易于移植扩展方便灵活修改带操作系统与裸机之争上面这点的解决方案是易于移植&#xff0c;不管是裸机或操作系统把功能性文件放在同…

英飞凌 PSoC6 RT-Thread 评估板简介

概述 2023年&#xff0c;英飞凌&#xff08;Infineon&#xff09;联合 RT-Thread 发布了一款 PSoC™ 62 with CAPSENSE™ evaluation kit 开发板 &#xff08;以下简称 PSoC 6 RTT 开发板&#xff09;&#xff0c;该开发套件默认内置 RT-Thread 物联网操作系统。PSoC 6 RTT 开…

计算机网络32——Linux-文件io-2文件系统

1、阻塞和非阻塞 想要将文件以非阻塞方式打开&#xff0c;有两种方式 &#xff08;1&#xff09;需要将文件关闭&#xff0c;再用非阻塞方式打开 &#xff08;2&#xff09;fctnl函数&#xff0c;先获取旧属性&#xff0c;再添加一个新属性 阻塞函数 阻塞函数一直在等待输入…

【图像压缩与重构】基于标准+改进BP神经网络

课题名称&#xff1a;基于标准改进BP神经网络的图像压缩与重构&#xff08;带GUI) 代码获取方式(付费&#xff09;&#xff1a; 相关资料&#xff1a; 1. 代码注释 2.BP神经网络原理文档资料 3.图像压缩原理文档资料 程序实例截图&#xff1a; 1. 基于标准BP神经网络的图…

gitlab 的CI/CD (二)

前言 上文完成了gitlab-runner的基础配置及将gitlab的制品上传至软件包库&#xff08;产品库&#xff09;的脚本编写&#xff1b; 本文实现gitlab的ci/cd对远程服务器的操作&#xff1b; 介绍 要让Gitlab Runner部署到远程机器&#xff0c;远程机器必须信任gitlab runner账…

python开发端口扫描

python开发端口扫描 1. 前言2. 端口扫描方式2.1. TCP扫描&#xff08;全连接扫描&#xff09;2.2. SYN扫描&#xff08;半开放扫描&#xff09;2.3. UDP扫描2.4. ICMP扫描 3. python编写端口扫描3.1. socket库3.1.1. socket库常用参数3.1.1.1. socket.socket() 参数3.1.1.2. so…

51单片机+proteus+实验(I2C和蜂鸣器)

目录 1.蜂鸣器 1.1基本概念 1.1.1蜂鸣器的简介 1.1.2蜂鸣器的硬件原理 1.1.3蜂鸣器的音色 1.2代码 1.2.1不同音色驱动 1.2.2使用Music Encode1软件来生成音乐 1.3proteus仿真 2.I2C 2.1基本概念 2.1.1 I2C的基本概念 2.1.2 I2C的通讯时序 2.1.3AT24C02数据帧 ​编…

4G模组SIM双卡切换是徒增成本,还是未雨绸缪?

初学开发的小伙伴提出疑问&#xff1a;手机双卡可以理解&#xff0c;物联网设备有必要双卡吗&#xff0c;会不会太浪费&#xff1f; 但在实际应用中&#xff0c;双卡是必需的。 在使用4G模组双卡功能的场景下&#xff0c;切换卡槽更是一个关键环节——关乎设备在不同网络环境…

iOS界面布局:屏幕尺寸与安全区域全面指南

引言 随着iPhone和iPad的更新迭代&#xff0c;iOS设备的屏幕尺寸和设计也在不断变化。无论是iPhone X系列的刘海屏&#xff0c;还是最新的iPhone 14&#xff0c;开发者都需要面对适配不同设备布局的问题。在项目开发中&#xff0c;导航栏、状态栏、TabBar的高度以及安全区域的…

rabbitmq整合skywalking并编写自定义插件增强

rabbitmq整合skywalking 首先先下载准备好skywalking 的服务端和ui控制台&#xff0c;java-agent https://skywalking.apache.org/downloads/ 整合skywalking 我的流程是在生产者和消费者服务中去引入一个mq的sdk&#xff0c;具体SDK的内容可以查看这篇文章 在sdk的pom文件…

合理使用布局

一、ArkUI框架执行流程 在使用ArkUI开发中&#xff0c;我们通过布局组件和基础组件进行界面描述&#xff0c;这些描述会呈现出一个组件树的结构&#xff0c;基础组件在其中为叶子结点&#xff0c;布局组件则是中间节点&#xff0c;可以把这棵树称之为应用组件树。当用户执行交互…

VMware ESXi 8.0U3b macOS Unlocker OEM BIOS 2.7 集成网卡驱动和 NVMe 驱动 (集成驱动版)

VMware ESXi 8.0U3b macOS Unlocker & OEM BIOS 2.7 集成网卡驱动和 NVMe 驱动 (集成驱动版) 发布 ESXi 8.0U3 集成驱动版&#xff0c;在个人电脑上运行企业级工作负载 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-esxi-8-u3-sysin/&#xff0c;查看最新版…

用多种编程语言绘制爱心图案的艺术

目录 一、Python&#xff1a;用 Matplotlib 绘制静态爱心 代码示例&#xff1a; 效果展示&#xff1a; 二、JavaScript&#xff1a;用 HTML5 Canvas 绘制跃动的爱心 代码示例&#xff1a; 效果展示&#xff1a; 三、Java&#xff1a;用 Swing 绘制静态爱心 代码示例&…