閑聊磁盤

云時代的來臨導致很多同學不在那么關(guān)心基礎(chǔ)硬件的選型上面了,很慶幸的玩過了各種磁盤介質(zhì)岂丘,1w 轉(zhuǎn)企業(yè)級 STAT * 8 Raid 10 「BBU、內(nèi)置閃存」到 SSD 到 Pcie SSD,也算見證了在不優(yōu)化任何代碼的前提下祟辟,我們用磁盤抗住了一波波的進攻÷乱蓿「云時代對應的是啥川尖,升配啊。。叮喳”环迹」

機械硬盤

看圖就能看出這個就是一個完全拼轉(zhuǎn)速,拼多碟的冬冬馍悟,可以提高的空間也能想象要么盤更多畔濒,要么提高單次磁頭旋轉(zhuǎn)的效率 「傳統(tǒng)優(yōu)化數(shù)據(jù)庫所有很多系統(tǒng)批量操作,隨機轉(zhuǎn)順序很大程度上面是存儲介質(zhì)的限制了太多的想象锣咒∏肿矗」,為了提高存儲的可用性毅整,自然而然的出現(xiàn)了 Raid 卡這樣一個東西趣兄,raid卡通過多盤綁定 raid0、raid10悼嫉、raid6 等實現(xiàn)了性能與安全性的平衡艇潭,raid 并非上了就高枕無憂了,需要考慮 BBU 充放電的情況戏蔑,此時基本上就無法利用raid卡本身的cache 「這個也是可以監(jiān)控的」蹋凝,所以后來出現(xiàn)了直接在 raid 卡上面放一個小閃存的東西∽芸茫「多年前在測試 MySQL 的時候還發(fā)現(xiàn)了當STAT * 8 Raid 10鳍寂,基本上就已經(jīng)到達Raid卡的瓶頸了,而且之后在高性能 MySQL 一書中作者也提高了這個情況」

機械硬盤

SSD

第一次接觸這個東西情龄,也是在公司 DB 到達瓶頸迄汛,又不想拆的情況下,我們直接上了一批 SSD 接著么什么 Slow Query 不存在的骤视。

SSD 全稱 Solid State Disk隔心,就是大家平時提到的固態(tài)硬盤,是一種完全由電子元器件組成的持久化存儲設備尚胞,這是和傳統(tǒng)機械硬盤(Hard Disk Drive硬霍,簡稱 HDD)的重要區(qū)別。SSD 和機械硬盤相比笼裳,有著更高的 IOPS唯卖,更高的帶寬,更低的訪問 latency躬柬,還兼容目前主流的 HDD 接口拜轨,比如 SATA SAS 等。現(xiàn)在市場上的 SSD 主要都是基于 NAND Flash 的允青。

? ? SSD 主要組件

? ? 1. 控制器芯片

? ? 2. NAND 芯片

? ? 3. 電容橄碾,掉電保護,保證數(shù)據(jù)安全性

? ? 4. DRAM,緩存元數(shù)據(jù)

? ? 5. 對外接口法牲,圖中是 SATA 接口

? ? 6. NOR Flash史汗,引導 SSD


SSD

? ? NAND 芯片

? ? NAND 是存儲最終數(shù)據(jù)的介質(zhì),NAND 實際上是一種 EEPOM(加電可擦除可編程 ROM),最基本的組成單位稱作 cell拒垃,而 cell是一種類似 MOSFET(金屬-氧化層 半導體場效晶體管)的電子元件停撞。主要的部分是 ControlGate(控制閘,簡稱 CG)和 Floating Gate(浮動閘悼瓮,簡稱 FG)戈毒。CG 的作用就是通過加不同電壓來對 FG 進行充放電,改變 cell 存儲的 bit FG是一個與周圍絕緣的氧化物層横堡,電子可以在 FG 里長久保存而不會輕易泄露埋市,這也是 NAND存儲數(shù)據(jù)非易失的原因。

cell

? ? 上圖也介紹了針對 cell 的三種操作命贴,分別是讀操作 寫操作和擦除操作道宅,先假設每個 cell 只 存儲一個 bit

? ? ? ? 讀操作,在 CG 上加 5V 的電壓套么,然后根據(jù)讀到電壓值去判斷這個 cell 存儲的 是 0 還是 1

? ? ? ? 寫操作,在 CG 上加 20V 電壓碳蛋,電子被 FG 捕獲胚泌,相當于一個充電過程。一般 寫之后還會進行讀校驗肃弟,判斷寫入是否成功玷室,正常寫入完應該是 0

? ? ? ? 擦除操作,加電壓的方向和寫操作正好是相反的笤受,作用也是相反的穷缤,相當于對 FG 的一個放電過程,擦除完成 cell 代表的是 1


NAND 芯片 組成

? ? Cell 組成 Page箩兽,Page 組成 Block津肛,Block 組成 Plane,Plane 組成 Die汗贫,多個 Die 最終封裝成我 們之前看到的 NAND 芯片身坐。從上面組成中我們重點分析一下 Page 和 Block。Page 主要由兩部分組成落包,Main 和 OOB 兩部分部蛇,Main 主要是存儲實際寫的數(shù)據(jù),而 OOB 主要存儲一些元數(shù)據(jù)信息和 ECC 信息咐蝇,Page 在出廠時一般是 0xFF涯鲁,也就是全部擦出過一遍。 Block 是由一組 Page 來組成。并且還有很重要的一點就是抹腿,Page 是 SSD 最小的讀寫單位岛请,而 Block 是最小的擦除單位,這 就造成了所謂的寫入放大問題(Write Amplification)幢踏。SSD 按照 Block 去擦除髓需,這樣做的原因一 方面是由于底層電路設計限制,另一方面原因是為了 SSD 本身壽命和響應時間考慮房蝉。

? ? Garbage collection

? ? ? ? 垃圾回收指的是回收已經(jīng)失效的數(shù)據(jù)頁僚匆,當然最終回收的時候還是以 block 為單位的。為什么 SSD 需要垃圾回收搭幻,而傳統(tǒng)硬盤不需要呢咧擂。主要有兩點原因構(gòu)成:不支持 In Place Update 和擦除單位最小是 block。我們先引入一個概念 Write amplification 「寫入放大」

Write amplification

上面的公式右邊被稱為寫入放大因子檀蹋,公式是放大因子計算方法松申。寫入放大的原因也是我們之前提到的 SSD 不支持數(shù)據(jù)覆蓋寫。從 SSD 寫入原理來看俯逾,寫入放大因子一般是大于 1 的贸桶,目前企業(yè)級 SSD 的寫入放大因子一般都在 1.1 左右。


垃圾回收流程圖

? ? 1.首先在數(shù)據(jù)塊 X 的四個可 用頁里寫入 A-D 現(xiàn)在垃圾回收一般都是在后臺去執(zhí)行桌肴,垃圾回收對 讀寫影響還是會比較大的皇筛,所以要控制好這個速度,既要保證當前可用空閑塊比 例坠七,也要保證盡可能不要影響 寫入能力水醋。 提到垃圾回收,還涉及到另外 兩個概念:

? ? 1) Trim

? ? ? ? Trim 是一個 ATA 指令彪置。由操作系統(tǒng)發(fā)送給 SSD 主控制器拄踪,告訴它哪些數(shù)據(jù)占的地址是“無效”的,避免不必要的垃圾回收遷移數(shù)據(jù)拳魁。

? ? 2) Over-provisioning

? ? ? ? OP 簡單來說就是預留空間惶桐,SSD 出廠時候一般都有預留,出廠 OP 空間比例在 10%左右潘懊,用戶也可以自己預留 OP耀盗。OP 可以用于磨損調(diào)度和垃圾回收,OP 空 間越大卦尊,性能越好越穩(wěn)定叛拷,壽命越久,寫入放大比例越低岂却。上面的 Trim 和 OP 都是對垃圾回收效率和提高壽命有好處的忿薇∪雇郑「如果需要較高性能、建議越大越好 個人建議 20%」

? ? 2.在數(shù)據(jù)塊 X 寫入 E-H,然后 對 A-D 進行更新署浩,然后把新 數(shù)據(jù)寫入到 A’-D’,A-D 標記 為無效

? ? 3.為了使 A-D 數(shù)據(jù)頁可用揉燃, 就只能把 E-H 和 A‘-D’復制到 數(shù)據(jù)塊 Y,然后擦除數(shù)據(jù)塊 X

? ? Bad Block Management(壞塊管理)和 ECC

? ? ? ? 關(guān)于壞塊管理筋栋,同樣可以監(jiān)控也必須要監(jiān)控炊汤,先說一下壞塊的來源,第一是出廠時候有一定的壞塊比例弊攘,這個比例 MLC 一般控制在 5%抢腐,SLC 一般控制在 2%。第二是隨著讀寫次數(shù)增加襟交,導致 cell電子泄漏迈倍,無法修復就變成壞塊〉酚颍控制器會維護一張壞塊表啼染,記錄哪些數(shù)據(jù)塊是不可用的。ECC 算法是保證 SSD 數(shù)據(jù)可靠性和壽命的一個非常重要的特性焕梅。尤其在 NAND 制程越來越低的情況下迹鹅,cell 之間的距離越來越小,讀寫都有可能造成對鄰近 cell 的狀態(tài)變化贞言。

個人總結(jié)

? ? 目前企業(yè)級 SSD 主要是兩種類型斜棚,分別是 SATA SSD 和 Pcie SSD,建議在核心實例上面「前提自建IDC」直接考慮Pcie SSD「自帶Raid 5」蜗字,在高吞吐量的分布式數(shù)據(jù)庫中打肝,自帶緩存層或者冷熱數(shù)據(jù)分離功能的數(shù)據(jù)庫脂新,直接將類似數(shù)據(jù)丟到 SSD 中去挪捕,提高瞬時抗壓能力,提高穩(wěn)定性争便〖读悖「其實 STAT SSD 和 Pcie SSD 最最底層的閃存顆粒是一樣的,只是在接口滞乙、與內(nèi)置調(diào)度器算法上面有巨大的差異」奏纪。很多數(shù)據(jù)庫廠商與硬件廠商已經(jīng)在各種嘗試軟硬結(jié)合的解決方案了,在計算存儲分離的趨勢下斩启,其實可以將大量的計算操作下沉到最最底層的硬件服務器上面去執(zhí)行序调,來幫助計算節(jié)點提高效率,同樣在云上面的大量架構(gòu)都是類似的邏輯兔簇,沒有絕對的計算存儲分離都是相對的发绢、是互助的硬耍。重復利用基礎(chǔ)軟件設計 & 底層硬件的優(yōu)勢發(fā)揮最大的效能「是不是也是一種提高效率的表現(xiàn)」。



感謝 微博 zolker 的分享 「漫談SSD原理與應用實踐」边酒,借鑒學習了很多经柴。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市墩朦,隨后出現(xiàn)的幾起案子坯认,更是在濱河造成了極大的恐慌,老刑警劉巖氓涣,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件牛哺,死亡現(xiàn)場離奇詭異,居然都是意外死亡春哨,警方通過查閱死者的電腦和手機荆隘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赴背,“玉大人椰拒,你說我怎么就攤上這事』思裕” “怎么了燃观?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長便瑟。 經(jīng)常有香客問我缆毁,道長,這世上最難降的妖魔是什么到涂? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任脊框,我火速辦了婚禮,結(jié)果婚禮上践啄,老公的妹妹穿的比我還像新娘浇雹。我一直安慰自己,他們只是感情好屿讽,可當我...
    茶點故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布昭灵。 她就那樣靜靜地躺著,像睡著了一般伐谈。 火紅的嫁衣襯著肌膚如雪烂完。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天诵棵,我揣著相機與錄音抠蚣,去河邊找鬼。 笑死履澳,一個胖子當著我的面吹牛嘶窄,可吹牛的內(nèi)容都是我干的缓屠。 我是一名探鬼主播,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼护侮,長吁一口氣:“原來是場噩夢啊……” “哼敌完!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起羊初,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤滨溉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后长赞,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體晦攒,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年得哆,在試婚紗的時候發(fā)現(xiàn)自己被綠了脯颜。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡贩据,死狀恐怖栋操,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情饱亮,我是刑警寧澤矾芙,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站近上,受9級特大地震影響剔宪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜壹无,卻給世界環(huán)境...
    茶點故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一葱绒、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧斗锭,春花似錦地淀、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽她倘。三九已至璧微,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間硬梁,已是汗流浹背前硫。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留荧止,地道東北人屹电。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓阶剑,卻偏偏與公主長得像,于是被迫代替她去往敵國和親危号。 傳聞我的和親對象是個殘疾皇子牧愁,可洞房花燭夜當晚...
    茶點故事閱讀 45,055評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 簡介 SSD(Solid State Drives),俗稱固態(tài)硬盤外莲,相對原來主軸旋轉(zhuǎn)猪半,并無機械部分,主要由SS...
    mysia閱讀 4,993評論 0 10
  • 我們知道機械硬盤最大的缺點在于,尋道時間比較長声邦,也就是不適合隨機小塊IO乏奥。所以這幾年固態(tài)存儲大行其道,因為它對任何...
    dy2903閱讀 877評論 0 3
  • 前言 為了提升我們的軟件性能亥曹,我們有多種方法邓了,如合理的數(shù)據(jù)結(jié)構(gòu)、優(yōu)秀的算法媳瞪,還有非常重要的一點就是:依據(jù)軟件所依附...
    兩棵橘樹閱讀 4,667評論 1 15
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,103評論 1 32
  • 梧葉兒/無題(五體)梧葉兒/無題(五體) 作者:心博 體一 新年至驶悟,官最忙,巧妙便風光材失。 為情感痕鳍,應大方, 莫堂皇...
    心博1閱讀 319評論 0 1