在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

什么是分布式文件系統

strongerHuang ? 來源:博文視點Broadview ? 作者:博文視點Broadview ? 2022-03-10 16:21 ? 次閱讀

我們無時無刻不在使用文件系統,進行開發時在使用文件系統,瀏覽網頁時在使用文件系統,玩手機時也在使用文件系統。

對于非專業人士來說,可能根本不知道文件系統為何物。因為,通常來說,我們在使用文件系統時一般不會感知到文件系統的存在。即使是程序開發人員,很多人對文件系統也是一知半解。

雖然文件系統經常不被感知,但是文件系統是非常重要的。在 Linux 中,文件系統是其內核的四大子系統之一;微軟的 DOS(Disk Operating System,磁盤管理系統),核心就是一個管理磁盤的文件系統,由此可見文件系統的重要性。

常見文件系統及分類

其實文件系統發展到現在,其種類也豐富多樣。比如,基于磁盤的普通本地文件系統除了 Ext4,還包括 XFS、ZFS 和 Btrfs 等。其中 Btrfs 和 ZFS 不僅可以管理一塊磁盤,還可以實現多塊磁盤的管理。不僅如此,這兩個文件系統實現了數據的冗余管理,這樣可以避免磁盤故障導致的數據丟失。除了對磁盤數據管理的文件系統,還有一些網絡文件系統。也就是說,這些文件系統看似在本地,但其實數據是在遠程的專門設備上。客戶端通過一些網絡協議實現數據的訪問,如 NFS 和 GlusterFS 等文件系統。經過幾十年的發展,文件系統的種類非常多,我們沒有辦法逐一進行介紹。下面就對主要的文件系統進行介紹。

本地文件系統

本地文件系統是對磁盤空間進行管理的文件系統,也是最常見的文件系統形態。從呈現形態上來看,本地文件系統就是一個樹形的目錄結構。本地文件系統本質上就是實現對磁盤空間的管理,實現磁盤線性空間與目錄層級結構的轉換,如下圖所示。

f13c7baa-9195-11ec-952b-dac502259ad0.png

從普通用戶的角度來說,本地文件系統主要方便了對磁盤空間的使用,降低了使用難度,提高了利用效率。常見的本地文件系統有 Ext4、Btrfs、XFS 和 ZFS 等。

偽文件系統

偽文件系統是 Linux 中的概念,它是對傳統文件系統的延伸。偽文件系統并不會持久化數據,而是內存中的文件系統。它是以文件系統的形態實現用戶與內核數據交互的接口。常見的偽文件系統有 proc、sysfs 和 configfs 等。

在 Linux 中,偽文件系統主要實現內核與用戶態的交互。比如,我們經常使用的 iostat 工具,其本質上是通過訪問/proc/diskstats 文件獲取信息的,如下圖所示。而該文件正是偽文件系統中的一個文件,但其內容其實是內核中對磁盤訪問的統計,它是內核某些數據結構的實例。

f151062e-9195-11ec-952b-dac502259ad0.png

網絡文件系統

網絡文件系統是基于 TCP/IP 協議(整個協議可能會跨層)的文件系統,允許一臺計算機訪問另一臺計算機的文件系統,就如訪問本地文件系統一樣。網絡文件系統通常分為客戶端和服務端,其中客戶端類似本地文件系統,而服務端則是對數據進行管理的系統。網絡文件系統的使用與本地文件系統的使用沒有任何差別,只需要執行 mount 命令掛載即可。網絡文件系統也有很多種類,如 NFS 和 SMB 等。

在用戶層面,完成掛載后的網絡文件系統與本地文件系統完全一樣,看不出任何差異,對用戶是透明的。網絡文件系統就好像將遠程的文件系統映射到了本地。如下圖所示,左側是客戶端,右側是文件系統服務端。

f1634e2e-9195-11ec-952b-dac502259ad0.png

當在客戶端對服務端導出的文件系統進行掛載后,服務端的目錄樹就成為客戶端目錄樹的一顆子樹。這個子目錄對普通用戶來說是透明的,不會感知到這是一個遠程目錄,但實際上讀/寫請求需要通過網絡轉發到服務端進行處理。

集群文件系統

集群文件系統本質上也是一種本地文件系統,只不過它通常構建在基于網絡的SAN 設備上,且在多個節點中共享 SAN 磁盤。集群文件系統最大的特點是可以實現客戶端節點對磁盤介質的共同訪問,且視圖具有一致性,如圖 1-22 所示。這種視圖的一致性是指,如果在節點 0 創建一個文件,那么在節點 1 和節點 2都可以馬上看到。這個特性其實跟網絡文件系統類似,網絡文件系統也是可以在某個客戶端看到其他客戶端對文件系統的修改的。但是兩者是有差異的,集群文件系統本質上還是構建在客戶端的,而網絡文件系統則是構建在服務端的。

f172f770-9195-11ec-952b-dac502259ad0.png

同時,對于集群文件系統來說,其最大的特點是多個節點可以同時為應用層提供文件系統服務,特別適合用于業務多活的場景,通過集群文件系統提供高可用集群機制,避免因為宕機造成服務失效。

分布式文件系統

從本質上來說,分布式文件系統其實也是一種網絡文件系統。在《計算機科學技術名詞》中給出的定義為“一種文件系統,所管理的數據資源存儲在分布式網絡節點上,提供統一的文件訪問接口”,可以看出,分布式文件系統與網絡文件系統的差異在于服務端包含多個節點,也就是服務端是可以橫向擴展的。從使用角度來說,分布式文件系統的使用與網絡文件系統的使用沒有太大的差異,也是通過執行 mount 命令掛載,客戶端的數據通過網絡傳輸到服務端進行處理。

我們發現常規的網絡文件系統最大的缺點是服務端無法實現橫向擴展。這個缺點對大型互聯網應用來說幾乎是不可容忍的。本文將介紹一下在互聯網領域應用非常廣泛的分布式文件系統。分布式文件系統最大的特點是服務端通過計算機集群實現,可以實現橫向擴展,存儲端的存儲容量和性能可以通過橫向擴展的方式實現近似線性的提升。

02

什么是分布式文件系統

分布式文件系統(Distributed File System,簡稱 DFS)是網絡文件系統的延伸,其關鍵點在于存儲端可以靈活地橫向擴展。也就是可以通過增加設備(主要是服務器)數量的方法來擴充存儲系統的容量和性能。同時,分布式文件系統還要對客戶端提供統一的視圖。也就是說,雖然分布式文件系統服務由多個節點構成,但客戶端并不感知。在客戶端來看就好像只有一個節點提供服務,而且是一個統一的分布式文件系統。

在分布式文件系統中,最出名的就是谷歌的 GFS。除此之外,還有很多開源的分布式文件系統,比較有名且應用比較廣泛的分布式文件系統有 HDFS、GlusterFS、CephFS、MooseFS 和 FastDFS 等。

分布式文件系統的具體實現有很多方法,不同的文件系統通常用來解決不同的問題,在架構上也有差異。雖然分布式文件系統有很多差異,但是有很多共性的技術點。

分布式文件系統與網絡文件系統的異同

在有些情況下,NFS 等網絡文件系統也被稱為分布式文件系統。但是在本文中,分布式文件系統是指服務端可以橫向擴展的文件系統。也就是說,分布式文件系統最大的特點是可以通過增加節點的方式增加文件系統的容量,提升性能。

當然,分布式文件系統與網絡文件系統也有很多相同的地方。比如,分布式文件系統也分為客戶端的文件系統和服務端的服務程序。同時,由于客戶端與服務端分離,分布式文件系統也要實現網絡文件系統中類似 RPC 的協議。

另外,分布式文件系統由于其數據被存儲在多個節點上,因此還有其他特點。包括但不限于以下幾點。

支持按照既定策略在多個節點上放置數據。

可以保證在出現硬件故障時,仍然可以訪問數據。

可以保證在出現硬件故障時,不丟失數據。

可以在硬件故障恢復時,保證數據的同步。

可以保證多個節點訪問的數據一致性。

由于分布式文件系統需要客戶端與多個服務端交互,并且需要實現服務端的容錯,通常來說,分布式文件系統都會實現私有協議,而不是使用 NFS 等通用協議。

03

常見分布式文件系統

分布式文件系統的具體實現方法有很多,其實早在互聯網興盛之前就有一些分布式文件系統,如 Lustre 等。早期分布式文件系統更多應用在超算領域。

隨著互聯網技術的發展,特別是谷歌的 GFS 論文的發表,分布式文件系統又得到進一步的發展。目前,很多分布式文件系統是參考谷歌發布的關于 GFS 的論文實現的。比如,大數據領域中的 HDFS 及一些開源的分布式文件系統 FastDFS 和CephFS 等。

在開源分布式文件系統方面,比較知名的項目有大數據領域的 HDFS 和通用的CephFS 和 GlusterFS 等。這幾個開源項目在實際生產中使用得相對比較多一些。接下來將對常見的分布式文件系統進行簡要的介紹。

GFS

GFS 是谷歌的一個分布式文件系統,該分布式文件系統因論文 The Google File System廣為世人所知。GFS 并沒有實現標準的文件接口,也就是其實現的接口并不與 POSIX 兼容。但包含創建、刪除、打開、關閉和讀/寫等基本接口。

GFS 集群節點包括兩個基本角色:一個是 master,該角色的節點負責文件系統級元數據管理;另一個是 chunkserver,該角色的節點通常有很多個,用于存儲實際的數據。GFS 對于文件的管理是在 master 完成的,而數據的實際讀/寫則可以直接與 chunkserver 交互,避免 master 成為性能瓶頸。

GFS 在實現時做了很多假設,如硬件為普通商用服務器、文件大小在數百兆甚至更大及負載以順序大塊讀者為主等。其中,對于文件大小的假設尤為重要。基于該假設,GFS 默認將文件切割為 64MB 大小的邏輯塊(chunk),每個 chunk 生成一個 64 位的句柄,由 master 進行管理。

這里需要重點強調的是,每個 chunk 生命周期和定位是由 master 管理的,但是chunk 的數據則是存儲在 chunkserver 的。正是這種架構,當客戶端獲得 chunk 的位置和訪問權限后可以直接與 chunkserver 交互,而不需要 master 參與,進而避免了master 成為瓶頸。

下圖所示為 GFS 架構示意圖。

f1a7c626-9195-11ec-952b-dac502259ad0.png

除了 GFS,還有很多類似架構的分布式文件系統。比如,在大數據領域中的HDFS,它是專用于 Hadoop 大數據存儲的分布式文件系統。其架構與 GFS 的架構類似,包含一個用于管理元數據的節點和多個存儲數據的節點,分別為 namenode和datanode。

HDFS 主要用來進行大文件的處理,它將文件按照固定大小切割,然后存儲到數據節點。同時為了保證數據的可靠性,這些數據被放到多個不同的數據節點。文件被切割的大小和同時放置數據節點的數量(副本數)是可配置的。

雖然 HDFS 是針對大文件設計的,但是也可以處理小文件。只不過對于小于切割單元的文件不進行切割。另外,HDFS 對小文件也做了一些優化,如 HAR 和SequenceFile 等方案,但 HDFS 終究不是特意為小文件設計的,因此在性能方面還有些欠缺。

除此之外,還有很多模仿 GFS 的開源分布式文件系統,如 FastDFS、MooseFS和 BFS 等。但大多數開源項目只實現了文件系統最基本的語義,嚴格來說不能稱為分布式文件系統,更像是對象存儲。

CephFS

有必要單獨介紹一下 CephFS 的原因是 CephFS 不僅實現了文件系統的所有語義,而且實現了元數據服務的多活橫向擴展。

CephFS 的架構與 GFS 的架構沒有太大差別,其突出的特點是在架構方面將GFS 的單活 master 節點擴展為多活節點。不僅可以元數據多活,而且可以根據元數據節點的負載情況實現負載的動態均衡。這樣,CephFS 不僅可以通過增加節點來實現元數據的橫向擴展,還可以調整節點負載,最大限度地使用各個節點的 CPU資源。

同時,CephFS 實現了對 POSIX 語言的兼容,在客戶端完成了內核態和用戶態兩個文件系統實現。當用戶掛載 CephFS 后,使用該文件系統可以與使用本地文件系統一樣方便。

GlusterFS

GlusterFS 是一個非常有歷史的分布式文件系統,其最大的特點是沒有中心節點。也就是 GlusterFS 并沒有一個專門的元數據節點來管理整個文件系統的元數據。

GlusterFS 抽象出卷(Volume)的概念,需要注意的是,這里的卷與 Linux LVM中的卷并非同一個概念。這里的卷是對文件系統的一個抽象,表示一個文件系統實例。當我們在集群端創建一個卷時,其實是創建了一個文件系統實例。

GlusterFS 有多種不同類型的卷,如副本卷、條帶卷和分布式卷等。正是通過這些卷特性的組合,GlusterFS 實現了數據可靠性和橫向擴展的能力。

原文標題:從文件系統到分布式文件系統

文章出處:【微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。

審核編輯:彭菁
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 接口
    +關注

    關注

    33

    文章

    8865

    瀏覽量

    152901
  • 存儲
    +關注

    關注

    13

    文章

    4457

    瀏覽量

    86845
  • 文件系統
    +關注

    關注

    0

    文章

    293

    瀏覽量

    20206

原文標題:從文件系統到分布式文件系統

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    分布式文件系統和fastDFS

    項目(1)(分布式文件系統、fastDFS,代碼實現fastDFS 文件上傳和下載)
    發表于 05-10 08:51

    一文解讀在RTThread平臺上使用DFS分布式文件系統

    1、RTThread平臺使用DFS文件系統  簡單介紹了一下DFS代碼框架和如何在RTThread平臺上使用DFS分布式文件系統。工作比較忙先把目前整理的發出來,希望對小伙伴們有幫助,也希望玩過
    發表于 09-15 16:57

    采用信任管理的分布式文件系統TrustFs

    在傳統的分布式文件系統中用戶無法判斷文件的可信任性,針對此問題提出采用信任管理的分布式文件系統TrustFs,使用數字簽名對
    發表于 04-02 08:57 ?19次下載

    海量郵件分布式文件系統的設計與實現

    本文通過歸納分析已有的分布式系統體系結構,研究并設計了一個針對于海量郵件存儲的分布式文件系統。受Google File System 架構的啟發,針對單個元數據服務器帶來的瓶頸問
    發表于 01-09 13:56 ?12次下載

    分布式文件系統數據塊聚類存儲節能策略

    針對分布式文件系統中由于數據塊隨機放置而導致的服務器利用率低、能耗管理復雜的問題,建立了數據塊訪問特征向量模型描述用戶對數據塊的隨機訪問,運用K-means算法對數據塊進行聚類計算,根據計算結果將
    發表于 01-17 13:37 ?0次下載

    基于分布式文件系統元數據操作優化

    隨著網絡應用的迅速發展,網絡時代數據規模越來越大,海量數據存儲和大規模并發的I/O成為了分布式系統中的瓶頸。單機環境下的文件系統已經不能滿足當前網絡時代的大容量、高可靠性、高性能、高擴展性等需求
    發表于 02-24 13:46 ?0次下載
    基于<b class='flag-5'>分布式</b><b class='flag-5'>文件系統</b>元數據操作優化

    盤點一下這些常見的分布式文件系統

    Alluxio是第一個基于內存的分布式文件系統,因此其相應速度也會超出普通的分布式文件系統很多,例如HDFS就比它慢數百倍。并且Alluxio和Spark也有良好的交互。最重要的是Al
    的頭像 發表于 08-15 16:25 ?1.2w次閱讀
    盤點一下這些常見的<b class='flag-5'>分布式</b><b class='flag-5'>文件系統</b>

    分布式文件系統的HDFS是什么

    上篇文章已經講到了,隨著數據量越來越大,在一臺機器上已經無法存儲所有的數據了,那我們會將這些數據分配到不同的機器來進行存儲,但是這就帶來一個問題:不方便管理和維護
    的頭像 發表于 05-04 09:36 ?4088次閱讀
    <b class='flag-5'>分布式</b><b class='flag-5'>文件系統</b>的HDFS是什么

    解析夸克分布式文件系統如何實現資源共享

    QKFILE—“夸克分布式文件系統”。簡單點說,它是一個點對點的分布式文件系統(和比特幣技術一樣),通過底層協議,可以讓存儲在QKFILE系統
    發表于 08-06 08:45 ?5077次閱讀

    分布式文件系統主從的伸縮性架構設計

    Hadoop當中負責分布式存儲的HDFS,被定義為分布式文件系統,對于進入到平臺當中的數據,提供高效的、可容錯、可擴展的數據存儲,這得益于分布式文件
    發表于 01-05 10:42 ?1329次閱讀
    <b class='flag-5'>分布式</b><b class='flag-5'>文件系統</b>主從<b class='flag-5'>式</b>的伸縮性架構設計

    2021年12種最佳分布式文件系統和對象存儲平臺榜單

    ? 分布式文件系統存儲利用單個并行文件系統將多個存儲節點集群在一起。該系統提供一個名稱空間和一個存儲池,以并行提供多個主機的高帶寬數據訪問。然后,將數據
    的頭像 發表于 01-27 16:06 ?7974次閱讀

    云存儲中的Ceph分布式文件系統及節點選擇

    云存儲中的¢eph分布式文件系統以其開原性和提供統一存儲能力的特點在企業和科研領域得到廣泛關注和應用。 CRUSH算法是eph分布式文件系統中的偽隨機數據
    發表于 03-31 10:46 ?13次下載
    云存儲中的Ceph<b class='flag-5'>分布式</b><b class='flag-5'>文件系統</b>及節點選擇

    分布式文件系統的設計框架

    因為HDFS系統分布式文件系統)可由數百或數千個存儲文件數據片段的服務器組成,即HDFS系統包含較多的硬件設備,所以HDFS
    的頭像 發表于 03-20 11:37 ?1182次閱讀

    分布式文件系統的設計原理是什么?

    什么是分布式文件系統分布式文件系統(DFS)是一種計算機文件系統,使用戶能夠從多個分布式位置存
    的頭像 發表于 10-17 17:35 ?1156次閱讀

    服務器數據恢復—Lustre分布式文件系統數據恢復案例

    5臺節點服務器,每臺節點服務器上有一組RAID5陣列。每組RAID5陣列上有6塊硬盤(其中1塊硬盤設置為熱備盤,其他5塊硬盤為數據盤)。上層系統環境為Lustre分布式文件系統。 機房天花板漏水
    的頭像 發表于 12-25 11:39 ?323次閱讀
    服務器數據恢復—Lustre<b class='flag-5'>分布式</b><b class='flag-5'>文件系統</b>數據恢復案例
    主站蜘蛛池模板: 牛仔裤美女国产精品毛片 | 77ee成人 | 日本三浦理惠子中文字幕 | 91网址在线播放 | 国产精品青草久久久久福利99 | 国产高清色视频免费看的网址 | 美女午夜 | 国产成人小视频 | 九九九精品 | 免费一级视频在线播放 | 久综合网 | 午夜小视频免费 | 成人中文字幕一区二区三区 | 天天摸天天看 | 成年网站在线 | www.四虎影 | 青娱乐啪啪 | 国产精品爽爽影院在线 | 97影院3 | 护士巨好爽好大乳 | 91精品国产91久久久久久青草 | 四虎影院官网 | 丁香花在线视频观看免费 | 美女黄网站人色视频免费国产 | 亚洲www美色 | 狠狠噜天天噜日日噜 | 亚洲综合色在线观看 | 色噜噜狠狠色综合欧洲selulu | 中文在线三级中文字幕 | 天天射天天怕 | 明星三级国产免费播放 | 天堂8在线官网 | 免费免播放器在线视频观看 | 欧美zooz人禽交免费观看 | 免费毛片网站在线观看 | 男人cao女人视频在线观看 | 3344免费播放观看视频 | 四虎tv在线观看884aa | 拍真实国产伦偷精品 | 天天操天天干天天干 | 色综合久久久久综合99 |