蔣文輝 孔祥倫 王玉龍
(南方電網(wǎng)數(shù)字電網(wǎng)研究院有限公司,廣東 廣州 510555)
不同于使用磁盤作為存儲(chǔ)介質(zhì),通過旋轉(zhuǎn)磁頭來進(jìn)行數(shù)據(jù)存取的傳統(tǒng)機(jī)械硬盤,固態(tài)硬盤(Solid State Drives,SSD)是用閃存電子存儲(chǔ)芯片陣列制成的硬盤,無任何機(jī)械活動(dòng)部件。
雖然機(jī)械硬盤憑借容量大、性價(jià)比高、使用壽命長、數(shù)據(jù)易恢復(fù)等優(yōu)點(diǎn)占領(lǐng)著主要的存儲(chǔ)市場,但固態(tài)硬盤由于其讀寫速度快、體積小、功耗低、抗振強(qiáng)、工作溫度范圍廣等優(yōu)勢(shì),在航空、電力等工業(yè)領(lǐng)域和消費(fèi)電子領(lǐng)域仍獲得了廣泛應(yīng)用。
由于有相關(guān)標(biāo)準(zhǔn)明確要求不得使用旋轉(zhuǎn)部件等原因[1-2],變電站自動(dòng)化設(shè)備更是大量采用了固態(tài)硬件作為外存儲(chǔ)器存儲(chǔ)程序和數(shù)據(jù),如數(shù)據(jù)通信網(wǎng)關(guān)機(jī)、智能遠(yuǎn)動(dòng)機(jī)、PMU相量測量裝置、保護(hù)信息管理單元等。
目前,有不少文獻(xiàn)研究討論了固態(tài)硬盤的應(yīng)用。
文獻(xiàn)[3]將固態(tài)硬盤與傳統(tǒng)磁盤組合,利用固態(tài)硬盤高性能和傳統(tǒng)磁盤低成本、大容量的特點(diǎn),能夠?yàn)橛脩籼峁┐笕萘康拇鎯?chǔ)空間,保證系統(tǒng)的高性能,同時(shí)還能降低成本。
文獻(xiàn)[4]對(duì)固態(tài)硬盤和傳統(tǒng)硬盤進(jìn)行了性能測試、對(duì)比分析,通過測驗(yàn)計(jì)算機(jī)響應(yīng)時(shí)間,設(shè)計(jì)了使用SSD的計(jì)算機(jī)升級(jí)方案,提升了計(jì)算機(jī)系統(tǒng)整體性能并延長了計(jì)算機(jī)服務(wù)年限。
文獻(xiàn)[5]在變電站的繼電保護(hù)裝置中采用固態(tài)硬盤作為存儲(chǔ)介質(zhì),基于PCIe總線技術(shù)實(shí)現(xiàn)了大容量存儲(chǔ)系統(tǒng)設(shè)計(jì),滿足了繼電保護(hù)裝置對(duì)數(shù)據(jù)處理安全可靠性的要求。
文獻(xiàn)[6]通過固態(tài)硬盤測試,獲得了讀寫比例、數(shù)據(jù)包大小、訪問模式等工況變化和供電電壓波動(dòng)對(duì)讀/寫速度、電流等性能特性的影響規(guī)律,測試結(jié)果表明,固態(tài)硬盤使用過程中應(yīng)保證輸入電壓的穩(wěn)定性。
硬盤的性能主要指數(shù)據(jù)讀寫速度,長期以來遠(yuǎn)低于處理器和內(nèi)存。
機(jī)械硬盤讀取數(shù)據(jù)的方式是通過磁頭在高速旋轉(zhuǎn)的盤片上進(jìn)行磁操作。受限于磁頭機(jī)械轉(zhuǎn)速,轉(zhuǎn)速7 200 r/min的機(jī)械盤,其大數(shù)據(jù)順序讀速度能達(dá)到160 MB/s,寫速度達(dá)到80 MB/s。
固態(tài)硬盤讀寫時(shí)是對(duì)閃存存儲(chǔ)元件進(jìn)行電子存取操作,速度更快,即使存在主控芯片的操作延時(shí),其讀寫速度仍能達(dá)到500 MB/s,是機(jī)械硬盤的數(shù)倍。
機(jī)械磁盤受限于磁頭移動(dòng)和磁盤旋轉(zhuǎn)等機(jī)械運(yùn)動(dòng),響應(yīng)時(shí)間和吞吐率已經(jīng)遠(yuǎn)遠(yuǎn)落后于CPU和內(nèi)存,SSD外存儲(chǔ)器高速讀寫的優(yōu)勢(shì),有效緩解了計(jì)算機(jī)系統(tǒng)長期存在的硬盤IO速度瓶頸問題。
固態(tài)硬盤的壽命主要和存儲(chǔ)單元的擦寫次數(shù)有關(guān),隨著擦寫次數(shù)上升到壽命限值,硬盤的讀寫性能下降,存儲(chǔ)的數(shù)據(jù)也會(huì)變得不可信。
固態(tài)硬盤寫入數(shù)據(jù)到存儲(chǔ)單元稱為一次擦寫,將所有的存儲(chǔ)單元全部擦寫過,則稱為一次全擦寫(P/E)。所有固態(tài)硬盤都有全擦寫限值,根據(jù)閃存單元的工藝不同,全擦寫限值有數(shù)萬次、數(shù)千次、數(shù)百次不等。
固態(tài)硬盤使用的閃存單元技術(shù)原理是一種基于浮柵技術(shù)的場效應(yīng)管(MOS晶體管),根據(jù)浮柵內(nèi)存儲(chǔ)的電子數(shù)量不同所表現(xiàn)的電壓值來表現(xiàn)不同的數(shù)據(jù)值。數(shù)據(jù)值分為1、2、3和4比特,分別對(duì)應(yīng)閃存單元的4種類型:單級(jí)閃存單元(SLC)、二級(jí)閃存單元(MLC)、三級(jí)閃存單元(TLC)和四級(jí)閃存單元(QLC)。單位存儲(chǔ)能力提高的同時(shí)伴隨的是壽命的下降,一般認(rèn)為SLC的壽命下限為全擦寫10 000次,MLC為3 000次,TCL為1 000次,QLC為150次,而價(jià)格同樣依次下降[7]。
固態(tài)硬盤一般由主控器、存儲(chǔ)介質(zhì)和固件組成,相應(yīng)也有核心技術(shù)來保障硬盤性能和壽命。固件技術(shù)將存儲(chǔ)介質(zhì)組織成塊并進(jìn)行管理,建立邏輯地址和物理地址的映射關(guān)系,以提高讀取/寫入效率并平衡寫入次數(shù)。
存儲(chǔ)塊頻繁寫入超過限值后,將造成存儲(chǔ)顆粒老化,成為壞塊。因此,數(shù)據(jù)寫入時(shí)主控器會(huì)協(xié)調(diào)寫入擦寫次數(shù)最少的存儲(chǔ)塊,來保障所有存儲(chǔ)塊的擦寫次數(shù)接近,該過程稱為“磨損均衡”。
優(yōu)化的磨損均衡算法會(huì)將硬盤中存在的長期不變數(shù)據(jù)也進(jìn)行遷移,用空出的較新存儲(chǔ)塊寫入新數(shù)據(jù),實(shí)現(xiàn)靜態(tài)磨損均衡。因此,每次上層應(yīng)用要求寫入的數(shù)據(jù)量會(huì)小于實(shí)際寫入存儲(chǔ)單元的數(shù)據(jù)量,該現(xiàn)象稱為“寫入放大”。
存儲(chǔ)單元按塊管理,則小數(shù)據(jù)寫入會(huì)占用多余的存儲(chǔ)單元,這一過程也會(huì)產(chǎn)生寫入放大,因此會(huì)針對(duì)小數(shù)據(jù)進(jìn)行合理遷移并開展垃圾回收。提高磨損均衡的合理性,優(yōu)化垃圾回收算法,降低寫入放大系數(shù),是固態(tài)硬盤優(yōu)化的核心技術(shù),能夠有效提升固態(tài)硬盤的使用壽命。
文獻(xiàn)[8]提出了一種全程優(yōu)化的垃圾回收方法,在數(shù)據(jù)初始放置、垃圾回收目標(biāo)塊的選擇、有效數(shù)據(jù)的遷移等方面盡可能全面地考慮各步驟對(duì)SSD壽命的影響,同典型算法相比,可以減少壽命磨損近30%。
文獻(xiàn)[9]提出一種超級(jí)塊重組算法,在垃圾回收時(shí)挑選每個(gè)閃存上有效數(shù)據(jù)量最小的物理塊來重組超級(jí)塊,作為垃圾回收的源超級(jí)塊。
實(shí)驗(yàn)結(jié)果表明,和傳統(tǒng)的垃圾回收算法相比,該算法能減小2/3的寫入放大,系統(tǒng)壽命提升將近3倍,適用于預(yù)留空間小但對(duì)系統(tǒng)壽命和滿盤下寫性能有要求的場景。
文獻(xiàn)[10]提出采用在控制器內(nèi)部配置緩存設(shè)備的方式提高固態(tài)硬盤整體性能,緩存設(shè)備可使隨機(jī)小數(shù)據(jù)寫入時(shí)只寫入緩存而不是閃存介質(zhì),當(dāng)匯總數(shù)據(jù)量較大時(shí)批量寫入,該方法能有效延長硬盤使用壽命,但需要增加掉電保護(hù)機(jī)制防止緩存數(shù)據(jù)丟失。
文獻(xiàn)[11-12]綜述了提高SSD耐久度的方法,包括改善磨損均衡算法、使用外部數(shù)據(jù)緩沖、降低寫入放大系數(shù)、提升預(yù)留空間、應(yīng)用區(qū)塊磨損反饋技術(shù)等。
某500 kV變電站使用的遠(yuǎn)動(dòng)網(wǎng)關(guān)機(jī)在投運(yùn)半年后即頻繁出現(xiàn)程序退出、設(shè)備死機(jī)等現(xiàn)象,重啟后能恢復(fù)。設(shè)備商檢測分析后確認(rèn)SSD(MLC顆粒)平均全擦寫次數(shù)為2 500次,已接近3 000次,部分存儲(chǔ)顆粒磨損度較高。更換SSD后問題解決,裝置運(yùn)行正常,但仍需定量地進(jìn)行分析,確定SSD寫入數(shù)據(jù)量、P/E次數(shù)與故障的關(guān)系。
SSD的寫入數(shù)據(jù)量可以使用Linux系統(tǒng)自帶的iotop命令監(jiān)測,P/E次數(shù)則需要硬盤供應(yīng)商提供相應(yīng)的工具來獲得?,F(xiàn)場SSD為MLC存儲(chǔ)顆粒,64 GB容量,不帶緩存。
模擬變電站數(shù)據(jù)環(huán)境,使用3臺(tái)樣機(jī)和SSD進(jìn)行測試,記錄操作系統(tǒng)的日平均寫入數(shù)據(jù)量,和SSD檢測工具獲得的日平均P/E次數(shù)進(jìn)行對(duì)比,結(jié)果如表1所示。
表1 SSD壽命對(duì)比測試
測試得出以下結(jié)論:
(1)帶緩存機(jī)制的SSD能有效延長使用壽命,降低放大系數(shù);
(2)隨著SSD累積P/E次數(shù)的增加,放大系數(shù)會(huì)增大很多;
(3)假定放大系數(shù)與當(dāng)前已擦寫次數(shù)為正相關(guān),則該型號(hào)SSD的預(yù)估壽命在0.6~2.3年。
現(xiàn)場SSD故障出現(xiàn)在設(shè)備投運(yùn)半年后,考慮到設(shè)備前期的場內(nèi)調(diào)試、現(xiàn)場調(diào)試至少有4個(gè)月時(shí)間,可以認(rèn)為壽命對(duì)比測試的結(jié)論較為符合現(xiàn)場情況。MLC顆粒的SSD理論累積P/E次數(shù)下限為3 000次,而本次故障發(fā)現(xiàn)平均P/E次數(shù)達(dá)2 500次時(shí)已頻繁出現(xiàn)讀寫到壞塊導(dǎo)致設(shè)備故障的情況,合理推斷是該型號(hào)SSD的磨損均衡算法效果不佳,造成部分存儲(chǔ)顆粒因磨損過度已經(jīng)退化,造成設(shè)備程序或操作系統(tǒng)運(yùn)行異常。
另外,日均30 GB的寫入數(shù)據(jù)量與變電站遠(yuǎn)動(dòng)機(jī)的場景認(rèn)知有偏差,為查明寫入數(shù)據(jù)量的程序比例,持續(xù)使用iotop命令定位分析程序的數(shù)據(jù)寫入量,發(fā)現(xiàn)存在某個(gè)服務(wù)程序的日均數(shù)據(jù)寫入量達(dá)到了26 GB。通過與軟件供應(yīng)商溝通,確認(rèn)是該遠(yuǎn)動(dòng)機(jī)啟用了一個(gè)數(shù)據(jù)斷面定時(shí)保存功能造成的。該功能不是必需的,取消后該站的SSD日平均寫入數(shù)據(jù)量降低為4 GB,預(yù)計(jì)壽命能延長7倍。
最終該故障現(xiàn)象得到根本解決的方法為:
(1)變電站自動(dòng)化設(shè)備換用其他品牌帶緩存機(jī)制的SSD;
(2)關(guān)閉自動(dòng)化設(shè)備系統(tǒng)軟件中不必要的數(shù)據(jù)保存功能。
變電站設(shè)備使用SSD,需對(duì)其狀態(tài)進(jìn)行在線監(jiān)測,評(píng)估性能變化和使用壽命,在SSD顆粒老化前預(yù)警。監(jiān)測對(duì)象包括:
SSD的寫入放大系數(shù)與剩余空間有高度相關(guān)性,剩余空間越大,則寫入放大系數(shù)越小。研究數(shù)據(jù)表明,剩余容量為50%時(shí),寫入放大系數(shù)為2左右[12];當(dāng)剩余容量低于20%時(shí),寫入放大系數(shù)會(huì)增大較多。因此,需要對(duì)剩余空間進(jìn)行監(jiān)測預(yù)警,低于20%的可用空間時(shí),使告警指示燈亮。
如能使用供應(yīng)商自帶的工具定期對(duì)SSD進(jìn)行狀態(tài)監(jiān)測,是較為合理的方式。除此之外,考慮到SSD品牌的多樣性,可以定期對(duì)SSD進(jìn)行順序讀寫測試來檢測硬盤性能是否有明顯下降,一般設(shè)定標(biāo)稱告警值為100 MB/s,連續(xù)多次速度檢測低于該值時(shí)設(shè)備應(yīng)告警。
測試寫入過程不應(yīng)對(duì)SSD造成較大的損耗,測試建議單次數(shù)據(jù)量為32 kB,連續(xù)寫入1 024次,每天執(zhí)行一次監(jiān)測,則當(dāng)天數(shù)據(jù)量不超過40 MB,對(duì)SSD損耗相對(duì)較小。測試寫性能,Linux設(shè)備一般可使用dd命令:
如為機(jī)械硬盤,測試結(jié)果一般返回在100 MB/s左右,固態(tài)硬盤在500 MB/s左右。
自動(dòng)化設(shè)備的狀態(tài)監(jiān)測軟件模塊集成供應(yīng)商提供的監(jiān)測工具,每日定時(shí)對(duì)SSD進(jìn)行一次狀態(tài)讀取,獲取當(dāng)前全擦寫P/E次數(shù)S,與前一天的差值即為日P/E次數(shù)T,以公式(3 000-S)/T來預(yù)估剩余壽命天數(shù)。
對(duì)于新盤,預(yù)估壽命應(yīng)大于8年,否則應(yīng)分析寫入數(shù)據(jù)量是否偏大,需要優(yōu)化應(yīng)用程序并考慮加大SSD容量。考慮到換貨周期,建議預(yù)估剩余壽命低于90天時(shí)告警。
本文介紹了固態(tài)硬盤SSD的原理和相關(guān)技術(shù)概念,重點(diǎn)討論了SSD的性能和壽命相關(guān)的核心技術(shù)。通過分析一起典型的變電站自動(dòng)化設(shè)備SSD壽命相關(guān)的故障案例,指出緩存機(jī)制有助于提升SSD壽命,不恰當(dāng)?shù)能浖褂脮?huì)加速SSD的老化。
最后,本文提出了自動(dòng)化設(shè)備的SSD在線監(jiān)測方案,從預(yù)留容量、讀寫速度、預(yù)估壽命三個(gè)方面進(jìn)行狀態(tài)監(jiān)測,為應(yīng)用SSD存儲(chǔ)的自動(dòng)化設(shè)備的穩(wěn)定可靠運(yùn)行提供技術(shù)保障。
本文的研究內(nèi)容可為變電站自動(dòng)化設(shè)備合理使用SSD提供有益的參考。