• 硬盘基础知识&&分区


    学习记录的笔记,虽然毫无章法

    硬盘基础知识

    磁盘的物理组成


    硬盘接口类型

    • IDE
    • SATA
    • SCSI
    • SAS
    • 光纤通道

    IDE(Integrated Drive Electronic,电子集成驱动器)

    • 用途:家用+部分服务器
    • 特点:价格低、兼容性强
    • 传输模式:PIODMAUDMA
    • 如下图所示:Alt text

    SATA(Serial Advanced Technology Attachment,串行高级技术附件)

    • 用途:PC机主流趋势
    • 特点:可以对传输指令进行检查,具备自动纠错能力。
    • 如下图所示:Alt text

    SCSI(Small Computer System Interface,小型计算机系统接口)

    • 用途:服务器
    • 特点:应用范围广、多任务、带宽大、CPU占用率低、热插拔
    • 如下图所示:Alt text

    SAS(Serial Attached SCSI,串行连接SCSI接口,串行连接小型计算机系统接口)

    • 介绍:新一代的SCSI的技术
    • 用途:服务器
    • 特点:改善存储系统的效能、可用性和扩充性,与SATA硬盘的兼容性
    • 如下图所示:Alt text

    光纤通道(Fiber Channel)

    • 用途:专门为网络系统设计的接口技术
    • 特点:热插拔性、高速带宽、远程连接、连接设备数量大等
    • 如下图所示:Alt text

    硬盘种类

    • SSD
    • HHD
    • HDD

    SSD(Solid State Drive,固态硬盘)

    • 优点:读写速度快;防震抗摔性;低功耗;无噪音;工作温度范围大;轻便
    • 缺点:容量小;寿命有限;售价高

    HHD(hybrid hard drive,混合硬盘)

    • 优点:
      1. 系统启动时间减少
      2. 功耗降低
      3. 生成热量减少
      4. 硬盘寿命延长
      5. 笔记本和PAD的电池寿命延长
      6. 工作噪声级别降低
    • 缺点:
      1. 硬盘中数据的寻道时间更长
      2. 硬盘的自旋变化更频繁
      3. 闪存模块处理失败,不可能进行其中的数据恢复
      4. 系统的硬件总成本更高

    HDD(Hard Disk Drive,传统硬盘)

    • 优点:略
    • 缺点:略

    磁盘分区

    磁盘分区类型

    • MBR
    • GPT

    MBR

    第一分区

    • 开机管理程序(Bootloader)(512bytes,开机记录区[446bytes]+存放表[64bytes])
    • 例如/dev/sda[1,2,3,4]

    主分区、延伸分区

    • 四个主分区或延伸分区

    逻辑分区

    • 由延伸分区继续分割出的分区
    • 下标从5开始,如/dev/sda[5,...]
    • 分区的最小单位是:柱面

    总结

    • 主分区与延伸分区最多可以有四笔(磁盘的限制);
    • 延伸分区最多只能有一个;
    • 逻辑分区是由延伸分区持续切割出來的分割槽;
    • 能够被格式化后,作为资料存取的分割槽为主分区与逻辑分区。延伸分区無法格式化;
    • 逻辑分区的数量因操作系统而不同,在Linux系统中SATA硬盘已经可以突破63个以上的分割限制。

    GPT

    • 以LBA(Logical Block Address)分区
    • LBA默认扇区大小为512bytes,目前有4K大的扇区
    • 前34个LBA(即LBA(0~33))记录分区信息表,最后33个LBA用来备份分区信息,如下图所示:Alt text
    • LBA0:开机管理程序+GPT分区标识
    • LBA1:分区表位置、大小、备份GPT分区位置、分区表检验机制码(CRC32)
    • LBA2~LBA32:记录分区信息处
    • 从LBA2开始:每个LBA可以记录4笔分区记录,4*32=128笔。512bytes=128bytes(分区)+相关信息+64bytes(记录开始/结束扇区号码)

    开机启动程序

    文件系统

    磁盘格式

    • Windows98之前: FAT (或 FAT16)
    • Window2000之后:NTFS
    • Linux:Ext2(正统文件系统)

    相关概念

    • superblock:記錄此 filesystem 的整體資訊,包括inode/block的總量、使用量、剩餘量, 以及檔案系統的格式與相關資訊等;
    • inode:記錄檔案的屬性,一個檔案佔用一個inode,同時記錄此檔案的資料所在的 block 號碼;
    • block:實際記錄檔案的內容,若檔案太大時,會佔用多個 block 。[目录block记录了该目录下文件名和inode编号]

    分类

    • 索引式文件系统
    • 日志式文件系统

    Ext2文件系统介绍

    • Ext2格式化后如下图所示:Alt text

    block group下内容介绍

    data block

    • 原則上,block 的大小與數量在格式化完就不能夠再改變了(除非重新格式化);
    • 每個 block 內最多只能夠放置一個檔案的資料;
    • 承上,如果檔案大於 block 的大小,則一個檔案會佔用多個 block 數量;
    • 承上,若檔案小於 block ,則該 block 的剩餘容量就不能夠再被使用了(磁碟空間會浪費)

    inode table

    inode存放内容

    • 該檔案的存取模式(read/write/excute);
    • 該檔案的擁有者與群組(owner/group);
    • 該檔案的容量;
    • 該檔案建立或狀態改變的時間(ctime);
    • 最近一次的讀取時間(atime);
    • 最近修改的時間(mtime);
    • 定義檔案特性的旗標(flag),如 SetUID...;
    • 該檔案真正內容的指向 (pointer);

    总结

    • 每個 inode 大小均固定為 128 bytes (新的 ext4 與 xfs 可設定到 256 bytes);
    • 每個檔案都僅會佔用一個 inode 而已;
    • 承上,因此檔案系統能夠建立的檔案數量與 inode 的數量有關;
    • 系統讀取檔案時需要先找到 inode,並分析 inode 所記錄的權限與使用者是否符合,若符合才能夠開始實際讀取 block 的內容。
    • inode记录一个block编号需要4bytes

    思考:如果一个文件有400M,假设默认block大小为1K,磁盘是如何读取这个文件的?
    inode 記錄 block 號碼的區域定義為12個直接,一個間接, 一個雙間接與一個三間接記錄區
    12个直接: 121K = 12K;1个间接:(1K/4bytes)1K = 256K;1个双间接:((1K/4bytes)^2)1K = (2562)K;1个三间接:(((1K/4bytes)2)256)1K = (256^3)K; 12 + 256 + 256256 + 256256256 (K) = 16GB

    • 2K,4K不能这么计算,因为会受到Ext2文件系统的限制

    Superblock(1024bytes)

    • block 與 inode 的總量;
    • 未使用與已使用的 inode / block 數量;
    • block 與 inode 的大小 (block 為 1, 2, 4K,inode 為 128bytes 或 256bytes);
    • filesystem 的掛載時間、最近一次寫入資料的時間、最近一次檢驗磁碟 (fsck) 的時間等檔案系統的相關資訊;
    • 一個 valid bit 數值,若此檔案系統已被掛載,則 valid bit 為 0 ,若未被掛載,則 valid bit 為 1 。

    Filesystem Description

    描述每個 block group 的開始與結束的 block 號碼,以及說明每個區段 (superblock, bitmap, inodemap, data block) 分別介於哪一個 block 號碼之間

    block bitmap

    未使用中,使用中,空的

    inode bitmap

    記錄使用與未使用的 inode 號碼

    创建一个文件的流程

    • 先確定使用者對於欲新增檔案的目錄是否具有 w 與 x 的權限,若有的話才能新增;
    • 根據 inode bitmap 找到沒有使用的 inode 號碼,並將新檔案的權限/屬性寫入;
    • 根據 block bitmap 找到沒有使用中的 block 號碼,並將實際的資料寫入 block 中,且更新 inode 的 block 指向資料;
    • 將剛剛寫入的 inode 與 block 資料同步更新 inode bitmap 與 block bitmap,並更新 superblock 的內容。

    问题:写入文件时,第三步执行完毕后,突然断电了,该怎么解决?

    <table>
    	<tr>
    		<td>1.索引式文件系统</td>
    		<td>2.日志式文件系统</td>
    	</tr>
    </table>
    


    XFS文件系统介绍

    • 資料區 (data section)
    • 一個檔案系統活動登錄區 (log section)
    • 即時運作區 (realtime section)

    资料区

    • inode/data block/superblock

    登录区

    即时运作区

    命令xfs_info

    类似 ext家族的 dumpe2fs命令

    磁盘分区、格式化

    分区类型

    • 查看设备列表lsblk
    • 查看设备唯一号blkid
    • 查看文件系统分区类型parted device_name print

    分区工具

    • gdisk:xfs分区
    • fdisk:ext分区
    • parted:两者都可以

    格式化

    • xfs分区:mkfs.xfs
    • Ext4分区:mkfs.ext4
    • 通用:mkfs -t

    mkfs -t vfat /dev/sda5 mkfs -t ext2 /dev/sda5

    检验文件系统

    • xfs:xfs_repair dev_name
    • ext4:fsck.ext4 dev_name
  • 相关阅读:
    C# 之泛型详解
    C#方法的六种参数,值参数、引用参数、输出参数、参数数组、命名参数、可选参数
    在C#中理解和实现策略模式的绝对入门教程
    负载均衡的原理
    C#多线程编程
    深入研究虚幻4反射系统实现原理(二)
    深入研究虚幻4反射系统实现原理(一)
    虚幻4属性系统(反射)翻译
    UE4中使用数据表(Data Table)
    UE4 自定义物理表面类型(Surface Type)
  • 原文地址:https://www.cnblogs.com/herui1991/p/8386934.html
Copyright © 2020-2023  润新知