chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

對比SeaweedFS與JuiceFS在設(shè)計與功能上的差異

OSC開源社區(qū) ? 來源:Juicedata ? 2023-02-16 10:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

SeaweedFS 是一款高效的分布式文件存儲系統(tǒng),最早的設(shè)計原型參考了 Facebook 的 Haystack,具有快速讀寫小數(shù)據(jù)塊的能力。本文將通過對比 SeaweedFS 與 JuiceFS 在設(shè)計與功能上的差異,以幫助讀者進行更適合自己的選擇。

SeaweedFS 系統(tǒng)結(jié)構(gòu)

SeaweedFS 由 3 部分組成,底層存儲文件的 Volume Server,用于管理集群的 Master Server,以及一個向上提供更多特性的 Filer 可選組件。

67f1a4b4-ad33-11ed-bfe3-dac502259ad0.png

Volume Server 與 Master Server

在系統(tǒng)運作上,Volume Server 與 Master Server 一并服務于文件的存儲。Volume Server 專注于數(shù)據(jù)的寫入與讀取,而 Master Server 則偏向是一個集群與 Volumes 的管理服務。

在讀寫數(shù)據(jù)時,SeaweedFS 的實現(xiàn)與 Haystack 相似,用戶創(chuàng)建的一個 Volume 即是一個大磁盤文件(下圖的 Superblock)。在此 Volume 中,用戶寫入的所有文件(下圖的 Needle)都會被合并到該大磁盤文件中。

在開始寫入數(shù)據(jù)之前,調(diào)用者需要向 SeaweedFS(Master Server)進行寫入申請,隨后 SeaweedFS 會根據(jù)當前的數(shù)據(jù)量返回一個 File ID(由 Volume ID 與 offset 組成),在寫入的過程中,一并被寫入的還有基礎(chǔ)的元數(shù)據(jù)信息(文件長度與 Chunk 等信息);

當寫入完成之后,調(diào)用者需要在一個外部系統(tǒng)(例如 MySQL)中對該文件與返回的 File ID 進行關(guān)聯(lián)保存。在讀取數(shù)據(jù)時,由于 File ID 已經(jīng)包含了計算文件位置(偏移)的所有信息,因此可以高效地將文件的內(nèi)容讀取出來。

681ad474-ad33-11ed-bfe3-dac502259ad0.png

Filer

在上述的底層存儲單元之上,SeaweedFS 提供了一個名為 Filer 的組件。通過向下對接 Volume Server 與 Master Server,對外提供豐富的功能與特性(如 POSIX 支持、WebDAV、S3 接口等)。與 JuiceFS 相同,F(xiàn)iler 也需要對接一個外部數(shù)據(jù)庫以保存元數(shù)據(jù)信息。

為了方便闡述,下文中所指的 SeaweedFS,皆包含了 Filer 組件。

JuiceFS 系統(tǒng)結(jié)構(gòu)

6829b336-ad33-11ed-bfe3-dac502259ad0.png

JuiceFS 采用「數(shù)據(jù)」「元數(shù)據(jù)」分離存儲的架構(gòu),文件數(shù)據(jù)本身會被切分保存在對象存儲(如 Amazon S3)當中,而元數(shù)據(jù)則是會被保存在用戶自行選擇的數(shù)據(jù)庫里(如 Redis、MySQL)。通過共享同一個份數(shù)據(jù)庫與對象存儲,JuiceFS 實現(xiàn)了一個強一致性保證的分布式文件系統(tǒng),同時還具有「POSIX 完全兼容」、「高性能」等諸多特性。

元數(shù)據(jù)對比

SeaweedFS 與 JuiceFS 都支持通過外部數(shù)據(jù)庫以存儲文件系統(tǒng)的元數(shù)據(jù)信息。在數(shù)據(jù)庫支持層面,SeaweedFS 支持多達24 種[1]數(shù)據(jù)庫。JuiceFS 對數(shù)據(jù)庫事務能力要求高(見下文),當前支持了 3 類共 10 種事務型數(shù)據(jù)庫。

原子性操作

為了保證所有元數(shù)據(jù)操作的原子性,JuiceFS 在實現(xiàn)層面需要使用有事務處理能力的數(shù)據(jù)庫。而 SeaweedFS僅在執(zhí)行 rename 操作時啟用了部分數(shù)據(jù)庫(SQL、ArangoDB 和 TiKV)的事務, 對于數(shù)據(jù)庫的事務能力要求較低。同時,由于Seaweed FS 在 rename 操作中拷貝元數(shù)據(jù)時,未對原目錄或文件進行加鎖,可能會導致過程中更新的數(shù)據(jù)丟失。

變更日志(changelog)

SeaweedFS 會為所有的元數(shù)據(jù)操作生成變更日志,此日志可被進一步用于數(shù)據(jù)復制(見下文)、操作審計等功能,而 JuiceFS 則暫未實現(xiàn)此特性。

存儲對比

如前文所述,SeaweedFS 的數(shù)據(jù)存儲由 Volume Server + Master Server 實現(xiàn),支持小數(shù)據(jù)塊的「合并存儲」、「糾刪碼」等特性。而 JuiceFS 的數(shù)據(jù)存儲則是依托于對象存儲服務服務,相關(guān)的特性也都由用戶選擇的對象存儲提供。

文件拆分

在存儲數(shù)據(jù)時,SeaweedFS 與 JuiceFS 都會將文件拆分成若干個小塊再持久化到底層的數(shù)據(jù)系統(tǒng)中。

SeaweedFS 將文件拆分成 8MB 的塊,對于超大文件(超過 8GB),它會將 Chunk 索引也保存到底層的數(shù)據(jù)系統(tǒng)中。

JuiceFS 則是先拆成 64MB 的 Chunk,再拆成 4MB 的 Object,通過內(nèi)部一個 Slice 的概念對隨機寫、順序讀、重復寫等性能進行了優(yōu)化。(詳情見讀取清求處理流程[2])

分層存儲

對于新創(chuàng)建的 Volume,SeaweedFS 會把數(shù)據(jù)存儲在本地,而對于較舊的 Volume,SeaweedFS 支持將他們上傳至云端以達到冷熱數(shù)據(jù)的分離[3]。在此方面,JuiceFS 則需要依賴外部的服務。

數(shù)據(jù)壓縮

JuiceFS 支持使用 LZ4 或者 ZStandard 來為所有寫入的數(shù)據(jù)進行壓縮,而 SeaweedFS 則是根據(jù)寫入文件的擴展名、文件類型等信息來選擇是否進行壓縮。

存儲加密

JuiceFS 支持傳輸中加密(encryption in transit)及靜態(tài)加密(encryption at rest),在用戶開啟了靜態(tài)加密時,需要用戶傳遞一個自行管理的密鑰,所有寫入的數(shù)據(jù)都會基于此密鑰進行數(shù)據(jù)的加密。詳情見 《數(shù)據(jù)加密[4]》。

SeaweedFS 同樣支持傳輸中加密與靜態(tài)加密。在開啟了數(shù)據(jù)加密后,所有寫入 Volume Server 的數(shù)據(jù)都會使用隨機的密鑰進行加密,而這些對應的隨機密鑰信息則由維護「metadata」「Filer」進行管理。

訪問協(xié)議

POSIX 兼容性

JuiceFS完全兼容 POSIX[5], 而 SeaweedFS 目前只實現(xiàn)了部分的 POSIX 兼容(「Issue 1558」[6]與Wiki[7]),功能還持續(xù)完善中。

S3 協(xié)議

JuiceFS 通過 MinIO S3 網(wǎng)關(guān)實現(xiàn)了S3 網(wǎng)關(guān)[8]的功能。它為 JuiceFS 中的文件提供跟 S3 兼容的 RESTful API,在不方便掛載的情況下能夠用 s3cmd、AWS CLI、MinIO Client(mc)等工具管理 JuiceFS 上存儲的文件。

SeaweedFS 當前支持了約 20 個 S3 API,覆蓋了常用的讀寫查刪等請求,對一些特定的請求(如 Read)還做了功能上的擴展,詳細見Amazon-S3-API[9]。

WebDAV 協(xié)議

JuiceFS 與 SeaweedFS 皆支持 WebDAV 協(xié)議。

HDFS 兼容性

JuiceFS完整兼容 HDFS API[10]。不僅兼容 Hadoop 2.x 和 Hadoop 3.x,還兼容 Hadoop 生態(tài)系統(tǒng)中的各種組件。SeaweedFS 則是提供了對 HDFS API 的基礎(chǔ)兼容[11],對于部分操作(如 turncate、concat、checksum 和擴展屬性等)則尚未支持。

CSI 驅(qū)動

JuiceFS[12]與SeaweedFS[13]皆提供了 「Kubernetes CSI Driver」 以幫助用戶在 Kubernetes 生態(tài)中使用對應的文件系統(tǒng)。

擴展功能

客戶端緩存

JuiceFS 有著多種客戶端緩存策略,涵蓋從元數(shù)據(jù)到數(shù)據(jù)緩存的各個部分,允許用戶根據(jù)自己的應用場景進行調(diào)優(yōu)(詳情[14]),而 SeaweedFS 不具備客戶端緩存能力。

集群數(shù)據(jù)復制

對于多個集群之間的數(shù)據(jù)復制,SeaweedFS 支持「Active-Active」與「Active-Passive」兩種異步的復制模式,2 種模式都是通過傳遞 changelog 再應用的機制實現(xiàn)了不同集群數(shù)據(jù)間的一致性,對于每一條 changelog,其中會有一個簽名信息以保證同一個修改不會被循環(huán)多次。在集群節(jié)點數(shù)量超過 2 個節(jié)點的 Active-Active 模式下,SeaweedFS 的一些操作(如重命名目錄)會受到一些限制。

JuiceFS 尚未原生支持集群之間的數(shù)據(jù)同步功能,需要依賴元數(shù)據(jù)引擎和對象存儲自身的數(shù)據(jù)復制能力。

云上數(shù)據(jù)緩存

SeaweedFS 可以作為云上對象存儲的緩存來使用,支持通過命令手動預熱數(shù)據(jù)。對于緩存數(shù)據(jù)的修改,會異步同步到對象存儲中。JuiceFS 需要將文件分塊存儲到對象存儲中,尚不支持為對象存儲中已有的數(shù)據(jù)提供緩存加速。

回收站

JuiceFS 默認開啟回收站[15]功能,會自動將用戶刪除的文件移動到 JuiceFS 根目錄下的 .trash 目錄內(nèi),保留指定時間后才將數(shù)據(jù)真正清理。SeaweedFS 暫不支持此功能。

運維工具

JuiceFS 提供了 juciefs stats 以及 juicefs profile 兩種子命令,允許用戶實時查看當前或回放某一時間段的性能指標。同時,JuiceFS 還對外開發(fā)metrics[16]接口,用戶能夠方便地將監(jiān)控數(shù)據(jù)接入到 Prometheus 與 Grafana 中。

SeaweedFS 則同時實現(xiàn)了Push 與 Pull[17]2種方式對接 Prometheus 與Grafana ,同時提供了weed shell[18]的交互式工具方便使用者進行一系列運維工作(如查看當前集群狀態(tài)、列舉文件列表等)。

其它

?在發(fā)布時間上,SeaweedFS 于 2015 年 4 月發(fā)布,目前累計 stars 為 16.4K,而 JuiceFS 于 2021 年 1 月發(fā)布,截止目前累計 7.3K stars。

?在項目上,JuiceFS 與 SeaweedFS 皆采用了對商用更友好的 Apache License 2.0,SeaweedFS 主要由 Chris Lu 個人進行維護,而 JuiceFS 則主要由 Juicedata 公司進行維護。

? JuiceFS 與 SeaweedFS 皆采用 Go 語言進行編寫。

對比清單

SeaweedFS JuiceFS
元數(shù)據(jù) 多引擎 多引擎
元數(shù)據(jù)操作原子性 未保證 通過數(shù)據(jù)庫事務保證
變更日志
數(shù)據(jù)存儲 包含 外部服務
糾刪碼 支持 依賴外部服務
數(shù)據(jù)合并 支持 依賴外部服務
文件拆分 8MB 64MB + 4MB
分層存儲 支持 依賴外部服務
數(shù)據(jù)壓縮 支持(基于擴展名) 支持(全局設(shè)置)
存儲加密 支持 支持
POSIX 兼容性 基本 完整
S3 協(xié)議 基本 基本
WebDAV 協(xié)議 支持 支持
HDFS 兼容性 基本 完整
CSI 驅(qū)動 支持 支持
客戶端緩存 不支持 支持
集群數(shù)據(jù)復制 雙向異步、多模式 不支持
云上數(shù)據(jù)緩存 支持(手動同步) 不支持
回收站 不支持 支持
運維工具 提供 提供
發(fā)布時間 2015.4 2021.1
主要維護者 個人(Chris Lu) 公司(Juicedata Inc)
語言 Go Go
開源協(xié)議 Apache License 2.0 Apache License 2.0





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 存儲系統(tǒng)
    +關(guān)注

    關(guān)注

    2

    文章

    423

    瀏覽量

    41352
  • volume
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    7941
  • MySQL
    +關(guān)注

    關(guān)注

    1

    文章

    856

    瀏覽量

    27882
  • Posix
    +關(guān)注

    關(guān)注

    0

    文章

    36

    瀏覽量

    9853

原文標題:淺析SeaweedFS與JuiceFS架構(gòu)異同

文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    三極管和MOS管功能上有什么區(qū)別?

    MOS管和三極管功能上有什么區(qū)別?這兩種元件本身就可以看作一個基本單元,一個獨立的器件,就算拆開外殼,用肉眼也找不出什么差別,從工作原理上理解又謷牙詰屈,這次從一個簡單的觸摸燈電路來感受一下二者功能上的區(qū)別。
    發(fā)表于 02-21 09:00 ?808次閱讀

    No Output是什么意思? Generation與Compare功能上有什么區(qū)別?

    No Output是什么意思? Generation 與 Compare功能上有什么區(qū)別?
    發(fā)表于 04-07 07:19

    哪里可找到智能門鎖功能上開發(fā)的公司

    本帖最后由 gk320830 于 2015-3-4 22:59 編輯 那里可找到智能門鎖功能上開發(fā)的公司
    發(fā)表于 09-01 23:10

    LG可卷曲電視畫質(zhì)以及功能上有什么改變嗎?

    柔性屏能做什么?LG可卷曲電視有什么特點?LG可卷曲電視畫質(zhì)以及功能上有什么改變嗎?
    發(fā)表于 06-17 11:54

    請問交流伺服電機和無刷直流伺服電機功能上有什么區(qū)別?

    伺服系統(tǒng)是什么?伺服系統(tǒng)的主要作用有哪些?伺服系統(tǒng)主要分為哪幾類?對伺服系統(tǒng)的基本要求有哪些? 交流伺服電機和無刷直流伺服電機功能上有什么區(qū)別?
    發(fā)表于 07-13 08:15

    請問交流伺服電機和無刷直流伺服電機功能上有什么區(qū)別?

    伺服電機和步進電機的區(qū)別是什么?請問交流伺服電機和無刷直流伺服電機功能上有什么區(qū)別?
    發(fā)表于 10-08 08:40

    請問交流伺服電機和無刷直流伺服電機功能上有什么區(qū)別?

    什么是伺服電機?有幾種類型?工作特點是什么?請問交流伺服電機和無刷直流伺服電機功能上有什么區(qū)別?
    發(fā)表于 10-13 06:01

    怎樣基于單片機的計算器功能上加入時鐘模式呢

    怎樣基于單片機的計算器功能上加入時鐘模式呢?
    發(fā)表于 02-24 07:05

    請問一下proteus和protel軟件仿真功能上的差別在什么地方?

    請問一下proteus和protel軟件仿真功能上的差別在什么地方?就是說他們仿真上有沒有各自的什么側(cè)重點?哪個的功能強些?
    發(fā)表于 04-26 15:43

    RS232與RS485功能上的區(qū)別

    RS232與RS485功能上的區(qū)別介紹。
    發(fā)表于 11-15 11:19 ?1534次閱讀

    8位和32位MCU功能上有什么區(qū)別?如何選擇?

    該如何對8位以及32位的MCU進行選擇?8位和32位MCU功能上仍是互為輔助、各有千秋,這其中的訣竅就在于,需先了解什么樣的應用適合什么樣的MCU架構(gòu)。
    的頭像 發(fā)表于 08-16 17:37 ?2.2w次閱讀

    汽車 LED 前燈形式和功能上的演變

    汽車 LED 前燈形式和功能上的演變
    發(fā)表于 03-20 08:04 ?9次下載
    汽車 LED 前燈<b class='flag-5'>在</b>形式和<b class='flag-5'>功能上</b>的演變

    負載常見的三種形式屬性和功能上有什么不同?

    負載常見的三種形式屬性和功能上有什么不同?負載常見的三種形式:阻性負載、感性負載、容性負載,三者在其屬性、電壓/電流關(guān)系和功能上有所不同,下面進行詳細分析。1、不同的屬性:直流和交流純阻性負載產(chǎn)生
    的頭像 發(fā)表于 10-11 18:10 ?4786次閱讀
    負載常見的三種形式<b class='flag-5'>在</b>屬性和<b class='flag-5'>功能上</b>有什么不同?

    負載常見的三種形式屬性和功能上有什么不同?

    負載常見的三種形式屬性和功能上有什么不同? 計算機科學中,負載(Load)是指一個系統(tǒng)或設(shè)備正在承受的工作量或任務量。常見的負載形式主要包括計算負載、網(wǎng)絡負載和存儲負載。這三種形式
    的頭像 發(fā)表于 11-13 16:04 ?2213次閱讀

    6芯M16公頭汽車功能上的應用

      德索工程師說道6芯M16公頭汽車功能上的應用非常廣泛,其多芯設(shè)計和優(yōu)良的電氣性能使得它能夠滿足汽車系統(tǒng)中對多通道、多參數(shù)監(jiān)測的需求,提高系統(tǒng)的集成度和工作效率。以下是關(guān)于6芯M16公頭汽車
    的頭像 發(fā)表于 06-21 13:49 ?655次閱讀
    6芯M16公頭<b class='flag-5'>在</b>汽車<b class='flag-5'>功能上</b>的應用