• 磁盘管理基础入门


    操作环境只要有6和7版本的虚拟机就可以了

    本章内容

    1. 磁盘结构
    2. 分区类型
    3. 管理分区
    4. 管理文件系统
    5. 挂载设备
    6. 管理虚拟内存

    磁盘管理基础入门

    在windows或者Linux里,对新的磁盘进行管理,要进行下面3个步骤才可以使用:

    1分区

    2创建文件系统也就是格式化

    3分配盘符或者的挂载到目录下

    一设备文件的介绍

    I/O Ports: I/O设备地址

    一切皆文件:
    open(), read(), write(), close()

    1设备文件的类型

    设备文件:关联至一个设备驱动程序,进而能够跟与之对应硬件设备进行通信


    1.1块设备:block,存取单位“块”,磁盘或者光盘。

    2620涉及到了扇区,一个扇区是512字节。

    1.2字符设备:char,存取单位“字符”,键盘,比如/dev/null

    [root@centos65 ~]# file  /dev/null 
    /dev/null: character special

    2设备号码:
    主设备号:major number, 标识设备类型
    次设备号:minor number, 标识同一类型下的不同设备

    [root@centos73 ~]# ll /dev/sda1
    brw-rw----. 1 root disk 8, 1 Feb 17 16:28 /dev/sda1
    [root@centos73 ~]# ll /dev/sda2
    brw-rw----. 1 root disk 8, 2 Feb 17 16:28 /dev/sda2
    [root@centos73 ~]# ll /dev/sda3
    brw-rw----. 1 root disk 8, 3 Feb 17 16:28 /dev/sda3
    [root@centos73 ~]# ll /dev/sda4
    brw-rw----. 1 root disk 8, 4 Feb 17 16:28 /dev/sda4
    [root@centos73 ~]# ll /dev/sda5
    brw-rw----. 1 root disk 8, 5 Feb 17 16:28 /dev/sda5
    [root@centos73 ~]# lsblk 
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda      8:0    0  200G  0 disk 
    ├─sda1   8:1    0    1G  0 part /boot
    ├─sda2   8:2    0   50G  0 part /
    ├─sda3   8:3    0   20G  0 part /app
    ├─sda4   8:4    0    1K  0 part 
    └─sda5   8:5    0    2G  0 part [SWAP]
    sr0     11:0    1  4.2G  0 rom  /mnt

    2硬盘接口类型

    2.1并行:

    早期是使用并行接口,并行传输数据的。


    (1)IDE:133MB/s

    适用于家用电脑

    右上角接口处有很多帧,左下角是电源接口

     (2)SCSI:640MB/s

    服务器上的接口

    大写的B表示的是字节,不需要除以8

     

    目前不使用并行接口,因为会有比较强的干扰。


    2.2串行接口


    (1)SATA:6Gbps

    家用电脑目前都是这种类型。


    (2)SAS:6Gbps

     小写的b表示每秒钟传递多少位为单位,要除以8才可以转换成字节。

     问题1T的固态磁盘是什么概念?

    (3)USB:480MB/s

    rpm表示机械磁盘的转速。其里面有盘片和马达。转的越快读写性能就越好。

    笔记本电脑一般是5000多的转速。台式电脑性能会更好。

     rpm: rotations   per    minute



    3硬盘存储的分类

    3.1机械硬盘(HDD):Hard Disk Drive,即是传统普通硬盘。

    主要由:盘片,磁头,盘片转轴及控制电机,磁头控制器,数据转换器,接口,缓存等几个部分组成。

    机械硬盘中所有的盘片都装在一个旋转轴上,每张盘片之间是平行的,在每个盘片的存储面上有一个磁头,

    磁头与盘片之间的距离比头发丝的直径还小,所有的磁头联在一个磁头控制器上,由磁头控制器负责各个磁头的运动。


    磁头可沿盘片的半径方向运动,加上盘片每分钟几千转的高速旋转,磁头就可以定位在盘片的指定位置上进行数据的读写操作。

    数据通过磁头由电磁流来改变极性方式被电磁流写到磁盘上,也可以通过相反方式读取。


    硬盘为精密设备,进入硬盘的空气必须过滤。


    3.2固态硬盘(SSD):Solid State Drive,用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片、DRAM芯片)组成。


    固态硬盘在接口的规范和定义、功能及使用方法上与普通硬盘的完全相同,在产品外形和尺寸上也与普通硬盘一致。


    相较于HDD,SSD在防震抗摔、传输速率、功耗、重量、噪音上有明显优势,SSD传输速率性能是HDD的2倍。

    相较于SSD,HDD在价格、容量、使用寿命上占有绝对优势。


    注意硬盘有价,数据无价,目前SSD不能完全取代HHD。因为一方面是如果硬盘损坏了,固态的不能还原,机械的可以还原一部分。

    另外一方面是前者的价格更高,1T的固态磁盘要2000多,机械磁盘是300多。

    4设备文件的命名

    磁盘设备的设备文件命名:/dev/DEV_FILE


    4.1在6和7上面,SCSI, SATA, SAS, IDE,USB: /dev/sd

    4.2虚拟磁盘:/dev/vd

    虚拟化的使用很广泛,比如我们在电脑上安装和使用vmvare,在其上面又安装了操作系统。

    在Linux上面运行windows操作系统也可以的。模拟出来的硬盘就叫做vd

    在生产中可能会使用到云服务器,比如阿里云,实际上是虚拟机。

    很多企业都使用云服务器,因为比较省事。

    一般是使用混合云,公有云和私有云相结合。

    4.3不同磁盘标识:a-z,aa,ab…


    /dev/sda, /dev/sdb, ...


    同一设备上的不同分区:1,2, ...
    /dev/sda1, /dev/sda5

    5分区策略

    分区策略有两种,MBR和GPT

    MBR分区有3种类型,主分区,扩展分区,逻辑分区。

    主分区最多4个,而且不能再细分了,是最小的使用单位。在电脑上至少要有一个主分区来引导计算机使用。

    如果是有好几块硬盘,那么有的硬盘是可以不要有主分区的,只要有一个硬盘上面有主分区引导启动就可以了,其他的可以作为数据磁盘。

    并且扩展分区加上主分区最多4个,也就是扩展分区要占用主分区的名额。

    扩展分区是不能直接使用的,只能作为容器使用。也就是要对其进行细分,细分成逻辑分区。

    二硬盘存储的相关术语

    硬盘存储术语,针对的是机械磁盘

    head:磁头
    track:磁道
    cylinder: 柱面
    sector: 扇区,512bytes

    1head:磁头

    磁头悬浮在贴近但是不挨着盘片的位置,利用电磁来读取上面的数据。

    盘片固定在轴上的,盘片会随着轴的转动而转动。

    磁头要从里圈到外圈来回的转动才可以读取整个盘片的数据。

    因为盘片有内圈和外圈,如果不转的话只能读取内圈数据。

    2磁道,扇区

    磁头处于什么位置,当盘片转动的时候那么就把一圈的数据读取出来了。

    这一圈就是磁道,就好比是操场的跑道一样。

    磁道是逻辑上的概念,实际上看不到的。

    内圈磁道要短,外圈磁道要长。但是在早期不论是内外都划分了更小的单位就是扇区,而且是按照中心线划的。

     

    内圈的扇区空间明显要比外圈的扇区空间要小,但是每个扇区的容量都是512字节。

    这样内圈空间就比较紧张,外圈就比较空旷。

    注意是6个位存放一圈磁道的扇区。也就是00000-111111,一共是2^6,64个扇区。

    但是要去除起始的一个扇区,所以一圈磁道存储了63个扇区,这63个扇区是用来存储数据的。

    一圈63个扇区,每个扇区512字节,一圈占的空间就是512x63

    磁道,是以10个位来存储的,也就是1024条磁道。

    最外圈的磁道,也就是最长的磁道的编号是0,最里圈是1023

    注意在计算机里面0是有存在意义的,所以第1条磁道编号是0

    root账号的ID也是0

    注意盘片是很多张的,而且都是正反两面。

    也就是一张盘片有两个盘面,而且都存储了数据。有几个盘面就有几个磁头。

    下面就是有6个盘面,那么就有6个磁头。

    磁头数量是用8个位来表示的。也就是支持256个磁头。

    那么一块硬盘的最大容量是 63x512x1024x256=8455716864字节=8257536K=8064M

    这是早期时候的空间了,现在更大了。

    计算和查看磁盘空间,文件大小的单位是字节,在网络中传输数据也就是网速是以位为单位。

    [root@centos73 ~]# bc
    bc 1.06.95
    Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
    This is free software with ABSOLUTELY NO WARRANTY.
    For details type `warranty'. 
    63*512*1024*256
    8455716864
    8455716864/1024
    8257536
    8257536/1024
    8064

     

    这是早期时候的空间了,现在更大了。

    后来做了改进了, ZBR(Zoned Bit Recording)区位记录磁盘扇区结构

    早期的扇区最外圈很空旷,最里圈很挤。

    磁头不论是在里圈还是在外圈读取的扇区数是一样的。

    而ZBR不一样,磁头处于外圈,那么读取的扇区数量就更多。

    如果要提高数据的访问速度,那么磁头就要放到外圈。

    可以把要求访问快的数据放到外圈,也就是放到编号更小的磁道上。

    盘片是固定在轴上的,只要轴转,盘片也会转。所有的磁头位置也是一样的。

    如果硬盘没有数据读取了,那么磁头就会移动到磁头的停泊区。

    所以在电脑处于开机状态的时候要防止硬盘损坏,也就是磁头不要划伤盘片。

     

    3柱面

    每个盘面都有最外圈,也就是0磁道。把所有的0磁道称为0柱面。所有的1磁道称为1柱面,所有的1023磁道称为1023柱面。

    因为相同的磁道看起来像立体的柱子一样。

    一个柱面存放了 512x63x256=8257536=8064K

    不到8M

    早期的版本,比如centos5划分分区是以柱面的整数倍为单位的,

    比如1柱面,2柱面,3柱面放到1个分区里面,4柱面,5柱面放到另外一个分区里面。

     不能出现2.5柱面,3.5柱面这样划分,而是要整柱面划分分区的。

    所以早期的分区大小都是8M的整数倍。

    现在不上这样了,从centos6开始可以精确到以扇区来划分。也就是只要是512字节的整数倍都可以。

    但是不是整柱面划分会出现报警提示。Partition 1 does not end on cylinder boundary.

    [root@centos65 ~]# fdisk -l
    
    Disk /dev/sda: 214.7 GB, 214748364800 bytes
    255 heads, 63 sectors/track, 26108 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: 0x0000c75a
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1         131     1048576   83  Linux
    Partition 1 does not end on cylinder boundary.不是以柱面的边界划分
    /dev/sda2             131        6505    51200000   83  Linux
    /dev/sda3            6505        9055    20480000   83  Linux
    /dev/sda4            9055       26109   136985600    5  Extended
    /dev/sda5            9055        9316     2097152   82  Linux swap / Solaris

    Start End表示一个分区的开始柱面到结束的柱面,第2个分区和第1个分区都使用了131号柱面。

     如果是以扇区为单位划分1G的分区就更不好计算。而以柱面划分就更好计算。

    一般精确到柱面也够用了,因为现在的硬盘更大了,不在乎这么点空间的区别了

     买硬盘1T,实际上是达不到的,也就是1000G左右。商家卖的硬盘是以10的几次方计算的。

    所有的商家都是这么卖的,算是行业的潜规则了。

    三硬盘的寻址方式

    CHS和LBA

    CHS磁盘3维


    采用24bit位寻址,涉及前面所所有使用到的位,组合加起来。6位+8位+10位
    其中前10位表示cylinder柱面,中间8位表示head磁头,后面6位表示sector扇区。

    最大寻址空间8GB,现在不使用这种方法了。


    LBA(logical block addressing)


    LBA是一个整数,通过转换成CHS格式完成磁盘具体寻址


    LBA采用48个bit位寻址


    最大寻址空间128PB


    由于CHS寻址方式的寻址空间在大概8GB以内,所以在磁盘容量小于大概8GB时,可以使用CHS寻址方式或是LBA寻址方式。

    在磁盘容量大于大概8GB时,则只能使用LBA寻址方式。


    作者:wang618
    出处:https://www.cnblogs.com/wang618/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。

  • 相关阅读:
    HTML-DOM实例——实现带样式的表单验证
    HTML-DOM常用对象的用法(select/option/form/table)
    C++程序嵌入Python解释器二次开发
    线程池、协程
    Qt信号(SINGAL)与槽(SLOT)
    随机数
    字符串、内存拷贝
    模板元编程以及关键字template和typename
    std::thread,std::future,std::promise,std::async
    C++智能指针,RAII(资源获取即初始化) 原则
  • 原文地址:https://www.cnblogs.com/wang618/p/11132705.html
Copyright © 2020-2023  润新知