硬盘基础知识&&分区

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

硬盘基础知识

磁盘的物理组成


硬盘接口类型

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

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

  • 用途:家用+部分服务器
  • 特点:价格低、兼容性强
  • 传输模式:PIO\DMA\UDMA
  • 如下图所示: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
posted @ 2018-01-30 19:40  何瑞  阅读(751)  评论(0编辑  收藏  举报