本文旨在复习磁盘基础知识、分区基本概念

知识储备


  • 按照磁盘接口类型,常有ATA、SATA、SCSI、SAS、FC等;

  • 按照磁盘芯片组分,常有HDD机械式、SSD闪存式等;

  • 同一芯片组可能有多种类型的接口,比如SSD有PCI接口、mSATA、STAT3等接口;

HDD物理结构


● 硬盘是一张张盘面叠放在一起组成的,绕着中心转轴spindle,每张盘2个面都可以读写,由磁头来读写

● arm机械臂有众多磁头控制着存取操作,其实在每个盘面的2面各有1个磁头

Track:不同盘面上的同心圆环,每一个圆环就是一个磁道,显然外磁盘"面积">内磁道,从外至内编号,从0开始

Cylinder:不同盘面上的同心圆环在立体上形成了一个柱面,从外至内编号,从0开始

Sector:同心圆环上通常按照512bytes划分为一个扇区,请注意虽然外磁道"面积"大,理论上外磁道上面的扇区数目更多,实际上由于历史原因以及现代操作系统的管理方便,内外磁道上扇区数目是一致的,这样外磁道扇区稀,磁头存取错误发生概率越小,所以外磁道反而更加不易出错,更加稳定

MBR


硬盘的0柱面,0磁道,1扇区这512Bytes是MBR主引导记录

常见性能指标


影响磁盘的关键因素是磁盘服务时间,即一个I/O请求花费的时间Tio,由寻道时间、旋转延迟和数据传输时间三部分构成

磁盘的访问时:磁头找到访问数据的时间,是指寻道时间 (seek time) 和旋转延迟(Rotationallatency)之和。

寻道时间Ta:seek time是指移动到数据(扇区)所在的磁道上的时间,磁盘的平均寻道时间是3~15ms,

旋转延迟Tl:盘片旋转,是数据所在的扇区移动到磁道下面所需的时间。

磁盘的传输时间Tt:磁盘数据传输到主机接口的时间,和主机连接磁盘的接口和类型有关,和磁盘的传输率有关

衡量磁盘的性能主要是下面三个指标


IOPS:每秒能够完成的IO数据,对于OLTP型系统,IOPS是衡量IO性能的主要指标。

● 吞吐量:一般用MBPS,每秒传输的MB字节数来衡量,常用于衡量OLAP型数据块的IO性能。

● 响应时间:完成一个IO请求所需的时间,也叫做latency延迟时间,一般响应时间应该小于20ms

Linux对磁盘的识别


● 无论是硬盘、磁盘还是光盘在Linux中,还是遵循一切皆文件的原则,这些设备文件在/dev/目录下

● 硬盘设备/dev/sd[a-z][1-#]

[a-z]用来标记和区分不同的硬盘,比如第一块硬盘是sda, 那么第二块就是sdb

[1-#]用来标记同一块硬盘上的不同分区,1-4为主分区, 5-?为逻辑分区, 如sda5表示硬盘a上第一个逻辑分区

由于MBR格式下,最多只有4个主分区,所以当存在逻辑分区时,sda4是不存在的~

设备文件

这是一种特殊的文件,没有大小,只有设备号的概念,由2部分组成 Major+Minor

Major:标识设备类型,让内核Kernel识别配套的设备驱动

Minor:同一类型下的不同设备,同一种驱动程序映射到同一类型下的不同设备

块设备:非线性设备,数据存取以block为单位,随机访问的,现在主流磁盘都是这样

字符设备:线性设备,顺序的一个接一个接受,如键盘

分区及文件系统


● 分割一大块存储空间为多个小的存储空间,每个存储空间叫做1个分区,每个分区可以有独立的文件系统

● 文件系统就是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。用户空间是不能直接在硬件设备上存取文件等操作的,靠的就是文件系统这个桥梁

常见的文件系统有

Linux ext2, ext3, ext4, reiserfs, xfs, btrfs, swap
Windows fat32(vfat), ntfs
Unix ffs, ufs, jfs, jfs2
光盘 iso9660
网络文件系统 nfs, cifs
集群文件系统 ocfs2, gfs2
分布式文件系统 ceph,moosefs, mogilefs, hdfs, gfs, glusterfs

操作系统支持的文件系统各不相同,通常来说Linux支持的文件系统是非常多的,毕竟开源!文件系统也有分类,比如日志型文件系统[ext3、4等,现在主流都是]和非日志型文件系统[ext2],在下文阐述。

文件系统、逻辑块、物理块、扇区的关系以及日志型文件系统


我们知道一个文件可能由一个或多个分散在不同位置的[未必连续]的物理块Block组成,而操作系统如何知道这些物理块到底在哪儿呢?这和之前所说的文件由自身数据+元数据组成,元数据就是记录了这些具体的相关的信息!

● 1个或若干个扇区Sector ---> 组成了物理块Block

● 一个或多个物理块Block ---> 组成了逻辑块Logical Block 通常物理块和逻辑块大小是一样的

● 用户文件操作时将请求提交给文件系统,文件系统通过逻辑块和物理块的映射找到物理块,通过物理设备进行存取

日志型文件系统


指的是在存储空间上,找出一个额外的空间做日志区域,用来临时存取元数据。当创建文件时,先将文件元数据存放在这儿,将userdata写到存储空间,当彻底完成后转移日志区域的元数据到存储空间的元数据空间。

这样做的优点很明显:当正在写入文件时,很不幸出现了意外当机,那么重启后要想恢复数据只需要对日志区域进行遍历即可,通常这个时间是很短的[如果是非日志型文件系统那么需要对整个磁盘分区进行遍历,耗时场,资源消耗大]


VFS虚拟文件系统


各种文件系统有各自的文件组织形式和数据结构,在介绍了多种文件系统后,不得不面对的现实是编程人员需要依据各种不同的文件系统来写程序吗?显然会有解决方案,VFS就是这种解决方案。

VFS是一种中间层,能够屏蔽底层各种文件系统的差异性,统一整合兼容地通过标准接口提供给需要者使用。

Swap分区


在存储空间上,划分出一块分区做swap分区,这个分区很特殊不用来永久存储数据而是作为内存的拓展与补充。

当Mem不足时,可以将Mem中不常用的页面调度到Swap分区中,用以支撑大内存程序的运行,好处显而易见。

转载于:https://blog.51cto.com/bluebox/1694529

[9-1]磁盘基本知识、分区基本概念相关推荐

  1. Linux学习(CentOS-7)---磁盘分区(概念、分区方法、分区方案)

    2016-09-23 16:28 13512人阅读 评论(0) 收藏 举报 分类: Linux学习(6) 版权声明:本文为博主原创文章,未经博主允许不得转载. 1磁盘分区相关的概念 1.1什么是磁盘 ...

  2. 电脑硬件:磁盘、RAID知识,网卡概念与主流硬件产品知识介绍

    本文主要介绍服务器的概念.常见的服务器技术和架构组成,此外将详细介绍磁盘.RAID知识,网卡概念.分类和主流厂商.产品,内容大致分为3部分. 1.服务器通用基础知识 简单来说,服务器就是在网络中为其他 ...

  3. Linux基础篇——Linux磁盘操作(磁盘基础知识、分类、分区、挂载、卸载、扩容)详解

    目 录 1. 概 念 2. 为啥要分区 3. 磁盘的结构 4. 磁盘的分类 4.1 IDE硬盘 4.2 SCSI硬盘 4.3 SATA硬盘 4.4 固态硬盘 5. 磁盘分区命名规则 6. 磁盘分区类型 ...

  4. cwntos新建目录挂载磁盘_详解Linux磁盘挂载、分区、扩容操作的实现方法

    概述 今天主要分享下关于Linux磁盘挂载.分区.扩容操作的实现方法,先介绍下基本概念 1.磁盘 在Linux系统中所有的设备都会以文件的形式存储.设备一般保存在/dev目录下面,以sda.sda1. ...

  5. Linux磁盘管理基础——分区(MBR分区格式)

    实验环境:CentOS 7.x (并假设是可以正常使用) 了解一下: SAS硬盘:企业级硬盘,服务器专用. SATA硬盘:普通笔记本上装的那种. SCSI硬盘与IDE硬盘:现在不怎么常见,快变成古董了 ...

  6. openwrt 格式化_OPENWRT路由固件入门食用教程S2:磁盘挂载及分区,网络共享,脱机下载。...

    OPENWRT路由固件入门食用教程S2:磁盘挂载及分区,网络共享,脱机下载. 2021-01-19 18:16:11 17点赞 127收藏 15评论 是返乡过年?还是就地过年?最新一届#双面过节指南# ...

  7. Linux7/CentOS7 磁盘结构与分区

    管理磁盘和文件系统都是管理员的重要工作之一.所以我们在这里要格外注意. 下边,我们就来一起来看看管理磁盘和文件系统的一些基础命令. 想要学会管理磁盘.首先我们要了解磁盘,我们首先就来说说"磁 ...

  8. 光盘属于计算机软件,计算机基础知识光盘的概念

    因为软盘的容量太小,所以用得越来越少了,近几年用得比较多的是光盘.平时我们用的音乐CD.VCD影碟都是光盘,电脑上用的软件光盘和它们外表看起来是一样的,而且CD和VCD都可以在电脑上使用. 现在一般的 ...

  9. Linux 中 Swap 分区的概念和使用

    Linux 中 Swap 分区的概念和使用 [root@iZhp3h4x7t41yl0eevhf1dZ ~]# free -h total used free shared buff/cache av ...

最新文章

  1. yolov4源码_YOLOv4特征提取网络——CSPDarkNet结构解析及PyTorch实现
  2. 树莓派避障小车(python)
  3. matlab java错误_Matlab启动时大量java错误的处理方法
  4. 我泡在GitHub上的177天 by Ryan Seys
  5. 快醒醒,一大波最新 AI 论文加开源代码来袭!
  6. Nginx+win10安装配置
  7. torch.gather(input, dim, index, *, sparse_grad=False, out=None) → Tensor
  8. 500个爆文标题_我研究了999篇100万+爆文,终于发现这10条标题规律!
  9. maximum mean discrepancy
  10. 概要设计说明书_没有什么比牙签更好的设计了
  11. 【母亲节快乐】程序员的表达方式,了解一下?
  12. JEECG开源社区招收学生说明
  13. Python 函数定义
  14. 风控建模:催收评分卡(四)--变量整理除了跟数据获取相关外还跟什么有关系?
  15. Excel 使用技巧之 -- 统计、过滤与引用数据
  16. BZOJ 3779 LCT 线段树 DFS序 坑
  17. mybatis 打印sql_不敢相信,相同SQL下Mybatis查询结果和数据库竟然不一样!
  18. [荐][转]如何用美剧真正提升你的英语水平
  19. 《管理学》第七章 激励
  20. 卡尔曼滤波简介(转载)

热门文章

  1. oracle rac安装
  2. 大数据安全事件警示:海量数据放哪才真正放心
  3. 京东抢购服务高并发实践
  4. 项目展示文案生成设计
  5. ORACLE等待事件:direct path write
  6. CyberArticle(网文快捕)上传文件提示‘许可不足’
  7. c# ArrayList
  8. 关于代理服务器藏IP的一些问题(高手免看)
  9. [Hadoop in China 2011] Facebook Message在HBase基础上的应用
  10. win10 rabbitMQ的安装与测试