18-746/15-746: Storage Systems (Spring 2010)
Storage systems are among the most fascinating and the most important
parts of computer systems.
They often dominate the performance of a system, and
their components'
inner workings require amazing feats of engineering. At the same
time, storage systems hold the crown jewels of most organizations: their
information (from source code to Microsoft's software to the sales
databases of every e-commerce site).
Within the field of computer systems and computer engineering, there
is no area whose demand for bright people and better solutions is
more robust.
This course will cover the design, implementation, and use of storage
systems, from the characteristics and operation of individual storage
devices to the OS, database, and networking approaches involved in
tying them together and making them useful. Along the way, we will
examine several case studies of real systems, demands placed on storage
systems by important applications, and impacts of trends and emerging
technologies on future storage systems.
For those familiar with 18-316 (Intro. to Data Storage Systems Technology)
and 18-517 (Data Storage Systems Design Project): one should consider these
courses as distinct and complementary, with neither being a pre-requisite
to the other. 18-316 and 18-517 focus on the low-level technologies
(magnetics, materials, applied physics, etc.) whereas 746 focuses on
storage's incorporation and role in computer systems.
Components
Regular lectures by the instructor on core topics of storage systems
Guest lectures by experts in the field
Several homework problem sets
Midterm and final exams
Several project assignments (not nearly so much as 15-412, though)
Topics covered
746 will cover a wide spectrum of system-level topics in the design,
implementation, and use of storage systems.
Topics covered will include:
- components and organization of storage systems
- distributed file systems and NAS
- storage networking (inc. SAN)
- data protection and disaster recovery
- security for storage
- high-performance parallel file systems
- virtualization, decentralized storage, and server coordination
- capacity planning, load balancing, and configuration
- disk arrays, mirroring and RAID
- disk drive hardware and firmware
- disk performance enhancement
- file system and database structures
- crash recovery and integrity maintenance
Books and Readings
There will be no assigned book for the Spring 2009 offering.
Instead, the instructors will
hand out readings to complement the lectures. Some of these readings
from books and the research literature. Others will be draft chapters
of a book that the instructors are constructing to eventually be the
textbook for this class.
See the Lectures & Readings page for an
overview of the latest plan.
Re-grading policy for exams and assignments
We will make the utmost effort to be fair and consistent in
our grading. But, we are human. If you believe that you did not receive
appropriate credit for an exam or assignment, you may request a re-grade as follows:
- Submit your request in writing within seven calendar days of when the
exam or assignment is returned, explaining in detail why you think that
there was a mistake in the grading. Please note that verbal requests
will not be processed; requests must be in writing.
- Requests should be submitted to 746-staff@lists.andrew.cmu.edu, whether
for an assignment or for an exam. In the case of exams, the exam in question
should be hand-delivered to the course assistant together with a printed
copy of the email request.
- When you submit a request for a re-grade, the entire assignment or exam may be re-graded (not just the parts that you specify). Your grade may go up or
down (or stay the same) as a result of the re-grade request. Your request will be processed off-line, and we will respond to your request as quickly as
possible (typically within a week). This re-grade policy is designed to
correct legitimate mistakes in grading, while discouraging frivolous
re-grade requests (for the sake of being fair and consistent across the
entire class).
Late policy for homeworks and labs
No late homeworks or labs will be accepted. If extenuating circumstances
make it impossible for you to submit your assignment on time, e-mail one of
the course instructors.
Prereqs
This course will require solid understanding of computer organization,
basic operating systems, and basic communication. Therefore, the
minimum pre-requisite is 15-213.
Exceptions are only by permission of the instructor.
Students who have not had systems
experience (inside or outside the classroom) are likely to struggle.
Final Note
* Everything here is subject to change.