(2021) 22 [持久化] 1-Bit的存储
(2021) 22 [持久化] 1-Bit的存儲(chǔ)
南京大學(xué)操作系統(tǒng)課蔣炎巖老師網(wǎng)絡(luò)課程筆記。
視頻:https://www.bilibili.com/video/BV1HN41197Ko?p=22
講義:http://jyywiki.cn/OS/2021/slides/12.slides#/
背景
回顧
操作系統(tǒng)是什么?一組對(duì)象 + 一組API
- 一組對(duì)象
- UNIX: everything is a file
- 數(shù)據(jù) /bin/sh, a.txt, …
- 設(shè)備 /dev/tty, /dev/sda, …
- UNIX: everything is a file
- 一組 API
- open, read, write, fork, execve, exit, mmap, …
最后沒(méi)有解釋的部分 :持久化
- 文件是如何實(shí)現(xiàn)的?
- 為什么關(guān)機(jī)以后文件還在?
本次課程的目標(biāo)
理解 1-bit 在物理世界中是如何存儲(chǔ)的,以及它們背后的存儲(chǔ)設(shè)備
- 磁:磁帶、磁盤(pán)、軟盤(pán)
- 光:光盤(pán)、CD-RW
- 電:NAND Flash
為什么要在這門(mén)課討論持久化?持久化:有關(guān) “操作系統(tǒng)對(duì)象” 的故事
- “最小” 操作系統(tǒng)里的對(duì)象
- 進(jìn)程 (狀態(tài)機(jī))
- (持久保存) 的數(shù)據(jù) (文件)
- making information persist, despite computer crashes, disk failures, or power outages is a tough and interesting challenge
- 文件系統(tǒng)接管了 UNIX 世界的 “對(duì)象管理”
存儲(chǔ)介質(zhì)及評(píng)估方法
持久化:需要 “non-volatility”
- 能把 1-bit 穩(wěn)定持久地存儲(chǔ)在物理世界
- 再次見(jiàn)證人類(lèi)的歷史!
存儲(chǔ)設(shè)備
- 邏輯上可以看成是一個(gè) bit/byte array
- 1 TB 的磁盤(pán) = 1T 個(gè) 1-byte (8?1012 個(gè) 1-bit)
- 通常支持按塊 (block) 的方式讀寫(xiě)
- 區(qū)別于 RAM (Random Access Memory)
- 評(píng)價(jià)方法:價(jià)格、擴(kuò)展性 (容量)、速度、可靠性
存儲(chǔ)介質(zhì):磁
磁帶
介紹
用 “磁化方向” 表示 1-Bit 信息,物理空間一定區(qū)域的磁介質(zhì),將N/S 極的朝向作為 1-bit。
分析
-
價(jià)格:非常低
-
擴(kuò)展性 (容量):非常高
-
讀寫(xiě)速度:順序讀取:勉強(qiáng);隨機(jī)讀取:幾乎完全不行。
-
可靠性:存在機(jī)械部件、需要保存的環(huán)境苛刻。
-
今天的應(yīng)用場(chǎng)景:冷數(shù)據(jù)的專(zhuān)用備份
磁鼓
介紹
“并行版” 磁帶
如果把磁帶看成 “一維” 存儲(chǔ),磁鼓就是磁帶的集合。
分析
- 更快的速度
- 更好的隨機(jī) read/write 性能
磁盤(pán)*
介紹
“二維并行版” 磁帶
- 我們可以用整個(gè)二維平面來(lái)存儲(chǔ) bits
- 在二維平面上尋址需要兩個(gè)維度的控制
依靠 3D 技術(shù),有望突破 100 TB 存儲(chǔ)。
盤(pán)片 + 柱面 + 磁道 + 扇區(qū) = 定位到 512 字節(jié)
- 為了讀/寫(xiě)一個(gè)扇區(qū)
- 讀寫(xiě)頭需要到對(duì)應(yīng)的磁道
- 轉(zhuǎn)軸將盤(pán)片旋轉(zhuǎn)到讀寫(xiě)頭的位置
分析
分析
-
價(jià)格:很低
-
擴(kuò)展性 (容量):很高 (二維平面上鋪滿的磁帶 + 多個(gè)盤(pán)片)
-
讀寫(xiě)速度:順序讀取:較高;隨機(jī)讀取:勉強(qiáng)。
-
可靠性:存在機(jī)械部件、磁頭劃傷盤(pán)片導(dǎo)致數(shù)據(jù)損壞
-
今天的應(yīng)用場(chǎng)景:計(jì)算機(jī)系統(tǒng)的主力數(shù)據(jù)存儲(chǔ) (海量數(shù)據(jù):便宜才是王道)
性能調(diào)優(yōu)
為了讀/寫(xiě)一個(gè)扇區(qū)
- 7200rpm → 120rps → “尋道” 時(shí)間 8.3ms
- 讀寫(xiě)頭移動(dòng)時(shí)間通常也需要幾個(gè) ms
通過(guò)緩存/調(diào)度等緩解
- 例如著名的 “電梯” 調(diào)度算法
- 現(xiàn)代 HDD 都有很好的 firmware 管理磁盤(pán) I/O 調(diào)度
- /sys/block/[dev]/queue
- noop deadline [cfq]
軟盤(pán)
介紹
降低交換數(shù)據(jù)的成本:把磁盤(pán) (硬盤(pán)) 的讀寫(xiě)頭和盤(pán)片分開(kāi),分成電腦上的讀寫(xiě)頭 (drive) 和磁盤(pán) (disk)。
分析
-
價(jià)格:低
-
擴(kuò)展性 (容量):低 (暴露的存儲(chǔ)介質(zhì))
-
讀寫(xiě)速度:順序/隨機(jī)讀取:低
-
可靠性:低 (暴露的存儲(chǔ)介質(zhì))
-
今天的應(yīng)用場(chǎng)景:躺在博物館供人參觀
存儲(chǔ)介質(zhì):坑(光)
除了磁介質(zhì)以外,還有別的辦法可以存儲(chǔ) 1-bit 嗎?
CD (Compact Disk)
介紹
在完美反射光線的表面上挖出 (幾乎) 不反射光線的坑,激光掃過(guò)表面,就能讀出坑的信息來(lái)。
由飛利浦 (激光碟片) 和索尼 (數(shù)字音頻) 發(fā)明。
分析
-
價(jià)格:很低 (而且很容易通過(guò) “壓盤(pán)” 復(fù)制)
-
擴(kuò)展性 (容量):高
-
讀寫(xiě)速度:順序讀取速度高;隨機(jī)讀取勉強(qiáng);寫(xiě)入速度近乎為零 (挖坑容易填坑難)
-
可靠性:高
-
今天的應(yīng)用場(chǎng)景:數(shù)字媒體的分發(fā) (即將被互聯(lián)網(wǎng) “按需分發(fā)” 淘汰)
”挖坑“ 技術(shù)的進(jìn)展
CD (740 MB):780nm 紅外激光
DVD (4.7 GB):635nm 紅色激光
Blue Ray (100 GB):405nm 藍(lán)紫色激光
“挖坑” 不只是數(shù)據(jù)存儲(chǔ)
光刻機(jī)
CD-RW
能否克服只讀的限制?
-
方法 1
- 用激光器燒出一個(gè)坑來(lái) (“刻盤(pán)”)
- 使用持久化數(shù)據(jù)結(jié)構(gòu) (append-only)
-
方法 2:改變材料的反光特性
- PCM (Phase-change Material)
- How do rewriteable CDs work?
存儲(chǔ)介質(zhì):電
之前的持久存儲(chǔ)介質(zhì)都有致命的缺陷
- 磁:機(jī)械部件導(dǎo)致 ms 級(jí)延遲
- 坑 (光): 一旦挖坑,填坑很困難 (CD是只讀的)
最后還得靠電 (電路) 解決問(wèn)題
Solid State Drive
介紹
Flash Memory “閃存”:floating gate 的充電/放電實(shí)現(xiàn) 1-bit 信息的存儲(chǔ)。
分析
- 價(jià)格:低 (大規(guī)模集成電路,便宜)
- 擴(kuò)展性 (容量):高 (3D 空間里每個(gè) (x,y,z) 都是一個(gè) bit)
- 讀寫(xiě)速度:高(直接通過(guò)電路讀寫(xiě))
- 不講道理的 IMBA 特性:容量越大,速度越快 (電路級(jí)并行)
- 快到需要淘汰了舊的 SATA 接口標(biāo)準(zhǔn) (NVMe)
- 可靠性:高 (沒(méi)有機(jī)械部件,隨便摔)。
但有一個(gè)意想不到的缺點(diǎn) (大家知道是什么嗎?) —> 壽命較短。
壽命
放電 (erase) 做不到 100% 放干凈
- 放電數(shù)千/數(shù)萬(wàn)次以后,就好像是 “充電” 狀態(tài)了
- dead cell; “wear out”
- 必須解決這個(gè)問(wèn)題 SSD 才能實(shí)用
USB Flash Disk
介紹
優(yōu)盤(pán)容量大、速度快、相當(dāng)便宜。很快就取代了軟盤(pán),成為了人手 nnn 個(gè)的存儲(chǔ)介質(zhì)。
- Compact Flash (CF, 1994)
- USB Flash Disk (1999, “朗科”)
NAND Wear-Out 的解決:軟件定義磁盤(pán)
每一個(gè) SSD 里都藏了一個(gè)完整的計(jì)算機(jī)系統(tǒng)
- FTL: flash translation layer,“wear leveling”: 軟件管理那些可能出問(wèn)題的 blocks。
wear leveling
維護(hù)一個(gè) block lookup table (BLT)
- 然后 copy-on-write!
- 垃圾回收、block 重分配……
U盤(pán)和SSD的區(qū)別
優(yōu)盤(pán), SD 卡, SSD 都是 NAND Flash
- 但軟件/硬件系統(tǒng)的復(fù)雜程度不同,效率/壽命也不同
- 典型的 SSD
- CPU, on-chip RAM, 緩存, store buffer, 操作系統(tǒng) …
- 壽命: ~1 PiB 數(shù)據(jù)寫(xiě)入 (~1,000 年壽命)
- SD 卡
- SDHC 標(biāo)準(zhǔn)未規(guī)定
- 黑心商家一定會(huì)偷工減料 (畢竟接口完全一樣)
- 但良心廠家依然有 ARM 芯片
- SDHC 標(biāo)準(zhǔn)未規(guī)定
- 典型的 SSD
一定不要用便宜的優(yōu)盤(pán)保存重要數(shù)據(jù)
FTL: 性能、可靠性、安全性的難題
大家可記得修電腦引發(fā)的血案?
- 首先,(快速) 格式化是沒(méi)用的(如實(shí)驗(yàn)M5)。
- 在你理解了 FTL 之后,即便格式化后寫(xiě)入數(shù)據(jù) (不寫(xiě)滿),同一個(gè) LBA 被覆蓋,PBA 依然存儲(chǔ)了數(shù)據(jù) (copy-on-write)。
總結(jié)
本次課內(nèi)容與目標(biāo)
- 理解 1-bit 在物理世界中是如何存儲(chǔ)的
- 磁、光、電和它們對(duì)應(yīng)的存儲(chǔ)設(shè)備
Takeaway messages
- 存儲(chǔ)技術(shù)一直在發(fā)展
- 多核心處理器、GPU、TPU, … 全部都對(duì)內(nèi)存帶寬有巨大的需求
- NVM 容量超過(guò) DRAM, 性能開(kāi)始接近 DRAM, 會(huì)發(fā)生什么?
- 例子: Intel/Micron 3D XPoint (PCM)
- 將來(lái),計(jì)算機(jī)系統(tǒng)基礎(chǔ)/操作系統(tǒng)書(shū)的教科書(shū)必將被改寫(xiě)
總結(jié)
以上是生活随笔為你收集整理的(2021) 22 [持久化] 1-Bit的存储的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 农投公司是国企吗
- 下一篇: webkitlineclamp css3