便:数据库使用的持久化卷

,便为很多不同的用户场景都提供了精妙的,考虑周全的API。持久化卷是由新API的接受引入的特性。持久化卷让用户可以为便构建数据库框架,便可以在任何不可预见的故障和错误发生并且影响整个系统时,使数据持久化。本文选自《用便框架构建分布式应用》。

直到最近,便都仅仅能够运行无须向磁盘存储数据的服务。这是因为没有方法预留所需的磁盘块。从便0.23版本开始,可以预留磁盘了。
我们可以将便当作一个部署系统。如果MySQL数据库能够自动将自身备份,并且按需创建新的副本,是不是很好呢?或者如果拥有一个简单的,自服务的REST API,能够创建新的Riak和卡桑德拉集群,又会怎么样呢?为便构建数据库框架的工作从2014年就开始了。这些框架的问题是每个主机都必须创建特别的数据分区,并且在便之外加以管理。使用持久化卷,类似Apache棉花(MySQL所用)以及卡桑德拉和Riak便框架的项目就都能够独立启动和维护了。
在便的设计里,磁盘空间是短暂的,并且是按任务隔离的。这通常是一件好事,除非用户想要持久地保存数据。要解决这个问题,便引入了一个新的磁盘资源的子类型,称为volume.volume是分配给一个任务的磁盘块,并且挂载在特定位置,完成这一功能的API和挂载主机卷的马拉松API(详见“挂载主机卷”部分),几乎完全一致。用户甚至可以创建不持久的卷,这在想将多个独立磁盘暴露给便时会很有用。
下面研究一下如何创建并且使用持久化卷。
有两个接受手术用来创建以及销毁持久化卷。不出意外地,它们称为创建和摧毁。仅仅能够在已经被预留的磁盘资源上创建持久化卷。通常,用户会预留资源,创建卷,并且在单个接受里启动任务,如下面示例所示。
便:数据库使用的持久化卷”> <br/>持久化卷资源和常规磁盘资源一样,但是它带有字段磁盘,设置为合适的DiskInfo.DiskInfo给该持久化卷命的名,这样它能够挂载上,名字为嵌套的字符串子字段持久性。id的名称.DiskInfo的体积必须使用RW模式(因为0.24便只支持RW) .Volume的container_path字段会指定容器在任务沙箱里的挂载位置。<br/>持久化卷API是很新的功能,因此还没有任何生产环境框架用到它。它也有一些限制,比如卷必须一直挂载为RW,并且没有办法暴露多个磁盘,也没有任何磁盘或I/O隔离。即使添加了新特性和功能之后,也会保证该API的后向兼容性,因此,类似Apache棉花的项目已经在其代码基里集成了持久化卷。<br/>本文选自《用便框架构建分布式应用》,点此链接可在博文视点官网查看此书。<br/> <img src=


便:数据库使用的持久化卷