6 Storage Devices

Week 9: October 31 - November 4, 2022

  • LOVE Chapter 14, pgs 289-290, I/O Schedulers pgs 297-304
  • DINOS Chapter 11

This is a relatively short unit where our main aim is to understand how storage devices work and examine basic IO scheduling algorithms as a precursor for understanding how to design file systems.

6.1 A video summary

6.1.1 HDD

6.1.2 Scheduling, SSD, NVM & RAID

6.1.3 RAID

Learning Objectives

  • What are the physical characteristics of hard disks that make accessing disk blocks inherently different from accessing memory pages?
  • What are the implications of how hard disks operate on file system design?
  • What is the effective transfer bandwidth? Why can’t we achieve full disk bandwidth?
  • What are block request scheduling algorithms trying to optimize?
  • What are error correcting codes?
  • What are read/write asymmetries in SSDs?
  • What is wear-leveling in SSDs?
  • What are the implications in terms of designing file systems?
  • How can multiple connected disks help with maximizing read/write bandwidth? disk reliability?
  • What is RAID? What are the different levels? What does each level provide in terms of redundancy/reliability and bandwidth performance?
  • With respect to block request scheduling, what is the write-starves-read problem? Why should read latencies be lower than write latencies and how do the different Linux IO scheduling algorithms achieve good bandwidth while reducing starvation / bounding latency?