Please enable JavaScript.
Coggle requires JavaScript to display documents.
Chapter 11: Mass-Storage Systems (Overview of Mass Storage Structure (NAND…
Chapter 11: Mass-Storage Systems
Overview of Mass Storage Structure
現代電腦常見的secondary storage
hard disk drives (HDDs)
:star:
非揮發性記憶體(nonvolatile memory; NVM):start
Disk system組成(:fire::fire::fire:圖p.3)
定義
Disk system由多片disk組成
每片disk通常雙面可存data
每一面(surface)劃分為多個同心圓軌道,叫磁軌(track)
每條track由多個sector(磁區)組成
不同面之相同Tracl No.組成tracks之集合,叫做
Cylinder
(磁柱)
Disk Access Time組成
Transfer rate : data在drive與電腦之間的傳輸速度
Positioning time(random-access time)
Seek Time : 將磁頭移到欲存取之track上方所花的時間(占最多)
Rotational latency : 將欲存取之sector轉到head下方,所花的時間
NAND Flash Controller Algorithms
flash translation layer (FTL) table : 用於追蹤那些logical block是valid的
garbage collection
(垃圾收集)
當空間不夠時就必須透過抹除來釋放空間,而抹除一個 block 時,裡面可能還包含有效的資料,此時就必須將那些資料搬移到別的地方才能抹除這個block,此動作稱之
overprovisioning
(預留空間)
預留一些page(約20%),最為隨時可被寫入的區塊。讓儲存空間將滿的時候,還有額外空間可以持續寫入資料而不影響效能
wear leveling
每個block都有抹除次數的限制,因此要讓每個block的抹除次數平均以免某些block提前壞掉
Volatile Memory
RAM drives (RAM disks)
: 透過軟體將RAM模擬當作硬碟來使用的一種技術
HDD Scheduling
名詞解釋
bandwidth
: 傳輸資料總量/(最後一次存取時間-第一次存取時間)
logical blocks
: disk由logical blocks組成,為tranfer的最小單位
Where : 以前是由OS在做,現在則是storage devices, controllers內建
方法
FCFS
說明 : 依照請求先後順序排
SSTF
說明 : 距離Head目前位置最近的track requset,優先服務(Greedy作法)
分析 : 可能會有starvation
SCAN(Elevator)
說明 : head來回雙向移動掃描,遇到request就服務。head碰到track開端或盡頭時,才折返。
分析
適合用於大量負載之情況(track requset有要均勻一致的等待時間)
head需碰到開端或盡頭才折返,此舉耗費不必要的seek time
C-SCAN
說明 : 是SCAN的變形,差別在於只提供單向服務(折返回程不提供服務)
分析
SSTF : 常見
SCAN、C-SCAN : 對於負載量大之情形效能較好,Less starvation, but still possible
deadline scheduler
說明 : 為了防止startvation,Linux所實作的一種方法
作法 : maintain獨立的的read、write queue,給read較高優先權(相較於寫,讀更容易block)
RHEL 7 :
NOOP
、
completely fair queueing scheduler (CFQ)
也都avaliable
NVM Scheduling
服務read的時間是一致的,但服務write的時間不一致
write amplification
一種不良的現象,即實際寫入的物理資料量是寫入資料量的多倍。
像是NVM設備在做垃圾收集,以及空間管理(i.e. overprovisioning),多出來的I/O請求
Error Detection and Correction
**Error detection
: 檢查是否有錯誤發生
checksum
: 對經過空間或時間所傳送資料的完整性進行檢查的一種簡單方法。
cyclic redundancy check (CRC)
: 使用雜湊函數來進行多bit的錯誤偵測
Error-correction code (ECC)
: 不只可以偵測,還可以校正某些錯誤
Storage Device Management
Boot and Mount
boot block可以指向boot volume或boot loader => 了解如何從檔案系統中載入kernel
multi-os booting時可使用開機管理程式
Swap-Space Management
說明
由OS所提供。當DRAM不夠大時,可以把process或pages從DRAM移到secondary storage
Secondary storage比DRAM慢很多,這對效能影響很大
通常多個swap space - 降低設備的I/O負擔、最好有專用設備
Can be in raw partition or a file within a file system (for convenience of adding)
Storage Attachment
存取storage的三種方式
host-attached
透過local I/O port進行連接
為了存取多個設備,使用USB、firewire等storage bus,高端系統用光纖(fibre channel)
network-attached : 透過網路線
cloud : 透過雲端(HTTP協定等)
Network-Attached Storage:star::star::star:(NAS; 網路儲存裝置)
定義 : 透過網路連接而非local connection(such as bus)的storage(遠端連接到檔案系統)
兩種常用協定
NFS : 網路檔案分享交換機制
CIFS : 讓數臺區域網路內的電腦能夠彼此分享交換檔案
實作 : 透過host與storage間的遠程過程調用(RPCs),使用TCP或UDP
Cloud Storage(雲端儲存)
類似NAS,提供網路存取
區別
NAS用在區域LAN比較多,cloud則是針對全球性WAN比較多
NAS只是檔案系統,cloud則是程式使用API來提供存取
Storage Array
說明 : 早期叫disk array。可以插好幾顆硬碟,後面有特別的電路、controller,當storage array連接出去時,有特別的對外窗口,使陣列看就好像一顆硬碟而已。
優點 : Shared storage => 更有效率
Storage Area Network(SAN;儲存區域網路)
說明
SAN是一個或多個儲存陣列,多個主機可連接到多個儲存陣列(靈活)
大型業者較常用SAN(可靠度高)
透過
LUN Masking
:start:提供特定服務
RAID Structure
定義 : 由多部便宜的disk所組成的冗餘陣列(可靠度↑),經常與
NVRAM
:star:結合以提供寫入效能
優點 : 可以提高效能、提高可靠度
其他功能
snapshot
: 可快照記錄下系統目前的狀態
RAID Levels
RAID 0 :
Disk striping
。將一組硬碟當作一個storage單位
優點 : 可平行存取(每個disk都抓少少的block,可同時運作)
缺點 : 可靠度低(若有一個壞掉,可能就無法還原)
RAID 1 :
Mirroring
or
shadowing
。 每個disk都keeps duplicate
組合
RAID 1+0 : 先strip,再整體mirrow
RAID 0+1 : 先個別mirrow,再strip
RAID 4, 5, 6 :
Block interleaved parity
: 使用更少的redundancy
JBOD(Just a Bunch of Disks)
定義 : 將多個磁碟空間合併成一個大的邏輯磁碟,不具有錯誤備援機制。
缺點 : 資料的存放機制是由第一顆磁碟開始依序往後存放,即作業系統看到的是一個大磁碟(由許多小磁碟組成)。但如果磁碟損毀,則該顆硬碟上的所有資料將無法救回