Linux 系统的磁盘设备_all

Posted 小a玖拾柒

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 系统的磁盘设备_all相关的知识,希望对你有一定的参考价值。

磁盘 ->RAID ->分区 ->格式化 ->挂载

基本的框架

a.硬盘的外部以及内部硬件结构,工作原理和读写原理
b.RAID的划分(一块盘划分为一块或者多块的小虚拟磁盘,可以冗余,可以)
c.磁盘名词知识以及分区的知识体系
d.格式化,创建文件系统,初始化inode和block; 了解文件系统名词知识以及体系
e.挂在到Linux文件系统中使用; 掌握系统命令操作知识

磁盘内部结构

正面:产地,大小,生成日期,条形码,品牌等
反面:绿色电路板,芯片,电容,电阻,气孔
        buffer 写入缓冲器   cache读取缓存区
侧面:数据转换器,电源线,接口(SATA,SAS,ide,scsi)
内部结构:盘片(2-14,每个面都可以存放数据),磁头,盘片主轴,控制电机,磁头控制器等
    所有的盘片都固定在一个旋转轴上,即盘片主轴,
    所有的盘片直接都是平行的,每隔盘片的每个存储面都有一个磁头,磁头有盘片之间的距离很小
磁盘的主轴的转数是衡量磁盘读写性能重要参考之一;
磁盘的接口决定读取性能
SATA 串口磁盘,结构简单,可靠,性能高
SAS  结合SATA和SCSI优点而生
SSD固态盘:solid state driver 
    分类:
        基于闪存(FLASH芯片)的SSD:可以移动,数据保护不受电源控制,适用各种环境  -->平时所用的U盘等
        基于DRAM的SSD:采用DRAM作为存储介质,高性能,需要电源支持
    优点:
        启动快,碎片不影响读取时间,写入快,无噪音,发热低,无故障,抗振动
    缺点;
        成本高,容量小,寿命有限,数据难恢复

磁盘工作的过程:
 自己理解:

    磁盘工作的时候,磁盘会高速运动,当达到一定速度的时候,气流很强,足够将磁头托起并保持微小的距离(距离越小,磁头读取数据的灵活性越高),磁头会慢慢地由启停区向外移动,磁头读取最外面的0磁道的数据(由0磁道检测器进行引导)
        磁头沿着直径做径向运动,盘片旋转,转一圈读取一圈的数据。·不工作的时候回到启停区。
 规范版本:
        1.磁盘的读写是按照柱面为单位进行的;从0盘面开始,读取完数据后,读取1盘面相同半径的数据,以此类推,读取半径相同的磁盘的数据到结束后读取另一个半径的数据
        2.不同磁头之间的切换是电子切换,不同半径直接的切换是机械的(依靠电机移动磁头手臂)

磁盘存取数据的原理:电脉冲信号转换为电脑可识别的信息

1.利用特定的磁粒子的极性来记录数据。
2.磁头在读取数据时,将磁里自带不同极性转换成不同的电脉冲信号,再利用数据转换器将原有的初始信号变成电脑可用的数据。
    写与此相反
    磁盘读写数据的时候,应尽可能的让磁头不动,这样才能尽可能多的读取更多的数据

磁盘的相关知识

1.基础知识
    系统启动时候的引导程序是在 0柱面0磁道的1扇区的512字节   (第一个盘片的最外的的0号数据区)
    给磁盘分区实际上就是划分柱面号和扇区号
    柱面数=一个盘的磁道数
    Disk 磁盘      Head 磁头    Sector  扇区   Track  磁道  Cylinder 柱面  Units 单元块(一个柱面大小)
2.磁盘的盘面
    1快磁盘 = 数个有效盘片(7个完整磁盘) 每隔盘片的有效盘面(2面)对应一个读写的磁头,从上往下由0开始编号,不同的磁盘盘面在逻辑上被划分为磁道,柱面以及扇区(出厂设定好)
    一个磁头对应一个有效盘面(磁头数=2*盘片)
    磁盘停止的时候,磁头放在磁头启停区,启停区以外都是数据区
    磁盘工作的时候,磁盘会高速运动,当达到一定速度的时候,气流很强,足够将磁头托起并保持微小的距离(距离越小,磁头读取数据的灵活性越高),磁头会慢慢地由启停区向外移动,磁头读取最外面的0磁道的数据(由0磁道检测器进行引导)
    磁头沿着直径做径向运动,盘片旋转,转一圈读取一圈的数据。·不工作的时候回到启停区。
3.磁盘的磁道
    磁盘(盘面)格式化的时候,被划分成许多的同心圆,这些同心圆的轨迹叫做磁道
    磁道的编号,由外向内进行编号,磁头读数据的时候由0磁道开始
4.磁盘的柱面
    所有的盘面上同一个磁道的同心圆轨迹由上到下依次会形成一个圆柱体,叫做柱面
    每个柱面上的磁头由上而下从“0”开始编号
    有多少个磁道对应多少个柱面
5.磁盘的扇区
    操作系统是以扇区为单位将信息存储在磁盘上的,一般情况下一个扇区的大小事512字节
    定义:由圆心向周围划分直线,把磁道划分为多个扇型区域,这个区域叫做扇区
    一个扇区主要有2部分内容组成:标示符,数据段
        存储数据地点的标示符:扇区所在的磁头(盘面),磁道(柱面号),扇区在磁道的位置(扇区号)
        存储数据的数据段:
    多个扇区 == 一个磁道
    每个扇区的大小都是512字节
    每磁道的扇区数都是一样的 ,扇区从1开始编号
6.磁盘的总结
    1.一个磁盘有2-14个盘片,每个盘片有2个有效的面,每个面对应一个读写磁头,用磁头号来区分盘面
        即盘面数就是读写磁头数,盘片数*2=磁头数(盘面数)
    2.盘面格式化的时候,以盘片中心为圆心,会划分多个同心圆,这些个同心圆就是我们说的磁道
        磁道由外而内的进行编号0-n
    3.不同磁道划分了多个扇形区域,每个扇形区域叫一个扇面
        扇面由标示符 + 数据段组成  每个512字节
    4.不同的盘面相同半径的磁道组成一个圆柱面叫做柱面
        一个柱面包含多个磁道(半径同),一个磁道包含多个扇面
    5.数据信息记录可表示为:
        某磁头(盘面) 某磁道(柱面) 某扇区
    6.系统的引导磁盘是0柱面0磁道的第1扇区

磁盘容量的计算

fdisk -l    -->  查看磁盘分区
	Disk /dev/mapper/VolGroup-lv_root: 16.8 GB, 16752050176 bytes
	255 heads, 63 sectors/track, 2610 cylinders
	Units = cylinders of 16065 * 512 = 8225280 bytes        -->一个柱面的大小
方法1: 
	磁盘容量=512B * 扇区数 * 磁道数(每盘面) * 磁头数
			=512  * 2636   * 63             * 255
			echo $((255*63*2036*512))          -->只能计算整数
				==>echo "255*2636*63*255"|bc   -->可以计算小数
方法2:
	磁盘容量=柱面数(磁道数) * 柱面大小(磁道大小 * 磁头数)
			=512B*扇区数*磁道数*磁头数
			=Units * 2610
			echo $((8225280*2036))  

机械磁盘读取数据工作原理

1.磁盘的读写是按照柱面为单位进行的;从0盘面开始,读取完数据后,读取1盘面相同半径的数据,以此类推,读取半径相同的磁盘的数据到结束后读取另一个半径的数据
    2.不同磁头之间的切换是电子切换,不同半径直接的切换是机械的(依靠电机移动磁头手臂)

磁盘命令的总结

1.提示
	1.Linux系统的特性是将系统不用的物理内存缓存起来
	2.buffers 为写入缓冲区  sync将缓冲区数据写入磁盘
	3.cache 为读取数据的缓冲区
	4.机械硬盘的读取和写入都用到了缓存技术
2.命令
	free :
	    -m: 显示经过计算的内存大小   如下所示,剩余内存为347M
	     [[email protected] ~]# free -m
   		    		 total      	  used       free     shared    buffers     cached
				 Mem:             482        247        235          0         26         85
		/+ buffers/cache:         135        347

其他

问题: 不同磁道的扇区大小看起来不一样,直观感觉越靠外面,磁道扇面越大
      答案: 1.数据的存储密度在不同的磁道内不一样
               2.磁道间隙密度不同,外面小,里面打















































以上是关于Linux 系统的磁盘设备_all的主要内容,如果未能解决你的问题,请参考以下文章

8.25_Linux磁盘管理

8.29_Linux磁盘管理

LINUX04_分区的概述设备挂载情况lsblk磁盘分区fdisk格式化硬盘挂载mount

Linux系统磁盘分区设备挂载及磁盘配额详解

Linux 磁盘分区详解

Linux命令之--- iostat