Fw: [閒聊] 網路儲存裝置(NAS)
※ [本文轉錄自 Soft_Job 看板 #1Inx8URa ]
作者: TonyQ (自立而後立人) 看板: Soft_Job
標題: [閒聊] NAS
時間: Sat Jan 4 15:02:52 2014
昨天看到公司發布新產品,又離我們的理想近了一步,覺得心情非常好。
http://www.techbang.com/posts/16364
---------------------------------
既然這裡是軟體版,那就趁這心情來講講自己公司在做的事情吧。XD
NAS = Network-attached storage ,
說穿了,就是有接網路的 storage 。
本來這是沒什麼了不起的,不過就是個網芳,我以前也是這麼想。
後來才知道 storage 中間有許多學問,network 也是,
這學問就像是說文解字,不講不知道,一講嚇一跳。
@ 先從網路開始:
---------------------------------
要有網路,表示要能夠作傳輸,至少要有網路卡,要有 server,
所以變成是一台有 cpu、有主機板、有記憶體、有網路卡的嵌入式系統。
下一步,有些 NAS 是低階 cpu 、少量記憶體,純粹就是當 file server 用。
---------------------------------
接下來,使用者開始抱怨 NAS 不知道該怎麼用,網芳只能在家裡區網用,
如果出去就不能用感覺很不方便,反正都接網路了,就讓我在外面也能存取吧,
然後廠商開始寫 application ,windows/mac application 。
只要告訴我他的 ip 跟帳號密碼,我就能從任何地方存取我的檔案。
接下來,使用者又發現其實裝 application 很麻煩,
他們想要 web access ,於是廠商就做了 web access 介面。
免安裝,連上就能用。
最近這年頭流行智慧型手機,廠商就費盡心機的去整合智慧型手機,
出 app 同步手機跟 NAS 的資料夾,出 app 讓手機可以隨時存取 NAS。
最後,因為絕大多數的 NAS 都在區網內,對外得開 NAT ,
所以去研究整合 router 自動設定 NAT 或 NAT 穿透的技術。
(雖然現在所謂 NAT 穿透還是有點半調子,但那就是現行技術的瓶頸。)
然後既然有些 NAS 系統是 linux ,
開放 ssh 給一些 geek 級如我的玩家去自由運用也是很合理的。
當然,ftp/sftp 這種基本傳輸工具也是不可少的。
然後因為很多人會是浮動 ip ,所以廠商內建作個 DDNS 的服務也是很合理的。
除了這個以外,有使用者有連接電視、電腦螢幕並播放檔案的需求,
所以作個 HDMI 輸出到任何支援 HDMI 的裝置,也是很有道理的。
---------------------------------
這裡的網路並不只是字面上的定義,網路其實包含著平台、包含著裝置。
網路意味著你的使用者"從哪裡"、"如何"存取到這個節點,
而這就是許多裝置目前的主要戰場。
---------------------------------
@ 再來談 storage
我們認知中的 storage 大多停留在存、取,也就是 file in/file out。
我們會習慣把 NAS 當成一顆網芳上的大硬碟看待,基本上這個方向是沒錯,
但 storage 要解決的問題,本身並沒有這麼狹隘。
硬碟層本身要解決的問題,當然就是磁碟陣列,
所以現在各家廠商幾乎都支援各種磁碟陣列組合( 0,1,5,0+1,1+0 ..etc)。
有 storage 一定會跟來的問題就是備份(backup),這是我們要處理的。
備份還有時間軸的問題,不是單純把檔案存一份就好,
你得要知道這是一天前的備份,那是兩天前的備份,有備份當然還要能還原。
上面是最最基本要解決問題。
假設我們把檔案進來的流程拆解,你會得到一個這樣的流程:
檔案置入 => 處理 => 存檔完成 => 連接裝置 => 取出檔案 => 應用檔案
綠色是輸入,藍色是歸檔,黃色是輸出,
這裡面學問就多了,可以玩的東西也變多了。
---------------------------------
讓我們從一般硬碟的角度來想,這個流程會變成
複製檔案 => 存檔完成 => 透過網芳存取 => 複製檔案 => 用電腦軟體打開
這流程我想正常會買 NAS 的人都知道,我就不多說。
---------------------------------
接下來我們要把事情切成輸入跟輸出兩邊,
那輸入難道沒有別的角度嗎?
當然有,最常見的就是 bt 下載。
這裡改變的是輸入面:
放入BT種子 => P2P 下載 => 存檔完成 =>
透過網芳存取 => 複製檔案 => 用電腦軟體打開
看起來很合理吧。
---------------------------------
那如果再來點有趣的東西,現在很多人都用 dropbox 管檔案,
如果我想再 NAS 上也放一份?
登入 dropbox 帳號 => dropbox 同步 => 存檔完成 =>
透過網芳存取 => 複製檔案 => 用電腦軟體打開
聽起來很有道理對吧。
---------------------------------
我想要跟一整群朋友分享檔案,他們可以自由提交新的檔案,我也能收檔,
而且我不想要外人看到,我能有什麼樣的輸入工具 ?
BTSync 設定 => P2P 同步 => 存檔完成 =>
透過網芳存取 => 複製檔案 => 用電腦軟體打開
這扎實落實區域 P2P 概念。
---------------------------------
從 content provider 直接拉東西過來如何?
給入 url => 系統透過 http 下載遠端資料 => 存檔完成 =>
透過網芳存取 => 複製檔案 => 用電腦軟體打開
還能有變形
給入 youtube url => 系統透過 http 下載影片 => 存檔完成 =>
透過網芳存取 => 複製檔案 => 用電腦軟體打開
給入 FB 相簿 url => 系統透過 http 下載影片 => 存檔完成 =>
透過網芳存取 => 複製檔案 => 用電腦軟體打開
/* 下略幾十個 content provider */
---------------------------------
光 input 其實就有非常多來源,而對使用者來講整合這些來源是辛苦的,
相信大家都沒興去裝一堆軟體來自己手動搞上面這些東西,
但對廠商來講這就是能操作的空間。
input 大概只佔一半的重要性, output 也是個兵家必爭之地,
可能很多人不太理解輸出這件事情背後的脈絡在哪,我們可以來梳理一下。
輸出最最基本的就是檔案 one by one 的輸出,
就像 ftp 或網芳那樣,連進去各自透過自己的電腦或程式處理。
如果你的需求只到這裡,那的確沒什麼問題, output 很單純,
但有很多進階的有趣需求是我們正在挑戰的。
---------------------------------
NAS 上的檔案反正我們大概就可以簡易的分類,文件檔、影音檔、執行檔等等。
其中通常最多的會是影音檔,影片跟照片,因為這東西最佔空間最需要 NAS。
最最基本的需求大概就是「打包下載」,把多個被指定的檔案打成 zip 下載。
我概略寫一下就好了,發現要認真寫這邊寫不完。
文件檔的挑戰在於預覽,特別是投影片類或文件類,
可以在各種 client (ex.手機) 瀏覽、預覽是一個很大的挑戰。
照片的問題在於要讓使用者好分類,歸檔的那一塊會需要花很多力氣。
影音檔預覽會是問題,其中最大的問題就是轉檔這回事。
另一方面,除了純粹的檔案輸出以外,這年頭由於各種通訊協定的設立,
我們也能透過網路將資料打到支援 DLNA 或 Airplay 的裝置上,
(ex.智慧型電視)
每個平台對於影片 codec 相容的程度不一,
所以各家廠商都花非常大力氣在支援影片轉檔。
很多時候我們甚至得作即時轉檔也就是邊播邊轉,
不然不是目標平台根本不支援,就是你播 1080P 的時候會跑不動。
而輸出到行動裝置端,能不能有對應的播放跟處理也是個需要考慮的問題。
上面講得都還算是基本該做的。
而各種執行檔,ex. java application , binary ,
如果你想運用系統的資源跑一些程式運算,這也是一種輸出的方式。
通常 linux based 的系統只要有開 ssh,基本能做的程式運算都能作。
像我就常在上面跑 java application 。
像這篇最一開始新聞摘的,如果是 image 還可以直接用機器跑 vm 。A_Ay
---------------------------------
* 那如果我們不講檔案的輸入輸出,我們來聊圖文文件?
像我們會在各 blog 平台發表的那些文章,
難道只要把純文字 dump 回來,就算是有紀錄了嗎 :P
他們通常是有 html,有圖,有字的。
所以我們也做了屬於我們的筆記系統
http://www.qnap.com/i/station/zh-tw/notes.php
讓你的輸入是來自你腦袋靈感的 web 編輯,輸出還是 web page 。
* 那如果我們不講檔案的輸入輸出,我們來聊資料庫?
在 NAS 上架個 mysql 或 mongo ,很瘋狂嗎? 我用起來很自然。:)
* 那如果我們不講檔案的輸入輸出,我們來聊專案管理?
在 NAS 上架 redmine、架 mantis、架 bugzilla ,不管附檔再大都不怕。:P
---------------------------------
而且最讚也最棒的事情就是:
放在自己家裡的服務,不用擔心這些服務被關掉或換掉,
即使有一天這些系統因故被放到記得,有天你回來看看這些紀錄都還在。
像我在無名 bbs、在系站 bbs 寫了一堆文章,最後這些 bbs 都關光光了,
最後只有我自己架的 bbs 還活著。-_-#
當然你得擔心自己機器沒搞定產生的人禍,
但至少這是你自己可以負責可以處理的。廠商也會盡力幫你搞定這問題。
不是說網路服務不好,只是讓這些資料,
在有個萬一時有地方去,這也是很重要的事情。
很多人會覺得硬體廠做的事情都是靠硬體解決,
但其實這個年代幾乎沒有不連接裝置的硬體,
而跟裝置打交道則主要是軟體的工作。
我們可以看看上面,有多少東西可以靠軟體解決或做得更好,
那些就是我們軟體人能在軟硬整合這個脈絡下,能去思考或切入的點。
把硬體當平台,把軟體當產品、服務,是軟硬整合的脈絡。
最近一直在思考軟硬整合的事情,
發現這東西裡面的樂趣跟有趣的東西真的是還不少。:P
--
網頁上拉近距離的幫手 實現 GMail豐富應用的功臣
數也數不清的友善使用者體驗 這就是javascript
歡迎同好到 AJAX 板一同討論。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 58.115.68.19
※ 編輯: TonyQ 來自: 58.115.68.19 (01/04 15:03)
→
01/04 15:10, , 1F
01/04 15:10, 1F
→
01/04 15:12, , 2F
01/04 15:12, 2F
→
01/04 15:13, , 3F
01/04 15:13, 3F
→
01/04 15:14, , 4F
01/04 15:14, 4F
→
01/04 15:14, , 5F
01/04 15:14, 5F
→
01/04 15:18, , 6F
01/04 15:18, 6F
推
01/04 15:19, , 7F
01/04 15:19, 7F
→
01/04 15:20, , 8F
01/04 15:20, 8F
→
01/04 15:20, , 9F
01/04 15:20, 9F
→
01/04 15:21, , 10F
01/04 15:21, 10F
→
01/04 15:21, , 11F
01/04 15:21, 11F
推
01/04 15:27, , 12F
01/04 15:27, 12F
→
01/04 15:32, , 13F
01/04 15:32, 13F
→
01/04 15:34, , 14F
01/04 15:34, 14F
推
01/04 15:40, , 15F
01/04 15:40, 15F
推
01/04 15:41, , 16F
01/04 15:41, 16F
推
01/04 15:42, , 17F
01/04 15:42, 17F
→
01/04 16:13, , 18F
01/04 16:13, 18F
推
01/04 16:31, , 19F
01/04 16:31, 19F
→
01/04 16:32, , 20F
01/04 16:32, 20F
推
01/04 17:02, , 21F
01/04 17:02, 21F
推
01/04 17:29, , 22F
01/04 17:29, 22F
→
01/04 17:36, , 23F
01/04 17:36, 23F
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 轉錄者: trumpete (113.160.202.115), 時間: 01/04/2014 17:48:39
推
01/04 22:21, , 24F
01/04 22:21, 24F
→
01/05 00:42, , 25F
01/05 00:42, 25F
推
01/05 13:19, , 26F
01/05 13:19, 26F
討論串 (同標題文章)
MIS 近期熱門文章
PTT職涯區 即時熱門文章
100
233