Member-only story
RAID咭?冇鬼用!垃圾!扔Q咗佢啦!
係呀擺明係click bait標題不過我都真心噉諗
電腦嘢係會壞,所以先有IT9呢個職位負責整電腦 (誤)。一般起server都會有一個決定係諗用唔用RAID,但呢幾年我砌新server都覺得,算9數吧啦。
買份保險都應該要知保乜嘢,如同買/沽個call/put option都要知俾/收個premium係有乜用 (誤)。噉一張比普通SAS HBA貴幾千蚊保費嘅SAS RAID咭,到底防到啲乜?
SAS?RAID咭?HBA?
SAS即係Serial Attached SCSI,如同SATA係Serial ATA,都係2000年代大勢由parallel轉serial嘅產物。至於SCSI…就以下討論而言係就當同ATA一樣啦。
首先,如果一張SAS咭係冇RAID功能嘅,我哋叫佢做HBA (Host Bus Adapter) — 字面上解即係將Host Bus (PCIe?)「適配」另一隻bus如SCSI Bus。今時今日嘅底板99.99%都有built-in嘅SATA port,不過三十年前係要插一張咭去駁Harddisk。而SAS 99%底板都唔會有,所以買server時如果要用SAS HDD/SSD嘅話,最基本都要買一張SAS HBA、又或者SAS RAID咭。
註: 但2020年今時今日我覺得SAS都係廢,下述。
RAID 0/10/50/60可以用來擴充容量,亦可以用來加快整體讀寫速度,呢啲眾所9知㗎啦。而呢篇文係想討論資料安全性保障呢一點(指壞機,唔係入侵),那麼直接入正題。
RAID咭防到乜?
RAID 1/5/6/10/50/60,可以防到你成隻disk drive死,或者部份bad sector而讀唔到。死咗一隻嘅時候就可以用mirror data或parity data去保持繼續運作。有啲咭仲可以指定一啲閒置嘅disk drive作為hot standby,直接喺出事後開始rebuild/resilver工作。
高級RAID咭通常都有以GB計嘅cache,而且有BBU (Battery Backup Unit)/電池保護,而HBA級別嘅通常都冇嘅。如同一般HDD都有幾百MB cache,呢個cache主要喺寫嘅時候用。雖然OS File System本身都會用RAM做write cache (or dirty page),但如SQL Database做一個COMMIT時,為咗滿足ACID之中Durability嘅需要,即係要確保啲資料實實在在地已經永久性哋保存先至可以向application回應COMMIT成功。