當前位置:首頁 » 存儲配置 » 對象存儲原理

對象存儲原理

發布時間: 2023-01-06 14:28:20

1. 求 分布式對象存儲 原理 架構及Go語言實現 pdf

分布式對象存儲系統的書,代碼是用 GO 實現的,書上當然寫的不全。不知道視頻會全否?但是大體的思路和應該實現的功能都講到了。還是不錯的。至少在思路指導上。還有這種系統業界的標準是亞馬遜的 AWS s3 那麼參考它們的 SDK API 來實現是有必要了。兼容標准嘛。

2. 存儲服務分類:塊存儲、文件存儲、對象存儲

1、關於文件存儲
文件儲存最具代表性的NAS,對於大多數用戶來說,NAS就類似於一個共享文件夾,用戶可以直接將數據放在NAS上,用於傳輸。同時,NAS是通過網路達成儲存的目的,依附於TCP/IP網路協議棧,這也就是NAS存儲於上文的DAS和SAN存儲最大的不同點。
2、關於塊儲存
塊儲存我們可以將其看成裸盤,但是裸盤是不能被系統訪問,不過,可以格式化為你指定的文件系統Ext3,Ext4,NTFS,FAT32等形式,這樣便可以被系統訪問了。常見的塊儲存為DAS、FC-SAN、IP-SAN三種類型。同時,塊儲存也是哦我們最常見的一種儲存模式,比如pc硬碟、伺服器硬碟。
3、關於對象儲存
這種儲存方式還是比較新的,常見的對象儲存開源實現有Ceph的RADOS、Openstack的swift、AWS s3等;常見分布式文件系統有lustre、glusterfs、HDFS等。對象儲存可以將其看作一家高級餐廳代客停車,客戶需要車,你將鑰匙給到別人,換來一張收據。
總體來說,三種儲存方式,可從表面和本質著手,對象儲存支持restful介面,塊存儲的用戶是可以讀寫塊設備的軟體系統,例如傳統的文件系統、資料庫;文件存儲的用戶是自然人;對象存儲的用戶則是其它計算機軟體。

3. ceph原理 Ceph簡單介紹

1、Ceph是一個可靠地、自動重均衡、自動恢復的分布式存儲系統,根據場景劃分可以將Ceph分為三大塊,分別是對象存儲、塊設備存儲和文件系統服務。在虛擬化領域里,比較常用到的是Ceph的塊設備存儲,比如在OpenStack項目里,Ceph的塊設備存儲可以對接OpenStack的cinder後端存儲、Glance的鏡像存儲和虛擬機的數據存儲,比較直觀的是Ceph集群可以提供一個raw格式的塊存儲來作為虛擬機實例的硬碟。

2、Ceph相比其它存儲的優勢點在於它不單單是存儲,同時還充分利用了存儲節點上的計算能力,在存儲每一個數據時,都會通過計算得出該數據存儲的位置,盡量將數據分布均衡,同時由於Ceph的良好設計,採用了CRUSH演算法、HASH環等方法,使得它不存在傳統的單點故障的問題,且隨著規模的擴大性能並不會受到影響。

4. 對象存儲服務支持哪種加密機制

移動雲對象存儲EOS使用AES對稱加密演算法。通過使用AccessKey ID和AccessKey Secret對稱加密的方法來驗證某個請求的發送者身份。傳輸過程支持SSL加密,保證數據傳輸安全性,同時也支持伺服器端加密߅了解移動雲對象存儲更多詳情,歡迎注冊登錄移動雲官網→https://gwyydc.cmecloud.cn:8106/t/Hpis

5. java中使用類創建對象後,該對象的方法在堆內存中是怎樣存儲的

方法不存在在堆內存中,是放在代碼區,只有在調用的時候,才會構建該方法的運行時環境,包括參數,局部變數等,當然,這些也都是在棧內存中的。對內存只存放被new出來的東西。
你可以讀讀編譯原理相關的書,這種問題就清楚了。

6. Ceph存儲種類及其工作原理

高擴展性
高性能
無單點的分布式⽂文件存儲系統
可用於對象存儲,塊設備存儲和文件系統存儲
讀寫速度快利利於共享

Ceph核心組件及概念介紹

7. Ceph 架構與原理

Ceph 是一個開源項目,它提供軟體定義的、統一的存儲解決方案 。Ceph 是一個具有高性能、高度可伸縮性、可大規模擴展並且無單點故障的分布式存儲系統 。
Ceph 是軟體定義存儲解決方案
Ceph 是統一存儲解決方案
Ceph 是雲存儲解決方案

高可用性

高擴展性

特性豐富

Ceph獨一無二地統一的系統提供了對象存儲、塊存儲和文件存儲功能。Ceph存儲集群由幾個不同的軟體守護進程組成(比較重要的兩個是MON和OSD),每個守護進程負責Ceph的一個獨特功能並將值添加到相應的組件中。

RADOS是CEPH存儲系統的核心,也稱為Ceph 存儲集群。Ceph的數據訪問方法(如RBD,CephFS,RADOSGW,librados)的所有操作都是在RADOS層之上構建的。當Ceph 集群接收到來自客戶端的請求時,CRUSH演算法首先計算出存儲位置,最後將這些對象存儲在OSD中,當配置的復制數大於1時,RADOS負責的形式將數據分發到集群內的所有節點,最後將這些對象存儲在OSD中。當配置的復制數大於1時,RADOS負責數據的可靠性,它復制對象,創建副本並將它們存儲在不同的故障區域中。
RADOS包含兩個核心組件: OSD和MON

OSD 是Ceph 存儲集群中最重要的一個基礎組件,他負責將實際的數據以對象的形式存儲在每一個集群節點的物理磁碟中。對於任何讀寫操作,客戶端首先向MON請求集群MAP,然後客戶端舊可以直接和OSD進行I/O操作。
一個Ceph 集群包含多個OSD。一個典型的Ceph集群方案會為集群節點上的每個物理磁碟創建一個ODS守護進程,這個是推薦的做法。OSD上的每個對象都有一個主副本和幾個輔副本,輔副本分散在其他OSD。一個OSD對於一些對象是主副本,同時對於其他對象可能是輔副本,存放輔副本的OSD主副本OSD控制,如果主副本OSD異常(或者對應的磁碟故障),輔副本OSD可以成為主副本OSD。
OSD是有一個已經存在的linux文件系統的物理磁碟驅動器和OSD服務組成。Ceph 推薦OSD使用的文件系統是XFS。OSD的所有寫都是先存到日誌,再到存儲.

MON 負責監控整個集群的健康狀況。它以守護進程的形式存在,一個MON為每一個組件維護一個獨立的MAP,如OSD,MON,PG,CRUSH 和MDS map。這些map 統稱為集群的MAP。MON 不為客戶端存儲和提供數據,它為客戶端以及集群內其他節點提供更新集群MAP的服務。客戶端和集群內其他節點定期與MON確認自己持有的是否是集群最新的MAP.一個Ceph集群通常包含多個MON節點,但是同一時間只有一個MON。

librados是一個本地的c語言庫,通過它應用程序可以直接和RADOS通信,提高性能

Ceph 塊存儲,簡稱 RBD,是基於 librados 之上的塊存儲服務介面。RBD 的驅動程序已經被集成到 Linux 內核(2.6.39 或更高版本)中,也已經被 QEMU/KVM Hypervisor 支持,它們都能夠無縫地訪問 Ceph 塊設備。Linux 內核 RBD(KRBD)通過 librados 映射 Ceph 塊設備,然後 RADOS 將 Ceph 塊設備的數據對象以分布式的方式存儲在集群節點中

RGW,Ceph對象網關,也稱做RADOS網關,它是一個代理,可以將HTTP請求轉換為RADOS,也可以把RADOS轉換為HTTP請求,從而提供restful介面,兼容S3和Swift。Ceph對象網關使用Ceph對象網關守護進程(RGW)與librgw、librados交互。Ceph對象網關支持三類介面:S3、Swift、管理API(通過restful介面管理Ceph集群)。RGW有自己的用戶管理體系

Ceph 元數據伺服器服務進程,簡稱 MDS。只有在啟用了 Ceph 文件存儲(CephFS)的集群中才需要啟用 MDS,它負責跟蹤文件層次結構,存儲和管理 CephFS 的元數據。MDS 的元數據也是以 Obejct 的形式存儲在 OSD 上。除此之外,MDS 提供了一個帶智能緩存層的共享型連續文件系統,可以大大減少 OSD 讀寫操作頻率。

CephFS在RADOS層之上提供了一個兼容POSIX的文件系統。它使用MDS作為守護進程,負責管理其元數據並將它和其他數據分開。CephFS使用cephfuse模塊(FUSE)擴展其在用戶空間文件系統方面的支持(就是將CephFS掛載到客戶端機器上)。它還允許直接與應用程序交互,使用libcephfs庫直接訪問RADOS集群。

Ceph管理器軟體,可以收集整個集群的所有狀態。有儀錶板插件

一個對象通常包含綁定在一起的數據和元數據,並且用一個全局唯一的標識符標識。這個唯一的標識符確保在整個存儲集群中沒有其他對象使用相同的對象ID,保證對象唯一性。基於文件的存儲中,文件大小是有限制的,與此不同的是,對象的大小是可以隨著大小可變的元數據而變得很大。對象不使用一個目錄層次結構或樹結構來存儲,相反,它存儲在一個包含數十億對象且沒有任何復雜性的線性地址空間中。對象可以存儲在本地,也可以存放在地理上分開的線性地址空間中,也就是說,在一個連續的存儲空間中。任何應用程序都可以基於對象ID通過調用restful API從對象中獲取數據。這個URL可以以同樣的方式工作在網際網路上,一個對象ID作為一個唯一的指針指向對象。這些對象都以復制的方式存儲在OSD中,因為能提供高可用性。

對於Ceph集群的一次讀寫操作,客戶端首先聯系MON獲取一個集群map副本,然後使用對象和池名/ID將數據轉換為對象。接著將對象和PG數一起經過散列來生成其在Ceph池中最終存放的那一個PG。然後前面計算好的PG經過CRUSH查找來確定存儲或獲取數據所需的主OSD的位置。得到准確的OSD ID之後,客戶端直接聯系這個OSD來存取數據。所有這些計算操作都由客戶端來執行,因此它不會影響Ceph集群的性能。一旦數據被寫入主OSD,主OSD所在節點將執行CRUSH查找輔助PG和OSD的位置來實現數據復制,進而實現高可用。
  簡單地說,首先基於池ID將對象名和集群PG數應用散列函數得到一個PG ID,然後,針對這個PG ID執行CRUSH查找得到主OSD和輔助OSD,最後寫入數據。

PG是一組對象地邏輯集合,通過復制它到不同的OSD上來提供存儲系統的可靠性。根據Ceph池的復制級別,每個PG的數據會被復制並分發到Ceph集群的多個OSD上。可以將PG看成一個邏輯容器,這個容器包含多個對象,同時這個邏輯容器被映射到多個OSD。
  計算正確的PG數對一個Ceph存儲集群來說是至關重要的一步。PG數計算公式如下

Ceph池是一個用來存儲對象的邏輯分區,每個池都包含一定數量的PG,進而實現把一定數量的對象映射到集群內部不同OSD上的目的。每一個池都是交叉分布在集群所有節點上的,這樣就能提供足夠的彈性。池可以通過創建需要的副本數來保障數據的高可用性。
  Ceph的池還支持快照功能,我們可以使用ceph osd pool mksnap命令來給特定的池製作快照。此外,Ceph池還允許我們為對象設置所有者和訪問許可權。

數據管理始於客戶端向Ceph池中寫數據。一旦客戶端准備寫數據到Ceph池中,數據首先寫入基於池副本數的主OSD中。主OSD再復制相同的數據到每個輔助OSD中,並等待它們確認寫入完成。只要輔助OSD完成數據寫入,就會發送一個應答信號給主OSD。最後主OSD再返回一個應答信號給客戶端,以確認完成整個寫入操作。

8. 求 分布式對象存儲 原理 架構及Go語言實現 pdf

分布式存儲架構由三個部分組成:客戶端、元數據伺服器和數據伺服器。客戶端負責發送讀寫請求,緩存文件元數據和文件數據。元數據伺服器負責管理元數據和處理客戶端的請求,是整個系統的核心組件。數據伺服器負責存放文件數據,保證數據的可用性和完整性。該架構的好處是性能和容量能夠同時拓展,系統規模具有很強的伸縮性。
對象存儲最常用的方案,就是多台伺服器內置大容量硬碟,再裝上對象存儲軟體,然後再額外搞幾台服務作為管理節點,安裝上對象存儲管理軟體。管理節點可以管理其他伺服器對外提供讀寫訪問功能。
之所以出現了對象存儲這種東西,是為了克服塊存儲與文件存儲各自的缺點,發揚它倆各自的優點。簡單來說塊存儲讀寫快,不利於共享,文件存儲讀寫慢,利於共享。能否弄一個讀寫快,利 於共享的出來呢。於是就有了對象存儲。

9. stl中容器是如何存儲指針變數與對象的,假如數據類型較復雜時,存儲指針變數是否能節省內存空間呢

二樓同學的回答基本已經正確了,我再試試看能不能說得更清楚一些:
首先,list毫無疑問是用鏈表實現的,而queue可以看作是一種功能受限的鏈表,只能在隊尾插入,在隊頭取出,先進先出。stl中的大多數容器,包括list和queue,保存內容的原理就是拷貝,當你做push操作時,即拷貝一份你所push的元素放進容器中。例如你的程序中,"child.push(datatemp);",即拷貝了一個datatemp對象存放進queue中。「children1.push(&datatemp);」即拷貝了一份datatemp對象的地址存放進queue中。回答你的第一個問題,指針要不要new。看你怎麼用了。queue並不知道你的指針是不是一個有效的指針,只做了一個拷貝。如果你push一個空指針,queue中就保存一個空指針,push一個有效的指針(即new過的指針),queue中就保存了一個有效的指針拷貝,也可以push一個無效的指針(沒有new過),你稍後在對queue中的指針作new也可以。但是原則是指針被使用時只能是NULL或者有效指針,無效指針完全不該被訪問。第二問題,為什麼都為3。因為children1中保存的全是變數datatemp的地址。換言之,列印出來的值應該只是datatemp的值,datatemp的值是1,列印出來就是4個1,datatemp是3,列印出來就是4個3。就是這樣。

10. 信息以文件形式存儲,文件用什麼分類分層存放

文件、塊和對象是三種以不同的方式來保存、整理和呈現數據的存儲格式。這些格式各有各的功能和限制。文件存儲會以文件和文件夾的層次結構來整理和呈現數據;塊存儲會將數據拆分到任意劃分且大小相同的卷中; 對象存儲會管理數據並將其鏈接至關聯的元數據。

塊存儲
塊存儲會將數據拆分成塊,並單獨存儲各個塊。每個數據塊都有一個唯一標識符,所以存儲系統能將較小的數據存放在最方便的位置。這意味著有些數據可以存儲在 Linux 環境中,有些則可以存儲在 Windows 單元中。

塊存儲通常會被配置為將數據與用戶環境分離,並會將數據分布到可以更好地為其提供服務的多個環境中。然後,當用戶請求數據時,底層存儲軟體會重新組裝來自這些環境的數據塊,並將它們呈現給用戶。它通常會部署在存儲區域網路 (SAN) 環境中,而且必須綁定到正常運行的伺服器。

由於塊存儲不依賴於單條數據路徑(和文件存儲一樣),因此可以實現快速檢索。每個塊都獨立存在,且可進行分區,因此可以通過不同的操作系統進行訪問,這使得用戶可以完全自由地配置數據。它是一種高效可靠的數據存儲方式,且易於使用和管理。它適用於要執行大型事務的企業和部署了大型資料庫的企業。這意味著,需要存儲的數據越多,就越適合使用塊存儲。

塊存儲有一些缺點。塊存儲的成本高昂。它處理元數據的能力有限。

操作對象:磁碟

存儲協議:SCSI、iSCSI、FC

介面命令:以SCSI為例,主要有Read/Write/Read Capacity

存儲架構:DAS、SAN

文件存儲
文件存儲也稱為文件級存儲或基於文件的存儲,數據會以單條信息的形式存儲在文件夾中。當需要訪問該數據時,計算機需要知道相應的查找路徑。存儲在文件中的數據會根據元數據來進行整理和檢索,這些元數據會告訴計算機文件所在的確切位置。

請試想一下塞滿文件櫃的儲藏室。每個文檔都會按照某種類型的邏輯層次結構來排放 ——按文件櫃、抽屜、文件夾,然後再是紙張。「分層存儲」這個術語就是這么來的,而這就是文件存儲。它是適用於直接和網路附加存儲(NAS)系統的最古老且運用最為廣泛的一種數據存儲系統;當訪問保存在個人計算機上的文件中的文檔,就是在使用文件存儲。文件存儲具有豐富多樣的功能,幾乎可以存儲任何內容。它非常適合用來存儲一系列復雜文件,並且有助於用戶快速導航。

問題是基於文件的存儲系統必須通過添置更多系統來進行橫向擴展,而不是通過增添更多容量來進行縱向擴展。

操作對象:文件和文件夾

存儲協議:NFS、SAMBA(SMB)、POSIX

介面命令:以NFS為例,文件相關的介面命令包括:READ/WRITE/CREATE/REMOVE/RENAME/LOOKUP/ACCESS 等;文件夾相關的介面命令包括:MKDIR/RMDIR/READDIR 等

存儲架構:NAS (【Linux】NAS存儲_Jacky_Feng的博客-CSDN博客)
對象存儲
對象存儲,也稱為基於對象的存儲,是一種扁平結構,其中的文件被拆分成多個部分並散布在多個硬體間。在對象存儲中,數據會被分解為稱為「對象」的離散單元,並保存在單個存儲庫中,而不是作為文件夾中的文件或伺服器上的塊來保存。

對象存儲卷會作為模塊化單元來工作:每個卷都是一個自包含式存儲庫,均含有數據、允許在分布式系統上找到對象的唯一標識符以及描述數據的元數據。元數據包括年齡、隱私/安全信息和訪問突發事件等詳細信息。為了檢索數據,存儲操作系統會使用元數據和標識符,這樣可以更好地分配負載,並允許管理員應用策略來執行更強大的搜索。

對象存儲需要一個簡單的 HTTP 應用編程介面 (API),以供大多數客戶端(各種語言)使用。對象存儲經濟高效:您只需為已用的內容付費。它可以輕松擴展,因而是公共雲存儲的理想之選。它是一個非常適用於靜態數據的存儲系統,其靈活性和扁平性意味著它可以通過擴展來存儲極大量的數據。對象具有足夠的信息供應用快速查找數據,並且擅長存儲非結構化數據。
它的缺點是無法修改對象 ,即必須一次性完整地寫入對象。對象存儲也不能很好地與傳統資料庫搭配使用,因為編寫對象是一個緩慢的過程,編寫應用以使用對象存儲 API 並不像使用文件存儲那麼簡單。

操作對象:對象(Object)

存儲協議:S3、Swift

介面命令:主要有PUT/GET/DELETE等

存儲架構:去中心化框架

對象存儲概念
對象存儲的數據組成

存儲桶(Bucket):存放對象的「容器」,且該「容器」無容量上限。對象以扁平化結構存放在存儲桶中,無文件夾和目錄的概念,用戶可選擇將對象存放到單個或多個存儲桶中。存儲桶的容量大小需要通過累加各個對象的大小得到。

每個存儲桶可容納任意數量的對象,但同一個主賬號下存儲桶數量最多僅能夠創建200個。(???)

對於存儲桶,應當以用途為粒度進行劃分,確保每個存儲桶的用途盡可能單一。例如,針對存放個人文件、發布靜態網站、存儲備份等用途都應該創建不同的存儲桶。此外,不同項目的數據、不同的網站,或者完全私人的文件與工作性質、需要分享的文件,也應該劃分不同的存儲桶。

對象存儲中也沒有「文件夾」的概念。對象存儲的管理平台為了模仿本地存儲的使用習慣,並與本地存儲系統互相兼容而模擬了目錄結構,背後的原理也僅僅是根據 / 這個字元對 key 進行分隔。為了表示空目錄,部分雲平台也提供「文件夾」對象,實際上只是 key 以 / 結尾的空存儲對象。

存儲桶所在地域(Regin)

指對象存儲的數據中心所在地域。對象存儲允許用戶在不同地域創建存儲桶,可以選擇在離業務最近的地域上創建存儲桶,以滿足低延遲、低成本以及合規性要求。

Bucket讀寫許可權

Bucket讀寫許可權包括:私有讀寫、公有讀私有寫和公有讀寫。

私有讀寫
只有該存儲桶的創建者及有授權的賬號才對該存儲桶中的對象有讀寫許可權,其他任何人對該存儲桶中的對象都沒有讀寫許可權。存儲桶訪問許可權默認為私有讀寫,推薦使用。
公有讀私有寫
任何人(包括匿名訪問者)都對該存儲桶中的對象有讀許可權,但只有存儲桶創建者及有授權的賬號才對該存儲桶中的對象有寫許可權。
公有讀寫
任何人(包括匿名訪問者)都對該存儲桶中的對象有讀許可權和寫許可權,不推薦使用。
對象(Object):對象存儲的基本單元,可理解為任何格式類型的數據,例如圖片、文檔和音視頻文件等。

每個對象都由對象鍵(Key)、對象值(Data)、和對象元數據(Metadata)組成。

對象鍵(Key):對象鍵是對象在存儲桶中的全局唯一標識(UID),可以理解為文件(名)路徑。
key用於檢索對象,文件對象的 key 與實際存儲路徑無關,伺服器和用戶不需要知道數據的物理地址,通過key就能找到對象。

對象值(Data):即存儲對象內容數據,可以理解為文件內容(Object Content)。
對象元數據(Metadata):是一組鍵值對,可以通俗的理解為文件的屬性,例如文件的修改時間、存儲類型等。(傳統的文件存儲,元數據屬於文件本身,和文件一起封裝存儲。而對象存儲,元數據獨立出來,並不在數據內部封裝。)
對象訪問地址

對象的訪問地址由存儲桶訪問地址和對象鍵組成,其結構形式為<存儲桶域名>/<對象鍵> 。

例如:上傳對象exampleobject.txt到廣州(華南)的存儲桶examplebucket-1250000000中,那麼exampleobject.txt的訪問地址是:examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/exampleobject.txt。其中examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com為存儲桶域名,exampleobject.txt為對象鍵。

目錄和文件夾

對象存儲中本身是沒有文件夾和目錄的概念的,對象存儲不會因為上傳對象project/a.txt而創建一個project文件夾。為了滿足用戶使用習慣,對象存儲在控制台、COS browser 等圖形化工具中模擬了「文件夾」或「目錄」的展示方式,具體實現是通過創建一個鍵值為project/,內容為空的對象,展示方式上模擬了傳統文件夾。

對象操作

用戶通過控制台、工具、API、SDK等多種方式管理對象。

對象存儲架構
對象存儲設備(OSD)
OSD由存儲介質、處理器、內存以及網路系統等組成,負責管理本地的對象,是對象存儲系統的核心。和塊設備相比,它們的差異在於提供的訪問介面。OSD的主要功能是數據存儲和安全訪問。

數據存儲:OSD管理對象數據,並將它們放置在標準的磁碟系統上,OSD不提供塊介面訪問方式,Client請求數據時用對象ID、偏移進行數據讀寫。

智能分布:OSD用其自身的CPU和內存優化數據分布,並支持數據的預取。由於OSD可以智能地支持對象的預取,從而可以優化磁碟的性能。

對象元數據管理:OSD管理存儲的對象元數據與傳統的inode元數據相似,通常包括對象的數據塊和對象的長度。而在傳統的NAS系統中,這些元數據是由文件伺服器維護的,對象存儲架構將系統中主要的元數據管理工作由OSD來完成,降低了Client的開銷。

元數據伺服器(MDS)
MDS控制Client與OSD對象的交互,為客戶端提供元數據,主要是文件的邏輯視圖(文件與目錄的組織關系、每個文件所對應的OSD等)。主要功能如下:

對象存儲訪問:MDS構造和管理描述每個文件分布的邏輯視圖,允許Client直接訪問對象。MDS為Client提供訪問該文件所含對象的能力,OSD在接收到每個請求時將先驗證該能力,然後才可以訪問。

文件和目錄訪問管理:MDS在存儲系統上構建一個文件結構,包括限額控制、目錄和文件的創建和刪除、訪問控制等。

Client Cache一致性:為了提高Client性能,在對象存儲系統設計時通常支持Client方的Cache。由於引入Client方的Cache,帶來了Cache一致性問題,MDS支持基於Client的文件Cache,當Cache的文件發生改變時,將通知Client刷新Cache,從而防止Cache不一致引發的問題。

客戶端(Client)
對象存儲系統提供給用戶的也是標準的POSIX文件訪問介面。介面具有和通用文件系統相同的訪問方式,同時為了提高性能,也具有對數據的Cache功能和文件的條帶功能。同時,文件系統必須維護不同客戶端上Cache的一致性,保證文件系統的數據一致。

文件系統讀訪問流程:

① 客戶端應用發出讀請求;

② 文件系統向元數據伺服器發送請求,獲取要讀取的數據所在的OSD;

③ 直接向每個OSD發送數據讀取請求;

④ OSD得到請求以後,判斷要讀取的Object,並根據此Object要求的認證方式,對客戶端進行認證,如果此客戶端得到授權,則將Object的數據返回給客戶端;

⑤ 文件系統收到OSD返回的數據以後,讀操作完成。

對象存儲的優缺點
(1)優點:

容量大,高擴展性
對象存儲的容量是EB級以上,對象存儲的所有業務、存儲節點採用分布式集群方式工作,各功能節點、集群都可以獨立擴容。從理論上來說,某個對象存儲系統或單個桶(bucket),並沒有總數據容量和對象數量的限制,即服務商就可以不停地往架構里增加資源,這個存儲空間就是無限的,也是支持彈性伸縮的。

高安全性,可靠性
對象存儲採用了分布式架構,對數據進行多設備冗餘存儲(至少三個以上節點),實現異地容災和資源隔離。數據訪問方面,所有的桶和對象都有訪問控制策略,所有連接都支持SSL加密,訪問用戶進行身份許可權鑒定。

高性能,支持海量用戶的並發訪問
(2)缺點:

不支持直接在存儲上修改
對象存儲系統保存的Object不支持修改(追加寫Object需要調用特定的介面,生成的Object也和正常上傳的Object類型上有差別)。用戶哪怕是僅僅需要修改一個位元組也需要重新上傳整個Object。因此,它不適合存儲需要頻繁擦寫的數據。

參考鏈接:

對象存儲,為什麼那麼火? - 知乎 (hu.com)
對象存儲 存儲桶概述 - 開發者指南 - 文檔中心 - 騰訊雲 (tencent.com)
基本概念 (aliyun.com)
文件存儲、塊存儲還是對象存儲? (redhat.com)
linux
駐馬店市民請關注領取補貼!
巨魔-抽手機公告
廣告

對比塊存儲、文件存儲、對象存儲
1242閱讀·0評論·3點贊
2019年2月27日
ShapeFile的文件格式設計
90閱讀·0評論·0點贊
2009年3月20日
應用ceph對象存儲(ceph-13.2.10)
72閱讀·0評論·0點贊
2022年11月26日
三種存儲類型比較-文件、塊、對象存儲
4.8W閱讀·0評論·13點贊
2016年7月26日
常見圖片存儲格式文件簡介
4534閱讀·0評論·0點贊
2020年5月4日
s3cmd常用命令
781閱讀·0評論·0點贊
2022年11月17日
駐馬店發布,你有一台5G手機待領取

00:23
巨摩互動
廣告
常見的存儲格式
1083閱讀·0評論·0點贊
2022年2月15日
文件、對象、塊區別
1399閱讀·0評論·0點贊
2020年7月13日
對象存儲、文件存儲、塊存儲的區別和聯系
7330閱讀·2評論·5點贊
2021年10月16日
數據分析中常見的存儲方式
1537閱讀·0評論·0點贊
2021年11月16日
三種存儲類型:塊存儲、文件存儲、對象存儲
1.5W閱讀·3評論·55點贊
2020年11月2日
如何設計二進制文件格式
1940閱讀·0評論·1點贊
2020年3月6日
BMP文件存儲格式
472閱讀·0評論·2點贊
2021年8月2日
hive 的存儲格式
1765閱讀·0評論·1點贊
2022年6月18日
數據存儲格式
446閱讀·0評論·0點贊
2022年12月21日
總結:對象存儲、塊存儲、文件存儲的區別
6606閱讀·0評論·3點贊
2022年4月9日
c語言中文件rw,什麼是「塊文件」?
386閱讀·0評論·0點贊
2021年5月23日
【存儲】塊存儲、文件存儲和對象存儲的區別?
350閱讀·0評論·0點贊
2022年7月22日
塊存儲、文件存儲與對象存儲的區別與應用場景
1846閱讀·1評論·0點贊
2022年6月5日
數據在內存中的存儲方式
272閱讀·0評論·0點贊
2022年8月21日
去首頁
看看更多熱門內容

熱點內容
有哪些低配置游戲像王者榮耀 發布:2024-05-03 22:27:11 瀏覽:243
gp資料庫庫 發布:2024-05-03 22:12:43 瀏覽:873
壓縮點點 發布:2024-05-03 22:12:33 瀏覽:380
有哪些編程比賽 發布:2024-05-03 22:03:45 瀏覽:263
怎麼根據配置調整游戲解析度 發布:2024-05-03 22:02:50 瀏覽:77
小鳥醬265g資源密碼多少啊 發布:2024-05-03 21:32:08 瀏覽:653
三國戰紀游戲華為帳號密碼是多少 發布:2024-05-03 21:22:54 瀏覽:950
變頻壓縮機啟動 發布:2024-05-03 21:17:06 瀏覽:436
建立雲存儲 發布:2024-05-03 21:04:03 瀏覽:76
socket編程php 發布:2024-05-03 20:12:50 瀏覽:209