儲存、匯流排與輸入輸出

磨損平衡(wear leveling)

想像一道樓梯,每一階只能被踩幾千次就會碎裂。如果大家總踩同樣那三階,那幾階很快磨壞,其餘的卻完好如新,整道樓梯提早報廢。公平的解法是把腳步引導開來,讓每一階承受大致相等的磨損。磨損平衡正是把這個構想套用到快閃記憶體上:它把寫入與抹除的活動平均散布到所有區塊,好讓沒有任何單一區塊比其他區塊早早耗盡。

之所以需要它,是因為快閃單元有個硬限制:每個區塊只能被抹除有限次——依快閃類型大約幾千到十萬次循環——之後就無法可靠保持電荷。真實工作負載是不均衡的:有些邏輯區塊(資料庫日誌、檔案系統表)被不停重寫,而大多數資料原封不動地躺著。若不介入,熱區塊會很快死去。磨損平衡由快閃轉換層執行,追蹤每個實體區塊已承受多少次抹除循環,把新寫入引向最少耗損的區塊;有些做法甚至把冷的、極少改動的資料從低耗損區塊搬走,好讓那些區塊也分擔一份折騰。

為什麼這很重要:磨損平衡正是固態硬碟壽命以「整顆硬碟寫入的總位元組數」來衡量,而非一個熱點耗盡就立刻死去的主因。誠實的提醒是:它並不讓快閃長生不老——它讓磨損均勻,並不消除磨損。每顆硬碟仍有有限的耐久度評等,而寫入放大(每次邏輯寫入的額外實體寫入)會吃掉那份預算。磨損平衡換來壽命與可預測性;它不賜予無限次寫入。

一顆硬碟有 1000 個區塊,每個能承受 3000 次抹除。一個總是重寫第 0 號區塊的天真做法,會在 3000 次寫入後把它寫死,而其餘 999 個仍然全新。磨損平衡讓寫入輪流分布到所有區塊,所以硬碟在磨損成為問題前,大約能吸收 1000 times 3000 = 三百萬次區塊抹除。

把同樣的寫入散布到每個區塊,把可用壽命乘上了區塊數。

磨損平衡延長壽命,卻不讓快閃永恆。硬碟出廠帶有耐久度評等(寫入總位元組數);超過它,可靠度就下降。它也意味著固態硬碟會隨使用逐漸劣化,不像硬碟的機構不會因讀取而「磨損」。

又称
wear-levellingwear levelling磨損平衡耗損平均