ceph存储原理_赠书 | Linux 开源存储全栈详解——从Ceph到容器存储

//

留言点赞赠书我有书,你有故事么?留言说出你的存储故事留言点赞前两名,免费送此书截止日期12.27号12.30号公布名单

//

8a21330214b734907d35a401a0447ec8.png

内容简介


本书致力于帮助读者形成有关Linux开源存储世界的细致的拓扑,从存储硬件、Linux存储堆栈、存储加速、存储安全、存储管理、分布式存储、云存储等各个角度与层次展开讨论,同时对处于主导地位的、较为流行的开源存储项目进行阐述,包括SPDK、ISA-L、OpenSDS、Ceph、OpenStack Swift与Cinder、容器存储等。本书内容基本不涉及具体源码,主要围绕各个项目的起源与发展、实现原理与框架、要解决的网络问题等方面展开讨论,致力于帮助读者对Linux开源存储技术的实现与发展形成整体清晰的认识。本书语言通俗易懂,能够带领读者快速走入Linux开源存储的世界并作出自己的贡献。

作者简介


任桥伟:从事Linux内核、OpenStack、Ceph等开源项目的开发,著有《Linux内核修炼之道》《Linux那些事儿》系列。李晓燕:活跃于Cinder和Ceph项目,具有多年存储领域经验。程盈心:Ceph社区的活跃贡献者,专注于分布式系统的分析与优化。马建朋:Ceph社区的活跃贡献者。刘春梅: 哈尔滨工业大学自动控制专业博士,目前在美国硅谷英特尔工作。从事过网络安全、虚拟化、终端安全、云计算等领域的工作。尚德浩:Ceph社区的活跃贡献者。胡伟:从事云计算和边缘计算相关工作。 在OpenStack、Ceph和Edge Computing领域支持客户技术方案落地,参与业界多项前沿云计算相关技术验证和评估工作。杨子夜:从事存储软件开发和优化工作。在虚拟化、存储、云安全等领域拥有诸多专利提交,其中21个专利已经被专利局授予 (其中14个在美国,7个在中国)。曹刚:从事存储软件的开发和优化工作,现为英特尔开发经理。刘长鹏:从事存储软件和虚拟化研发工作。刘孝冬:从事存储软件研发及存储相关算法优化的工作。惠春阳:从事存储软件研发及存储相关算法优化的工作。万群:从事测试领域的研究及实践近十年,对测试方法及项目管理有相当丰富的经验。闫亮:从事存储软件的测试和优化工作。周雁波:在英特尔实习期间,从事存储软件的开发和优化工徐雯昀:在英特尔实习期间,担任存储技术文档工程师,负责SPDK技术文档方面的工作。编辑推荐
本书适合希望能够参与Linux开源存储项目开发的读者,也适合互联网应用的开发者、架构师和创业者参考,尤其可作为互联网架构师们的开源技术典籍。SPDK、ISA-L、OpenSDS、Ceph、OpenStack Swift与Cinder、容器存储等,Linux开源存储世界探险之旅从此开启!《Linux开源存储全栈详解:从Ceph到容器存储》致力于帮助读者形成有关Linux开源存储世界的细致的拓扑,从存储硬件、Linux存储堆栈、存储加速、存储安全、存储管理、分布式存储、云存储等各个角度与层次展开讨论,同时对处于主导地位的、较为流行的开源存储项目进行阐述,包括SPDK、ISA-L、OpenSDS、Ceph、OpenStack Swift与Cinder、容器存储等。图书目录
1章 Linux开源存储 11.1 Linux和开源存储 11.1.1 为什么需要开源存储 31.1.2 Linux开源存储技术原理和解决方案 61.2 Linux开源存储系统方案介绍 81.2.1 Linux单节点存储方案 81.2.2 存储服务的分类 111.2.3 数据压缩 131.2.4 重复数据删除 161.2.5 开源云计算数据存储平台 271.2.6 存储管理和软件定义存储 291.2.7 开源分布式存储和大数据解决方案 331.2.8 开源文档管理系统 371.2.9 网络功能虚拟化存储 391.2.10 虚拟机/容器存储 401.2.11 数据保护 431.3 三大基金会 442章 存储硬件与协议 472.1 存储设备的历史轨迹 472.2 存储介质的进化 532.2.1 3D NAND 532.2.2 3D XPoint 552.2.3 Intel Optane 582.3 存储接口协议的演变 592.4 网络存储技术 623章 Linux存储栈 673.1 Linux存储系统概述 673.2 系统调用 693.3 文件系统 723.3.1 文件系统概述 733.3.2 Btrfs 753.4 Page Cache 803.5 Direct I/O 823.6 块层(Block Layer) 833.6.1 bio与request 843.6.2 I/O调度 863.6.3 I/O合并 883.7 LVM 903.8 bcache 933.9 DRBD 964章 存储加速 994.1 基于CPU处理器的加速和优化方案 1004.2 基于协处理器或其他硬件的加速方案 1034.2.1 FPGA加速 1034.2.2 智能网卡加速 1054.2.3 Intel QAT 1074.2.4 NVDIMM为存储加速 1104.3 智能存储加速库(ISA-L) 1114.3.1 数据保护:纠删码与磁盘阵列 1124.3.2 数据安全:哈希 1134.3.3 数据完整性:循环冗余校验码 1154.3.4 数据压缩:IGZIP 1164.3.5 数据加密 1174.4 存储性能软件加速库(SPDK) 1174.4.1 SPDK NVMe驱动 1194.4.2 SPDK应用框架 1334.4.3 SPDK用户态块设备层 1364.4.4 SPDK vhost target 1504.4.5 SPDK iSCSI Target 1564.4.6 SPDK NVMe-oF Target 1634.4.7 SPDK RPC 1654.4.8 SPDK生态工具介绍 1725章 存储安全 1815.1 可用性 1815.1.1 SLA 1815.1.2 MTTR、MTTF和MTBF 1825.1.3 高可用方案 1835.2 可靠性 1855.2.1 磁盘阵列 1865.2.2 纠删码 1875.3 数据完整性 1885.4 访问控制 1895.5 加密与解密 1916章 存储管理与软件定义存储 1946.1 OpenSDS 1946.1.1 OpenSDS社区 1956.1.2 OpenSDS架构 1956.1.3 OpenSDS应用场景 1986.1.4 与Kubernetes集成 2006.1.5 与OpenStack集成 2006.2 Libvirt存储管理 2016.2.1 Libvirt介绍 2016.2.2 Libvirt存储池和存储卷 2057章 分布式存储与Ceph 2067.1 Ceph体系结构 2097.1.1 对象存储 2117.1.2 RADOS 2127.1.3 OSD 2127.1.4 数据寻址 2147.1.5 存储池 2197.1.6 Monitor 2207.1.7 数据操作流程 2277.1.8 Cache Tiering 2287.1.9 块存储 2307.1.10 Ceph FS 2327.2 后端存储ObjectStore 2357.2.1 FileStore 2367.2.2 BlueStore 2407.2.3 SeaStore 2437.3 CRUSH算法 2447.3.1 CRUSH算法的基本特性 2447.3.2 CRUSH算法中的设备位置及状态 2467.3.3 CRUSH中的规则与算法细节 2497.3.4 CRUSH算法实践 2547.3.5 CRUSH算法在Ceph中的应用 2617.4 Ceph可靠性 2627.4.1 OSD多副本 2637.4.2 OSD纠删码 2647.4.3 RBD mirror 2657.4.4 RBD Snapshot 2677.4.5 Ceph数据恢复 2717.4.6 Ceph一致性 2747.4.7 Ceph Scrub机制 2787.5 Ceph中的缓存 2797.5.1 RBDCache具体实现 2857.5.2 固态硬盘用作缓存 2877.6 Ceph加密和压缩 2897.6.1 加密 2897.6.2 压缩 2917.6.3 加密和压缩的加速 2947.7 QoS 2947.7.1 前端QoS 2947.7.2 后端QoS 2957.7.3 dmClock客户端 2977.8 Ceph性能测试与分析 2987.8.1 集群性能测试 2997.8.2 集群性能数据 3047.8.3 综合测试分析工具 3077.8.4 高级话题 3117.9 Ceph与OpenStack 3158章 OpenStack存储 3188.1 Swift 3218.1.1 Swift体系结构 3218.1.2 环 3278.1.3 Swift API 3308.1.4 认证 3318.1.5 对象管理与操作 3338.1.6 数据一致性 3378.2 Cinder 3388.2.1 Cinder体系结构 3388.2.2 Cinder API 3418.2.3 cinder-scheduler 3428.2.4 cinder-volume 3438.2.5 cinder-backup 3479章 容器存储 3489.1 容器 3489.1.1 容器技术框架 3509.1.2 Docker 3539.1.3 容器与镜像 3559.2 Docker存储 3569.2.1 临时存储 3579.2.2 持久化存储 3669.3 Kubernetes存储 3699.3.1 Kubernetes核心概念 3709.3.2 Kubernetes数据卷管理 3769.3.3 Kubernetes CSI 380

ac51c71f3edb0ad356843dbad1bd881d.png

Ceph中国社区

是国内唯一官方正式授权的社区,

为广大Ceph爱好者提供交流平台!

↓↓↓7716d0e913e3cb5d341824845de345f7.png

开源-创新-自强

官方网站:www.ceph.org.cn

合作邮箱:devin@ceph.org.cn

投稿地址:tougao@ceph.org.cn

长期招募热爱翻译人员,

参与社区翻译外文资料工作。

8c4e09675d68a997fda17ba6bcb089ef.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/502949.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql双主 绿色_mysql (双主,互主)

Master-Master(双主)1、测试环境Master/Slave Master1/Slave1IP 192.168.1.13 192.168.1.10为了保持干净的环境:两边服务器rm -rf /var/lib/mysql/*service mysqld restartIP:192.168.1.13IP:192.168.1.102、…

学习在UE中通过Omniverse实现对USD文件的Live-Sync(实时同步编辑)

目标 前一篇 学习了Omniverse的一些基础概念。本篇在了解这些概念的基础上,我想体验下Omniverse的一些具体的能力,特别是 Live-Sync (实时同步) 相关的能力。 本篇实践了使用Omniverse的力量在UE中建立USD文件的 Live-Sync 编辑。由于相关的知识我是从…

keras卷积处理rgb输入_CNN卷积神经网络模型搭建

前言前段时间尝试使用深度学习来识别评测过程中的图片,以减少人力成本。目前是在深度学习框架Keras(后端使用TensorFlow)下搭建了一个CNN卷积神经网络模型,下面就如何搭建一个最简单的数字图像识别模型做下介绍。模型的建立(1) 卷积层(convolution layer…

python装饰器应用论文_Python装饰器的应用场景代码总结

装饰器的应用场景 附加功能 数据的清理或添加: 函数参数类型验证 require_ints 类似请求前拦截 数据格式转换 将函数返回字典改为 json/YAML 类似响应后篡改 为函数提供额外的数据 mock.patch 函数注册 在任务中心注册一个任务 注册一个带信号处理器的函数不同应用场景下装饰器…

python中try命令_Python 异常处理 Python 基础教程 try..except

异常处理在之前的学习中我们一直没有接触过。 哦对,我们甚至还不知道怎么向程序输入一段字符串。那么我们在这里提供一个小例子。 在命令行中,我们输入 s raw_input(Enter something --> )好了,我们已经知道如何输入一个字符串了&#xf…

python读取大文件性能_强悍的Python读取大文件的解决方案

Python 环境下文件的读取问题,请参见拙文 Python基础之文件读取的讲解这是一道著名的 Python 面试题,考察的问题是,Python 读取大文件和一般规模的文件时的区别,也即哪些接口不适合读取大文件。1. read() 接口的问题f open(filen…

python mysql 保存csv_使用Python将csv文件快速转存到Mysql

因为一些工作需要,我们经常会做一些数据持久化的事情,例如将临时数据存到文件里,又或者是存到数据库里。对于一个规范的表文件(例如csv),我们如何才能快速将数据存到Mysql里面呢?这个时候,我们可以使用pyth…

python分词_Python 结巴分词实现关键词抽取分析

1 简介 关键词抽取就是从文本里面把跟这篇文档意义最相关的一些词抽取出来。这个可以追溯到文献检索初期,当时还不支持全文搜索的时候,关键词就可以作为搜索这篇论文的词语。因此,目前依然可以在论文中看到关键词这一项。 除了这些&#xff0…

redis 如何 mysql_Redis 如何保持和 MySQL 数据一致

一、需求起因在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库。这个业务场景,主要是解决读数据从Redis缓…

truncate python是删除文件内容吗_在Python中操作文件之truncate()方法的使用教程

truncate()方法截断该文件的大小。如果可选的尺寸参数存在,该文件被截断(最多)的大小。 大小默认为当前位置。当前文件位置不改变。注意,如果一个指定的大小超过了文件的当前大小,其结果是依赖于平台。 注意:此方法不会在当文件工…

sqlserver mysql时间格式化_SqlServer时间格式化

最近用的SqlServer比较多, 时间 格式化 老是忘记,现整理如下:(来源于网上,具体来源地址忘记了,归根到底MSDN吧) SELECT CONVERT(varchar(50), GETDATE(), 0): 05 16 2006 10:57AM SELECT CONVERT(varchar(50), GETDATE…

iframe 跨域_【梯云纵】搞定前端跨域

韦陀掌法,难陀时间善恶;梯云纵,难纵过乱世纷扰。现在开始写代码o(╯□╰)o什么是跨域1.跨域的定义广义的跨域是指一个域下对的文档或者脚本试图去请求另外一个域下的资源。a链接、重定向、表单提交、、、等标签background:url()、font-face()ajax 跨域请求……狭义的…

java中exception_Java中的异常 Exceptions

1. 概念exception是“exceptional event”的缩写,是指执行程序中发生的事件,破坏了程序的正常执行流程。Java 异常处理机制使程序更加健壮易于调试,它可以告诉程序员三个问题:错误的类型、位置、原因,帮助程序员解决错…

python异步asy_Python 异步编程之asyncio【转载】

一、协程的认识 协程(Coroutine),也可以被称为微线程,是一种用户态内的上下文切换技术。 简而言之,其实就是通过一个线程实现代码块相互切换执行。例如:deffunc1():print(1) ...print(2)deffunc2():print(3…

bitcount java_Java源码解释之Integer.bitCount

Java中的Integer.bitCount(i)的返回值是i的二进制表示中1的个数。源码如下:public static int bitCount(int i) {// HD, Figure 5-2i i - ((i >>> 1) & 0x55555555);i (i & 0x33333333) ((i >>> 2) & 0x33333333);i (i (i >&…

python自定义全局异常_如何在python中进行全局异常捕获

使用sys.excepthook函数进行全局异常的获取。 首先定义异常处理函数, 并使用该函数接收系统异常信息。 import wx import sys class TestFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, -1, test) btn wx.Button(self, -1, test) btn.Bind(w…

git merge 冲突_卧槽!小姐姐用动画图解 Git 命令,这也太秀了吧?!

公众号关注 “GitHubDaily”设为 “星标”,每天带你逛 GitHub!大家好,我是小 G。在座的各位应该都知道,Git 作为居家必备、团队协作之利器,自从 Linus Torvalds 发布这款工具后,便一直受到各路开发者的喜爱…

freebsd java 能用吗_在FreeBSD 4.9下安装JAVA环境

导读:资源下载地址:1.http://www.sun.com/softwarre/java2/download.html2.http://ftp.csie.chu.edu.tw/FreeBSD/distfiles/openmotif/3.http://ameba.sc-uni.ktu.lt/pub/FreeBSD/4.http://www.wormwang.net/mirrors/java/一、以下的包要先下载放到各自的…

python中exec是什么意思_Python中的进程分支fork和exec详解

在python中,任务并发一种方式是通过进程分支来实现的.在linux系统在,通过fork()方法来实现进程分支. 1.fork()调用后会创建一个新的子进程,这个子进程是原父进程的副本.子进程可以独立父进程外运行. 2.fork()是一个很特殊的方法,一次调用,两次返回. 3.fork()它会返回2个值,一个…

java冒泡排序原理_冒泡排序原理及其java实现

冒泡排序原理:临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,这样外层循环每循环一次,都会把一个数的顺序排好(从小到大的话每次都会把上回剩余的数据最大的放在剩余数的最后面,反之则是最小的放剩余…