核心概念:分層抽象化

儲存系統採用分層架構,就像建造大樓一樣從地基開始逐層向上建構。每一層都為上層提供服務,同時隱藏下層的複雜性。這種設計提供了靈活性、可維護性,以及更高級的功能抽象

儲存層次結構(由下而上)

1. Storage Devices

最底層的實際硬體,包括傳統硬碟、SSD等儲存媒體。作業系統將這些表示為裝置檔案(如 /dev/sda

在 UNIX 中,我們將裝置都當作檔案來看待(/dev/*)

  • sd*: SATA / USB drives
  • vd*: virtualized drives
  • nvme*n*: NVMe drives

2. Partitions

將儲存設備劃分成固定大小的子區段,就像把土地劃分成不同地段,而 Partition Scheme 則是電腦用來進行 Partition 劃分的方法,以下介紹 MBR 和 GPT 兩種方法

D-NASA-Lec03ca-MBR D-NASA-Lec03cb-GPT

3. RAID陣列層

D-NASA-Lec03cc-RAID

4. Logical Volume Management (LVM)

D-NASA-Lec03cd-LVM

5. File System Layer

最頂層是檔案系統交換區資料庫儲存。這些是應用程式和使用者實際接觸的層次。檔案系統(如ext4、NTFS)提供了檔案和目錄的抽象,讓我們不需要直接處理區塊和扇區

D-NASA-Lec03ce-btrfs D-NASA-Lec03cf-zfs

我們用 mkfs (make file system) 指令建立在 Partition 上建立 File System

mkfs.ext4 /dev/vdi2dev/vdi2 上建立 ext4 檔案系統

D-NASA-Lec03cg-UUID