Linux之初识磁盘
Posted 游小刀
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux之初识磁盘相关的知识,希望对你有一定的参考价值。
磁盘知识体系概括
机械硬盘和固态硬盘
机械磁盘剖开图
磁盘工作的视频动画,主轴转动,机械手读写
模拟磁盘工作视频,点击中间三角播放
磁盘结构详解
磁盘外部结构
组成
主要由三部分组成:盘片、主轴(机械硬盘)、磁头。
转速
SAS硬盘,根据转速来划分,有常见的三种
7200转 容量在1TB~10TB
10K转 容量在300G~1.8T
15k转 容量在300G~900G
注:转速的表达用rpm,即round per minute
接口类型
磁盘接口:水壶的壶嘴,定义与服务器如何连接,将决定数据的读写速度
SATA, 也叫串口
SCSI,最早用于高端服务器,特点就是速度快,造价高
SAS,既要scsi的性能,又要sata的方便,就诞生了SAS
PCI-E,最初主要用于快速的设备价格最高,速度最快,网卡、显卡。慢慢的出现了硬盘,现在主要用于固态硬盘
机械硬盘一般用SATA、SAS;固态硬盘sata、sas、pci-e都有用
百度不同接口的图片,以他们的区别不同
磁盘内部组成
磁头(Head)
由上到下,从0开始编号
盘面数量 == 磁头数量
作用:用来写入和读取数据的
磁道(Track)
由外向内,从0开始编号
以主轴为中心的不同的圆环区域(呼啦圈)
扇区(Sector)
一个磁道上面的最小单位,从数字1开始
默认大小512字节
柱面(Cylinder)
不同盘面上相同的磁道,组成的图形(圆柱体)。
柱面的数量 == 磁道的数量
磁盘默认是按照柱面进行读写。
两种读写的方式:
磁头的切换---0磁头切换为1磁头,由电信号控制
磁道的变化(寻道)--- 机械的变化
单元块(Units)
表示一个柱面的大小(其实是固定的)
计算磁盘的大小
磁盘的大小 = 柱面数量 * 每个柱面的大小
柱面的大小 = 磁道的大小 * 磁头的数量
磁道的大小 = 扇区的大小 * 每个磁道的扇区数量
[root@learn-Linux001 ~]# fdisk -l Disk /dev/sda: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders # 255磁头 63扇区/磁道 1044柱面 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: 0x000ad34b Device Boot Start End Blocks Id System /dev/sda1 * 1 26 204800 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 26 124 786432 82 Linux swap / Solaris Partition 2 does not end on cylinder boundary. /dev/sda3 124 1045 7396352 83 Linux
计算
[root@learn-Linux001 ~]# echo 512*63|bc 32256 [root@learn-Linux001 ~]# #磁道的大小 [root@learn-Linux001 ~]# echo 512*63|bc 32256 [root@learn-Linux001 ~]# #柱面的大小 [root@learn-Linux001 ~]# echo 512*63*255|bc 8225280 [root@learn-Linux001 ~]# #磁盘的大小 [root@learn-Linux001 ~]# echo 512*63*255*1044|bc 8587192320
磁盘容量单位与常见的计算方法
位:bit
字节:Byte ,等于8bit
1kb = 1024Byte
1mb = 1024kb = 1024*1024 Byte
GB、TB、.......
但是硬件厂商的是按照1000来计算的。所以,买回来的硬盘500GB硬盘实际可以使用的是465GB左右。
[root@learn-Linux001 ~]# #将上面的结果换算成G [root@learn-Linux001 ~]# echo 512*63*255*1044/1024/1024/1024|bc 7 [root@learn-Linux001 ~]# #结果不对,变成了7.因为bc是基础计算器,只能算整数 [root@learn-Linux001 ~]# #我们需要使用awk [root@learn-Linux001 ~]# awk \'BEGIN{print 1/3}\' 0.333333 [root@learn-Linux001 ~]# awk \'BEGIN{print 512*63*255*1044/1024/1024/1024}\' 7.99745 [root@learn-Linux001 ~]#
磁盘的选择
固态硬盘和机械硬盘的区别
diy.pconline.com.cn/750/7501340.html 固态硬盘的颗粒详细介绍
https://www.mydigitaldiscount.com/everything-you-need-to-know-about-slc-mlc-and-tlc-nand-flash.html
以上是关于Linux之初识磁盘的主要内容,如果未能解决你的问题,请参考以下文章
初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段
初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段