DAOS 分布式異步對象存儲|架構(gòu)設(shè)計

      網(wǎng)友投稿 998 2022-05-29

      GitHub: https://github.com/storagezhang

      Emai: debugzhang@163.com

      DAOS: https://github.com/daos-stack/daos

      本文翻譯自 https://daos-stack.github.io/overview/architecture

      分布式異步對象存儲 (DAOS) 是一個開源的對象存儲系統(tǒng),專為大規(guī)模分布式非易失性內(nèi)存 (NVM, Non-Volatile Memory) 設(shè)計,利用了 SCM(Storage-Class Memory) 和 NVMe(Non-Volatile Memory express) 等的下一代 NVM 技術(shù)。

      DAOS 是一種橫向擴展的對象存儲,可以為高性能計算應(yīng)用提供高帶寬、低延遲和高 IOPS 的存儲容器,并支持結(jié)合仿真、數(shù)據(jù)分析和機器學習的下一代以數(shù)據(jù)為中心的工作流程。

      與主要針對旋轉(zhuǎn)介質(zhì)設(shè)計的傳統(tǒng)存儲堆棧不同,DAOS 針對全新 NVM 技術(shù)進行了重新構(gòu)建,可在用戶空間中端對端地運行,并能完全繞開操作系統(tǒng),是一套輕量級的系統(tǒng)。

      DAOS 提供了一種為訪問高細粒度數(shù)據(jù)提供原生支持的 I/O 模型,而不是傳統(tǒng)的基于高延遲和塊存儲設(shè)計的 I/O 模型,從而釋放下一代存儲技術(shù)的性能。

      與傳統(tǒng)的緩沖區(qū)不同,DAOS 是一個獨立的高性能容錯存儲層,它不依賴其它層來管理元數(shù)據(jù)并提供數(shù)據(jù)恢復(fù)能力。DAOS 服務(wù)器將其元數(shù)據(jù)保存在持久內(nèi)存中,而將批量數(shù)據(jù)直接保存在 NVMe 固態(tài)盤中。

      DAOS 特性

      DAOS 依靠 OFI(OpenFabric Interface) 繞過操作系統(tǒng),將 DAOS 操作交付給 DAOS 存儲服務(wù)器,充分利用架構(gòu)中的任何遠程直接內(nèi)存訪問 (RDMA, Remote Direct Memory Access) 功能,進行低延遲、高消息速率的用戶空間通信,并將數(shù)據(jù)存儲在持久內(nèi)存和 NVMe 固態(tài)盤中。

      DAOS 的鍵值存儲接口提供了統(tǒng)一的存儲模型,通過遷移 I/O 中間件庫實現(xiàn)對 DAOS API 的原生支持后,就能利用 DAOS 豐富的 API 和先進功能,例如 HDF5、MPI-IO 和 Apache Arrow。

      DAOS 還提供 POSIX 的仿真。POSIX 不再是新數(shù)據(jù)模型的基礎(chǔ),而是像其他 I/O 中間件一樣,POSIX 接口將構(gòu)建為 DAOS 后端 API 頂部的庫。

      DAOS 的 I/O 操作會被記錄并存儲到 SCM 維護到持久索引中,每次 I/O 都用一個特定時間戳標記,并與數(shù)據(jù)集的特定版本關(guān)聯(lián)。內(nèi)部不執(zhí)行讀-修改-寫 (read-modify-write) 操作,寫入操作是無損的,對對齊不敏感。在讀取請求時,DAOS 服務(wù)器遍歷持久索引,創(chuàng)建聚合 RDMA 描述符,從而直接在應(yīng)用程序提供的緩沖區(qū)中重建所請求的版本的數(shù)據(jù)。

      SCM 直接映射到 DAOS 服務(wù)地址空間的內(nèi)存,DAOS 服務(wù)通過直接加載/存儲來管理持久索引。根據(jù)不同 I/O 的特性,DAOS 服務(wù)可以決定將 I/O 存儲在 SCM 或 NVMe 中:

      對延遲敏感的I/O(如應(yīng)用程序元數(shù)據(jù)和字節(jié)粒度數(shù)據(jù))通常存儲在 SCM 中;

      檢查點和批量數(shù)據(jù)存儲在 NVMe 中。

      這種方法允許 DAOS 將數(shù)據(jù)流式傳輸?shù)?NVMe 中,并在 SCM 中維護內(nèi)部元數(shù)據(jù)索引,為批量數(shù)據(jù)提供原始 NVMe 帶寬。持久內(nèi)存開發(fā)工具包 PMDK 管理對 SCM 的事務(wù)性訪問,存儲性能開發(fā)工具包 SPDK 對 NVMe 設(shè)備進行用戶空間 I/O 操作。

      DAOS 可以提供:

      超高細粒度、低延遲和真正零拷貝的 I/O

      非阻塞型數(shù)據(jù)和元數(shù)據(jù)操作,以支持 I/O 和計算重疊

      先進的數(shù)據(jù)放置,以解決故障域

      由軟件管理冗余,可通過在線重建,支持復(fù)制和擦除代碼

      端到端 (E2E) 數(shù)據(jù)完整性

      可擴展的分布式事務(wù),提供可靠的數(shù)據(jù)一致性和自動恢復(fù)功能

      數(shù)據(jù)集快照功能

      安全框架,用于管理存儲池的訪問控制

      軟件定義存儲管理,用于調(diào)配、配置、修改和監(jiān)控存儲池

      通過 DAOS 數(shù)據(jù)模型和 API,為 I/O 中間件庫(例如 HDF5、 MPI-IO 和 POSIX)提供原生支持。應(yīng)用無需移植代碼,即可直接使用 DAOS API

      Apache Spark 集成

      使用發(fā)布/訂閱 API,實現(xiàn)原生生產(chǎn)者/消費者工作流程

      數(shù)據(jù)索引和查詢功能

      存儲內(nèi)計算,以減少存儲和計算節(jié)點之間的數(shù)據(jù)移動

      容災(zāi)工具

      DAOS 分布式異步對象存儲|架構(gòu)設(shè)計

      與 Lustre 并行文件系統(tǒng)無縫集成,并能擴展到其他并行文件系統(tǒng),從而為跨多個存儲層的數(shù)據(jù)訪問提供統(tǒng)一的命名空間

      數(shù)據(jù)搬運器,用于在 DAOS 池之間遷移數(shù)據(jù)集,將數(shù)據(jù)集從并行文件系統(tǒng)遷移到 DAOS,反之亦然

      DAOS 組件

      一個數(shù)據(jù)中心可能有數(shù)十萬個計算節(jié)點,通過一個可伸縮的高性能結(jié)構(gòu)相互連接,其中所有節(jié)點或稱為存儲節(jié)點的節(jié)點子集都可以直接訪問 NVM 存儲。

      DAOS 安裝涉及幾個可以集中或分布式的組件。

      DAOS 系統(tǒng)和存儲節(jié)點

      DAOS 系統(tǒng)由一個系統(tǒng)名標識,它由一組連接到同一結(jié)構(gòu)的 DAOS 存儲節(jié)點組成。DAOS 存儲節(jié)點為每個節(jié)點運行一個 DAOS 服務(wù)實例,該實例為每個物理套接字啟動一個 DAOS I/O 引擎進程。這些 DAOS 服務(wù)的信息被記錄到系統(tǒng)映射中,該映射為每個 I/O 引擎進程分配一個唯一的整數(shù)秩。兩個不同的 DAOS 系統(tǒng)由兩組不相交的 DAOS 服務(wù)器組成,它們之間無法相互配合。

      DAOS 服務(wù)

      DAOS 服務(wù)是一個多租戶守護進程,運行在每個存儲節(jié)點的 Linux 實例上(物理節(jié)點、虛擬機或容器)。服務(wù)的 I/O 引擎子進程通過網(wǎng)絡(luò)導(dǎo)出本地連接的 SCM 和 NVM 存儲。服務(wù)監(jiān)聽一個管理端口(由 IP 地址和 TCP 端口號尋址),以及一個或多個結(jié)構(gòu)端點(由網(wǎng)絡(luò) URI 尋址)。

      DAOS 服務(wù)通過 /etc/DAOS?中的 YAML 文件進行配置,包括其 I/O 引擎子進程的配置。服務(wù)的啟動可以與不同的守護進程管理或編排框架集成(systemd 腳本、Kubernetes 服務(wù)、或類似 pdsh 和 srun 的并行啟動程序)。

      I/O引擎

      在 DAOS I/O 引擎中,存儲靜態(tài)地跨越多個 Target 分區(qū),增強并發(fā)能力。為了避免競爭,每個 Target 都有其私有存儲、自己的服務(wù)線程池以及專用的網(wǎng)絡(luò)上下文,這些上下文可以直接通過結(jié)構(gòu)尋址,而不依賴于托管在同一存儲節(jié)點上的其他 Target 。

      SCM 模塊通常以 AppDirect interleaved?模式配置。因此,它們作為每個套接字(在 fsdax?模式)的單個 PMEM 命名空間呈現(xiàn)給操作系統(tǒng)。當配置每個 I/O 引擎的 N 個 Target 時,每個 Target 都使用該套接字 fsdax 的 SCM 容量的

      1

      N

      \frac{1}{N}

      N1 ,與其它 Target 獨立。每個 Target 還使用連接到此套接字的 NVMe 驅(qū)動器容量的一小部分。

      Target

      Target 沒有針對存儲介質(zhì)故障實現(xiàn)任何內(nèi)部數(shù)據(jù)保護機制。因此,一個 Target 就是一個單點故障,同時也是故障單元。動態(tài)狀態(tài)與每個 Target 相關(guān)聯(lián):其狀態(tài)可以是“up and running”,也可以是“down and not available”。

      Target 是性能的單位。與 Target 關(guān)聯(lián)的硬件組件(如后端存儲介質(zhì)、CPU 核心和網(wǎng)絡(luò))的能力和容量有限。

      DAOS I/O 引擎實例導(dǎo)出的 Target 數(shù)是可配置的,取決于底層硬件(I/O 引擎實例的 SCM 模塊數(shù)和 NVMe SSD 數(shù))。I/O 引擎的 Target 數(shù)的最佳配置是該 I/O 引擎服務(wù)的 NVMe 驅(qū)動器數(shù)的整數(shù)倍。

      存儲 API、應(yīng)用程序接口和工具

      應(yīng)用程序、用戶和管理員可以通過兩個不同的客戶端 API 與 DAOS 系統(tǒng)交互。

      管理 API 提供了管理 DAOS 系統(tǒng)的接口。它旨在與不同供應(yīng)商的存儲管理或開源編排框架集成。dmg 命令行工具是在 DAOS 的管理 API 上構(gòu)建的。

      DAOS 庫 libdaos 實現(xiàn)了 DAOS 存儲模型,主要提供給希望在 DAOS 系統(tǒng)中存儲數(shù)據(jù)集的應(yīng)用程序和 I/O 中間件的開發(fā)人員。用戶常用的 daos 命令等的也構(gòu)建在 API 之上,允許用戶通過命令行管理數(shù)據(jù)集。

      應(yīng)用程序可以通過本機 DAOS API、I/O 中間件庫(如 POSIX 仿真、MPI-IO、HDF5)或已與本機 DAOS 存儲模型集成的 Spark 或 TensorFlow 等框架直接訪問存儲在 DAOS 中的數(shù)據(jù)集。

      代理

      DAOS 代理是駐留在客戶端節(jié)點上的守護進程,通過與 DAOS 庫交互驗證應(yīng)用程序進程。它是一個可信任的實體,支持使用證書對 DAOS 客戶端進行簽名。DAOS 代理支持不同的身份驗證框架,并使用 Unix 域套接字與客戶端庫通信。

      分布式 存儲 對象存儲服務(wù) OBS

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:重型柴油車SAE J1939總線數(shù)據(jù)結(jié)構(gòu)分析及應(yīng)用
      下一篇:一個七年的Java程序員從業(yè)總結(jié):比起禿頭,我更怕數(shù)據(jù)庫底層設(shè)計原理結(jié)構(gòu)
      相關(guān)文章
      亚洲A∨精品一区二区三区| 日本亚洲免费无线码 | 自拍偷自拍亚洲精品被多人伦好爽| 亚洲人成网站色7799| 国产精品亚洲午夜一区二区三区| 亚洲免费在线视频观看| 久久狠狠高潮亚洲精品| 97久久精品亚洲中文字幕无码| 久久久久亚洲Av无码专| 久久精品国产亚洲精品2020| 午夜亚洲国产理论秋霞| 亚洲电影国产一区| 亚洲国产精品热久久| 亚洲欧洲日产国产综合网| 亚洲一二成人精品区| 亚洲精品中文字幕麻豆| 亚洲国产美女在线观看| 亚洲午夜电影在线观看| 亚洲1区1区3区4区产品乱码芒果| 亚洲一区二区三区在线| 亚洲色www永久网站| 成人亚洲国产精品久久| 亚洲人成影院在线无码观看| 久久精品国产亚洲7777| 国产亚洲免费的视频看| 亚洲成在人天堂一区二区| 亚洲精品偷拍无码不卡av| 国产精品亚洲片在线va| 久久精品熟女亚洲av麻豆| 国产99久久亚洲综合精品| 亚洲精品人成无码中文毛片 | 亚洲国产精品嫩草影院久久 | 亚洲性猛交XXXX| 亚洲爆乳无码一区二区三区| 亚洲尹人香蕉网在线视颅| 91亚洲精品自在在线观看| 亚洲综合无码无在线观看| 大胆亚洲人体视频| 亚洲日本乱码在线观看| 久久久久无码精品亚洲日韩 | 亚洲图片中文字幕|