• <ul id="k6mek"><pre id="k6mek"></pre></ul>
      <ul id="k6mek"></ul>
      <ul id="k6mek"></ul>
    • <blockquote id="k6mek"><fieldset id="k6mek"></fieldset></blockquote>
    • <samp id="k6mek"><tbody id="k6mek"></tbody></samp><ul id="k6mek"><tbody id="k6mek"></tbody></ul>
      <th id="k6mek"></th>
    • <samp id="k6mek"></samp>
    • 塊存儲、文件存儲、對象存儲這三者的本質(zhì)差別是什么

      這三者的本質(zhì)差別是使用數(shù)據(jù)的“用戶”不同:塊存儲的用戶是可以讀寫塊設備的軟件系統(tǒng),例如傳統(tǒng)的文件系統(tǒng)、數(shù)據(jù)庫;文件存儲的用戶是自然人;對象存儲的用戶則是其它計算機軟件。

      首先要說明一下的是,這三個概念都是分布式存儲中的概念,由不同的網(wǎng)絡存儲協(xié)議實現(xiàn)。不過“網(wǎng)絡”和“存儲”的結合本身會對解釋這三個概念的本質(zhì)差異帶來不便,下面的解釋中我會先解釋存儲本身,之后再結合網(wǎng)絡來說明。

      文件存儲文件存儲的用戶是自然人,最容易理解。計算機中所有的數(shù)據(jù)都是0和1,存儲在硬件介質(zhì)上的一連串的01組合對我們來說完全無法去分辨以及管理。因此我們用“文件”這個概念對這些數(shù)據(jù)進行組織,所有用于同一用途的數(shù)據(jù),按照不同應用程序要求的結構方式組成不同類型的文件(通常用不同的后綴來指代不同的類型),然后我們給每一個文件起一個方便理解記憶的名字。而當文件很多的時候,我們按照某種劃分方式給這些文件分組,每一組文件放在同一個目錄(或者叫文件夾)里面,當然我們也需要給這些目錄起一個容易理解和記憶的名字。而且目錄下面除了文件還可以有下一級目錄(稱之為子目錄或者子文件夾),所有的文件、目錄形成一個樹狀結構。我們最常用的Windows系統(tǒng)中,打開資源管理器就可以看到以這種方式組織起來的無數(shù)個文件和目錄。在Linux可以用tree命令列出以某個文件夾為根節(jié)點列出一棵樹:

      為了方便查找,從根節(jié)點開始逐級目錄往下,一直到文件本身,把這些目錄、子目錄、文件的名字用特殊的字符(例如Windows/DOS用“\”,類Unix系統(tǒng)用“/”)拼接起來,這樣的一串字符稱之為路徑,例如Linux中的“/etc/systemd/system.conf”或者Windows中的“C:\Windows\System32\taskmgr.exe”。人類用路徑作為唯一標識來訪問具體的文件。而由作為自然人的程序員所編寫的各種軟件程序,絕大部分也使用這種方式來訪問文件。

      把存儲介質(zhì)上的數(shù)據(jù)組織成目錄-子目錄-文件這種形式的數(shù)據(jù)結構,用于從這個結構中尋找、添加、修改、刪除文件的程序,以及用于維護這個結構的程序,組成的系統(tǒng)有一個專用的名字:文件系統(tǒng)(File System)。文件系統(tǒng)有很多,常見的有Windows的FAT/FAT32/NTFS,Linux的EXT2/EXT3/EXT4/XFS/BtrFS等。而在網(wǎng)絡存儲中,底層數(shù)據(jù)并非存儲在本地的存儲介質(zhì),而是另外一臺服務器上,不同的客戶端都可以用類似文件系統(tǒng)的方式訪問這臺服務器上的文件,這樣的系統(tǒng)叫網(wǎng)絡文件系統(tǒng)(Network File System),常見的網(wǎng)絡文件系統(tǒng)有Windows網(wǎng)絡的CIFS(也叫SMB)、類Unix系統(tǒng)網(wǎng)絡的NFS等。而文件存儲除了網(wǎng)絡文件系統(tǒng)外,F(xiàn)TP、HTTP其實也算是文件存儲的某種特殊實現(xiàn),都是可以通過某個url來訪問一個文件。

      塊存儲傳統(tǒng)的文件系統(tǒng),是直接訪問存儲數(shù)據(jù)的硬件介質(zhì)的。介質(zhì)不關心也無法去關心這些數(shù)據(jù)的組織方式以及結構,因此用的是最簡單粗暴的組織方式:所有數(shù)據(jù)按照固定的大小分塊,每一塊賦予一個用于尋址的編號。以大家比較熟悉的機械硬盤為例,一塊就是一個扇區(qū),老式硬盤是512字節(jié)大小,新硬盤是4K字節(jié)大小。老式硬盤用柱面-磁頭-扇區(qū)號(CHS,Cylinder-Head-Sector)組成的編號進行尋址,現(xiàn)代硬盤用一個邏輯塊編號尋址(LBA,Logical Block Addressing)。所以,硬盤往往又叫塊設備(Block Device),當然,除了硬盤還有其它塊設備,例如不同規(guī)格的軟盤,各種規(guī)格的光盤,磁帶等。

      至于哪些塊組成一個文件,哪些塊記錄的是目錄/子目錄信息,這是文件系統(tǒng)的事情。不同的文件系統(tǒng)有不同的組織結構,這個就不展開了。為了方便管理,硬盤這樣的塊設備通??梢詣澐譃槎鄠€邏輯塊設備,也就是我們熟悉的硬盤分區(qū)(Partition)。反過來,單個介質(zhì)的容量、性能有限,可以通過某些技術手段把多個物理塊設備組合成一個邏輯塊設備,例如各種級別的RAID,JBOD,某些操作系統(tǒng)的卷管理系統(tǒng)(Volume Manager)如Windows的動態(tài)磁盤、Linux的LVM等。

      補充一下的是,塊設備的使用對象除了傳統(tǒng)的文件系統(tǒng)以及一些專用的管理工具軟件如備份軟件、分區(qū)軟件外,還有一些支持直接讀寫塊設備的軟件如數(shù)據(jù)庫等,但一般用戶很少這樣使用。

      在網(wǎng)絡存儲中,服務器把本地的一個邏輯塊設備——底層可能是一個物理塊設備的一部分,也可能是多個物理塊設備的組合,又或者多個物理塊設備的組合中的一部分,甚至是一個本地文件系統(tǒng)上的一個文件——通過某種協(xié)議模擬成一個塊設備,遠程的客戶端(可以是一臺物理主機,也可以是虛擬機,某個回答所說的塊設備是給虛擬機用是錯誤的)使用相同的協(xié)議把這個邏輯塊設備作為一個本地存儲介質(zhì)來使用,劃分分區(qū),格式化自己的文件系統(tǒng)等等。這就是塊存儲,比較常見的塊存儲協(xié)議是iSCSI。

      對象存儲其實介于塊存儲和文件存儲之間。文件存儲的樹狀結構以及路徑訪問方式雖然方便人類理解、記憶和訪問,但計算機需要把路徑進行分解,然后逐級向下查找,最后才能查找到需要的文件,對于應用程序來說既沒必要,也很浪費性能。

      而塊存儲是排它的,服務器上的某個邏輯塊被一臺客戶端掛載后,其它客戶端就無法訪問上面的數(shù)據(jù)了。而且掛載了塊存儲的客戶端上的一個程序要訪問里面的數(shù)據(jù),不算類似數(shù)據(jù)庫直接訪問裸設備這種方式外,通常也需要對其進行分區(qū)、安裝文件系統(tǒng)后才能使用。除了在網(wǎng)絡上傳輸?shù)臄?shù)據(jù)包效率更高以外,并不比使用文件存儲好多少,客戶端的文件系統(tǒng)依然需要對路徑分解,然后逐級查找才能定位到某一個具體的文件。

      是否可以用不排它但又類似塊設備訪問的方式呢?理論上是可以的,但對塊設備的訪問方式雖然比文件存儲快,其實也很麻煩——一個文件往往是由多個塊組成,并且很可能是不連續(xù)的。例如要讀取一個文件,可能需要發(fā)出這樣的指令:

      讀取從編號A?開始的N?個塊;
      讀取從編號A?開始的N?個塊;
      讀取從編號A?開始的N?個塊;
      …………
      讀取從編號Ai開始的Ni個塊。

      最后自行把這i個連續(xù)的塊自行拼接成一個文件,這才完成了一個文件的讀取操作。為了發(fā)出這些指令,訪問文件的軟件系統(tǒng)需要記錄下這個文件分成多少個部分,每個部分的起始塊編號是多少,有多少塊,順序如何。不單是讀取操作,刪除、寫入、修改操作也是如此,非常麻煩復雜。而且往往一個文件可能需要被多個系統(tǒng)訪問使用,這就更麻煩了。

      為了解決這中麻煩,使用一個統(tǒng)一的底層存儲系統(tǒng),管理這些文件和底層介質(zhì)的組織結構,然后給每個文件一個唯一的標識,其它系統(tǒng)需要訪問某個文件,直接提供文件的標識就可以了。存儲系統(tǒng)可以用更高效的數(shù)據(jù)組織方式來管理這些標識以及其對應的存儲介質(zhì)上的塊。

      當然,對于不同的軟件系統(tǒng)來說,一次訪問需要獲取的不一定是單個我們傳統(tǒng)意義上的文件,根據(jù)不同的需要可能只是一個/組值,某個文件的一部分,也可能是多個文件的組合,甚至是某個塊設備,統(tǒng)稱為對象。這就是對象存儲。

      分布式存儲所謂分布式存儲,就是這個底層的存儲系統(tǒng),因為要存放的數(shù)據(jù)非常多,單一服務器所能連接的物理介質(zhì)是有限的,提供的IO性能也是有限的,所以通過多臺服務器協(xié)同工作,每臺服務器連接若干物理介質(zhì),一起為多個系統(tǒng)提供存儲服務。為了滿足不同的訪問需求,往往一個分布式存儲系統(tǒng),可以同時提供文件存儲、塊存儲和對象存儲這三種形式的服務。

      返回觀點列表
      本文標簽:

      相關專題

      體驗從溝通開始,讓我們聆聽您的需求!

      開始您的數(shù)字化品牌體驗! 0571-85815193 期待您的來電!

      [ 網(wǎng)站建設×品牌官網(wǎng)設計×大策略營銷門戶×微信小程序開發(fā)×微信公眾號開發(fā)]

      網(wǎng)站事業(yè)部產(chǎn)品經(jīng)理

      網(wǎng)站事業(yè)部產(chǎn)品經(jīng)理

      免費獲取項目策劃

      項目開發(fā)部產(chǎn)品經(jīng)理

      項目開發(fā)部產(chǎn)品經(jīng)理

      免費獲取項目策劃

      我們正使用 cookies 來改善您的訪問體驗

      派迪科技非常重視您的個人隱私,當您訪問我們的網(wǎng)站www.bmwdream.cn時,請同意使用所有cookies 。

      如果您想詳細了解我們?nèi)绾问褂胏ookies請訪問我們的 《隱私政策》

      Cookie 偏好

      如果您想詳細了解我們?nèi)绾问褂胏ookie請訪問我們的 《隱私政策》

      管理cookie偏好

      基本 cookies

      始終允許

      這些 cookies 是網(wǎng)站運行所必需的,不能在我們的系統(tǒng)中關閉。它們通常僅針對您所做的相當于服務請求的操作而設置,例如設置您的隱私首選項、登錄或填寫表格。您可以將瀏覽器設置為阻止或提醒您有關這些 cookies 的信息,但網(wǎng)站的某些部分將無法運行。這些 cookies 不存儲任何個人身份信息。

      性能 cookies

      始終允許
      這些 cookies 使我們能夠計算訪問量和流量來源,以便我們可以衡量和改進我們網(wǎng)站的性能。它們幫助我們了解哪些頁面受歡迎和不受歡迎,并了解訪問者如何在網(wǎng)站上移動。這些 cookies 收集的所有信息都是匯總的,而且是匿名的。如果您不允許這些 cookies,我們將不知道您何時訪問了我們的網(wǎng)站,也無法監(jiān)控其性能。

      功能性 cookies

      這些 cookies 收集信息用于分析和個性化您的定向廣告體驗。您可以使用此撥動開關來行使選擇不獲取個人信息的權利。如果您選擇關閉,我們將無法向您提供個性化廣告,也不會將您的個人信息交給任何第三方。

      定位 Cookies

      這些 cookies 可能由我們的廣告合作伙伴通過我們的網(wǎng)站設置。這些公司可能會使用它們來建立您的興趣檔案,并在其他網(wǎng)站上向您展示相關廣告。它們不直接存儲個人信息,而是基于唯一標識您的瀏覽器和互聯(lián)網(wǎng)設備。如果您不允許使用這些 cookie,您將體驗到較少針對性的廣告。
      • <ul id="k6mek"><pre id="k6mek"></pre></ul>
        <ul id="k6mek"></ul>
        <ul id="k6mek"></ul>
      • <blockquote id="k6mek"><fieldset id="k6mek"></fieldset></blockquote>
      • <samp id="k6mek"><tbody id="k6mek"></tbody></samp><ul id="k6mek"><tbody id="k6mek"></tbody></ul>
        <th id="k6mek"></th>
      • <samp id="k6mek"></samp>