当前位置: 首页 > 知识库问答 >
问题:

Apache Mesos的持久存储

空英逸
2023-03-14

最近我发现了一个像Apache Mesos这样的东西。

在所有演示和示例中,这一切看起来都令人惊讶。我可以很容易地想象一个人将如何竞选无状态的工作--这自然符合整个想法。

3-请告诉我的方法在哲学方面是否是错误的(数据服务器的DFS和Mesos顶部的postgres之类的服务器的某种切换)

问题主要是从Apache Mesos的持久存储中复制的,由程序员堆栈交换上的zerkms提出。

共有1个答案

薛宜
2023-03-14

好问题。以下是Mesos中的几个即将推出的特性,以改进对有状态服务的支持,以及相应的当前解决方案。

  • 持久卷(0.23):在启动任务时,您可以创建一个存在于任务沙箱之外的卷,即使在任务结束/完成之后,该卷也将在节点上持久存在。当任务退出时,它的资源--包括持久卷--可以提供给框架,这样框架就可以再次启动相同的任务,启动恢复任务,或者启动一个将前一个任务的输出作为输入的新任务。
    • 当前的解决方案:将您的状态保存在沙箱之外的某个已知位置,并让您的任务尝试手动恢复它。也许可以将它保存在分布式文件系统/数据库中,以便可以从任何节点访问它。
    • 当前的解决方案:监视带外的磁盘使用情况,并运行定期清理作业。
      null

    1b)将服务器限制到特定的群集节点?您可以轻松地在马拉松中做到这一点,将应用程序限制到特定的主机名或具有特定属性值的任何节点(例如。nfs_access=true)。参见马拉松约束。如果您只想在特定的节点集上运行任务,那么只需要在这些节点上创建静态保留。如果您需要这些节点的可发现性,您应该查看Mesos-DNS和/或马拉松的HAProxy集成。

    1c)使用一些分布式FS?许多分布式文件系统提供的数据复制可以保证您的数据能够在任何一个节点失败后存活下来。持久化到DFS还可以为您安排任务提供更大的灵活性,尽管代价是网络和本地磁盘之间的延迟差异。Mesos内置支持从HDFS URI中获取二进制文件,许多客户使用HDFS将执行器二进制文件、配置文件和输入数据传递到将运行其任务的从服务器。

    2)DRBD、MooseFS、GlusterFS、NFS、CephFS?我听说过客户在Mesos中使用CephFS、HDFS和MapRFS。NFS似乎也很适合。对于Mesos来说,你使用什么并不重要,只要你的任务知道如何从它所在的节点访问它。

    希望能有所帮助!

 类似资料:
  • 本平台是通过storageclass来动态创建PV。也就是说咱们依赖于storageclass,如果您的Kubernetes不支持相应的存储试,将无法非常方便的进行挂载。 目前暂不支持挂载多个PVC,或许以后会更新吧。 这里演示的是用的NFS进行演示,实际使用时可根据自己的需求配置相应的provisioner,其他配置是一样的不需要调整,只需要在“模版管理” 调整StorageClass和Pers

  • 本地持久化卷允许用户通过标准 PVC 接口以简单便携的方式访问本地存储。PV 中包含系统用于将 Pod 安排到正确节点的节点亲和性信息。 一旦配置了本地卷,外部静态配置器(provisioner)可用于帮助简化本地存储管理。请注意,本地存储配置器与大多数配置器不同,并且尚不支持动态配置。相反,它要求管理员预先配置每个节点上的本地卷,并且这些卷应该是: Filesystem volumeMode(默

  • 持久化存储的相关配置 这里使用的是NFS的方式进行持久化,如果您有自己的持久化方案可以不使用改方案。 $ kubectl apply -f install/kubernetes/storage/serviceaccount.yaml $ kubectl apply -f install/kubernetes/storage/rbac.yaml $ kubectl apply -f install/

  • 主要内容:一、数据持久化,二、持久化的形式,三、源码分析,四、总结一、数据持久化 redis做为一种内存型数据库,做持久化,个人感觉略有鸡肋的意思。似乎有一种,别人有,自己不有也不行的感觉。以目前Redis主流的应用方式,如果仔细分析,基本上都是在内存中即可完成,对持久化没要求或者说不大。再举一个反例,如果内存中有几百G甚至更多的数据,真要是整体当机,恢复的时间基本就是灾难。 目前基本应用仍然是以关系型数据库或者其它数据库(如Hadoop,Mysql等)为持久化

  • 问题内容: 我有一个对象数组,每个对象都有许多属性。这是通过遍历对象数组获取的一些示例数据: 它的数据很少,所以我想避免使用核心数据。我需要能够持久保存数组,然后再次打开它并能够遍历它。我希望使用一个简单的解决方案,例如NSUserDefaults或NSKeyedArchiver,但是在Swift中我无法使用这种类型的数组(我已经在线阅读文档,论坛和示例了24小时……) 您将如何建议我像上面那样持

  • 创建新的Shelf # shelve_create.py import shelve with shelve.open('test_shelf.db') as s: s['key1'] = { 'int': 10, 'float': 9.5, 'string': 'Sample data', } # shelve_existing