Avg I/O time = Avg Access Time + Amount to transfer/transfer rate + Controller overhead
Illustration
HDD scheduling
It means scheduling the disks I/O
requests (OS maintains a queue of
requests). The goal of HDD scheduling
is to minimize seek time (that is
proportional to seek distance).
Sources of disk I/O requests
OS
System processes
User processes
Scheduling queue management
Algorithms
First-come First-served (FCFS)
SCAN
Arm goes to one end of
the disk and then moves
to the other end.
C-SCAN
Arm goes to one end and
it returns to the
beginning when it
reaches that end
continuing the
movement as a cycle.
More uniform wait time than SCAN.
In the past, OS was
responsible for that
management. Modern
devices have controllers
built into the storage device.
Ex.: Implementation in Linux. Uses 2
queues for reading (1 C-SCAN and 1 FCFS)
and 2 for writing operations (1 C-SCAN
and 1 FCFS). It also implement an aging
mechanism to avoid starvation.
Disk bandwidth
Total number of bytes
transferred divided by
the total time between
the first request and the
completion of the last
service.
Nonvolatile Memory (NVM)
Disk-drive like
Solid-state Disk (SSD)
Other forms
USB drives
Main storage in smartphone
Characteristics
More reliable than HDD
More expensive per MB than HDD
May have shorter lifespan
Much faster than HDD
No moving parts
Limited number of writes (Ex. ~100000)
Measure: drive writes per day (DWPD)
Ex. 1TB NAND drive
with 5 DWPD is
expected to have 5 TB
per day written with
warrantee period
without failing.
It is necessary to spread
write operations
uniformily among the
cells to avoid consuming
all the possible writes of
a specific cell.
Volatile memory as mass storage
Volatile memory used as high speed temporary storage
Ex.: Linux /tmp usually is
located in RAM, not in
secondary memory
Magnetic Tape
Characteristics
Cheap
High capacity
Slow reading process
Sequential reading/writing
Usually used for backup
Requires special devices for reading/writing
Disk
Attachment
Host-attached storage
accessed through I/O
ports talking to I/O busses
BUSSES
Advanced Technology Attachment (ATA)
Serial ATA (SATA)
Parallel ATA (PATA)
eSATA
Serial Attached SCSI (SAS)
Universal Serial Bus (USB)
Fibre Channel (FC)
NVM express (NVMe)
Connected directly to PCI bus
Disk Structure
Disk drives are addressed as large
1-dimensional arrays of logical
blocks. Each logical block is the
smallest unit of data that can be
transferred. The array is mapped
into sectors.
Ex.: sector 0 is the first sector of
the first track of the outermost
cylinder. Mapping proceeds in
that track and in the rest of the
tracks in that cylinder. After that
cylinder, it proceeds to other
cylinders, from outermost to
innermot.
Error detection and correction
Mechanisms to detect and, sometimes,
correct bit errors. May be applied in
memory, networking, storage.
Types of errors
Soft errors
Correctable
Hard errors
Detectable but not correctable
Examples ot techniques
Parity bit
Cyclic redundancy check (CRC)
Error Correction Code (ECC)
It contributes to the controller overhead
Very important for HDDs
Storage device management
Low-level formatting (physical formatting)
Dividing a disk into
sectors that a disk
controller can read and
write. Each sector can
hold header, data, and
error correction code.
Ex. usually blocks 512 B
Using disk to hold files
Partition
Divide the disk into one or more groups of cylinder.
Root Partition
Contains the OS. It is mounted at boot time.
Consistency checked during mount time.
Logical Formatting
For efficiency, group blocks into clusters
Storage Attachment
Ways to access storage
Host-attached storage
Access through local I/O ports. May use one of the following technologies: USB, firewire, fibre channel (FC), etc
Network-attached storage (NAS)
Storage made available over a
network. Implemented via
remote procedure calls (RPCs)
between host and storage. It is
presented as a file system.
Common protocols
Network File System (NFS)
Common Internet File System (CIFS)
Illustration
Cloud storage
Similar to NAS, but uses Internet or WAN to access the storage. It is API based
Storage Array
Attach disks or array of disks.
Redundant Array of Inexpensive/Independent Disks (RAID)