freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

云存儲中的對象存儲數(shù)據(jù)同步方法研究碩士學位論文(編輯修改稿)

2024-07-16 00:31 本頁面
 

【文章內(nèi)容簡介】 otocol)來完成。同時,完成存儲任務的各個Server也獨立的運行于每一個Zone之中環(huán)(Ring),保存設備上實體名稱和物理位置間的映射。系統(tǒng)中不同的存儲對象,如帳號、容器、對象都有相應的環(huán)。當Swift的其它組件(比如復制)要對帳號、容器或?qū)ο蟛僮鲿r,需要查詢相應的環(huán)來確定它在集群上的位置。同時,當設備發(fā)生變更時也需要重新建立環(huán)。代理服務器(Proxy Server),負責Swift架構(gòu)的其余組件間的相互通信。對于每個客戶端的請求,它將在自身保存的Ring中查詢帳號、容器或者對象的位置并且相應地轉(zhuǎn)發(fā)請求。也可以使用公共API向代理服務器發(fā)送請求。賬號服務器(Account Server),帳號服務器的首要工作是處理容器的列表。服務器并不知道容器的具體位置,只知道指定賬號對應的容器。 這些信息以sqlite數(shù)據(jù)庫文件的形式存儲,和對象一樣在集群上做類似的備份。帳號服務器也對帳號以及賬號下面的容易進行監(jiān)控和統(tǒng)計。容器服務器(Container Server),與賬號服務器功能類似,不過里面保存的是容器內(nèi)所存儲的對象的數(shù)據(jù)。對象服務器(Object Server),對象服務器是一個簡單的二進制大對象存儲服務器,可以提供存儲、檢索和刪除本地設備上對象的功能。在文件系統(tǒng)上,對象以二進制文件的形式存儲,它的元數(shù)據(jù)存儲在文件系統(tǒng)的擴展屬性(Xattrs)中。所以,用于實現(xiàn)Swift的文件系統(tǒng)本身必須能夠支持擴展屬性。在實際的存儲中,帳號、容器和對象的處理方式基本一致,而且在整個系統(tǒng)中至少有3份副本,以保證滿足簡單多數(shù)的最低要求。以新浪的采用Swift部署的存儲系統(tǒng)為例,每一個Zone由包含12塊2T的硬盤的服務器構(gòu)成,總共有5個這樣的Zone構(gòu)成了整體的存儲系統(tǒng)。在生產(chǎn)環(huán)境中,也可以在Zone的上層增加一個負載均衡的控制來更好的維護訪問的均衡性。通過這樣一個簡潔的存儲結(jié)構(gòu),當系統(tǒng)的存儲設備發(fā)生變化時,只需要重新建立Ring并遷移少量的數(shù)據(jù)就可以正常的運行,大大的降低了系統(tǒng)擴展的消耗和維護的代價。 Swift存儲訪問過程以新浪應用的存儲系統(tǒng)為例,當用戶存儲一份文件時,可以在任何一個Zone上面進行映射的計算,從而得到實際應該存儲的虛擬目錄位置。Proxy Server將文件發(fā)送到對應的對象服務器中,僅當存儲系統(tǒng)返回的成功滿足簡單多數(shù)協(xié)議時,Proxy Server返回保存成功。如果用戶需要獲取某一個存儲對象,同樣可以向任何一個Zone發(fā)送對象OID,Proxy Server通過計算命中對象所在的虛擬目錄,對象服務器返回的成功數(shù)滿足簡單多數(shù)時,Proxy Server選擇對象服務器并將所要求的存儲對像發(fā)送給客戶。同時,系統(tǒng)內(nèi)部的更新器按照預設的時間規(guī)律的查找失敗的存儲記錄,在系統(tǒng)允許的情況下完成內(nèi)部的一致性維護工作,保證存儲系統(tǒng)的正確運行。圖 新浪Swift存儲系統(tǒng)從上面的系統(tǒng)我們也可以看到,當訪問數(shù)據(jù)的用戶增加,每一個用戶可以通過不同的Zone獲得數(shù)據(jù),也就是說,文件的冗余存儲帶來了IO性能的提升。那么,當我們繼續(xù)增加存儲設備的數(shù)量,就可以通過增加文件的副本數(shù)量的方式來提高系統(tǒng)的訪問性能。例如,對于一些擁有大規(guī)模訪問量的文件共享服務器,通過將副本數(shù)量從默認的3份提高到更多的份數(shù)無疑可以提供更高的吞吐能力,并且這種增長與投入的設備數(shù)量是直接相關的,這種模式可以廉價的獲得高彈性的存儲性能。在現(xiàn)實的應用中,對于同一個存儲系統(tǒng),不同的應用環(huán)境下,對存儲訪問性能的要求是不相同的。如果直接采用最高性能的配置方案,會帶來一定的資源浪費。而且,在多租戶系統(tǒng)中,單一的性能配置方案也是不能夠滿足多樣的用戶需求的。那么,在現(xiàn)有的系統(tǒng)上找到一種可以充分利用云存儲的高可伸縮性的設計方案是具有很強的現(xiàn)實意義的[20]。通過了解Swift的存儲過程我們可以看出,要想提升系統(tǒng)的可配置性,最直接的方法就是讓系統(tǒng)中副本的冗余度是可配置的。通過提供更靈活的副本數(shù)量來提供靈活的吞吐性能選擇。 Swift中對象的存儲結(jié)構(gòu)在Swift中,主要存在三種類型的對象,即賬號、容器和存儲對象。其中,帳號和容器的數(shù)據(jù)都以sqlite的形式存儲在相應的目錄中。在每一個具體的存儲設備下,掛載的目錄內(nèi)會存在以下子目錄,它們是accounts、containers、objects,對應賬號、容器、對象的存儲目錄;async_pending是異步待更新目錄;quarantined是隔離目錄;tmp是臨時目錄。下面分別分析帳號、容器和對象的存儲結(jié)構(gòu)。其中容器與帳號的存儲結(jié)構(gòu)類似。 帳號存儲結(jié)構(gòu)在accounts目錄下存放的是各個partition,而每個partition目錄是由若干個suffix_path目錄組成,suffix_path目錄下是由account的hash名構(gòu)成的目錄,在hash目錄下存放了關于account的sqlite db。圖 帳號存儲結(jié)構(gòu),展示了測試系統(tǒng)中的帳號存儲結(jié)構(gòu)。圖 賬號存儲展示如圖所示,在存儲設備下存在帳號、容器、對象存儲目錄和臨時目錄。,對上面的結(jié)構(gòu)進行了分析。PathDeviceAccountPartitionSuffix_pathHash pathHash+extensionsdb1/2/node/sdb2/accounts160771c839d00c…c839d00c…圖 帳號信息的db文件主要保存了關于account的信息,如名稱、創(chuàng)建時間、容器數(shù)統(tǒng)計等。共包含了account_stat、container、ining_sync 、outgoing_sync等4張表,其中最基礎的是account_stat表,:表 31 accountstat表結(jié)構(gòu)account_stat (account TEXT, created_at TEXT,put_timestamp TEXTDEFAULT39。039。, delete_timestamp TEXTDEFAULT39。039。, container_count INTEGER, object_count INTEGERDEFAULT0, bytes_used INTEGERDEFAULT0, hash TEXTdefault39。0000000000000000000000000000000039。, id TEXT, status TEXTDEFAULT39。39。, status_changed_at TEXTDEFAULT39。039。, metadata TEXTDEFAULT39。39。 )??梢钥闯鰜恚珹ccount主要管理了其包含的容器計數(shù)、對象計數(shù),并記錄空間的使用情況。 容器存儲結(jié)構(gòu)容器存儲結(jié)構(gòu)在文件系統(tǒng)中的目錄與帳號存儲結(jié)構(gòu)類似,只是其中的賬號目錄換成了對應的容器目錄。容器在Swift系統(tǒng)中有著重要的作用,對象可以通過容器直接列舉出來,同時也可以按照容器來直接的下載容器內(nèi)全部對象。所以,容器是與對象存儲直接相關的一個邏輯結(jié)構(gòu)。通過對容器的理解和操作,可以完成很多一般的文件系統(tǒng)所做不到或者低效的工作。但是,由于容器是與對象直接相關的結(jié)構(gòu),它的結(jié)構(gòu)和管理要比帳號數(shù)據(jù)復雜。db文件中包含了container_stat、object、sqlite_sequence、ining_sync 、outgoing_sync5張表,object表保存了其下屬的存儲對象的名稱、etag等基本信息。:表 32 Container_stat結(jié)構(gòu)container_stat ( account TEXT, container TEXT, created_at TEXT, put_timestamp TEXTDEFAULT39。039。, delete_timestamp TEXTDEFAULT39。039。, object_count INTEGER, bytes_used INTEGER, reported_put_timestamp TEXTDEFAULT39。039。, reported_delete_timestamp TEXTDEFAULT39。039。, reported_object_count INTEGERDEFAULT0, reported_bytes_used INTEGERDEFAULT0, hash TEXTdefault39。0000000000000000000000000000000039。, id TEXT, status TEXTDEFAULT39。39。, status_changed_at TEXTDEFAULT39。039。, metadata TEXTDEFAULT39。39。, x_container_sync_point1 INTEGERDEFAULT1, x_container_sync_point2 INTEGERDEFAULT1 )。其中account字段表示container所屬的account,container字段表示container名稱,created_at表示創(chuàng)建時間,put_timestamp表示put request的時間戳,delete_timestamp表示delete request的時間戳,object_count表示object計數(shù),bytes_used表示使用空間,hash表示db文件的哈希值, reported_put_timestamp, reported_delete_timestamp, reported_object_count, reported_bytes_used表示reported的狀態(tài)信息,id表示統(tǒng)一標識符,status表示container狀態(tài),status_changed_at表示更改時間,metadata表示container的元數(shù)據(jù),x_container_sync_point1表示同步點1,x_container_sync_point2表示同步點2。通過Container,我們可以直接獲得其下屬對象的信息,從而可以很容易的按照Container整體的復制或遷移數(shù)據(jù)。這也是Swift存儲的一個優(yōu)點。由于Swift中的sqlite數(shù)據(jù)庫在運行中會完全載入內(nèi)存,所以當Contianer中對象的數(shù)量過多的時候,可能會造成性能的急劇下降,一般建議系統(tǒng)保持在每個容器中的對象不超過百萬級別。對于實際的需求,可以通過客戶端內(nèi)部自動建立新的容器來解決。 對象存儲結(jié)構(gòu)對象的存儲在文件系統(tǒng)的目錄結(jié)構(gòu)上也和帳號以及容器類似,但是其中存儲的文件卻并不相同。在objects目錄下存放的是各個partition目錄,suffix_path目錄下是由object的hash_path名構(gòu)成的目錄,在hash_path目錄下存放了關于object的數(shù)據(jù)和元數(shù)據(jù)。:圖 object存儲目錄結(jié)構(gòu)其中的pkl文件保存了partition下面對象的時間戳等信息,用于數(shù)據(jù)同步時作為對比。,;當對象被刪除后,這個文件會在定期的檢查過后清理掉。在對象存儲中,重要的一項就是生成對象保存路徑,這個路徑的生成過程如下:、container和object名稱產(chǎn)生39。/account/container/object39。格式的字符串,和HASH_PATH_SUFFI
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1