新聞資訊
當(dāng)前位置:首頁(yè) > 新聞資訊 > 最新動(dòng)態(tài)
來(lái)源:成都網(wǎng)站建設(shè) 作者:賽維思網(wǎng)絡(luò) 發(fā)布日期:2014-04-30 瀏覽:3182次
前段時(shí)間在使用百度網(wǎng)盤時(shí),突然發(fā)現(xiàn)百度網(wǎng)盤可以免費(fèi)領(lǐng)取2TB空間啦!
網(wǎng)絡(luò)硬盤大家可能都或多或少的接觸過,不得不說(shuō)在萬(wàn)物皆云的時(shí)代里,這是一種非常好的網(wǎng)絡(luò)工具,而對(duì)我們這種窮到掉渣的免費(fèi)用戶來(lái)說(shuō),硬盤空間簡(jiǎn)直就是硬傷,剛開始使用的時(shí)候真是為了空間,各種折騰(做他那里所謂的任務(wù)),到頭來(lái)也才擴(kuò)充了5G左右。現(xiàn)在好了,隨隨便便、輕輕松松就有了2T的空間。
而這突如其來(lái)的2T空間是如何實(shí)現(xiàn)的呢?
事實(shí)是這樣滴!
假如我想要為每個(gè)用戶提供1G的網(wǎng)絡(luò)存儲(chǔ)空間。
如果服務(wù)器上有一顆1000G的硬盤可以全部為用戶提供數(shù)據(jù)儲(chǔ)存,如果每個(gè)用戶分配1G的最大儲(chǔ)存空間,那么能分配給多少個(gè)用戶使用呢?
你一定說(shuō)是1000/1=1000個(gè)用戶。
但是事實(shí)上你這么分配了,你會(huì)發(fā)現(xiàn)每個(gè)用戶平時(shí)根本不會(huì)上傳1G的東西將容量占的滿滿的,有多有少,但平均用戶平時(shí)只上傳50M的文件,也就是說(shuō),如果你將1000G的硬盤分給1000個(gè)人使用,但只有效利用了其中的50M*1000=50G的空間,剩余950G的空間基本都完全浪費(fèi)了。
那么怎么解決呢?
你可以變通一下,將這1000G的空間分配給20000個(gè)用戶使用,每個(gè)人的上傳上限容量還是1G,但每人平時(shí)還是平均上傳50M的數(shù)據(jù),那么20000*50M=1000G,這下子就把寶貴的服務(wù)器上的存儲(chǔ)空間充分利用了。但你又怕這樣分配給20000個(gè)人后,萬(wàn)一某一刻人們突然多上傳點(diǎn)數(shù)據(jù),那么用戶不是就覺察出來(lái)你分給人家的1G空間是假的了嗎?所以可以不分配那么多人,只分配給19000人,剩下一些空間做應(yīng)急之用。
突然發(fā)現(xiàn)一下子將可分配的用戶數(shù)量翻了19倍啊,了不起。那還有沒有辦法更加有效的利用一下呢?
如果我有1000個(gè)以上的服務(wù)器,一個(gè)服務(wù)器上有1000G空間,那么我們每個(gè)服務(wù)器上都要留下50G的空白空間以備用戶突然上傳大數(shù)據(jù)時(shí)導(dǎo)致數(shù)據(jù)塞滿的情況,那么我這1000個(gè)服務(wù)器上就空出了1000臺(tái)*50G=50000G的空間被浪費(fèi)了,多么可惜。所以攻城獅們發(fā)明了存儲(chǔ)集群,使得一個(gè)用戶的數(shù)據(jù)可以被分配在多個(gè)服務(wù)器上存儲(chǔ),但在用戶那看起來(lái)只是一個(gè)1G的連續(xù)空間,那么就沒必要在每個(gè)服務(wù)器上預(yù)留出應(yīng)急的空間了,甚至可以充分的將前一個(gè)服務(wù)器塞滿后,在將數(shù)據(jù)往下一個(gè)服務(wù)器中塞。這樣保證了服務(wù)器空間的最大利用,如果某一刻管理員發(fā)現(xiàn)用戶都在瘋狂上傳數(shù)據(jù)(在一個(gè)大規(guī)模用戶群下,這樣的概率少之又少)導(dǎo)致我現(xiàn)有提供的空間不夠了,沒關(guān)系,只需要隨手加幾塊硬盤或者服務(wù)器就解決了。
好吧,這下子我們的服務(wù)器空間利用高多了,可以將一定量的空間分配給最多的用戶使用了。但有沒有更好的改進(jìn)方案呢?
管理員有一天發(fā)現(xiàn),即使每個(gè)用戶平均下來(lái)只存儲(chǔ)50M的東西,但這50M也不是一蹴而就的,是隨著1-2年的使用慢慢的達(dá)到這個(gè)數(shù)量的,也就是說(shuō),一個(gè)新的用戶剛剛注冊(cè)我的網(wǎng)絡(luò)空間時(shí),不會(huì)上傳東西,或者只上傳一點(diǎn)非常小的東西。那么我為每一個(gè)用戶都初始分配了50M的空間,即使將來(lái)2年后他們會(huì)填滿這50M,但這期間的這空間就有很多是浪費(fèi)的啊。所以聰明的攻城獅說(shuō):既然我們可以分布式、集群式存儲(chǔ),一個(gè)用戶的數(shù)據(jù)可以分布在多個(gè)服務(wù)器上,那么我們就假設(shè)一開始就給一個(gè)新注冊(cè)的用戶提供0M的空間,將來(lái)他用多少,我就給他提供多少存儲(chǔ)空間,這樣就徹底的保證硬盤的利用了。但用戶的前端還是要顯示1G的。
工程師的這個(gè)點(diǎn)子,使得我在建立網(wǎng)盤初期能用1臺(tái)1000G的服務(wù)器提供了大約1000000人來(lái)注冊(cè)和使用,隨著注冊(cè)的人多了,我也有錢了,也可以不斷增加服務(wù)器以提供他們后期的存儲(chǔ)了。同時(shí)因?yàn)橐徊糠址?wù)器完成了一年多購(gòu)買,我的購(gòu)買成本也下來(lái)了。
那么…這就結(jié)束了嗎?
若是郵箱提供商的話,這樣的利用率夠高了。但網(wǎng)盤就不一樣了。
聰明的工程師發(fā)現(xiàn):不同于郵箱,大家的內(nèi)容和附件絕大多數(shù)都是自創(chuàng)的和不同的。但網(wǎng)盤上大家上傳的東西很多都是重復(fù)的。
比如:張三今天下載了一部《TxxxO HxT》上傳到了自己的網(wǎng)盤上,李四在三天后也下載了一模一樣的《TxxxO HxT》上傳到了網(wǎng)絡(luò)硬盤上,隨著用戶的增多,你會(huì)發(fā)現(xiàn)總共有1000個(gè)人上傳了1000份一模一樣的文件到你寶貴的服務(wù)器空間上,所以工程師想出一個(gè)辦法,既然是一樣的文件,我就只存一份不就好啦,然后在用戶的前端顯示是沒人都有一份不就行啦。當(dāng)某些用戶要?jiǎng)h除這個(gè)文件的時(shí)候,我并不真的刪除,只需要在前端顯示似乎刪除了,但后端一直保留著以供其他擁有此文件的用戶下載。直到所有使用此文件的用戶都刪除了這個(gè)文件我再真的將其刪除吧。
這樣子隨著存儲(chǔ)的數(shù)據(jù)越來(lái)越多,注冊(cè)的用戶越來(lái)越多,其上傳的重復(fù)數(shù)據(jù)越來(lái)越多。你發(fā)現(xiàn)這樣的檢測(cè)重復(fù)文件存儲(chǔ)的效率越來(lái)越大。這樣算下來(lái)似乎每個(gè)人上傳的不重復(fù)的文件只能平均1M/用戶。這下子你可以提供超過50倍的用戶使用您這有限的空間了。
但伴隨著使用,你又發(fā)現(xiàn)一個(gè)規(guī)律:
張三上傳的《TxxxO HxT N0124》和李四上傳的《TH n124》是同一個(gè)文件,只不過文件名不一樣,難道我就不能識(shí)別出他們是一個(gè)文件,然后只將其分別給不同的用戶保存成不同的文件名不就行啦?確實(shí)可行,但這要利用一些識(shí)別文件相同性的算法,例如MD5值等。只要兩個(gè)文件的MD5值一樣,文件大小一樣,我就認(rèn)為它們是相同的文件,只需要保存一份文件并給不同的用戶記作不同的文件名就好了。
有一天你發(fā)現(xiàn),因?yàn)槊恳粋€(gè)文件都需要計(jì)算MD5值,導(dǎo)致CPU負(fù)荷很大,而且本來(lái)一樣的文件非要浪費(fèi)帶寬上傳回來(lái)才可以檢測(cè)一致性,能改進(jìn)一下嗎?
聰明的工程師寫了個(gè)小軟件或小插件,美其名曰“上傳控件”,將計(jì)算MD5的工作利用這個(gè)軟件交給了上傳用戶的電腦來(lái)完成,一旦計(jì)算出用戶要上傳的數(shù)據(jù)和服務(wù)器上已經(jīng)存儲(chǔ)的某個(gè)數(shù)據(jù)是一樣的,就干脆不用上傳了,直接在用戶那里標(biāo)記上這個(gè)文件已經(jīng)按照XX文件名上傳成功了。這個(gè)過程幾乎是瞬間搞定了,并給其起了個(gè)高富帥的名字“秒傳”!
通過以上這么多步驟,你發(fā)現(xiàn)本來(lái)你只能給1000用戶提供網(wǎng)絡(luò)空間的,這么多改進(jìn)辦法后,在用戶端顯示1G空間不變的情況下,近乎可以為1000000個(gè)用戶提供網(wǎng)絡(luò)空間了。
這樣若是您哪天心情好,對(duì)外宣傳說(shuō):我要將每個(gè)用戶的存儲(chǔ)空間上限提升到1TB。那么每個(gè)用戶平均還是只上傳50M數(shù)據(jù),只有極個(gè)別的用戶上傳了突破1G原始空間的數(shù)據(jù),你會(huì)發(fā)現(xiàn)所付出的成本近乎是微乎其微的。
辛勤的攻城獅還在為如何更有效率的利用服務(wù)器提供的磁盤空間在不屑努力和挖掘著……
Copyright ? www.9o00.com All Rights Reserved. 成都賽維思網(wǎng)絡(luò)技術(shù)有限公司 蜀ICP備13002520號(hào)-3 Sitemap