`

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

阅读更多

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

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

分享到:
评论

相关推荐

    Mesos:大数据资源调度与大规模容器运行最佳实践.pdf

    Mesos:大数据资源调度与大规模容器运行最佳实践

    闫航-Docker on Mesos: 云计算的革命

    该文档来自阿帕奇2015中国路演。闫航发表了题为“Docker on Mesos: 云计算的革命”的主题演讲,欢迎下载!

    cookbook-mesos:Mesos食谱(http

    如果要使用cgroups隔离器或docker容器化器,则强烈建议使用14.04版。 需要注意的是docker containerizer仅由Mesos支持0.20.0+。安装类型您必须通过设置node[:mesos][:type]变量来指定安装类型( source或mesosphere...

    puppet-mesos:用于管理Mesos节点的Puppet模块

    Mesos人偶模块 兼容性注意:当前版本(0.6.x)要求puppetlabs-apt >= 2.1.0 ,该API... ' 192.168.1.2 ' , ' 192.168.1.3 ' ],}class { 'mesos::master' : work_dir => ' /var/lib/mesos ' , options => { quorum => 2

    awesome-mesos:关于Apache Mesos的一切

    awesome-mesos:关于Apache Mesos的一切

    perl-mesos:Apache Mesos的Perl绑定

    perl-mesos:Apache Mesos的Perl绑定

    logstash-mesos:用于Logstash的Mesos框架

    Logstash Mesos框架 一个框架,用于在集群中运行logstash。 您可以为所有其他框架配置日志记录,并进行logstash解析,然后将日志发送到ElasticSearch。 概述 该框架将尝试为每个从属服务器启动一个logstash进程。 ...

    hs-mesos:Haskell的Mesos绑定

    hs-mesos:Haskell的Mesos绑定当前状态完整的API绑定与Mesos 0.20.x提供的API一致。需要贡献的领域: 例子 更新API以包括对Mesos 0.22.x中新功能的支持 有人告诉我如何正确编写C ++。贡献维护Mesos的C ++绑定需要...

    mesos:Apache Mesos

    Apache Mesos Apache Mesos是一个群集管理器,可提供有效的资源隔离和跨分布式应用程序或框架的共享。 它可以在动态共享的节点池上运行Hadoop,Jenkins,Spark,Aurora和其他框架。 请访问访问我们。 邮件列表 ...

    kubernetes-mesos:Apache Mesos 的 Kubernetes 框架

    kubernetes-mesos 当遇到 Kubernetes 和 Mesos 是天作之合。...二进制文件对于 Kubernetes-Mesos 框架的仅二进制安装,您可以使用基于 Docker 的构建器。 以下命令将构建生成的二进制文件并将其复制到./bi

    ansible-mesos:Ansible配置以设置Mesos服务器

    您可以使用以下命令启动集群: vagrant up ./init-cluster.sh 这将启动三台Vagrant机器,在其上安装一个mesos集群,并安装两个示例Marathon应用程序和一个smaple Chronos应用程序。 如果这是您第一次运行它,将...

    mesos-spark:在 mesos 集群上运行 spark 作业

    Mesos 的主 URL 格式为 mesos://host:5050(对于单主 Mesos 集群)或 mesos://zk://host:2181(对于使用 ZooKeeper 的多主 Mesos 集群)。 Spark 发行版 url 应指向您的 Spark 版本的 Spark 发行版。 您可以从 ...

    saltstack-mesos:Mesos Saltstack状态易于安装

    Mesos Saltstack状态易于安装 您将需要/ etc / salt / minion这样的 grains: app: - mesos env: - dev roles: - mesos - master master: salt mine_functions: grains.item: - app - roles - env - ...

    ci-mesos:通过Docker,Mesos和Marathon增强了Jenkins

    Ci-mesos Jenkins Docker映像 打开詹金斯Dockerfile 从詹金斯检查:每周 显示Mesos本机库设置 检查Jenkins配置 检查主num执行者= 0 .csv文件的插件管理 检查mesos插件的存在 显示马拉松定义文件 $curl -X POST -H...

    selenium-mesos:Selenium在Mesos上

    Selenium介Kong一个Mesos框架,用于使用Docker容器大规模启动Selenium实例。 当前,框架仅支持设置具有单个集线器和多个节点的单个Selenium Grid。路线图特征支持具有多个网格和独立实例的复杂设置。 非ZooKeeper...

    clj-mesos:Mesos绑定Clojure

    您可以使用类似代理的接口声明调度程序或执行程序的实例: ( def myscheduler ( clj-mesos.scheduler/scheduler ( registered [driver fid mi] ( println " registered " fid mi)) ( resourceOffers [driver ...

    akka-mesos:Mesos 库建立在 Akka 之上

    用法使用 Mesos 注册框架 import akka . actor . ActorSystemimport akka . libprocess . PIDimport akka . mesos . Mesosimport akka . mesos . protos . FrameworkInfoimplicit val system = ActorSystem ( " ...

    docker-mesos:Mesos 的可信 Docker 镜像

    码头工人Mesos 的可信 Docker 镜像

    elasticsearch-mesos:Mesos 上的弹性搜索

    不要在生产中使用它! 我们很乐意得到社区的帮助,以使其达到生产级别。 先决条件 运行 0.15.0+ 版本的 Apache Mesos 集群 Java Maven 获取 教程 从 Mesosphere 下载发行版。 解压到驱动机器上

    packer-mesos:烤自己的Mesos(http

    Mesos 的 Packer 模板 烘焙你自己的 mesos 预装镜像!! 这包含用于构建 mesos 预安装映像的打包程序模板。 这也输出流浪盒。 Ubuntu 14.04 LTS(amd64) ubuntu-14.04_amd64.json :为virtualbox提供程序构建...

Global site tag (gtag.js) - Google Analytics