Linux磁盘专题
物理磁盘名次和其作用
盘片:disk
盘片上下都有磁头。
磁盘面:
盘片有上下两面,每一面叫磁盘面
磁头:heads
每个磁头负责一个磁盘面,负责读取数据、将数据写入磁道。
磁头都是固定在机械臂上(机械臂就是磁头臂组支架)
磁道:track
每个磁盘面上围绕圆心划分出多个同心圆环,每个圆圈叫做磁道。
从磁盘面外圈开始向圈内数,磁道号从0逐渐递增1.也就是最外圈的磁道号是0,想内圈开始逐步递增+1
扇区:sectors
扇区上记录物理数据、扇区号、磁头号(磁盘片号,就是第几个磁盘片面)、磁道号.
每个磁道以512字节(并非一定是512,因为可以设置,只不过默认大多数是512字节)等分划分多个弧段,每个段就是一个扇区。(这些弧段划分后就是一个扇形,所以叫扇区)
外圈的磁道大。内圈的磁道小。所以外圈磁道所拥有的扇区数就多,内圈磁道所拥有的扇区数就少。
有些硬盘参数会标注上磁道的范围如:373-768,表示最外圈磁道有768个扇区,最内圈有373个扇区。
柱面:cylinders
磁盘面上的同一个位置的磁道组成的立体叫做一个柱面。
按照磁盘的物理性来讲,现在的分区大多数都是基于柱面的划分。
磁盘或分区容量计算方式
磁盘大小=unit * 柱面数(cylinders)
或者
磁盘大小=磁盘面数(heads) * 每个磁道上的平均扇区数(sectors/track) * 512 * 柱面数 (cylinders)
例子:
[root@test ~]# fdisk -l /dev/sda
Disk /dev/sda: 322.1 GB, 322122547200 bytes
255 heads, 63 sectors/track, 39162 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000990c6
Device Boot Start End Blocks Id System
/dev/sda1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 64 39163 314059776 8e Linux LVM
所以/dev/sda大小为:
255*63*512*39162=322,118,415,360 === 将byte转换为GB,就是322118415360/1000/1000/1000=322.11841536 GB
8225280*39162=322,118,415,360 === 将byte转换为GB,就是322118415360/1000/1000/1000=322.11841536 GB
MBR:占用512byte
其中446byte作为bootloader
剩余64byte作为DPT(disk partation table磁盘分区表)
每个分区占用16byte,因此64/16=4,MRB只能分4个主分区(primary,P)。
通过建立拓展分区后(extend,E),在拓展分区上再建立逻辑分区(logical,L)几乎可以实现无限制分区。
最后2byte是校验位:55aa
GPT:可以分区128个主分区,且支持2TB以上的独立分区。
其他
磁盘块/簇(虚拟出来的)。 块是操作系统中最小的逻辑存储单位。操作系统与磁盘打交道的最小单位是磁盘块。
通俗的来讲,在Windows下如NTFS等文件系统中叫做簇;在Linux下如Ext4等文件系统中叫做块(block)。每个簇或者块可以包括2、4、8、16、32、64…2的n次方个扇区。
https://blog.csdn.net/HandsomeHong/article/details/123101771
这篇文章扇区哪里讲得不完全正确,因为她只说到了旧的扇区划分方式,新的扇区划分都是同密度的,所以外圈扇区比内圈扇区多,每个扇区的密度都是一样,而不是像旧的方式,外圈扇区密度小,内圈扇区密度大。
https://cloud.tencent.com/developer/article/1999925
Linux磁盘专题的更多相关文章
- Linux磁盘IO监控[zz]
磁盘 I/O 监控是 Unix/Linux 系统管理中一个非常重要的组成部分.它可以监控吞吐量.每秒 I/O 数.磁盘利用率.服务时间等信息,并且在发现异常时,发送告警信息给系统管理员,便于系统管理员 ...
- linux磁盘分区模式
linux磁盘分区模式 模式一:MBR 1)主分区不超过四个 2)单个分区容量最大2TB 模式二:GPT 1)主分区个数"几乎"没有限制(原因:在GPT的分区表中最多可以支持128 ...
- MySQL 调优基础(四) Linux 磁盘IO
1. IO处理过程 磁盘IO经常会成为系统的一个瓶颈,特别是对于运行数据库的系统而言.数据从磁盘读取到内存,在到CPU缓存和寄存器,然后进行处理,最后写回磁盘,中间要经过很多的过程,下图是一个以wri ...
- <实训|第七天>横扫Linux磁盘分区、软件安装障碍附制作软件仓库
期待已久的linux运维.oracle"培训班"终于开班了,我从已经开始长期四个半月的linux运维.oracle培训,每天白天我会好好学习,晚上回来我会努力更新教程,包括今天学到 ...
- 调整Linux磁盘分区的大小的方法
昨天数据入库时,一直报错,说磁盘满了,,df -h 一看,发现/目录下只有50G空间,已使用49G:我的程序和dbss都安装在/目录下,ftp到的数据放在/data下的一个子目录下,分解完的 ...
- Linux 磁盘管理
Linux磁盘管理好坏管理直接关系到整个系统的性能问题. Linux磁盘管理常用三个命令为df.du和fdisk. df:列出文件系统的整体磁盘使用量 du:检查磁盘空间使用量 fdisk:用于磁盘分 ...
- Linux磁盘、目录、文件操作命令
0x01. Linux磁盘分区与目录结构 ① 主分区.拓展分区.逻辑分区:早期主引导扇区MBR用64B存放主分区信息,每个分区用16B,因而上限为4个主分区,后来,因分区需求,引入拓展分区(类主分区) ...
- Linux磁盘分区与格式化
磁盘分区格式说明 linux分区不同于windows linux下分区标示: 例如:hda1 hd这两个字母表示分区所在的设备类型,hd标示IDE类型硬盘,sd表示SCSI类型硬盘 第三字母a标示硬盘 ...
- Linux磁盘空间被未知资源耗尽【转】
Linux磁盘空间被未知资源耗尽 在linux中,当我们使用rm在linux上删除了大文件,但是如果有进程打开了这个大文件,却没有关闭这个文件的句柄,那么linux内核还是不会释放这个文件的磁盘空间, ...
- df、du、fdisk:Linux磁盘管理三板斧的使用心得(转载)
From:http://os.51cto.com/art/201012/240726_all.htm 作者介绍:李洋(博客),博士毕业于中科院计算所.10多年来一直从事计算机网络信息安全研发工作,曾主 ...
随机推荐
- TIKZ全局样式设置
tikz绘图引擎 TIKZ绘图引擎是基于tex实现,代码极其复杂,每次编写都要单独设置样式,甚是繁琐,如何能够全局设置呢? \begin{tikzpicture}[ auto, % 决策结点 deci ...
- Tongweb远程调试
最近,在对项目进行国产化时,要求springboot项目容器换成tongweb.在部署中,有个问题一直无法在本地重现,搜了下网上资料,基本没法实现,所以我整理了下.注意,项目包代码必须与本地代码保持一 ...
- Linux虚拟机安装及下载
centos 7操作系统下载及安装步骤 (仅供参考) 下载: 1.打开如下网站:先下载镜像文件 ping:https://www.centos.org/download/ 2.进入到如下界面 3.然后 ...
- MySQL实战实战系列 01 基础架构:一条SQL查询语句是如何执行的?
这是专栏的第一篇文章,我想来跟你聊聊 MySQL 的基础架构.我们经常说,看一个事儿千万不要直接陷入细节里,你应该先鸟瞰其全貌,这样能够帮助你从高维度理解问题.同样,对于 MySQL 的学习也是这样. ...
- 2023年了,复习了一下spring boot配置使用mongodb
前言 MongoDB是一个基于分布式文件存储的开源数据库系统,使用C++语言编写.它是一个介于关系数据库和非关系数据库之间的产品,具有类似关系数据库的功能,但又有一些非关系数据库的特点.MongoDB ...
- MinIO分布式部署
目录 先决条件 网络和防火墙 网络 防火墙 负载均衡 顺序的主机名 驱动器要求 XFS格式性能最优 最小IO 顺序的驱动器名 任意迁移 时间同步 考虑 相同的硬软件环境 存储容量规划 推荐的操作系统 ...
- crontab guru
https://crontab.guru/every-5-minutes Cron Job Monitoring crontab guru The quick and simple editor fo ...
- 记一次基于 PowerShell 的 Git 自动化部署 Java 多服务实践
前言 有这么一个自动化部署的需求,凑巧 git 还直接建立在测试服务器上,部署后可以直接在测试服务器上演示 步骤 建立 Git 仓库 与一般的 Git 部署一样,区别是需要添加 --bare 开关,这 ...
- 这一大波Offer来的太突然了
今年 10 月份之前,作为双非院校的本科生来说是非常煎熬的,十几年的求学之路,加上猛学编程和猛肝算法,到头来却是"无一次面试机会",背后的辛酸不言而喻. 然而,国庆之后," ...
- Go开发IDE全览:GoLand vs VSCode全面解析
关注[TechLeadCloud],分享互联网架构.云服务技术的全维度知识.作者拥有10+年互联网服务架构.AI产品研发经验.团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构 ...