Mesos 資料庫使用的持久化卷

2022-04-06 18:41:16 字數 1411 閱讀 6087

摘要: mesos為很多不同的使用者場景都提供了精妙的,考慮周全的api。持久化卷是由新的acceptoffers api引入的特性。持久化卷讓使用者可以為mesos構建資料庫框架,mesos可以在任何不可預見的故障和錯誤發生並且影響整個系統時,使資料持久化。本文選自《用mesos框架構建分布式應用》。

直到最近,mesos都僅僅能夠執行無須向磁碟儲存資料的服務。這是因為沒有方法預留所需的磁碟塊。從mesos 0.23版本開始,可以預留磁碟了。

我們可以將mesos當作乙個部署系統。如果mysql資料庫能夠自動將自身備份,並且按需建立新的副本,是不是很好呢?或者如果擁有乙個簡單的,自服務的rest api,能夠建立新的riak和cassandra集群,又會怎麼樣呢?為mesos構建資料庫框架的工作從2023年就開始了。這些框架的問題是每個主機都必須建立特別的資料分割槽,並且在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框架構建分布式應用》,點此鏈結可在博文視點官網檢視此書。

iOS 資料持久化 資料庫的簡單使用

資料庫是資料持久化的一種方法之一,今天簡單的來了解一下它的實用方法以及注意事項 我們所使用到的資料庫因為經常要對資料庫裡的資料進行操作,如果頻繁的開啟,關閉資料庫,可能會引發資料庫卡死,所以我們只要開啟資料庫,不用關閉,程式結束,會自動關閉資料庫 第一步,新增 libsqlite3.dylib 類庫...

Redis資料庫持久化

redis資料庫持久化 redis持久化 rdb 半持久化 當達成某種寫入條件,或者手動執行持久化命令時,才會進行持久化,rdb持久化類似於快照,將當前資料定格,以二進位制格式儲存到硬碟當中的持久化檔案裡,實時性不高 rdb持久化的工作流程 進行rdb持久化時,主程序會fork出乙個子程序,通過子程...

Activemq持久化資料庫(mysql)

找到persistenceadapter標籤 把之前的kahadb替換掉換成mysql的方式 下面需要配置mysql方式 驅動 連線的資料庫 使用者名稱密碼 最大連線 在broker的閉簽下把上面 引入進去 class org.apache.commons.dbcp2.basicdatasource...