内容简介
第一部分 基础与架构
第1章 存储的演进
当今数据的存储需求
数据的增长:艾字节(Exabytes)、骇字节(Hellabytes)以及更多
非结构化数据的存储需求
没有放之四海而皆准的存储系统
对象存储与其他存储类型的比较
新的存储架构:软件定义存储(SDS)
软件定义存储组件
软件定义存储的优点
为什么是OpenStack Swift
小结
第2章 初识Swift
认识SwiftStack
第3章 Swift数据模型和体系结构
Swift数据模型
Swift体系结构
服务进程(Server Processes)
一致性进程(Consistency Processes)
定位数据
环基础:哈希函数
环基础:一致性哈希环
环文件:修改后的一致性哈希环
数据分发(Distribution of Data)
创建和更新环
创建和更新构造文件
重新平衡环(Rebalancing the Rings)
环内部结构
小结
第4章 Swift基础
与集群交谈:Swift API
发送请求
存储URL
身份验证
HTTP动词
授权和采取行动
获取响应
通信工具
命令行界面
自定义客户端应用程序
示例场景
小结
第二部分 Swift应用程序设计
第5章 Swift API概述
API到底是什么?
CAP定理
Swift的亮点:高可用性、冗余性和高吞吐量
Swift API:背景
回顾超文本传输协议(HTTP)
表现层状态转化(REST)
Swift、HTTP和REST
使用Swift API
关于你的Swift集群
认证
检索数据
存储数据
删除数据
更新元数据
小结
第6章 Swift客户端库
客户端库
身份验证交换
存储请求:基本用法
其他语言的客户端库
Ruby
PHP
Java
存储请求:高级用法
使用Python的其他注意事项
小结
第7章 高级API特性
大对象(Large Objects)
对象版本管理
对象过期
临时URL中间件(TempURL)
表单提交中间件
自定义元数据
上传和更新元数据
跨域资源共享(CORS)
Swift集群信息
范围请求
域重映射中间件
静态Web托管(Static Web Hosting)
Content-Type头
批量操作中间件
代码示例
静态大对象
动态大对象
对象版本管理
TempURL(Time-Limited URLs)
表单提交
跨域资源共享(CORS)
自定义元数据
Swift集群信息
范围请求
域重映射
静态web托管
Content-Type
批量上传
批量删除
小结
第8章 部署Swift中间件
WSGI框架简介
编写WSGI
数据流和数据的修改
通过Paste来配置中间件
如何编写Swift中间件
由内而外
简单的例子
中间件中更多的工作
回顾与前瞻
小结
第三部分 Swift的安装
第9章 源码安装OpenStack Swift
下载OpenStack Swift
依赖
安装Swift CLI(python-Swiftclient)
安装Swift
复制Swift配置文件
配置Swift
向Swift中添加驱动器
存储策略
创建环构造器文件
向构造文件中添加磁盘
添加硬盘
构建环
配置Swift日志
创建日志配置文件
重启Rsyslog,开始记录Swift日志
配置代理服务
设置哈希路径前缀和后缀
开启代理服务
设置TempAuth验证和Swift授权
开启memcahed
在proxy-server.conf中添加用户
启动服务和重启代理
账户认证
验证账户访问
创建容器
上传对象
开启一致性进程
配置rsync
启动其他一致性进程
小结
第10章 安装SwiftStack
SwiftStack控制器和节点概述
SwiftStack控制器
SwiftStack节点
使用SwiftStack创建一个Swift集群
创建一个SwiftStack控制器用户
安装SwiftStack节点软件
声明一个新节点
创建集群
获取节点
启用SwiftStack节点
配置SwiftStack节点
添加Swift用户
SwiftStack中间件
部署到集群
通过网页控制台来创建容器和上传对象
小结
第四部分 规划Swift部署
第11章 Swift的硬件
节点的硬件规格
CPU
内存
盘
集群组网(Cluster Networking)
网卡(NIC)
对外网络(Outward-Facing Network)
对内网络(Cluster-Facing Network)
数据复制网络(Replication Network)
带外管理(Out-of-Band Management)
其他网络连接
小结
第12章 规划Swift部署
你的用例
系统设计
多少个节点?
节点服务分层(Tiering Node Services)
定义集群空间
节点命名规则
身份验证与授权
组网
对外网络
集群内部的网络
示例部署
小规模集群:几个节点
中等规模集群:多个机架
大规模集群:多个地域
小结
第13章 认证和授权
认证
认证系统工作原理
认证请求
认证处理
认证响应
在存储请求中使用认证令牌
授权
授权案例
授权原理
存储请求处理
令牌确认和授权信息查询
授权回调和响应
授权和访问级别
账户访问控制
只读访问(Read-Only Access)
读写访问(Read-Write Access)
管理员访问(Admin Access)
账户访问控制的JSON字典
容器访问控制
容器ACL示例
Swift认证系统
Keystone
TempAuth
SWAuth
SwiftStack认证系统
SwiftStack Auth
SwiftStack LDAP
SwiftStack Active Directory
小结
第14章 集群调优和性能优化
Swift设置
worker进程
块大小
设置后台进程
外部管理设置
Swift中间件
中间件管道
重要中间件
最有用的中间件
其他中间件
SwiftStack方法
小结
第15章 操作Swift集群
操作注意事项
Swift如何分发数据
追踪环和构造器文件
管理容量
我们应当避免什么
添加容量
现有集群:初始化节点上的环
添加节点
移除容量
移除节点
移除盘
使用SwiftStack管理容量
添加容量
添加盘
添加节点
移除容量
移除节点
移除盘
监控你的集群
Swift特有指标:监控什么
监控和日志工具
SwiftStack工具
使用SwiftStack进行操作
小结
第五部分 调试和检修故障
第16章 硬件故障与恢复
处理故障的驱动器
处理已满的盘
处理扇区和部分磁盘故障(也称为位衰减)
处理无法访问的节点
处理故障节点
节点故障案例研究
小结
第17章 基准测试
评估性能
性能指标、基准测试和测试
准备你的集群以进行基准测试
避免陷阱和错误
基准测试目标和工具
不要贪婪
瓶颈
使用ssbench进行基准测试
安装ssbench
基本ssbench运行
定义用例
ssbench如何工作
测量基本性能
进一步使用ssbench
定义场景文件
ssbench-worker
启动ssbench-worker的方法
使用swift-bench进行基准测试
准备
swift-bench如何工作
容器数量
测试高并发(-c,-b)
测试延迟
对象大小(-s,-l)
对象数(-n)
GET数(-g)
不删除选项(-x)
创建配置文件
swift-bench运行示例
运行分布式swift-bench
swift-bench配置示例
统计工具
小结
Swift后记