Spring 2011: 18-746 / 15-746: Storage Systems
Spring 2010: 18-746: Storage Systems
Spring 2008: 18-746 / 15-746: Storage Systems
Fall 2006: 18-746: Storage Systems
Fall 2005: 18-746: Storage Systems
Spring 2004: 18-746: Storage Systems
Spring 2003: 18-746: Storage Systems
Spring 2002: 18-546: Storage Systems
Spring 2001: 18-546: Storage Systems
About the Storage Systems Course
At Carnegie Mellon we are tackling the important problem of creating education in storage systems, a subject that is at least as broad and deep as other computer systems topics on which universities teach class sequences (e.g., processor architecture, operating systems, networking, databases, and compilers). Ever under-appreciated, storage systems are at the core of the Information Age, offering unmatched opportunities for current and future computing professionals. Seemingly boundless growth comes with the transition from paper to digital storage and digital video, and storage systems offer fascinating design and implementation challenges. Their components inner workings require amazing feats of engineering. Building efficient, scalable, reliable, secure, cost-effective, manageable storage systems from these components requires a storage-oriented combination of architecture, operating systems, networking, and distributed computing knowledge. Further, storage systems usually dominate the performance of a system, making them one of the few remaining places for performance engineers to thrive. Within the field of computer systems and computer engineering, there is no area whose demand for bright people and better solutions is more robust.
Sadly, storage systems are among the least understood areas of computer systems. The field is rife with buzzwords, like RAID and NAS and SAN, and bold claims of novelty, scalability, and manageability. But, many seem not to understand the details of storage systems, their consequences, or even the fact that the buzzwords rarely describe new technologies (just new names for old ideas). Historically, universities have provided little education in this space and there have been few useful books.
We have taught storage systems as a full-semester, 4th-year course focused on storages incorporation and role in computer systems for several years now. Topics span 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 examine several real case studies, the demands placed on storage systems by important applications, and the impact of trends and emerging technologies on future storage systems. In the Spring 2002 offering, designated "18-546: Storage Systems," base lecture material was complemented by real-world expertise generously shared by 8 guest speakers from industry (including 2 CTOs and 4 of the 8 members of the SNIA Technical Council). The students who have taken the class will now be better prepared to contribute to the storage industry today and in the future. More information can be found at http://www.ece.cmu.edu/~ganger/ece746.spring04/.
In the Spring 2003 offering of this class, it was renumbered (18-746) and was similar to the 2002 offering (18-546), while offering additional topics, more refined projects and new readings. As in the past, current courses offer several guest lectures from industry experts.
This course and an associated book on storage systems are an attempt to fill the gaping hole in computer systems education. The book, which is evolving as the class is taught, will make it much easier for other universities to start offering storage systems education. Hopefully, it will also be useful to graduates who did not have access to a storage systems class.