[vSAN]電子儲存介質 - SSD的介紹

科技日新月異,第一款商用SSD固態硬碟於1991年問世,當時大小只有20MB,然而由於價格太貴,一直到2007年,才開始產生主流需求。在SSD大行其道之前,主要是HDD的天下。到了2022年,SSD單位容量的成本越來越低,所有有興趣想涉略儲存領域的人都必須了解SSD。

SSD和HDD最大的差別就是「介質」的不同。HDD使用「磁」的正負極記錄0和1的資料,而SSD使用的是「電子」正負極代表0和1,這間接影響了尋址的速度。HDD需要一個磁碟頭在磁盤上逐一掃描,而SSD利用電子,能快速定位目標地址,這也說明了為何SSD相較於HDD有這麼大的I/O速度差異。

比較項目 SATA HDD SATA SSD 差別
平均開機時間 27秒 8秒 x3.5
連續讀/寫(MB/s) 160 / 60 540 / 330 x3 / x6
隨機讀/寫時間(IOPS) 450/400 98000 / 70000 x217 / x175
讀寫功耗(W) 6 5 x1
重量 120g 80g x1.5
每GB成本(NTD$) 1.3$ 2.3$ x2
介質 磁性介質 電子介質
讀取寫入 磁頭+馬達 SSD控制器
耐震程度

如今HDD已經非常成熟,但SSD還有巨大的進步空間。製程的進步使得晶片密度越來越高,相同尺寸能容納更多容量。另外,SSD裡面有controller,也就是FTL (Flash Translation Layer),軟體的迭代升級也能加速SSD的I/O速度。

SSD使用的半導體元件是NAND Flash,是一種非易失性儲存技術,即使斷電資料也會保存。NAND Flash在SSD的排列最小單元為多個bits,根據有幾個bits目前主流有1個至4個,分別為SLC、MLC、TLC和QLC。每次對資料進行I/O,只能對最小單元的所有bits同時操作,這也造就了SLC的I/O速度最快但單位容量最貴,而QLC的速度最慢但單位容量最便宜。

SSD有個致命的缺點,就是NAND Flash有一定的讀寫數量限制。對同一塊NAND Flash有過多頻繁寫入,會影響SSD的使用壽命。因此在SSD內,假如500GB好了,會預留一小塊空間作為SSD的firmware,當有I/O過來時,依靠演算法負責「均勻」地對每一塊NAND Flash進行寫入和擦除。

有了上述基本知識後,簡單介紹一下電腦上的一次I/O是如何與SSD固態硬碟交互的,如下圖所示:

  1. 使用者使用鍵盤滑鼠在電腦上對資料進行讀取/寫入。
  2. 電腦的作業系統上的檔案系統會將使用者的操作翻譯成與硬碟交互的Block storage I/O指令。
  3. 藉由Interface協議,將I/O指令傳遞給SSD的Controller。
    1. 目前SSD有三種Interface協議,分別為SAS,SATA和PCIe。SAS和SATA比較舊,無法發揮NAND的極速。目前PCIe搭配NVMe的SSD越來越主流,能發揮NAND的性能。
    2. PCIe是接口,NVMe是傳輸協議。
    3. SATA是接口也是傳輸協議,SATA一般是家用,目前可以達到6GB/s。
    4. SAS是接口,用的是SCSI傳輸協議,SAS一般是企業用。
  4. SSD Controller (FTL)根據要寫入的I/O,判斷寫入或讀取哪個Block。
    1. SSD Controller對NAND Flash的操作有讀取、寫入和擦除。注意,如果要對該NAND Flash上的資料進行「更新」,必須要先擦除後才能寫入。
    2. 影響NAND Flash壽命的就是擦除次數。
    3. Controller的工作就是讓擦除次數盡量減少,並均勻分配在每一塊NAND Flash上。
  5. 透過Interface協議,將資料一路返回到電腦作業系統。

總結

  • SSD與HDD最大的差別在於介質的不同,導致了速度上的巨大差異。
  • SSD的成本逐年下降,逐漸成為主流儲存設備。
  • SSD的NAND Flash技術雖然有讀寫次數限制,但透過Controller的優化,能有效延長壽命。
  • PCIe搭配NVMe的SSD成為主流,能最大限度發揮NAND Flash的性能。