|
CMU-CS-00-178
Computer Science Department
School of Computer Science, Carnegie Mellon University
CMU-CS-00-178
Scalable and Manageable Storage Systems
Khalil S. Amiri
December 2000
Ph.D. Thesis (Electrical and Computer Engineering)
CMU-CS-00-178.ps
CMU-CS-00-178.pdf
Keywords: Storage, network-attached storage, storage management,
distributed disk arrays, concurrency control, recovery, function
partitioning
Emerging applications such as data warehousing, multimedia content
distribution, electronic commerce and medical and satellite databases
have substantial storage requirements that are growing at 3X to 5X per
year. Such applications require scalable, highly-available and
cost-effective storage systems. Traditional storage systems rely on
a central controller (file server, disk array controller) to access
storage and copy data between storage devices and clients which limits
their scalability. This dissertation describes an architecture,
network-attached secure disks (NASD), that eliminates the single
controller bottleneck allowing throughput and bandwidth of an array
to scale with increasing capacity up to the largest sizes desired in
practice. NASD enables direct access from client to shared storage
devices, allowing aggregate bandwidth to scale with the number of
nodes. In a shared storage system, each client acts as its own storage
(RAID) controller, performing all the functions required to manage
redundancy and access its data. As a result, multiple controllers can
be accessing and managing shared storage devices concurrently. Without
proper provisions, this concurrency can corrupt redundancy codes and
cause hosts to read incorrect data. This dissertation proposes a
transactional approach to ensure correctness in highly concurrent
storage device arrays. It proposes distributed device-based protocols
that exploit trends towards increased device intelligence to ensure
correctness while scaling well with system size. Emerging network-attached
storage arrays consist of storage devices with excess cycles in their
on-disk controllers, which can be used to execute filesystem function
traditionally executed on the host. Programmable storage devices increase
the flexibility in partitioning filesystem function between clients and
storage devices. However, the heterogeneity in resource availability
among servers, clients and network links causes optimal function
partitioning to change across sites and with time. This dissertation
proposes an automatic approach which allows function partitioning to
be changed and optimized at run-time by relying only on the black-box
monitoring of functional components and of resource availability in the
storage system.
261 pages
|