磁盘知识体系概括

机械硬盘和固态硬盘

机械磁盘剖开图

磁盘工作的视频动画,主轴转动,机械手读写

模拟磁盘工作视频,点击中间三角播放

磁盘结构详解

磁盘外部结构

组成

主要由三部分组成:盘片、主轴(机械硬盘)、磁头。

转速

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之初识磁盘的更多相关文章

  1. Linux入门——初识Linux

    Linux入门——初识Linux 摘要:本文主要说明了Linux是什么,Linux发展历史,以及同Linux系统有关的一些基本知识. 简介 操作系统 Linux系统同Windows系统.Mac系统一样 ...

  2. Linux下的磁盘分割和文件系统

    一.各硬件装置在Linux下的文件名 1.IDE硬盘机 在Linux内的文件名: /dev/hd[a-d]  (a-d 刚好是四个这个是有原因的具体如下) 解释:以 IDE 接口来说,由于一个 IDE ...

  3. VMware Linux Guest 增加磁盘无需重启的方法

    摘要     常常需要需要给VMware Linux Guest增加磁盘适配一些测试场景,而又不想花费时间重启Guest,查找文档,发现一种简单的方法,记录一下操作步骤. 操作步骤 1 编辑Linux ...

  4. 如何在 Linux 中整理磁盘碎片

    有一个神话是 linux 的磁盘从来不需要整理碎片.在大多数情况下这是真的,大多数因为是使用的是优秀的日志文件系统(ext3.4等等)来处理文件系统.然而,在一些特殊情况下,碎片仍旧会产生.如果正巧发 ...

  5. Linux Shell查看磁盘分区,内存使用,CPU使用率

    Linux Shell查看磁盘分区,内存使用,CPU使用率 #!/bin/bash #disk_used_rate Location=/dev/xvdb Disk_Used_Rate=$(df -h ...

  6. linux系统查看磁盘分区使用空间

    Df命令是linux系统以磁盘分区使用空间:df -hl

  7. 转载:为什么Linux不需要磁盘碎片整理

    转载自:www.aqee.net 如果你是个Linux用户,你可能听说过不需要去对你的linux文件系统进行磁盘碎片整理.也许你注意到了,在Liunx安装发布包里没有磁盘碎片整理的工具.为什么会这样? ...

  8. Linux系统的磁盘管理

    Linux系统的磁盘管理有三个命令:df.du.fdisk. df:列出Linux中所有文件系统的整体磁盘使用量: du:对文件和目录所占用磁盘空间的查看: fdisk:用于磁盘分区时列出所有的磁盘. ...

  9. linux下测试磁盘的读写IO速度-简易方法

    linux下测试磁盘的读写IO速度-简易方法 参考资料:https://blog.csdn.net/zqtsx/article/details/25487185 一:使用hdparm命令 这是一个是用 ...

随机推荐

  1. 总结下Mysql分表分库的策略及应用

    上月前面试某公司,对于mysql分表的思路,当时简要的说了下hash算法分表,以及discuz分表的思路,但是对于新增数据自增id存放的设计思想回答的不是很好(笔试+面试整个过程算是OK过了,因与个人 ...

  2. OpenOffice安装和转换乱码解决方案

      前言: OpenOffice项目中用途:word转换pdf Windows安装.转换:安装包下载后一路OK 就可以正常安装,转换没有问题 Linux安装.转换:安装有分DEB包和RPM包,下面会说 ...

  3. linux查看用户、创建用户、设置密码、修改用户、删除用户命令

    查看用户 /etc/passwd /etc/shadow id alex ' |passwd --stdin alex # 设置密码,不需要交互 [root@localhost ~]# tail -l ...

  4. 事件处理程序 (DOM0级)

    DOM0事件处理程序 每个元素都有自己的事件处理程序属性,那么直接获取对象,然后在对象上设置事件处理程序属性. 1:获取节点对象引用 2:在事件成员上设置处理函数,这时函数内部this指向节点对象. ...

  5. 1,JavaScript前世今生

    JavaScript历史大概在1992年,一家称作Nombas的公司开始开发一种叫做C–(C-minus-minus,简称Cmm)的嵌入式脚本语言. Cmm背后的理念很简单:一个足够强大可以替代宏操作 ...

  6. angular 时间戳转换(星期过滤器)

    {{(value.time+'000' | date:'yyyy-MM-dd HH:mm:ss') : '/'}} .filter('getWeek', function() { return fun ...

  7. 从发布订阅模式到redux(一)

    最近在学习的过程中,学习了一些关于redux的一些知识,学之前用redux,虽然会用但是实现的原理就不是特别清楚,天天沉迷于搬砖 总是这木搬砖也不是个事啊,就准备开始深入了解一些原理性的东西 首先在看 ...

  8. iOS--------获取当前连接的WiFi以及IP地址

    导入头文件 #import <ifaddrs.h>#import <arpa/inet.h>#import <SystemConfiguration/CaptiveNet ...

  9. Android为TV端助力 关于android的一些基础知识

    怕自己以后忘了,所以在这里先写写! equal和==的区别是,一个用于判断字符串,一个用于判断int是否相等 equal比较的是对象,==比较的是值

  10. 学习用Node.js和Elasticsearch构建搜索引擎(6):实际项目中常用命令使用记录

    1.检测集群是否健康. curl -XGET 'localhost:9200/_cat/health?v' #后面加一个v表示让输出内容表格显示表头 绿色表示一切正常,黄色表示所有的数据可用但是部分副 ...