To Grace, Alexander, and Arthur.
In the new era of IoT, big data, and cloud systems, better performance and higher density of storage systems become more crucial in many applications.
To increase data storage density, new techniques have evolved, including shingled magnetic recording (SMR), heat-assistant magnetic recording (HAMR) for HDD, 3D Phase Change Memory (PCM) and Resistive RAM (ReRAM) for SSD. Furthermore, some hybrid and parallel access techniques together with specially designed IO scheduling and data migration algorithms have been deployed to develop high performance data storage solutions.
Among the various storage system performance analysis techniques, IO event trace analysis (block-level trace analysis in particular) is one of the most common approaches for system optimization and design. However, the task of completing a systematic survey is challenging and very few works on this topic exist. Some books provide theoretical fundamentals without enough practical analysis in physical systems, and others discuss the performance of some specific storage systems without proposing a tool that can be applied widely.
To fill this gap, this book brings together IO properties and metrics, trace parsing, and result reporting perspectives, based on MATLAB and Python platforms. It provides self-inclusive content on block-level trace analysis techniques, and it includes typical case studies to illustrate how these techniques and tools can be applied in real applications such as SSHD, RAID, Hadoop, and Ceph systems.
This book starts with an introduction in Chapter 1 , which provides the background of data storage systems and general trace analysis. I show that the wide applications of block storage devices motivate the intensive study of various block-level workload properties.
Chapter 2 gives an overview of traces, in particular, the block-level traces. After introducing the common workload properties, I discuss the trace metrics in two categories, the basic ones and the advanced ones.
In Chapter 3 , I present the ways to collect the block-level trace in both hardware and software tools. In particular, I show how the most popular tool in Linux system, blktrace, works in a simple setting.
In Chapter 4 , I investigate the design of trace analyzers. I discuss the interactions of the workload with system components, algorithms, structure, and applications.
Case study is the best way to learn the methodology and the corresponding tools. This book will provide some examples to show how the analysis can be applied to real storage system tuning, optimization, and design. Therefore, from Chapter 5 to Chapter 9 , I provide some typical examples for trace analysis and system optimization.
Chapter 5 presents the properties of traces from some benchmark tools, such as SPC and PCMarks. I show how to capture the main characteristics and then formulate a “synthetic” trace generator. I also show how the cache is affected by the workload, and how a proper scheduling algorithm is designed.
Chapter 6 attempts to explain the mystery behind SSHD’s performance boost in SPC-1C under WCD (write cache disabled). I show from the trace how a new hybrid structure can help to improve system performance.
Chapter 7 discusses the trace under two RAID systems with different read and write properties. I illustrate that the parity structure has a big impact on the overall performance.
Chapter 8 first reviews the literature on Hadoop workload analysis. And then I discuss the WD Hadoop cluster in a production environment. After that, the workload properties are analyzed, in particular, for SMR drives.
Chapter 9 analyzes the Ceph system performance. Storage and the CPU/network/memory are discussed. I show that these components shall be considered as a unified system in order to identify the performance bottleneck.
The tools used in the book are introduced in the appendix. I first introduce the tool based on MATLAB. Then, I show how this tool is converted into the Python platform.
A major component of this work came as a result of my 16 years of R&D experience on data analytics and storage systems at Western Digital, Temasek Labs, and Data Storage Institute. I would like to acknowledge Western Digital for allowing me to publish some of my job-related work. During the preparation of this book, I received support and advice from many friends and colleagues. Here I only mention few: Dr. Jie Yu, Dr. Guoxiao Guo, Robin O’Neill, Grant Mackey, Dr. Jianyi Wang, David Chan, Wai-Ee Wong, Dr. Yi Li, Samuel Torrez, Shihua Feng, Jiang Dan, Terry Wu, Allen Samuels, Gregory Thelin, William Boyle, David Hamilton, John Clinton, Nils Larson, Karanvir Singh, Eric Lee, and Sang Huynh. In particular, Junpeng Niu, my PhD student and colleague, also helped me with a few paragraphs in Chapter 1 on hybrid disks.
I would also like to thank the technical reviewers, Yunpeng Cai and Li Xia, for their very helpful comments. Deep appreciation also goes out to the editors, Susan McDermott, Rita Fernando, Laura Berendson, Amrita Stanley, Krishnan Sathyamurthy and Joseph Quatela for their hard work.
Last but not least, I am most grateful to my wife, Grace, for the love and encouragement provided through my entire life, and to my two boys, Alexander and Arthur, who remind me that there is a life beyond the work. Without their great patience and enthusiastic support, I would not have been able to complete this book.
got his BS in Mathematics and a PhD in Control from Southeast University (China) and Nanyang Technological University (Singapore), respectively. He is a Lead Consultant Specialist at Hongkong-Shanghai Banking Corporation (HSBC) and was a Principal Engineer at Western Digital. Before that, he was with Data Storage Institute, Nanyang Technological University, and National University of Singapore for research and development. He has multi-discipline knowledge and solid experience in complex system modeling and simulation, data analytics, data center, cloud storage, and IoT. He has published over 50 international papers, 15 US patents (applications), and 1 monograph. He is an editor of the journal Unmanned Systems and was a committee member of several international conferences. He is a senior member of IEEE and a certificated FRM.
received BE and PhD degrees in Computer Science and Technology from Tsinghua University in 2004 and 2009, respectively. He is currently an Associate Professor at the School of Information at Renmin University of China and Vice Dean of the department of Computer Science and Technology. His research interests include SSD/NVM-based hybrid storage systems, distributed key-value stores, and cloud storage virtualization. He regularly publishes in prestigious journals and conferences (like IEEE Transactions on Parallel and Distributed Systems, IEEE Transactions on Computers, MMST, etc.). He is a member of the Information Storage Technology Expert Committee in the China Computer Federation.
is an Associate Professor at the Center for Intelligent and Networked Systems (CFINS), Department of Automation, Tsinghua University, Beijing China. He received his BS and PhD degrees in Control Theory in 2002 and 2007, respectively, both from Tsinghua University. After graduation, he worked at IBM Research China as a research staff member (2007–2009) and at the King Abdullah University of Science and Technology (KAUST) in Saudi Arabia as a postdoctoral research fellow (2009–2011). Then he returned to Tsinghua University in 2011. He was a visiting scholar at Stanford University, the Hong Kong University of Science and Technology, etc. He serves/served as an associate editor and program committee member of a number of international journals and conferences. His research interests include the methodology research in stochastic learning and optimization, queuing theory, Markov decision processes, reinforcement learning, and the application research in storage systems, building energy, energy Internet, industrial Internet, Internet of Things, etc. He is a senior member of IEEE.