Linux系统磁盘管理

磁盘的内部结构

  磁头组件,磁盘的驱动结构,磁盘片(platter),主轴组件,前端控制电路

  磁头(Head),磁头是磁盘中最为昂贵的部件,是磁盘技术中最为重要的一环,采用了给接触式结构,加电后悬浮在高速旋转的磁盘表面,分为读写合一磁头(Read/Write Head)和分离式磁头。

  The read/write heads for all of the platters in the drive in a dirve are attached to one actuator arm assembly and move across the platter simultaneously. there are two read/write heads per platter,one for each surface.

  磁道(Track),当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘便面划出一个圆形轨迹,这些圆形轨迹就是磁道。

  Data is recorded in track. A track is a concentric ring around the spindle which contains information.A trarck can hold a large amount of information. Track density decribes how tightly packed the track are on a platter.

  扇区(Sector),磁盘上每个磁道被等分为若干弧段,这些弧段被称为磁盘的扇区。

      Every sectors store user data along with its own location data: sector number, head number, or platter number and track number. 512 bytes per sector.

  柱面(Cylinder),磁盘通常由重叠的一组盘片构成,每个盘面都被划分为数据相等的磁道,并且从外边缘的"0"开始编号,具有相同编号的磁道形成的一个圆柱,称之为磁盘的柱面。

  A cylinder is the set of identical tracks on both surfaces of each of the drives's platters. Often the location of drives are referred to by cylinder number rather than by track number.

 

磁盘的主要参数

  磁盘容量(Capacity),作为计算机系统的数据存储器,容量是磁盘最主要的参数,磁盘的容量以兆字节(MB)或千兆字节(GB)为单位。

  磁盘转速(Rotationl Speed),转速是指磁盘盘片每分钟转动的圈数,单位为rpm(Revolutions Per Minute)。

  平均寻道时间(Average Seek Time),指磁头移动到数据所在磁道需要的时间,这是衡量磁盘机械性能的重要指标 。

  平均潜伏期 (Average Latency),指当磁头移动到数据所在的磁道以后,等待指定的数据扇区转动到磁头下方的时间。

  平均访问时间(Average Access Time),指从读/写指令发出到第一笔数据读/写实际开始所用的平均时间。

  数据传输率(Data Transfer Rate ),指磁盘读写数据的速度,单位为兆字节每秒(MB/s).

  磁盘缓冲区,也称之为缓存(Cache)缓冲区的基本作用是平衡内部与外部的数据传输率,为了减少主机的等待时间,磁盘会将读取的资料先存入缓冲区,等全部读完或缓冲区填满后再以接口速率快速向主机发送。

 

磁盘接口  

  IDE(Integrated Drive Electronics),即“电子集成驱动器”,它的本意是指把“硬盘控制器”与“盘体”集成在一起的硬盘驱动器。把盘体与控制器集成在一起的做法减少了硬盘接口的电缆数目与长度,数据传输的可靠性得到了增强,硬盘制造起来变得更容易,因此硬盘生产厂商不需要再担心自己的硬盘是否与其它厂商生产的控制器兼容。对用户而言,硬盘安装起来也更为方便。IDE这一接口技术从诞生至今就一直在不断发展,性能也不断地提高,其拥有的价格低廉、兼容性强的特点,为其造就了其它类型硬盘无法替代的地位。

  SCSI(Small Computer System Interface ),一种用于计算机和智能设备之间(硬盘、软驱、光驱、打印机、扫描仪等)系统级接口的独立处理器标准。
  FC(Fibre Channel ),就是网状信道,光纤接口,最初是专门为网络系统设计的,随着存储系统对速度的需求,逐渐应用到硬盘系统中。通常用于连接一个SCSI RAID(或其它一些比较常用的RAID类型),以满足高端工作或服务器对高数据传输率的要求。

  SATA(Serial Advanced Technology Attachment),ATAZ中文简称硬盘接口技术,SATA,是串行ATA,一种完全不同于并行ATA的新型硬盘接口类型,由于采用串行方式传输数据而得名。现在,SATA分别有SATA 1.5Gbit/s、SATA 3Gbit/s和SATA 6Gbit/s三种规格。

  SAS(Serial Attached SCSI ),即串行连接SCSI,是新一代的SCSI技术,和现在流行的Serial ATA(SATA)硬盘相同,都是采用串行技术以获得更高的传输速度,并通过缩短连结线改善内部空间等。SAS是并行SCSI接口之后开发出的全新接口。此接口的设计是为了改善存储系统的效能、可用性和扩充性,并且提供与SATA硬盘的兼容性。

  SAS的接口技术可以向下兼容SATA。具体来说,二者的兼容性主要体现在物理层和协议层的兼容。在物理层,SAS接口和SATA接口完全兼容,SATA硬盘可以直接使用在SAS的环境中,从接口标准上而言,SATA是SAS的一个子标准,因此SAS控制器可以直接操控SATA硬盘,但是SAS却不能直接使用在SATA的环境中,因为SATA控制器并不能对SAS硬盘进行控制;在协议层,SAS由3种类型协议组成,根据连接的不同设备使用相应的协议进行数据传输。其中串行SCSI协议(SSP)用于传输SCSI命令;SCSI管理协议(SMP)用于对连接设备的维护和管理;SATA通道协议(STP)用于SAS和SATA之间数据的传输。因此在这3种协议的配合下,SAS可以和SATA以及部分SCSI设备无缝结合。

 

分区(Partition)

  低级格式化:实现划分好磁道扇区等。

  高级格式化:创建文件系统。

  分区就是把整这个磁盘划分成多个逻辑组成结构。每个逻辑组成结构里可以创建一个独立的文件系统,因而一个磁盘上可以创建多个独立的文件系统。 

  MBR:主引导记录(Master Boot Record) (512byte 0,0,0)0platter 0Track,0Sector

    前446btyes BootLoader程序,能够引导某个分区上的操作系统让它启动起来。

    后64bytes:per 16 bytes:表示一个分区,因而主分区+扩展分区<=4。

    最后2bytes,Magic Number: 标记MBR是否有效。

  BIOS中的数据rom中的一段程序代码,检查自身健康状况, 开机以后,会映射到内存的最低端,cpu开始执行这段代码,开始检查自身的健康状况,自检没有任何问题了,BIOS依据在BIOS中设定的启动次序,挨个去找启动设备的MBR(可能是光盘,usb设备,硬盘设备)。于是,BIOS把MBR中的bootloader映射到内存,BISO把执行指令交给cpu,bootloader最开始执行,BIOS退出,bootloader读取分区表,找到的分区找操作系统的内核,操作系统内核加载到内存,boorloader将管理权交给操作系统内核。

  对磁盘分区:

    磁盘是按柱面cylinder分区的。因为在存储一个文件时,为了加速文件存储,数据存储也是按柱面存储的。

    Since a platter is made up of concentric tracks, the outer trackes can hold more data than the inner ones beacause they are physically longer than ther inner trackes. However,in older disk drivers the outer tracks had the same number of sectors as the inner tracks, which means that the data density was low on the outer tracks. This was an inefficent use of the availables space.

     磁盘分区后(platter with zone)就可以存储数据,但是存储的数据需要逻辑的边界,寻址定位的功能,要能分类,编号,建立索引。因此就需要在分区上建立一个叫做文件系统的东西。文件系统就是一个管理软件,存储在磁盘的某个位置上,并不是直接在分区上,但是存储的数据在分区上。文件系统能够把一个分区中的存储空间划分为两个部分:一块是Metadata,一块是数据存储区,数据存储区划分为逻辑存储单元,称为磁盘块block,逻辑概念。

    元数据区:

    指定一段固定区域,存储条目:可以指向磁盘块编号。每个文件占一个条目,新建一个文件就要分配空间来存储文件对应得信息。每用来引用的一个文件的条目有一个独特的称呼,索引节点,index node,简写为inode,每一个inide有一个全局唯一的编号,每个inode号对应的条目用来引用一个文件。inode条目中存放inode号,对应文件的权限,时间戳,属主 ,属组,扩展属性,大小,存储的block信息,没有文件名。存储一个文件在一个对应的条目要指向这个文件所占据的磁盘块,这个文件非常大,需要占据成千上万个磁盘块,文件对应的条目不可能指向所有的磁盘块,没有这么多空间。其实这里和扩展分区一样,在指向磁盘块的时候使用的是指针,有直接指向磁盘块的路径,还有间接指向磁盘块的路径,也就是分级指向,一下子可以引用许许多多磁盘块。分级指向可以扩展到其他的位置。可以这么来理解,一个扩展到的其他位置来标识额外的磁盘块,所以它有间接目录,二级间接目录,三级间接目录来指向磁盘块的位置。这样一个inode条目无论是直接的还是间接的引用的磁盘块的多少决定了单个文件的大小。某些文件系统上指定某个文件的大小不能超过多少G.FAT32中一个文件最多不能超过4G.因此某一个文件系统所支持的单个文件有多大,事实上对一个文件系统来讲还是至关重要的。也应该是一个文件系统最基本的衡量标准。

    条目存储对应的inode位图区:在inode bitmap中的每一位与条目存放块一一对应,1为已使用,0为空闲。

 

    块位图bitmap,block bitmap。数据区每个磁盘块block有一个位在bitmap中,只有一位,1为已使用,0为空闲。bitmap对应每一个磁盘块,用来加速空闲磁盘块的查找。文件名存放,目录也是文件,linux上所有的文件从/开始,那么/在什么地方,内核,linux在启动的时候,linux操作系统会知道/在什么地方。操作系统会自己引用到/,也就是所根目录是自引用的,/目录一定会找到自己,只要能找到/,其他的文件就都能找到。文件名其实是存放在目录上的,而目录也是一个文件,因此一个目录也是要占据磁盘块,目录不是容器也是个磁盘块,分成两部分,一部分存放inode号,一部分存放文件名,叫目录项(dentry)。

   引入软链接和硬链接文件的概念:
    链接文件:
      软链接,也叫符号链接:直接指向同一个inode的两个不同路径,就可以叫做软连接

      符号链接;
      1、可以应用于目录,
      2、可以跨文件系统
      3、不会增加被连接文件的次数;
      4、其大小为指定的路径所包含的字符的个数。

      硬链接,
      指向的inode链接,存储着inode号和一个文件存储路径,大小为文件存储路径字符的个数,通过文件存储路径找到文件数据存储的位置
      1、只能指向文件,不能用于目录;
      2、不能跨文件系统;
      3、 创建硬链接会怎家文件被链接的次数;
      硬链接的次数:只有次数小于1,才能彻底删除,否则只是删除了文件存储路径,inode号和数据依然存在

      ln [-s -v] SRC

posted @ 2015-07-26 18:18  christian.badguy  阅读(394)  评论(0编辑  收藏  举报