一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

塊存儲(chǔ)設(shè)備知識(shí)詳解

Linux閱碼場(chǎng) ? 來(lái)源:未知 ? 作者:李倩 ? 2018-05-16 16:11 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

塊存儲(chǔ)設(shè)備

互聯(lián)網(wǎng)越來(lái)越發(fā)達(dá),網(wǎng)速越來(lái)越快(管制也越來(lái)越嚴(yán)),很多事情都可以通過(guò)聯(lián)網(wǎng)解決。很多存儲(chǔ)行業(yè)商家也get到了這個(gè)點(diǎn)。下圖是個(gè)極簡(jiǎn)的模型,商家存儲(chǔ)設(shè)備(黑盒子),用戶一個(gè)筆記本電腦,通過(guò)TCP/IP承載的iSCSI協(xié)議,對(duì)于Linux用戶,可以看到一個(gè)塊設(shè)備/dev/sdax,就像使用本地硬盤(如/dev/sda)一樣,可以對(duì)其進(jìn)行分區(qū),格式化為文件系統(tǒng),亦或直接裸設(shè)備讀寫。

圖9 塊存儲(chǔ)設(shè)備

對(duì)于用戶,這就夠了,著實(shí)方便,付錢就行。

對(duì)于一個(gè)有追求的碼農(nóng),我們是有必要看看這個(gè)黑盒子里面是什么。下圖是黑盒子里面的東西,再次強(qiáng)調(diào),包括本文之前或之后的插圖及描述,都是十分宏觀的。篇幅有限不能說(shuō)的太細(xì),符合本文主旨;另外,說(shuō)的太細(xì)就會(huì)和具體商家產(chǎn)品很像,咱不能那么干。

拋開(kāi)硬件、驅(qū)動(dòng)、OS等,直接看軟件邏輯,首先將系統(tǒng)上的硬盤組成多個(gè)RAID,如何組,組成哪種RAID,哪幾塊盤組成RAID等等,這些都是可以通過(guò)管理員配置。有人問(wèn)了(對(duì),還是前面問(wèn)問(wèn)題的那個(gè)人):“就一個(gè)RAID行不行?”

可以,但是有風(fēng)險(xiǎn),如果一個(gè)盤出現(xiàn)故障,RAID就暫時(shí)不能提供服務(wù)了,整個(gè)系統(tǒng)所有用戶會(huì)受到影響。如果組成多個(gè)RAID,那么,僅僅有故障盤的RAID暫時(shí)無(wú)法服務(wù),其它RAID是可以繼續(xù)工作,不至于影響所有用戶。套用某相聲表演藝人的話說(shuō),用戶就是衣食父母。

繼續(xù)看圖,軟件對(duì)下要管理RAID,對(duì)上要為用戶提供服務(wù),它給用戶提供的是LUN(全稱是Logical Unit Number,也就是邏輯單元號(hào)),當(dāng)然啦,用戶(人)不必去理解什么是LUN,就如上面所說(shuō),頂多是一個(gè)/dev/sdax,LUN是軟件、協(xié)議層面的東西。怎么理解呢?每個(gè)LUN關(guān)聯(lián)了一組物理存儲(chǔ)資源,你擁有了這個(gè)LUN,就擁有了這組物理存儲(chǔ)資源,凡是使用物理存儲(chǔ)資源,需要提供你的LUN ID。有過(guò)編程經(jīng)驗(yàn)的人很容易理解,十分類似一個(gè)文件或socket句柄??蛻舳耍ㄟ@里不使用用戶這個(gè)詞,這里偏只程序)對(duì)LUN的讀寫,至少需要提供”LUN ID+R/W+Offset+Length[+data]”這些信息。

為什么需要LUN,而不是把RAID直接“丟給”用戶?

圖10 塊存儲(chǔ)設(shè)備內(nèi)部

因?yàn)槊總€(gè)用戶的需求是不一樣。

碼農(nóng)李二狗,全部身家800G代碼,做開(kāi)發(fā)的時(shí)候谷歌一下然后復(fù)制粘貼來(lái)的。某宅男,擁有海量高清大片,4TB+不在話下。按照?qǐng)D10,我們可以給李二狗分配LUN 1,給某宅男分配LUN 2。軟件邏輯層負(fù)責(zé)做映射,事實(shí)上,一個(gè)LUN可以映射到多個(gè)RAID,多個(gè)LUN也可以映射到一個(gè)RAID上(不常用,因?yàn)镽AID故障影響多個(gè)用戶),用戶數(shù)據(jù)都會(huì)準(zhǔn)確的保存到屬于該LUN的物理存儲(chǔ)資源中,不會(huì)出現(xiàn)張冠李戴的情況。當(dāng)用戶需求改變的時(shí)候,如李二狗也開(kāi)始收集高清大片了,需要的空間就大了,那么可以將LUN1資源進(jìn)行擴(kuò)充,十分靈活。最后,LUN的大小和該LUN所映射的物理存儲(chǔ)資源大小以及用戶查看/dev/sdax的大小是一致的。

帶文件系統(tǒng)的存儲(chǔ)設(shè)備

其實(shí)在大多數(shù)場(chǎng)景,用戶都是將設(shè)備格式化成某個(gè)文件系統(tǒng)使用。那么設(shè)備廠商就對(duì)用戶說(shuō):“我有一個(gè)辦法,你們可以不用自己格式化,我直接提供一個(gè)文件系統(tǒng),直接mount就行了,NFS,簡(jiǎn)單吧?!?/p>

“好??!好??!”

“不過(guò),得加錢。”

“……”

商業(yè)上的事我們先不管,看下圖。用戶交好錢,被告知一個(gè)地址,直接mount到本地,確實(shí)方便。

圖11 帶文件系統(tǒng)的存儲(chǔ)設(shè)備

這回,黑盒子里面又是什么東西呢?

圖12 帶文件系統(tǒng)的存儲(chǔ)設(shè)備

看圖之后,是不是和我一樣的感覺(jué)?MMP奸商。 就多了一個(gè)文件系統(tǒng)層,內(nèi)部格式化LUN,然后就多收了不少錢。

如果你以為只有這些就錯(cuò)了!

我們假設(shè),你付費(fèi)買了1TB的空間,服務(wù)商是沒(méi)有真的給你預(yù)留1TB物理存儲(chǔ)資源的,當(dāng)你用的時(shí)候,再去申請(qǐng)物理存儲(chǔ)資源。你很憤憤,就存滿1TB,此時(shí)你以為真的消耗服務(wù)商1TB物理存儲(chǔ)資源了?不見(jiàn)得!有可能只消耗了0.8TB甚至更少。

拋開(kāi)商業(yè)成見(jiàn),但從技術(shù)角度來(lái)看,這里有兩個(gè)技術(shù)需要提到壓縮 和 去重,這在文件系統(tǒng)層面很容易做到。

壓縮(Compress)

您可能知道,文件系統(tǒng)在進(jìn)行IO時(shí)候是以一定大小數(shù)據(jù)塊(block)為單位進(jìn)行的,以4KB為例。壓縮也是以這個(gè)數(shù)據(jù)塊為單位,在寫入磁盤之前進(jìn)行壓縮,原本4KB的數(shù)據(jù),壓縮之后可能就變成2KB,多個(gè)壓縮之后的數(shù)據(jù)塊再次拼成4KB,然后保存到物理磁盤。這個(gè)操作,節(jié)省了物理資源。用戶讀數(shù)據(jù)的時(shí)候,如果是壓縮的,需要首先解壓縮,然后返回給用戶。壓縮、解壓縮操作是純算法的,主要消耗CPU資源,因此在系統(tǒng)負(fù)載很高的時(shí)候,不建議啟用壓縮機(jī)制。另外,數(shù)據(jù)是否壓縮,需要額外的元數(shù)據(jù)(metadata)記錄,這增加了系統(tǒng)復(fù)雜度。有的設(shè)備會(huì)將壓縮、解壓縮操作交給硬件去完成,減少CPU的消耗。

去重(Deduplicate)

上傳一個(gè)大的高清影片到網(wǎng)盤,秒傳,遇到過(guò)吧?這說(shuō)明服務(wù)商存儲(chǔ)系統(tǒng)存在了一個(gè)和你一模一樣的文件,你遇到了一個(gè)志同道合的宅友。為了節(jié)省空間,系統(tǒng)就僅僅給你做個(gè)標(biāo)記(或類似一個(gè)軟鏈接),然后增加文件的引用計(jì)數(shù),免得別人刪除了影響到你。這個(gè)還是從文件層面的去重,也十分容易理解。我們做個(gè)極端假設(shè),如果兩個(gè)1G大小的文件,僅僅有一個(gè)字節(jié)不同,按照上面方式是不能做到去重的,還是得上傳。文件的一部分一樣就不能進(jìn)行去重了嗎?

答案是有。數(shù)據(jù)塊(block)級(jí)別的去重。

圖13 數(shù)據(jù)塊級(jí)別去重

我們看圖13說(shuō)話。最初,硬盤神馬都沒(méi)有,文件1數(shù)據(jù)全部寫入硬盤,這沒(méi)什么好說(shuō)的。然后,文件2,其中BEF三個(gè)塊,硬盤已經(jīng)存在,不必寫入了,剩下的塊需要寫入。最后再看文件3,前面3個(gè)塊,XYZ不存在于硬盤中,需要寫。后面的XY就不必寫了,最后的E也是不必寫。

去重技術(shù)確實(shí)節(jié)約物理存儲(chǔ)資源,但也存在一些問(wèn)題。

比如:如何確定當(dāng)前要寫的塊硬盤中已經(jīng)存在?

不可能去硬盤中逐一比較!

一個(gè)做法是將早期寫入的塊進(jìn)行HASH計(jì)算,將HASH值以及塊信息保存到內(nèi)存中,作為Cache,新預(yù)寫的塊計(jì)算HASH值,如果HASH值在Cache中存在,則取出Cache中塊信息,做去重操作,記錄信息。內(nèi)存有限,Cache不能足夠大到保存所有硬盤中的塊信息,因此去重是有限度的,另外Cache的更新也是一個(gè)技術(shù)要點(diǎn),何種Cache更新算法能夠得到好的去重效率是一個(gè)值得深入研究的話題。

好了,以上簡(jiǎn)要介紹了兩種存儲(chǔ)設(shè)備。接下來(lái)……

有人問(wèn)了(對(duì),依舊是前面問(wèn)問(wèn)題的那個(gè)人):

“我替碼農(nóng)李二狗他父親王老爺子問(wèn)個(gè)問(wèn)題,是軟件就有BUG,如果你這軟件崩潰了,是不是所有用戶都不能正常訪問(wèn)了?”

“沒(méi)錯(cuò)!”

“弱爆了吧?”

在前面RAID的描述中,可以體會(huì)到一個(gè)詞“冗余”,冗余起到保險(xiǎn)、保護(hù)作用。既然說(shuō)軟件存在缺陷,可能掛,那么就放兩份在那,兩個(gè)物理獨(dú)立的設(shè)備運(yùn)行同樣的軟件,互為主備。主用設(shè)備工作時(shí)備用設(shè)備待命,主備共享系統(tǒng)中RAID、LUN等配置及狀態(tài),主用設(shè)備掛了,備用設(shè)備上。用戶無(wú)感知。這類方案在很多領(lǐng)域(如通信設(shè)備)也是常見(jiàn)的。

圖14 主備備份

“看起來(lái)有用,你這主備設(shè)備都放在哪里?”

“服務(wù)商機(jī)房或數(shù)據(jù)中心?!?/p>

“如果數(shù)據(jù)中心著火了或其它情況,這些設(shè)備就不能提供服務(wù)了吧?”

“沒(méi)錯(cuò)!”

“弱爆了吧?”

數(shù)據(jù)中心可是個(gè)有網(wǎng)、有電、有空調(diào),有外賣宅男向往的好地方,是具備基本的防火、防盜(防師兄?)等防災(zāi)害的地方,但凡事預(yù)則立不預(yù)則廢,萬(wàn)一出現(xiàn)差錯(cuò)可就是大事了。

其實(shí)數(shù)據(jù)中心也有“備份”。一般在同城的其它地方,也會(huì)有一個(gè)數(shù)據(jù)中心,用于備份當(dāng)前數(shù)據(jù)中心的數(shù)據(jù),同城較近拉光纖,備份效率杠杠的,甚至是實(shí)時(shí)備份。

圖15 數(shù)據(jù)中心

“如果城市發(fā)生較大地震,兩個(gè)數(shù)據(jù)中心都損毀了,數(shù)據(jù)就丟了吧?”

“沒(méi)錯(cuò)!”

“弱爆了吧?”

兩地三中心。即生產(chǎn)數(shù)據(jù)中心、同城災(zāi)備中心、異地災(zāi)備中心建設(shè)方案。兩個(gè)城市的三個(gè)數(shù)據(jù)中心互聯(lián),如果一個(gè)數(shù)據(jù)中心發(fā)生故障或?yàn)?zāi)難,其他數(shù)據(jù)中心可以正常運(yùn)行并對(duì)核心業(yè)務(wù)或全部業(yè)務(wù)實(shí)現(xiàn)接管。

圖16 兩地三中心

“那如果兩個(gè)城市都……”

“你稍等,我打個(gè)電話?!?/p>

喂,代罵公司嗎?這是我的個(gè)人資產(chǎn)證明,幫我罵個(gè)人,罵道我破產(chǎn)。

……

天下無(wú)不散宴席。本次分享就到此結(jié)束了,還是那句話,能力有限水平一般,蜻蜓點(diǎn)水的啰嗦了這些,萬(wàn)一有那么一句半句勾起了您的興趣,我就十分欣慰。

注:我們尊重對(duì)知識(shí)刨根問(wèn)底的精神,以上代罵公司有關(guān)說(shuō)辭純屬扯淡。

尾聲

“你可嚇壞我了,在看Linuxer公眾號(hào)的文章呢,向大牛們學(xué)習(xí)學(xué)習(xí),我一直覺(jué)得技術(shù)沒(méi)啥長(zhǎng)進(jìn),內(nèi)心挺虛的。”

“看你體格應(yīng)該不只是心虛吧?確實(shí),這些文章質(zhì)量都很高,值得學(xué)習(xí),除了那篇《大話存儲(chǔ)》有點(diǎn)打醬油。在說(shuō),學(xué)習(xí)沒(méi)必要偷偷摸摸的吧?”

“習(xí)慣了,沒(méi)辦法,看感興趣的東西就這樣?!?/p>

“我只能呵呵了。我關(guān)注的主播要上線了,先走了,這個(gè)移動(dòng)硬盤放這借你用用?!?/p>

“里面是什么?”

“當(dāng)然也是你感興趣的東西——你懂的”。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • RAID
    +關(guān)注

    關(guān)注

    0

    文章

    282

    瀏覽量

    36833
  • 存儲(chǔ)設(shè)備
    +關(guān)注

    關(guān)注

    0

    文章

    167

    瀏覽量

    19290

原文標(biāo)題:EMC潘國(guó)林: 大話存儲(chǔ)系列之月光寶盒(塊存儲(chǔ))

文章出處:【微信號(hào):LinuxDev,微信公眾號(hào):Linux閱碼場(chǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    探秘Linux:從分區(qū)表到設(shè)備——我不是表, 我是設(shè)備

    本文由來(lái)于心中的兩個(gè)疑問(wèn),即平凡的存儲(chǔ)器件是怎么從分區(qū)變成一個(gè)個(gè)設(shè)備的, 根是怎么被mount的.
    的頭像 發(fā)表于 09-11 16:03 ?4w次閱讀

    Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)詳解

    #《Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)詳解》電子書(shū)連載#第5章 Linux文件系統(tǒng)與設(shè)備文件系統(tǒng),由于字符設(shè)備設(shè)
    發(fā)表于 06-06 11:28

    電子元器件基礎(chǔ)知識(shí)詳解

    電子元器件基礎(chǔ)知識(shí)詳解
    發(fā)表于 10-08 20:13 ?371次下載

    網(wǎng)絡(luò)存儲(chǔ)技術(shù)詳解

    網(wǎng)絡(luò)存儲(chǔ)技術(shù)詳解 網(wǎng)絡(luò)存儲(chǔ)技術(shù)一般分為三種,分別是NAS、SAN、DAS: NAS網(wǎng)絡(luò)存儲(chǔ)
    發(fā)表于 01-13 11:29 ?1362次閱讀

    對(duì)象存儲(chǔ)和文件之外的存儲(chǔ)形式

    存儲(chǔ)的基礎(chǔ)架構(gòu),對(duì)的管理是簡(jiǎn)單的。從全球第一個(gè)磁盤存儲(chǔ)技術(shù)50年前誕生到現(xiàn)在,的技術(shù)沒(méi)有發(fā)生太大變化。磁盤工業(yè)生產(chǎn)遍及全球。最近幾年
    發(fā)表于 05-29 09:26 ?553次閱讀

    《Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)詳解》第13章、Linux設(shè)備驅(qū)動(dòng)

    《Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)詳解》第13章、Linux設(shè)備驅(qū)動(dòng)
    發(fā)表于 10-27 11:24 ?18次下載
    《Linux<b class='flag-5'>設(shè)備</b>驅(qū)動(dòng)開(kāi)發(fā)<b class='flag-5'>詳解</b>》第13章、Linux<b class='flag-5'>塊</b><b class='flag-5'>設(shè)備</b>驅(qū)動(dòng)

    一文讀懂存儲(chǔ)和文件存儲(chǔ)

    存儲(chǔ)和文件存儲(chǔ)是我們比較熟悉的兩種主流的存儲(chǔ)類型,而對(duì)象存儲(chǔ)(Object-based Storage)是一種新的網(wǎng)絡(luò)
    發(fā)表于 07-06 10:10 ?3.5w次閱讀

    基于的分級(jí)存儲(chǔ)系統(tǒng)

    HazeINut是一種基于的分級(jí)存儲(chǔ)系統(tǒng),為滿足HazeINut多種存儲(chǔ)設(shè)備和追蹤遷移方式的管理需求,設(shè)計(jì)并實(shí)現(xiàn)多樣性設(shè)備管理機(jī)制HNDi
    發(fā)表于 03-12 14:41 ?0次下載
    基于<b class='flag-5'>塊</b>的分級(jí)<b class='flag-5'>存儲(chǔ)</b>系統(tǒng)

    FreeRTOS基礎(chǔ)知識(shí)詳解pdf下載

    FreeRTOS基礎(chǔ)知識(shí)詳解
    發(fā)表于 03-29 14:36 ?45次下載

    存儲(chǔ)設(shè)備速度太慢而無(wú)法舒適?不如試試服務(wù)器消息性能調(diào)整

    存儲(chǔ)設(shè)備速度太慢而無(wú)法舒適?需要尋找指導(dǎo)故障排除和服務(wù)器消息(SMB)性能調(diào)整的內(nèi)容。
    的頭像 發(fā)表于 09-02 10:18 ?2498次閱讀

    機(jī)器視覺(jué)基礎(chǔ)知識(shí)詳解模板

    機(jī)器視覺(jué)基礎(chǔ)知識(shí)詳解模板下載。
    發(fā)表于 05-28 14:48 ?13次下載

    STM32學(xué)習(xí)之Flash(主存儲(chǔ)、系統(tǒng)存儲(chǔ)器和選項(xiàng)字節(jié))詳解

    了一些資料,現(xiàn)將這些資料總結(jié)了一下,不想看的可以直接調(diào)到后面看怎么操作就可以了。FLASH分類根據(jù)用途,STM32片內(nèi)的FLASH分成兩部分:主存儲(chǔ)、信息。 主存儲(chǔ)
    發(fā)表于 12-01 21:06 ?14次下載
    STM32學(xué)習(xí)之Flash(主<b class='flag-5'>存儲(chǔ)</b><b class='flag-5'>塊</b>、系統(tǒng)<b class='flag-5'>存儲(chǔ)</b>器和選項(xiàng)字節(jié))<b class='flag-5'>詳解</b>

    詳解射頻微波基礎(chǔ)知識(shí)點(diǎn)

    詳解射頻微波基礎(chǔ)知識(shí)點(diǎn)
    的頭像 發(fā)表于 01-29 10:28 ?2751次閱讀

    無(wú)功補(bǔ)償原理基礎(chǔ)知識(shí)詳解

    無(wú)功補(bǔ)償原理基礎(chǔ)知識(shí)詳解
    的頭像 發(fā)表于 08-11 09:48 ?1157次閱讀
    無(wú)功補(bǔ)償原理基礎(chǔ)<b class='flag-5'>知識(shí)</b><b class='flag-5'>詳解</b>

    文件存儲(chǔ)存儲(chǔ)的區(qū)別和聯(lián)系

    文件存儲(chǔ)存儲(chǔ)是兩種常見(jiàn)的數(shù)據(jù)存儲(chǔ)方式,它們?cè)谠O(shè)計(jì)思想、數(shù)據(jù)組織方式、應(yīng)用場(chǎng)景等方面存在著一些區(qū)別和聯(lián)系。 首先,文件存儲(chǔ)是指將數(shù)據(jù)以文件
    的頭像 發(fā)表于 12-20 17:16 ?1707次閱讀