NAS只能當做資料儲存裝置用? 那可不一定!

關於這篇的最終用法,其實已經算是被我淘汰的舊方法了,
最初這個方法是三年前,在需要規畫實驗室環境時,提出但並不被接受的方式,
理由是因為可靠度並未被承認,所以一直只能等到現在,我才敢拿出來聊聊了,

原則上只要不是人為或本身硬體的故障影響,或是本身在評估規劃時有錯誤的話,
那麼都應該要跟我是有相同的使用結論。

另外也順便要解釋一下,過去為何認定DRAM DISK技術,對於儲存媒體應用會是弊大於害,
或者是針對某些用途時,所給出的一些建議,背後的根本原因。
畢竟反對都是要有所依據的,但真話真的沒有幾個人能接受,所以只好換個說法解釋了。

(任何電腦或網路設備的選擇,都是需要精心規劃與計算的,但多數人都是在請鬼抓藥單,畢竟商人永遠不會誠你不欺! 他們唯一能對你保證的,就是他肯定有騙你才是真話)


首先要先聊到的部分是磁碟效能這塊,因為這基礎部分,真的是有太多人沒搞懂了。
但如果沒有先有一定程度的瞭解,那麼看完會依然是一頭霧水,不會明白方法該如何使用。

SSD產品之所以會有高速表現的原因為何?

關於效能表現這點,很多人都會以為是SSD速度更高的原因導致,
但是實際上除了極速稍高一點外,就完全是跟傳輸所跑的分數,連根毛的關係都沒有了,
,因為所謂的檔案傳輸,是透過三個因素才產生出來的。

第一是大小的部分,第二是數據傳輸方式,第三則是花費時間的反應時間部分
而上面這三個因素,又都受到反應時間這部分的影響,所以效能並不是去看數字大小,而是應該看最短時間內哪個完成的次數最多。

效能是由密集檔案傳輸才做到的,指令只需要少許頻寬而已,但出了硬碟本身就是要看連接端口之間,可用頻寬實際有多少了。
NAS只能當做資料儲存裝置用? 那可不一定!

接著是檔案大小這部分,這個就簡單很多,如果你一次只能搬運一塊石頭,那會是重的搬比較快?還是輕的搬運比較快呢? 說穿就是小檔案傳輸需時較短,所以IO的次數就會多,不過關係並非正比,畢竟還有第三點影響的部分,也就是資料長度或方式差異,

如果想成停車場出入口,因為排隊使得一次只能通過一輛,那麼在固定時間限制下,通行總數就是有限制的,這就是4K測試為何永遠那麼小的原因,不過只要是SSD產品,反應快這好處照常是會跟HDD有很大的不同而數據大小這部分,也唯獨會在檔案太過於小情況,才有反效果的出現,因為太小的檔案會導致效率沒有辦法完全發揮,因為要執行更多次,才能把資料給傳輸完成,但是卻並不會因此讓總傳輸量有提升,想像如果4K的檔案,拆成1K去傳遞時,因為需要執行四次,所以自然不見得就比只做一次的效率來得高。


各種FW架構的不同,就會使得數據傳輸的方式有所不同,最明顯就是SandForce晶片了,其實所說的壓縮功能,指的就是利用演算方式去將數值做排列規劃,有點像是磁碟重組味道,但是實際上又複雜了許多,總之就是將資料整理好做排列,最後將位置紀錄下來等著存取用。

總之執行各種測試條件時,需要先理解這三點的條件為何,是最大IO量呢?還是固定時間傳送固定數量?但只要靠三點的任意兩點條件,就能推算出第三點答案出來。

提升IO效能最大的好處,就在於順暢度的這個部分,像是遊戲中常見的短暫延遲,很多時候是被數據拖延的,如果一個網站首頁,就必須等著200MB資料讀取完成才能看,那結果可以想見,不但等待時間會過長,可以同時瀏覽的人數也因此變得更少,存取需時短才是SSD加快遊戲真正原因,而利用網路方式,因為本身就是靠封包方式去傳輸,所以相同頻寬條件下,可供數倍的使用者去存取,只要不存在連接端口的頻寬問題,我是真的不懂,還能夠有什麼是快過磁碟內部的傳輸速度了。

在密集的資料情況下,可讓每一筆資料等待時間更短,能利用的技術方面又變得更多,
自然就可以讓流暢度大大的提升,所以利用NAS當成遊戲儲存用,
無論是硬體支出和整體使用率方面,都絕對是利大於弊的應用方式,
真的別再有一些認為玩過好一點硬體的網友,跳出來認為這是錯誤的了,
因為所有結論都是經過實際驗證跟規劃的,不是單純講講猜想,遊戲是有真的能夠免安裝的。
那些高階產品部分,我在Server原廠服務的時候,大概也不會玩的比各位還更少,
真的請不要覺得貼出好硬體,就表示你有比較厲害,因為真的不可能嚇的了誰的。
而且DiskMark是記錄最高結果的軟體,並不適用在判斷過程傳輸快慢。
http://www.mobile01.com/topicdetail.php?f=490&t=4549383&p=4#57889485

下面連結的這位老兄,因為只用一個連接端做多操作,所以使得數據結果根本沒有意義,但是給他建議了又不肯接受,同樣是以為自己硬體等級夠高,就證明自己技術很好。但要是什麼都往一台主機上面塞,效能還會表現好的話,那資料庫何必用數千台電腦去架構?

主機與裝置間靠指令往返,是主機依靠驅動程式,再去對硬體進行命令傳遞,那麼這樣的的執行方式,真的除了改變這種條件方法外,都一次就只能對一個目標進行而已,這例子正好也是說明了,技術觀念跟使用的硬體等級部分,很可能完全是結果相反的一個例子。
http://www.mobile01.com/topicdetail.php?f=490&t=4463808&p=1

如果想要模擬真實情況,會需要依環境裡的操作方式,傳輸的IO做了紀錄,再藉此內容對讀寫比例, 還有檔案大小或長度的設定,去調整或設定腳本,最後照評估的最大需求效能,做連接設定,所以我只是家用需求的話,就只是設為下面的條件而已,如果僅僅是要數字好看的話,其實真的會很容易,但是真的沒有實際意義倒不如不做。

系統檔案部分,實際是透過遠端網路連接,利用ISCSI開機後,才有了變更的測試環境


每一顆SSD都因為是由Flash為主而組成,所以會因為顆粒規格,或是因為反應時間,可傳輸的CE數量,或是最多人熟知的良率影響,讓許多因素而有差異。大家一定都有跑過磁碟無分割的情況吧,是不是這個狀態跑出來的速度,都能比原本分割狀態時又快了很多呢?

只要數據是需要被記錄後做保存,那就一定是會受到FW內容而影響,但是無論怎麼去對資料做出任何異動,基本上可傳輸的總頻寬都是不會有變化的,所以要說SSD效能好或是壞,那不如說是比較原料誰用得更好才是重點。但是說穿了都是靠內部做數據變更動作的意思,大家所知道的MLC效能傳輸結果,其實都是因為這部分而產生的,這是它與SLC所不一樣的部分,因為不是一次就處理好,這也是為什麼說SSD其實都只有SATA2速度的原因了,因為事實上確實就是如此。

SLC的好處,並不是靠技術就能追上的,因為都與MLC用了同樣原理的技術,所以照MLC那套說法來看SLC產品的話,QD讓SLC等同有了破千MB/s的真實效能了,所以SLC不是MLC和TLC能有機會相同並論的,因為先天的反應速度與data存取吞吐量,都會依舊是技術改變不了的結果。

NAS只能當做資料儲存裝置用? 那可不一定!
NAS只能當做資料儲存裝置用? 那可不一定!


另外要說到一個90%的人都誤解的部分,就是測試軟體中,標示為QD的這個部分,其實比較像區網與外網兩者的不同,大家常說的傳輸速度單位,也並非與對外部線路相同,就好似很多人把QD這部份,也以為是SSD對外傳輸效能,所以也就只管它的數字大小,卻忘了還要看反應時間這個最大重點了。

而這次要說的NAS靈活運用的變種方式,就是使用內部傳輸的高效能,才進而達成的一種概念,好處是非常適合專業研發或是Debug來運用,目前為止除了硬體實體的限制外,大概系統,網路甚至軟體部分一些Err,90%都能靠這方式,模擬跟找出錯誤原因,所以有興趣的人可以參考看看,即使比新的方法落後許多,但是應該也夠一般人用了。

影片中使用的硬碟皆為傳統硬碟,並沒有SSD和其他加速軟體的使用,如果這影片能一眼明白的朋友,我想您應該已經具備相當高的專業度了,但如果是只覺得不過就是虛擬機的使用,那麼希望在急著想要打我臉之前,先找儲存媒體這行業的高手,瞭解一下這樣做的目的,再做出決定吧,因為01上想打的人實在太多了,能實現的卻又少之又少,也因為真的沒有那麼多時間,老是要說明基礎本原理,或者怎麼透過簡單變化方法,才能獲得最佳結果與有效數據資料,實在是沒有意義行為,因為那不是使用者需要會,或是有興趣本來就該懂的條件,所以並非該講的內容部分了。



關於NAS和Server這類專用硬碟的產品,我個人會認為必須能盡可能做到類似結果,
既不能因為IO資料的處理,使得主機佔用過高使用率,不然肯定對外端口的回應這部分,會變得其差無比,所以如果在規劃些設備給高負载主機時,在等待延遲的部分,也都必須要移轉負擔到其他產品上面,都不做分流就會像是被攻擊,光靠正常傳輸的數據,也導致了主機的癱瘓下場。

此外還不能夠因為內部的數據量,影響了主機的其他運作效能,像是如果買高階電腦,還不懂規劃這部分重要性,那世上處理器能負荷肯定剩下不多了,因為電腦的效能好壞,完全是在考驗規劃者的真正功力,並不是所謂口袋深淺,就能夠有直接影響,只要真的懂技術的人,當然根本不該有高價=高效能這樣觀念存在才對。

所以奉勸那一些認為必須買最頂級處理器的人,真的該好好思考自己盲點之處了。
如果效能都要高階才有所謂XX專用,就根本成為是換湯不換藥的騙人產品罷了。

要是針對家用NAS的產品,更必須去考量到 1Gb線路的使用率這些部分,全速快並沒有意義。
必須做傳輸的數據,自然盡可能越不影響會越好,這是對最近新的NAS硬碟,一點看法與建議,
這部分也很歡迎各位指教,或是提出其他不同的觀點,想了解大家對網路儲存的其他不同觀點。

如果內容有說法讓你感覺什麼不滿,那抱歉了,因為我只實事求是,不是發表能讓人滿意的政見)
2015-11-14 14:15 發佈

好像很厲害的樣子

是類似網咖的模式嗎?
v0911 wrote:
好像很厲害的樣子是...(恕刪)


續傳軟體有用過吧?這就是類似續傳軟體的原理,把資料拆成多份後再一起進行的意思,因為系統並沒有對外傳輸,所以不會被SATA介面的頻寬限制速度,自然就能夠非常快了。

只是技巧性的導致它能夠如此,所以自然免安裝軟體,也不用改變任何正常使用的部分。但是如果是硬碟A要傳到硬碟B,那就沒有作用了,只能夠在同硬碟才有效。

但如果是NAS的話,不管裝了幾顆那麼都是等同在同一顆,所以自然會是效果最好。所以如果一台NAS接了三台可增加10顆硬碟的陣列櫃,那就是全部30顆硬碟都是在同一顆的意思,30顆存取都是各自拆分成32份進行,等於是960通道存取,那是怎麼個情況我也不知道,因為沒有接過這麼多顆過。

或是同硬碟中安裝三套系統的話,那就是三套系統都能互相存取,因為就跟家中有多人生活一樣,應該不會有誰家的傢俱這些,也是全都一人買一套的吧?



兩顆SATA2的SSD,拆成64份就已經讓瞬間存取近萬了,因為已經夠驚人了,所以也沒必要搞更多顆,因為沒遇過靠那瞬間還會跑不完的資料。有五百億跟有五億的富翁,有誰認為五億的很窮嗎?
changpizz wrote:
關於這篇的最終用法...(恕刪)


感謝分享,

小弟是真的想從 changpizz 兄的分享中學到更多相關的知識. 相信這文章肯定要多讀幾遍才能消化, 想請教一下.

*這篇的主題是什麼? 是指NAS不僅可用來做為儲存之用, 更能應用在那些方面?是否能更白話一點?

*我想應該是學術論文的寫作方式不同, 很多的用語或是語法結構和一般人所慣用的中文不同, 造成很多部份很難理解所要表達的內容, 當然這也是小弟自身專業知識必須再補強的部份.

*另外對於一些擷圖及錄影, 相信這花了不少時間及心思, 但是否能再多做些註釋或是說明, 誠如 changpizz 兄所說, 能一眼看懂相信就有點底子了, 但就是因為不懂, 才希望 C 兄能多予指導. 謝謝.
FB: Pctine
對我這外行人而言,簡單的說,相同的I/O頻寬下是否能實現多通道多執行緒,而為了解決終極的塞車問題,避免磁碟到RAM之間的DELAY,而有了快取.緩衝和多通道多執行緒...等的解決方案.
這文的價值在重新指出大家都知道已久的事:目前PC的瓶頸在資料存取,拖垮PC效率的最大元兇就是硬碟,一味提升CPU,VGA,RAM的容量和規格,如不改善儲存裝置的存取效率一樣白搭,因此儲存體的改進是很重要的,這也就是SSD個人覺得算是PC的最大演進之一,而M.2的出現,也可能造成1TB以下低容量HDD的消失,應該說低容量HDD消失是目前進行式,平板和手機就是明顯的例子.
SSD並非是唯一解,正如樓主文中所言,影響的因素並非單純,解法也各有不同,使用RAMDISK,RAID0..都有一定的效果.
感謝樓主的分享.
pctine wrote:
感謝分享, 小弟是...(恕刪)


P大客氣了,不是不想多做些說明,而是因為真的太熟悉了,所以不知道大家還會有什麼需要問? 如果是合理的疑問,我當然還是願意討論的啦。
我拒絕的是那種.....虛擬主機怎麼用,或是ISCSI是什麼,這種....會讓我失去耐心的問題而已.....
很些容易會感覺被消費的問題,那就會想避免掉,所以是為了避免爭吵,才會設的防火牆而已。
大概躲起來實驗的人,都很容易有這種障礙問題,才只好把醜話先說,並非要讓人知道了頭,但又不提供尾的意思啦。
內容因為是想啥就直接說,所以確實有錯誤部分真的不少,但這只能執行都完成以後,再慢慢去修正用詞了。

不知道你的問題是不是指這個,很多時候我們會需要去執行不同環境,或是不同實體上的實驗,但是如果一次只能用一台電腦,可能光是KVM切換就暈頭了,不但不能同時操作,也不能同時做到監控各個環境的數據和流量,但是透過這樣方式,都是互通而且可以相互運行的。

假設要知道電腦開機時候,一共跑了哪些數據,或是要讀取多少資料,就能用A系統執行,再用B系統去做側錄,這樣就做到了一般無法完成的動作,因為要有比系統更高層級的控制端,才能夠去跨越各個環境的這個意思,或者是需要有多台主機去模擬網路存取,也同樣可以操作方便,資料完整,又能完全地掌握著變化部分,但是一般如果要這麼方便,多半會因為電腦效能無法負荷,反而導致問題變得更多,所以改用這方式就沒有其他數據在傳輸了,得到的磁碟數據傳輸量,也能在正確性上面得到保證,因為除了選定的硬碟外,其他都不走傳輸介面,自然不會有衝突或任何的影響可能,只能先簡單解釋一下,如何靈活應用的可能性跟例子。

真的只要一台Mac筆電,我就能完成世上所有問題處理,也能應付日常需求上的操作,例如SSD開卡原先因為環境限制,只能專程去執行Linux環境,但是用了這種方式後,變成只是電腦裡的操作介面罷了,就不必被臨時需求給打斷原先部份,完成後又只要改個連接設定,就能再改成Windows環境檢查是否運作正常了。

只要電腦沒有IO這部分的傳輸壓力,自然就根本沒有多少運算要求,那低規格就能跑所有應用了。硬碟想要幾顆就建立幾顆,甚至直接跑IMG檔案或是ISO這類,也只是幾秒就完成的事情。甚至我還拿SSD,去給三個不同系統環境,去做檢測跟比對,這就已經是正常世界絕無可能的做法了,至於怎麼做到這就只能讓大家自己研究了,會對SSD有一些大家覺得屬於莫名的要求,或是到批評的程度,實際上就是因為在過程有一些問題的發現,不然批評又沒好處,何必還要堅持那些點?目前我也想不出除了硬體線路限制外,還有什麼需求是靠這方式辦不到的。

之前有些網友總對我的硬體環境做些猜測,現在大概算是把最大的部分做揭露了,除了硬體與相容限制的問題外,數據Bug查找70%都是如此發現的,要是都靠老方法去驗證,家裡就真的會像實驗室一樣了,那應該光是想像也覺得太過誇張了點吧?


這是用Mac強大監控功能,同時對四個不同系統環境軟體進行控管,等於只要一個動作就完成了四種排程的工作計畫,但是不在同個內部運作的話,就做不到這一點了,這也是此技術的價值所在。
(既然能監控,當然命令內容同樣也可以傳送)


只要我將監控指向每個系統環境執行的項目,不但就能一目了然,而且每個應用各自增加多少數據量都自動會顯示,還能將總數據量變成監控圖顯,既能監控又能去做傳輸過程的數據取得,這如果換成買專業設備來做到的話,要花費幾百萬才有可能了,如此也算是利用對原理的了解,加上技術去把問題一一克服,所以便能達成的最後結果,只需花費聯想力跟邏輯能力,但是自身能力的提升部分,無價!


所以我想....只是認為必須先對這些軟體或網路有一定掌握,應該不算是很過分要求,總不能隨便一個User說要重頭學起,我都還要講到他會為止,那就不是無私分享,而是變成所謂白痴分享了

ssd 的強項只有在 random read and write. 如果是 video encoding sequential read and write, 反而是 傳統的 hd 的強項。這個就是為什麼 很多 storage nas 廠商做出 multi-tier 的產品。 level 1 ram disk for fast read, level 2 ssd for fast random read and write, 最後 level 3 才是傳統 hd. 為了突破停車場出口的問題, intel的方式是 NVMe ssd, 以直接的 pcie lane 提供最原始的直接的頻寬。

再來就是 nas 的速度會被到底是使用 rmda 或是 tcp network 的讀取方式 產生數倍速度的影響, 所以進入到 hpc 的領域幾乎都是 mellanox Infiniband的卡了。與其使用 iSCSI 的方式測試,建議你使用看看 iSer 的模式 (rdma over TCP) 。 如果是 SRP 的模式 (純 rdma) 會完全看到不同的結果。

所以奉勸那一些認為必須買最頂級處理器的人,真的該好好思考自己盲點之處了。
如果效能都要高階才有所謂XX專用,就根本成為是換湯不換藥的騙人產品罷了。


非常同意。
EluSiOn wrote:
ssd 的強項只有...(恕刪)


不過因為NAS是無法再做硬體上的變動,所以除了用軟方式,也沒有更好的分流方法能用了,
為了能容易理解,所以我是只有掛載資料夾來示範,因此有些傳輸依然是會對外,
不過看完就明白實際上靠網路線根本不可能有那樣的結果,一旦完全是靠內部的遠端系統執行後,所有數據就不會有外傳的部分了,真實電腦其實就會只剩下瀏覽的那些數據流量而已了。


這次透過外部裝置,去執行設定,確實有一些判斷上的困難,因為網路本身會去找可連接的路,所以才會有了那些WIFI的龜速效能,不過一旦能正確連接上後,只要那掛載不被卸載,就會保持在內部狀態了,之後就是一層一層的彼此連接起來,就完成所需要的結果了,要幾組或幾顆為一個加速單位,就是自己選擇跟調整。



如果減少了所謂的QD層數之後,效能也同樣會跟著下降,


如果是虛擬機去做這動作,那只要在其中一台掛載Image檔案,使其變成磁碟之後,就會顯示在每個不同的OS環境裡面,那樣才是有彼此相互連接完成的情況,因為都是同個檔案複製出來的虛擬磁碟,所以同樣其中一顆存取時,其他也是會有存取的動作,因為這就是用QD的深度原理而已。

數字是不能跟對外的效能做比較的,只是說明測試項目的原理,並且如果把每個環節負载做些調整,相互連接之後,確實是可以對於主機部分,產生一些不同的變化,但真的別再有人一直當真實速度,還在問到底會不會變快,會快的是應用方式的部分,不是能替硬體開外掛,這些一開始不是就有做說明了嗎........

但也並不是因為誤判才會有效能,因為實際上確實是將資料又拆分成多層去做存取,等於是在一顆硬碟中,再依照Data長度跟大小去分配,所以只是利用內部速度去執行,就如同把系統整個放入RAMDISK的磁碟中使用,最大差異是不會因為重開機或斷電而失效,也不需要重複存取才能加速。

容量大小影響如同RAMDISK,因為只用單顆60G跑以下這些過程。實際運作原理也就只是如同圖片,或到處都可見技術原理一樣。但是太細節做法就不說了,因為已經只差沒附上SOP而已了,我也沒這麼好心,所以伸手討的吸血鬼,真的別開口討罵,搞技術的絕對厭惡和知道你們那把戲,so...請改拿自己人生時間研究吧。路人的閒言閒語更是免了,我最不怕惹事了,所以不吃跟我裝聖人這套



(實體機進行的測試,並且為防寫模式,所以才沒有效果,僅為了說明與網路無關)

正常狀態的SSD效能

加速的磁碟因彼此是相連的情況,所以對任何一顆動作都連動影響。

換個軟體來證明真的是實體機,而非虛擬環境。

AS SSD的QD64已經不會增加,因為本來就一直保持在QD狀態下了。


TxBench


主機所下的命令,也會變成多到拍不進畫面。

硬體負载與消耗狀態(RanDonWrite)

硬體負载與消耗狀態(RanDonRead)

相信用這方式,有了高速的效果後,再去看RAMDISK時候,也同樣不覺得划算了吧。

NAS必須要避開主機的主要磁碟,不然就會變成圖中下場,也不會再有速度快的可能,因為即使是完全閒置的裝置,主機也都已經沒有餘力再去存取了,只要避開之後,就只需要少量主機使用率。任何的主機都不會去執行這些分配動作,規劃是專業人員才該要做的工作,因為考量之後才會叫做組裝,不然也只是菜單去拼裝出電腦而已,學個兩天任誰都會了。


(圖片可以看出,如果是外部運行時候,跟內部的有多少差異,而這也是許多高檔電腦,卻還會龜速的主要原因,因為實際需要的其實是去規劃用法與搭配的硬體,並非要去不斷對電腦運算能力升級,因為只要占用率依舊過高,效能同樣是無發揮)

內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?