作者trumpete (流浪)
看板MIS
标题Fw: [闲聊] 网路储存装置(NAS)
时间Sat Jan 4 17:48:39 2014
※ [本文转录自 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)
1F:→ freeunixer:这不知道是由多少人加班加到哭不出来的血泪堆叠而成... 01/04 15:10
2F:→ TonyQ:你这推文就跟"你吃的饭不知道是压榨多少农民才来的"一样 XD 01/04 15:12
3F:→ TonyQ:我是里面的一员啊,我很少加班、而且作得很开心。:P 01/04 15:13
4F:→ TonyQ:或许有些地方是加班到很自虐,是有听过有些厂商要 oncall 的 01/04 15:14
5F:→ TonyQ:,但那跟原题没什麽关系吧。 01/04 15:14
6F:→ neoyori:至少台湾两家NAS龙头的薪水工时CP值还是不错的.. 01/04 15:18
7F:推 andy2151:借问一下NAS 拿来架网页+SQL 大概能应付多少人数&流量~~ 01/04 15:19
8F:→ andy2151:以目前四万块左右等级的NAS来说 01/04 15:20
9F:→ freeunixer:这就要问那些单位人一直换,补还补不满是为什麽了...XD 01/04 15:20
10F:→ freeunixer:好啦,我只是来乱入一下的~ 01/04 15:21
11F:→ andy2151:因为目前预算不多 想说能不能先用NAS顶着用XD 01/04 15:21
12F:推 lovdkkkk:推 01/04 15:27
13F:→ TonyQ:@andy2151 这问题看系统吃多重,要看预计跑什麽。 01/04 15:32
14F:→ TonyQ:@andy2151 你把它当同级的桌机来看就差不多那个意思了 01/04 15:34
15F:推 andy2151:好的 了解~ 01/04 15:40
16F:推 summerleaves:专业推 01/04 15:41
17F:推 ntddt:推Qnap NAS 01/04 15:42
18F:→ sing10407:推! 01/04 16:13
19F:推 Hyww13:好酷~ 01/04 16:31
20F:→ Hyww13:跳脱低阶硬体纯file server的框架後能做什麽都不意外了XD 01/04 16:32
21F:推 trumpete:借转隔壁板MIS 01/04 17:02
22F:推 goodga:可以问一下VM是用哪种? KVM ? Xen ? 01/04 17:29
23F:→ TonyQ:@goodga 那块我没研究 如果我听到後续消息再说~ XD 01/04 17:36
※ 发信站: 批踢踢实业坊(ptt.cc)
※ 转录者: trumpete (113.160.202.115), 时间: 01/04/2014 17:48:39
24F:推 Joues:不错的产品,不过云端也是个趋势 01/04 22:21
25F:→ lucas01:大企业根本不屑这个 01/05 00:42
26F:推 xxoo1122:好产品值得推荐!! 01/05 13:19