第1章 绪论 1
1.1 纠删码存储的研究意义 1
1.1.1 大规模可靠存储的应用需求 1
1.1.2 副本方式具有低空间利用率 3
1.1.3 纠删码具有高存储效率特性 5
1.2 纠删码存储的研究现状 6
1.2.1 纠删码存储方案的分类 6
1.2.2 纠删码存储的国内研究现状 7
1.2.3 纠删码存储集群的国外研究现状 7
1.2.4 纠删码存储集群关键技术的研究概况 9
1.3 纠删码存储集群的研究范畴 15
1.3.1 纠删码存储的存取过程 15
1.3.2 纠删码存储集群的I/O优化 17
1.4 章节安排 21
第2章 纠删码存储的理论基础 24
2.1 纠删编码的基本理论 24
2.1.1 容错原理 24
2.1.2 RS编码 24
2.1.3 LDPC编码 26
2.1.4 阵列编码 27
2.2 阵列码存储 29
2.2.1 阵列码应用于外存 29
2.2.2 阵列码应用于内存 31
2.3 纠删码存储集群 32
2.3.1 分布式存储系统概述 32
2.3.2 基于纠删码的存储集群 33
2.3.3 条带数据一致性约束 35
2.4 Jerasure编码库 36
2.4.1 运算模块 36
2.4.2 具体函数 36
2.5 术语与符号定义 38
2.6 本章小结 40
第3章 感知QoS和异构性的正常读方案 41
3.1 存储集群的异构性 41
3.1.1 存储硬件差异性 41
3.1.2 访问负载动态性 42
3.2 己有的动态读取优化算法 42
3.3 面向QoS的正常读方案 43
3.3.1 总体思路 43
3.3.2 发起变换读的基准 44
3.3.3 响应时间估计 46
3.3.4 变换节点集选择 47
3.4 性能评估 48
3.4.1 实验环境 48
3.4.2 测试方法与原型系统设计 48
3.4.3 实验结果与分析 50
3.5 本章小结 53
第4章 局部式小写更新方案 54
4.1 数据更新基本原理 54
4.2 现有数据更新方案 55
4.2.1 写更新优化思路 56
4.2.2 DUM更新方案 57
4.2.3 PUM更新方案 58
4.3 局部式更新优化方案(PUM-P和PDN-P) 59
4.3.1 PUM-P更新方案 59
4.3.2 PDN-P更新方案 61
4.3.3 算法分析与比较 62
4.3.4 混合式更新方案 63
4.4 性能评估 65
4.4.1 实验环境 65
4.4.2 原型与测试方法 65
4.4.3 实验结果与分析 66
4.5 本章小结 70
第5章 异构集群下负载感知的读取方法 71
5.1 存储异构性及应对思路 71
5.2 负载感知的重构读策略(LaRS) 72
5.2.1 现有重构读策略在异构集群下的不足 72
5.2.2 LaRS概述 73
5.2.3 原理分析 74
5.2.4 LaRS具体流程 75
5.2.5 存活分块分布图的生成 75
5.2.6 存活节点性能权值的更新 77
5.2.7 具体实例 78
5.3 自适应降级读优化策略(ADRS) 80
5.3.1 现有降级读应对方案 80
5.3.2 降级读优化策略 81
5.3.3 ADRS原型设计 84
5.4 性能评估 85
5.4.1 实验环境 85
5.4.2 原型和测试方法 86
5.4.3 重构读实验结果和分析 87
5.4.4 降级读实验结果与分析 89
5.5 本章小结 90
第6章 基于流水线方式的离线重构方案 91
6.1 传统集中式离线重构方法 91
6.1.1 重构工作流 91
6.1.2 PULL传输模式 92
6.1.3 PULL-Rep重构方法 93
6.1.4 PULL-Sur重构方法 94
6.2 流水线式离线重构模式(PUSH) 95
6.2.1 PUSH-Rep重构方法 96
6.2.2 PUSH-Sur重构方法 96
6.2.3 重构链的设计 97
6.3 模型建立与验证 98
6.3.1 重构时间模型 99
6.3.2 模型验证 102
6.4 实验评估与分析 104
6.4.1 实验环境 104
6.4.2 实验结果与分析 104
6.4.3 方案适用性讨论 107
6.5 本章小结 108
第7章 基于内存I/O重定向的在线重构方案 109
7.1 在线重构中I/O互扰问题 109
7.1.1 在线重构过程 109
7.1.2 用户I/O和重构I/O的相互干扰 110
7.2 基于内存I/O重定向的在线重构(RAM-RS) 111
7.2.1 写重定向机制 111
7.2.2 RAM-RS的设计思想 112
7.2.3 RAM-RS的I/O处理方式 114
7.3 基于RS码的内存区域 117
7.3.1 RS码内存区域的参数确定 117
7.3.2 混合式RS码内存区域 118
7.4 性能评估 118
7.4.1 原型与测试方法 119
7.4.2 实验结果与分析 119
7.4.3 实验小结 125
7.5 本章小结 125
第8章 面向最小化网络流量的扩容方案 126
8.1 存储扩容概述与背景 126
8.1.1 存储扩容的研究动机 126
8.1.2 RS码集群下数据写过程 127
8.1.3 挑战与对策 128
8.1.4 集群扩容模式 129
8.2 集群扩容方案设计(Scale-RS) 129
8.2.1 基本设计思路 129
8.2.2 数据分块迁移 131
8.2.3 校验分块更新 134
8.2.4 Scale-RS特点分析 135
8.3 扩容性能优化设计 135
8.3.1 写聚合优化 135
8.3.2 延迟更新优化 136
8.4 实验评估 136
8.4.1 实验环境 136
8.4.2 实验方案和测试方法 137
8.4.3 实验结果与分析 137
8.4.4 实验小结 140
8.4.5 方案适用性讨论 141
8.5 本章小结 141
第9章 采用流水线编码来归档副本数据 143
9.1 纠删码归档概述 143
9.2 机架感知的链式分散布局 144
9.3 流水线归档策略 146
9.3.1 单链流水线归档策略 147
9.3.2 多链流水线归档策略 150
9.3.3 集中式策略与流水线策略的对比分析 151
9.3.4 在r=4下的适用性考虑 153
9.4 基于MCP模式的两种归档方案(DP/3X) 154
9.4.1 现有纠删码归档方案概述 155
9.4.2 基于链式分散机制的两种数据布局 156
9.4.3 流水线数据归档方案DP和3X 157
9.4.4 归档开销分析 159
9.5 实验评估 161
9.5.1 实验环境 161
9.5.2 评估方法 161
9.5.3 实验结果与分析 162
9.6 本章小结 164
第10章 用于存储集群的节点级节能方案 166
10.1 存储节能的研究意义 166
10.2 纠删码存储集群的节能方案 167
10.2.1 基本研究思路 167
10.2.2 基于RS码的集群节能存储框架 168
10.2.3 冗余数据缓存机制 169
10.2.4 缓存数据布局方案 170
10.2.5 I/O存取策略 171
10.2.6 自适应缓存阈值 173
10.2.7 选择性节点激活策略 173
10.3 可靠性模型与能耗模型 174
10.3.1 符号定义 174
10.3.2 可靠性评估 175
10.3.3 缓存空间的确定 177
10.3.4 缓存阈值的确定 177
10.3.5 能耗模型 178
10.4 实验测试 180
10.4.1 测试环境 180
10.4.2 实验方法 180
10.4.3 实验结果与分析 181
10.4.4 实验小结 184
10.5 本章小结 185
参考文献 186