自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

從網(wǎng)絡(luò)文件系統(tǒng)到對(duì)象存儲(chǔ),聊聊對(duì)象存儲(chǔ)的前世今生

存儲(chǔ)
每種技術(shù)的產(chǎn)生都有其原因,也有其淵源。網(wǎng)絡(luò)文件系統(tǒng)的產(chǎn)生有幾十年的歷史了,但是由于在互聯(lián)網(wǎng)盛行的當(dāng)下無法滿足某些需求,于是對(duì)象存儲(chǔ)產(chǎn)生了。今天我們就從

每種技術(shù)的產(chǎn)生都有其原因,也有其淵源。網(wǎng)絡(luò)文件系統(tǒng)的產(chǎn)生有幾十年的歷史了,但是由于在互聯(lián)網(wǎng)盛行的當(dāng)下無法滿足某些需求,于是對(duì)象存儲(chǔ)產(chǎn)生了。今天我們就從從網(wǎng)絡(luò)文件系統(tǒng)說起。

[[335218]]

早些時(shí)候的企業(yè)級(jí)架構(gòu)普遍采用網(wǎng)絡(luò)文件系統(tǒng),這其中最為著名的就是Sum的NFS了。微軟也有類似的網(wǎng)絡(luò)文件系統(tǒng),也就是SMB。網(wǎng)絡(luò)文件系統(tǒng)的原理很簡(jiǎn)單,其目的就是將存儲(chǔ)系統(tǒng)上的文件系統(tǒng)映射到計(jì)算節(jié)點(diǎn)(比如Web服務(wù)器)。這樣可以實(shí)現(xiàn)存儲(chǔ)資源的共享,提高存儲(chǔ)資源的利用率。具體映射方式如下所示。

 

從網(wǎng)絡(luò)文件系統(tǒng)到對(duì)象存儲(chǔ),聊聊對(duì)象存儲(chǔ)的前世今生

 

但是文件系統(tǒng)有個(gè)天然的缺點(diǎn)。由于文件系統(tǒng)空間組織的特點(diǎn),導(dǎo)致對(duì)文件訪問的時(shí)候需要比較多次的磁盤訪問。

以Ext4文件系統(tǒng)為例,文件系統(tǒng)將磁盤空間分為兩個(gè)主要的區(qū)域,一個(gè)是元數(shù)據(jù)區(qū),用于存儲(chǔ)文件inode等信息;另外一個(gè)是數(shù)據(jù)區(qū),用于存儲(chǔ)文件的數(shù)據(jù),也就是用戶數(shù)據(jù),具體如下圖所示。

 

從網(wǎng)絡(luò)文件系統(tǒng)到對(duì)象存儲(chǔ),聊聊對(duì)象存儲(chǔ)的前世今生

 

這樣,當(dāng)我們?cè)L問一個(gè)文件的時(shí)候,首先需要找到文件對(duì)應(yīng)的inode,然后根據(jù)inode信息找到數(shù)據(jù)的位置,并讀取數(shù)據(jù)。這個(gè)過程可能要涉及到2-3次的磁盤訪問。對(duì)于互聯(lián)網(wǎng)應(yīng)用來說,多次磁盤訪問會(huì)顯著降低性能,影響用戶的體驗(yàn)。

當(dāng)然,除此之外還有其它一些問題,比如橫向擴(kuò)展能力等。其實(shí)本質(zhì)上來說,文件系統(tǒng)的目的是一個(gè)通用的存儲(chǔ)形態(tài),其目的是為了適用大多數(shù)的應(yīng)用場(chǎng)景(比如文件鎖,擴(kuò)展屬性,ACL等等)。而網(wǎng)絡(luò)文件系統(tǒng)為了保證與文件系統(tǒng)語(yǔ)義的一致性,也需要實(shí)現(xiàn)這些特性,這就導(dǎo)致網(wǎng)絡(luò)文件系統(tǒng)比較臃腫。

對(duì)象存儲(chǔ)解決的問題

由于上述缺點(diǎn),傳統(tǒng)的網(wǎng)絡(luò)文件系統(tǒng)是完全無法滿足互聯(lián)網(wǎng)領(lǐng)域應(yīng)用的。我們舉一個(gè)例子,以FaceBook為例,其每秒鐘都有幾十萬次的照片檢索請(qǐng)求。其存儲(chǔ)的照片總量每天新增3.5億張,對(duì)應(yīng)的存儲(chǔ)增量大概在300TB左右。如果對(duì)應(yīng)物理設(shè)備,每天大概需要新增上百塊硬盤。

這種問題在任何互聯(lián)網(wǎng)公司都會(huì)遇到的問題。比如國(guó)內(nèi)的頭條,淘寶或者京東等等,在它們的平臺(tái)上每天也要產(chǎn)生海量的圖片訪問。傳統(tǒng)存儲(chǔ)很難滿足其性能和擴(kuò)展性的要求。

雖然互聯(lián)網(wǎng)應(yīng)用對(duì)性能和容量的要求極高,但是對(duì)其它特性卻沒什么特別的要求。甚至可以說它對(duì)其它特性基本上沒有太多要求。由于其存儲(chǔ)的主要是圖片,而且對(duì)圖片的存儲(chǔ)是一次存儲(chǔ),多次訪問,沒有修改。

為了解決上述問題,對(duì)象存儲(chǔ)應(yīng)運(yùn)而生。可以看出對(duì)象存儲(chǔ)解決的問題很集中,如何保證橫向擴(kuò)展能力、降低訪問延時(shí)。而不需要實(shí)現(xiàn)文件系統(tǒng)的其它額外特性(后面我們會(huì)介紹對(duì)象存儲(chǔ)還有一些高級(jí)特性)。下面是維基百科對(duì)對(duì)象存儲(chǔ)的定義。

Object storage (also known as object-based storage) is a computer data storage architecture that manages data as objects

從定義可以看出,對(duì)象存儲(chǔ)在數(shù)據(jù)處理層面的特點(diǎn)是將待處理的數(shù)據(jù)看做一個(gè)整體,這也就是為什么把它稱為對(duì)象,而不是文件了。

其實(shí)對(duì)象存儲(chǔ)也并非全部如此簡(jiǎn)單,很多對(duì)象存儲(chǔ)也實(shí)現(xiàn)了比較復(fù)雜的功能特性。比如S3對(duì)象存儲(chǔ)可以支持大數(shù)據(jù)處理、擴(kuò)展屬性和二次處理(比如照片的轉(zhuǎn)換,水印等)等特性。

對(duì)象存儲(chǔ)的常見架構(gòu)

為了讓大家對(duì)對(duì)象存儲(chǔ)有更加深刻的理解,我們介紹一下常見對(duì)象存儲(chǔ)的架構(gòu)。雖然亞馬遜的S3非常出名,但是并沒有公開太多技術(shù)信息,其架構(gòu)也無從了解。今天本文將介紹一下比較流行的其它對(duì)象存儲(chǔ)的架構(gòu)。

Swift對(duì)象存儲(chǔ)

首先介紹一下開源對(duì)象存儲(chǔ)Swift的架構(gòu)。Swift是OpenStack的一個(gè)子項(xiàng)目,是非常流行的開源對(duì)象存儲(chǔ)軟件。Swift在OpenStack中主要用作虛擬機(jī)鏡像,其特點(diǎn)也是存儲(chǔ)大對(duì)象。對(duì)于小對(duì)象則想多弱勢(shì)。

Swift最主要的是實(shí)現(xiàn)橫向擴(kuò)展能力,其前端有一個(gè)Proxy組件,該組件實(shí)現(xiàn)了數(shù)據(jù)的分發(fā)服務(wù)。該組件可以具備多個(gè)實(shí)例,每個(gè)實(shí)例可以安裝在一臺(tái)物理服務(wù)器。由于Proxy可以橫向擴(kuò)展,因此不會(huì)成為性能瓶頸。

 

從網(wǎng)絡(luò)文件系統(tǒng)到對(duì)象存儲(chǔ),聊聊對(duì)象存儲(chǔ)的前世今生

 

在Proxy中最核心的算法是進(jìn)行數(shù)據(jù)放置的一致性哈希算法。該算法實(shí)現(xiàn)了將一個(gè)對(duì)象映射到物理設(shè)備的過程。為了保證整個(gè)系統(tǒng)的可靠性和可用性,Swift將設(shè)備劃分為若干等級(jí),比如Zone,Host和Disk。通過不同設(shè)備的分發(fā),實(shí)現(xiàn)故障域的隔離。

 

從網(wǎng)絡(luò)文件系統(tǒng)到對(duì)象存儲(chǔ),聊聊對(duì)象存儲(chǔ)的前世今生

 

如上圖哈希算法,首先將物理設(shè)備映射到哈希環(huán)上;當(dāng)有對(duì)象訪問的時(shí)候根據(jù)對(duì)象名稱計(jì)算出哈希值,然后將對(duì)象映射到具體的物理設(shè)備上。

Haystack對(duì)象存儲(chǔ)

Facebook這對(duì)其照片應(yīng)用開發(fā)了Haystack對(duì)象存儲(chǔ)。Haystack與前面Switf的差異是其存儲(chǔ)的是小對(duì)象。因?yàn)閳D片通常在10MB以下,大部分在KB級(jí)別。因此Haystack除了保證系統(tǒng)的橫向擴(kuò)展能力外,其最主要的是實(shí)現(xiàn)對(duì)小文件的處理。

前面我們說過,對(duì)于小文件的性能問題,普通文件系統(tǒng)的問題在于多次讀盤操作。而Haystack正式解決了該問題。

Haystack的做法非常簡(jiǎn)單,它將多個(gè)小文件作為一個(gè)大文件的局部數(shù)據(jù),這個(gè)局部數(shù)據(jù)稱為needle。同時(shí)Haystack構(gòu)建了一個(gè)描述needle在大文件中位置的索引文件。由于索引文件比較小,因此可以一次性的加載到內(nèi)存當(dāng)中。

 

從網(wǎng)絡(luò)文件系統(tǒng)到對(duì)象存儲(chǔ),聊聊對(duì)象存儲(chǔ)的前世今生

 

通過這種方式,當(dāng)客戶端需要訪問數(shù)據(jù)的時(shí)候,在存儲(chǔ)節(jié)點(diǎn)可以直接從內(nèi)存中得到數(shù)據(jù)的位置,并一次從磁盤上讀取數(shù)據(jù)。這樣訪問存儲(chǔ)的性能得到大幅的提升。

由于篇幅有限,本文先介紹到這里,關(guān)于存儲(chǔ)技術(shù)的更多細(xì)節(jié),還請(qǐng)關(guān)注本號(hào)。本號(hào)后續(xù)還會(huì)步步深入,介紹關(guān)于存儲(chǔ)技術(shù)的諸多細(xì)節(jié)。

 

責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2015-06-11 11:10:09

對(duì)象存儲(chǔ)云存儲(chǔ)

2022-09-14 21:15:44

互聯(lián)網(wǎng)存儲(chǔ)技術(shù)

2009-09-13 19:24:33

LINQ存儲(chǔ)過程

2015-08-12 14:35:47

2018-03-27 10:06:26

對(duì)象存儲(chǔ)演進(jìn)

2018-03-16 09:23:34

塊存儲(chǔ)文件存儲(chǔ)對(duì)象存儲(chǔ)

2022-03-04 08:45:11

Docker開源Linux

2022-06-28 18:47:38

WiFi5G

2019-07-08 18:23:45

Windows操作系統(tǒng)功能

2018-09-19 10:15:45

塊存儲(chǔ)文件存儲(chǔ)對(duì)象存儲(chǔ)

2018-01-22 09:21:46

塊存儲(chǔ)對(duì)象存儲(chǔ)文件系統(tǒng)

2022-10-08 07:45:09

塊存儲(chǔ)磁盤硬盤

2015-05-19 14:54:01

浪潮

2019-04-28 09:34:06

2022-09-20 14:04:09

SSD

2019-04-15 15:22:14

塊存儲(chǔ)文件存儲(chǔ)對(duì)象存儲(chǔ)

2020-02-16 15:20:18

存儲(chǔ)類型比較

2024-06-14 09:32:12

2021-05-31 20:06:57

網(wǎng)元協(xié)議網(wǎng)關(guān)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)