家庭NAS方案-硬件篇

家庭内部是否需要一个服务器是一个因人而异的问题。如果是一个摄影爱好者,喜欢看电影,手机不离身,电脑来回换,就需要一个能够集中安放这些媒体文件,离线自动下载同步的服务器了。在本文中,我将详细的介绍一下自己DIY这个家庭服务器的主要过程。由于硬件直接使用了惠普的GEN8服务器,软件相关的内容将在下一篇中详细介绍。

我的家庭需要就是一个网络存储设备(NAS),主要用于离线下载,用于连接媒体播放器(树莓派+OpenELEC),几台电脑数据集中存放和同步(包含苹果电脑的时光机同步),若干个移动设备,提供科学上网服务等。

正如标题所说,这里说的是家用网络存储服务器,所以我们在本文中探讨的内容也只会涵盖家庭用户(不是办公室那种可靠性要求的客户)。对于重要的数据(比如我有两百多G的照片)并不是放在这个服务器上就万事大吉了,重要的事情说三遍:多多备份,多多备份,多多备份!千万不要迷信服务器是绝对安全的,唯一安全的方法就是在多个地点,不同的硬盘里面把重要的数据都保存几份。

服务器的选择

曾经在万能的马云家花费不到200块买了一个迈拓的MSS第一代,里面那块三星的160G硬盘在服役8年后依然还在7*24的运转着。通过这几年对MSS的使用,也使我更加明确了我所需要的家庭NAS可能面对的主要问题

  1. 硬盘容量,原有的160G硬盘对于现在动辄几个G的电影来说实在是捉襟见肘。对于家庭用户,需要对家庭所有NAS的潜在用户所需要的硬盘容量进行一下简单的统计然后才能规划所需的硬盘容量。
  2. 硬件性能和操作系统的支持,人工增加内存的MSS1也只有128M的内存。CPU是一个博通的内置MIPS指令集的处理器。能够在这硬件和内存上稳定操作系统只有OpenWRT了。这样就严重的影响了能够使用的软件数量,以及同时能够运行的进程数量。
  3. 稳定和能耗,家庭用户基本上希望NAS是在角落天天运转而无需操心的一个黑盒子。市面上其实来有还能找到很多二手的服务器,非常的便宜,同时也满足前面几条要求,唯一不满足的就是能耗(其实来还有噪音)。找一个7X24运行,而且比较省电的服务器是必要的。
迈拓的MSS
DIY迈拓的MSS曾经也是一种乐趣

告别了不到了两百块的MSS,我们现在能在市场上找到更多更好的NAS硬件解决方案。在性价比和灵活性之间拿捏是一个很困难的事情。如果动手能力还不错,可以选择和我一样使用CHH上最为热门的惠普GEN8服务器。

HP ProLiant MicroServer Gen8
HP ProLiant MicroServer Gen8

通过德国网站在促销的时候海淘,基本上通过花1450块人民币你就可以得到了这样一个基本上满足我所有硬件需要的服务器了:

  • 为7X24小时运行而设计的专业服务器,ECC内存,双千兆网线接口,体积小巧,而且是HP的牌子,最重要的是外观实在是讨人喜欢啊,自己DIY真是也做不出这么好看又逼格的服务器来。
  • 支持4个硬盘,自己还可以在光驱的位置上加一个硬盘。对于家庭用户余量充足。GEN8还内置了B120i的磁盘阵列控制器,支持RAID0和RAID1模式,如果真的有需求就算是赚到了。
  • 有iLO远程管理,很多人说这个有啥用?没有管过服务器的人真是没有感觉啊,像是NAS这类服务器基本是不会去接显示器,键盘的,那你准备怎么安装操作系统,出了问题怎么查看?iLo可以帮你在一台电脑浏览器上直接操作和查看服务器,就像是直接操作服务器硬件一样。
目前只用了两块硬盘,其他的两个硬盘位等待以后扩展
目前只用了两块硬盘,其他的两个硬盘位等待以后扩展

不过乞丐版的GEN8的缺点也是显而易见的

  • CPU只是赛扬G1610T(双核,主频2.3G),对于负载的运算和数据加工时有些 不堪重任。不过对于NAS来说,主要的任务就是下载,上传文件,无需进行太多的媒体文件加工,这个配置对我而言还是足够的。
  • 内存默认只有2G的确是很让人困扰的,如果要运行GUI的系统,如果要安装虚拟操作系统,起步至少8G。不过,我为了提高自己对服务器操作经验(其实来就是没钱),还是选择了不升级内存,只用终端操作,不搞虚拟操作系统。

如此而来我能得到的一个硬件基础就是:一台稳定的电脑,但只支持安装一个Linux,剩下的花样就要靠软件来解决了。不过目前看来我的服务器负荷率通常都在百分数,即便是所有NAS功能全开,几个电脑进行拷贝同步操作,CPU负荷也不会超过60%,内存更是只需要不到500M,大部分内存通常都在做系统缓存。

服务器架构和操作的安装

应为定位是一个服务器,稳定就要压倒一切,在GEN8服务器上安装操作系统对我而言只有一个选择CentOS,原因是这个是Redhat的官方复刻版,基本上除了官方的服务,一切功能,稳定性,可靠的更新都是一样的。这也是惠普网站推荐的操作系统之一。如果对Ubuntu比较熟悉,也可以尝试Ubuntu server版本,不知这款服务器对这个操作系统的支持如何。不过如果看过这篇文章的后续-服务器软件篇,就知道操作系统真是没有太大的关系了,现代的Linux系统真是太灵活了,我们可以汲取各个发型版本的优点来为我所用。

安装操作系统的可以参考iLo安装操作系统的介绍。注意:在这个服务器的安装中,我没有使用GEN8内置的RAID功能,因为不论0模式,还是1模式,对于家庭NAS来说都是有点极端的。

正确设置STATA控制器是安装Linux的必须步骤
正确设置STATA控制器是安装Linux的必须步骤

请通过iLO在BIOS中使能AHCI,否则是无法成功安装操作系统的。据说使用AHCI方式后主板无法检测硬盘温度,会造成GEN8风扇转速升高,进而噪声巨大。网上的经验是升级iLO4的固件。不过经我本人验证,倒没有出现这个问题,而且机器是放在客厅角落的,白天更本听不见,晚上能感觉到一点声音不过和硬盘本身的噪声,以及其他设备的声响比较起来也不是很突出。

为了充分利用GEN8 的四个硬盘位,在操作系统安装中,我才用了如下的硬盘分区规划

Boot root swap Home Media
500M -Disk1 80G – Disk1 2G – Disk1 500G – Disk1 其他

也就是说除了主要目录分了第一块硬盘大概600G容量,其他的容量和第二块硬盘全部空间,都通过LVM(逻辑虚拟卷)变成了一个分区。LVM可以实现跨物理硬盘来管理一个逻辑分区,而且这个分区是可以调整大小,更换其中的物理硬盘。也就是说如果以后添加或者更换硬盘,就可以通过LVM来灵活的复制,扩充这个分区,而不用影响系统程序安装的分区了。另外,LVM也让多块硬盘在系统中成为一个连续的空间,无论文件或者目录大小都不会出现一个分区被占满,别的分区却空着的情况了。如果以后添加硬盘,只需将新硬盘制作成物理卷,然后加入到虚拟卷中。

除了LVM之外,还有一个选择就是ZFS-号称终极文件格式系统,这种文件格式系统也可以实现跨硬盘的文件管理,而且这种逻辑卷的管理和文件格式管理是一个整体的,不像LVM那么分裂。非常出名的NAS操作系统FreeNAS系统就是用ZFS来实现的多磁盘管理。不过需要注意这个文件系统的支持在主要Linux发行版本中都是测试性质的,稳定性有待商榷。

另外需要注意的是CentOS默认使用XFS来格式化分区,在安装系统之前,我现在虚拟机上演练LVM时发生过XFS无法解决的问题,但Ext4则没有问题。所以在此次安装NAS的时候,我毅然决然的选择了Ext4格式。虽然网上对两者的性能对比非常多,不过对家庭NAS来说,这些微小的区别基本上是可以忽略不计的。

操作系统安装完毕后,和硬件相关的内容就可以暂时先搁一下了。我会在接下来的一篇中详细介绍一下如下的内容

  • 操作系统的设置和优化
  • NAS主要软件和架构
  • 通过Docker来虚拟化

Zigbee何时成为主流

一个月以前和德国同事开会的时候,我提起是不是应该考虑一下物联网IoT时代通讯协议的事情,然后就自然而然的谈起了Zigbee。比较意外的反应有两个,一个是大多数人的茫然,完全不知道我在说什么。只有一个同事低头笑了一下,苦笑着说一句:都二十年了,这个该死的协议还活着啊?

第一拨同事的表现其实在我的预想中,因为Zigbee基本上是一种工业领域碰不到的东西。开玩笑说:我们给产品命名从来都是用凶猛的动物,比如老鹰,老虎。再怎么着也不会用这么偏门的蜜蜂名字。其实来Zigbee的目标市场从来都是家住商用领域(也不能完全这么说,北京4号线延长段已采用Zigbee),和工业真是没有多少交际。

而那个同事所说的话让我思考了半天。

Zigbee协议是1990年就提出了,2004年成为IEEE 802.15.4-2003标准。算起来真是不算很短的历史了。可是,为什么这个如此被人推崇的协议,却有如此被人“唾弃”呢?

Zigbee
目标无所不包的Zigbee标准,实际中却不惹人爱

这里进行一个情景分析:如果我自己用Arduino做一个项目,我会采用什么样的协议来做模块间的通讯呢?

  • NRF24L01 2.4G 无线模块,淘宝价格10块,Arduino有现成的库
  • W5100 以太网扩展+SD扩展+Web服务, 30块
  • ESP8266 WiFi模块,15块
  • 蓝牙模块,20块,直接使用串口读写,可以和手机连接
  • XBee模块,50块,需要master+router方式将通讯转入以太网

考虑到10个节点规模的一个室内环境监测和安防物联网,如果采用XBee这个Zigbee的方案,光是通讯就比所有其他的主要器件加起来还要昂贵了。为什么主打家居市场的Zigbee如此昂贵呢,我们看到了目前主流支持Zigbee的芯片SOC供应商只有那么几个,和蓝牙,以太网控制器SOC的供应商相比简直惨不忍睹。

mesh networking
Zigbee的自组网能力是蓝牙和Wi-Fi缺乏的,但其节点类型的要求却成为设计者的难题。

开放上呢,Zigbee是不是有什么巨大的优势,可以减轻MCU侧的开发量呢?就Arduino来说,其他的协议有着非常直白清晰的开发接口——直接将这个通讯接口当作串口来读写即可,其他的收发验证,重发都无需处理。而Zigbee的难度简直就要上升到操作系统的级别。对于我提到这这个case,末端模块的工作只是每五分钟读取一下温度,湿度传送上来这样的工作,在Zigbee本身上开发的时间远远超过核心任务本身。

这样头重脚轻的样子,看来Zigbee就变成了一种不是很讨好的标准。而事实上的情况也说明了这一切。随着蓝牙4.0的推出,低功耗的优势在慢慢的退却,只有自组网这个特点还能让人有所期待。

能下的断言就是:Zigbee,你还没有为迎接IoT的到来下定决心。

比较Wi-Fi,蓝牙协议这些年的改进真是可以说日新月异。几乎每一两年就有新的标准推出,不但修正了以前的问题,还从对手那里学习到了很多新的特点。经过这几年Wi-Fi和蓝牙的不断竞争,两个协议都没有死,而且都更加健壮了。例如蓝牙不断突出自己节能的特点,而Wi-Fi也是步步紧逼,最近瑞芯发布的RKi6000就直接将功耗瞄准蓝牙4.0 LE。反观Zigbee几十年走下来,却基本上还是老样子,出生时候的毛病还都在,直到2007年才推出了PRO版本的增长型升级。

更加重要的就是作为一个协议,你需要的是参与者。恨你的人不是敌人,沉默才是你的敌人。时下做产品的,都希望有一个活跃的社区,大量的会员,众多的厂商来参与。其方法就是尽量采用更加开放的姿态,积极的鼓励这些参与者为这个协议添砖加瓦,最终营造一个摩天大厦。开放的TCP/IP 从娘胎里面就是抱着这个姿态出来的,这也是为什么基本上是全面压倒性的获得了市场地位。蓝牙在最早的时候还是很封闭的,直到被Wi-Fi的大量同类功能震撼到,感到了危机感马上也改变了策略。而Zigbee我只能说还在自己的黄粱美梦中,忘记了世界正在改变,这还真是像极了很多工业产品的特征。缺少参与者和贡献者的Zigbee变得越来越曲高和寡,开发平台和成本都成为了短板。

一个案例就是关于GPL兼容的问题。Zigbee的license和GPL等很多开源协议有冲突,这个问题经过协会的board讨论后,结论是Zigbee没有做出任何妥协。我猜测原因就是会员费基本是这个标准最大的收入来源,所以不能妥协。所以冲突的那条就是:商业用途的Zigbee软件是要收会员费的(每年3500刀)。不知道这个会员费是按什么计算到了,如果Linux集成了这个协议栈进去,到底会收谁的钱?就这样通向物联网的大门几乎可以说是Zigbee自己关闭的。最近 Google Brillo华为LiteOS还有更多的厂家纷纷推出了针对物联网的操作系统,大部分还是基于Linux和其他开源平台的,可以说封闭起来的Zigbee慢慢的缩小了自己通往成功的道路。

前有堵截,后又追兵,Z-Wave的兴起为嵌入式设备带来了一阵新风。单元这两个Z开头的标准能够在即将开始的厮杀中渐渐真正成长起来,为我们带来稳定、低价、方便的物联网通讯新标准。

Raspberry Pi 的WiFi设置

本来不是什么复杂的事情,但是由于我的树莓派网线接口损坏,使用无线网络成了这个模块最后的选择。为了让这个模块和无线网络连接费了不少力气,所以必须在这里记述一下。

由于网线口损坏,电脑和树莓派的连接是靠串口来连接的,这里用到一个 TTL 转 USB 的工具。设置为 115,200bps 8N1 UTF 编码格式,然后通过 putty 来登录。

首先树莓派能接受的无线网卡并不丰富,这里主要有两个限制:

  • 树莓派 USB 口的驱动能力有限,必须选择能耗低的网卡。一般那种拇指型的 USB 设备能耗还都是可以的。不过即便是选择了很小能耗的网卡,也要保证电源需要有一些余量,我用了个 700mA 的黑莓手机充电器,结果完胜山寨 2A 的 USB 电源。如果供电有问题,可以在终端中看到系统无法正常启动,经常启动到 USB 部分时停滞,重复启动等。这时候需要考虑增加电源供电能力。
  • 只能是 USB 接口的无线网卡,而且网卡的驱动必须得到树莓派系统的支持,最好在购买前到这个网址 http://elinux.org/RPi_USB_Wi-Fi_Adapters 检查一下。这里用了 Ralink 腾达 W311M 150M Mini 无线迷你小 USB 网卡,内部的 RT5370 芯片驱动已经集成在标准 Debian 上了,无须额外安装。启动后,可以通过 lsusb 看看驱动有没有识别正确。在用 iwconfig 来看看是不是识别了这个新的网卡。

如果以上检查都没有问题,我们就可以进行网络的配置。

编辑 /etc/network/interfaces 文件来设定网络接口的特性,其中主要的部分是对无线网络接口 wlan0 的设置:

auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
auto wlan0
iface wlan0 inet dhcp
pre-up wpa_supplicant -B -Dwext -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf
post-down killall -q wpa_supplicant

文件最后两行,我们会在使能网络的时候启动 wpa_supplican 程序来进行 WPA 无线网络密码登录,其中它的配置文件放置在 /etc/wpa_supplican/wpa_supplican.conf 这个位置。接线来就是设置这个密码问文件了。

ctrl_interface=/var/run/wpa_supplicant
network={
    ssid=“网络 id“
    proto=WPA2
    key_mgmt=WPA-PSK
    pairwise=TKIP
    group=TKIP
    psk=” 密码 “
 }

这里就没有太多要说的了,需要记住的就是 key_mgmt 貌似只能设置成这个,换了别的不好用。

总结一下,这里面容易碰的坑:

  • 没有正确启动 wpa_supplicant 获取 IP 地址,那叫一个愁人。这个程序需要 root 权限。
  • 找一个合适的电源很重要,否则频频重启。
  • 如果 lsusb, lsmod 不能正确的发现设备,例如 TP-LINK WN725N V2 版模块,说明 Wi-Fi 模块的驱动没有被正确的安装过,需要自己编译安装,如果在网络上找已经编译好的模块,比如 WN725N V2 的模块名字叫做 8188eu.ko,需要找到内目前运行内核版本完全一致的,否则无法正常运行。需要注意编译内核模块需要很大的磁盘空间(几百兆)和很长的时间。

有了网络,接下来可以玩的有:

  • 通过 xrdp 配合远程桌面访问树莓派
  • 安装 Apache,MySQL 等等做个网站(不过树莓派在那颗 SD 卡上的 I/O 能力超弱)
  • 安装私有云 owncloud 等
  • 安装 Mercurial 服务器来做版本管理服务器

豆瓣电影投票的一些简单分析

不知道什么时候开始在豆瓣混了,从一个小众的图书分享网站,变成了今天很多人社交网络的必不可缺的一部分。个人来说,其实来很少在豆瓣里面的论坛里面发表太多的内容。更多的时间是在上面看书评,找电影的介绍。每次在电影院售票口还在低头找最近热播的电影到底哪一个值得我掏钱。

豆瓣电影的成功借鉴了不少IMDB的经验。特别是电影的评分系统,对于我这样懒得看网友评论,只想快点找值得一看消磨时间的人来说,真是非常高效的手段。阮一峰的博客中,对IMDB评分体系有一个非常详细的介绍,非常值得一看。而豆瓣的评分计算,也有人分析过。对于一般读者而言,只要相信这些设计好的算法可以有效的保证评分高的电影真的是非常好的电影就行了。比如我的一个目标就是,看过豆瓣250中所有的电影。

但每当我看完电影,来豆瓣给这部电影评分时,却有一些彷徨。到底是该给这部感觉一般的电影三颗星,还是四颗星呢?真是让我头疼的问题。真不知道其他人是不是也有类似的感觉:五颗星的评分方式其实来是很困难去做决定的。为了验证其他人是不是有类似的感觉,我决定看看大家都是怎么投票的。

为此,我不得不从豆瓣上获得一些数据。但豆瓣的API需要oAuth验证,编写这个接口的功夫和回答这个问题相比,实在是杀鸡用宰牛刀了。所以,我只好用了点偷懒的方法:

  • 使用浏览器作为客户端自动来读取豆瓣数据。我在GreaseMonkey上编写了一个脚本,可以在豆瓣电影下自动的读取电影页面,并读取想要的数据。
  • 让后让这个脚本将得到的数据通过AJAX的方式发送到数据Web服务器,并转存到数据库中。
  • Web服务器管理数据,并根据扫描的结果,告知脚本扫描每个电影关联的其他电影数据,如此周而复始。

详细的过程就不在这里详细的介绍了。我所需要的就是在能上网的地方开着浏览器,然后让电脑自己和远程的服务器自动扫描。半天后,我得到了将近七千部电影的数据,显然已经足够作为一个数据源对我上面的疑问进行一些分析了。

问题一:是不是所有的星级都有人选取?

很多人,像是我这样的选择困难症患者,基本上就只选1,3,5这三颗星——不喜欢,一般,太棒了!甚至更加极端一些,要么喜欢,要么痛恨。那是不是所有的人都是这么选取的呢?

答案是否定的。所有的星级都有人选取。投票评分的用户并没有我这样极端。投票的用户基本上是很连续分布的。关于这个分布的形状,我们接下来继续探讨。

问题二:大家是不是什么电影都要看呢?

在电影院门口掏手机看评分,然后买票的用户,基本上就不会去看那些评论很差的电影了。所以,豆瓣上的用户数量应该集中在好电影上。换一句话来说,也就是豆瓣用户会对那些最好的电影贡献最多的票房。

对这个问题的分析是,这个结论有一部分是正确的。参考上面的图,对于分数在5以及以下的用户数量只有全部投票的9%。也就是说,如果一部电影评分在三颗星一下基本上就不会有任何票房了,算上评论网站上水军的力量不可忽略。可以猜想,这些比“一般”还差的电影是没有方法生存下去的。

也许会有人说,这是因为很多电影没有公映,观众少,所以投票评论的数量也少。但我们如果看看TOP250里面那些8分,9分的电影,其实来很多都是没有在国内正式上映的,但还是有大量的拥趸。

另外,投票评论数量最多的是7分左右的电影。也就是说,国内最大的电影市场其实来就是这些看着还不错,但是还有些许遗憾的作品来支撑着的。他们虽然不是电影教科书里面的范例,但却是这个资本游戏中的赢家。

问题三:好电影真的不挣钱吗?

就像刚才的分析说的,用户数量最多的电影是7分左右的电影。那是不是说,9分的电影其实来不挣钱?

各档每部电影用户数量

答案是,这个猜测是错误的。因为上一个问题的分析没有考虑到一个前提——好的东西,总是稀缺的。那些最好的,评分在9分以上的作品在几千部电影中只有4%而已。所以,如果我们将每个级别上的投票人数平均到每个分数档次的每一部电影上,就得到了上面的图。

虽然9分电影数量上只有4%,可是它们的平均观众数量却远远超越所有其他分数档次的电影,并占据用户数量的10%。如果你是一个伟大的导演,一部精品的电影可能获得超过8分电影三倍的收入,而你本人也可能被写进教科书里面,被艺术学校的学生们传颂。

如果离经典还差一步,就可能立刻跌落到竞争激烈的红海中了。6到9分以下的电影占据了80%的市场份额,可以说,在这里面生存下来其实来一件艰难的事情。这部分市场就是我们在报纸,电视,广告上看到的主流市场,同时也占据了80%的用户数量。落在这个群体里面,主要的奋斗目标已经不是将电影做的完美了。而是如何将观众哄进电影院,不管他们出来后是给6分,还是8分,其实来都是差不多的。

小众市场是那些分数低于六分的电影。说实话,我自己也基本上没有看过几部这样的作品。中国没有B级片,很多这样的电影连将海报悬挂在电影院的机会都没有。那些读着大师名著,心怀理想的电影艺术系的学生也许就是这里艰难的生存吧。

 问题四:选星级适合所有的网站吗?

虽然对我有些困扰,但电影这样的网站,选用星级来评分貌似还是比较合理的方法。花了两个小时看电影,相信观众可以根据自己的感觉,直观的得到一个大概的分数级别。但这个方法能适合所有的评分体系吗?

相信这个问题是没有答案的。在分析第一个问题的时候,我还想象投票的用户是泾渭分明的,好电影所有人都会说好,不好的电影所有人都投一颗星。但实际上通过对多部电影评分数据的分析,在高分数电影上可以看到类似倾向,但一般电影中并没有类似的长尾效果。

Facebook采用“Yes/No”的选项,让用户做一个干净的解决方法。每个blog文章,一个图片,一条消息,一切的一切,只要你喜欢,就按一下啊这个按钮。

个人而言,我很赞赏这个方法。在很多领域,评论一个事物的好坏,其实来是分作很多方面的。有人赞赏一部电影趣味性的故事情节,有人喜欢摄像师美丽的画面,还有演员的表演是不是到位……,这一切也可以从多个角度评论一部电影,一本书,一张照片,一部笔记本电脑,一个手机。无疑,这种方式下的评论可扩展性将比现在星级的方式大大提高,用户得到的信息也更加有效。

文件同步

现在手头电脑一定不止一个,文件呢也已经远远超过U盘拷贝就能备份所有数据的年代了。怎么同步电脑上的数据呢?下面是我尝试过的一些。

备份和同步
比较适合电脑和手机等各种设备做同步。
缺点
-不是所有电脑都能随便安装软件,如果不是绿色版这个就是麻烦事。
-而且,国内上Dropbox的情况不是很稳定。
-另外,把保密的信息还是留在自己电脑上好了,万一哪天密码丢了……
开源的项目,适合本地文件夹的同步。最适合同步电脑目录和移动硬盘。
如果要同步另外一台电脑,就必须将其中一台通过共享目录的方式映射到本地驱动器。
基本和上面提到的FreeSync一样,就不加叙述了。
缺点
-只能是目录方式进行同步
-公司电脑的策略很奇怪,无法共享目录
FTP方式来做文件同步
两台电脑之间同步备份,其实来很多年之前就有了公开的标准,这就是FTP文件传输协议。因为是公开的协议,可以选择的工具也非常丰富,只需要在熟悉的工具中选择即可。具体操作的方法可以参考本人以前的文章
FTP服务器
  • FTPServer lite
    • 一个小巧的FTP 服务器
    • 全免费
    • 无需安装
    • 缺点就是速度比较慢
  • Quick’n Easy FTP server Lite:
    • 小巧绿色,无需安装
    • 免费使用功能已经能满足需求,但会限制同时连接用户数量,对于备份来说已经足够了
    • 配置方便,直接保存到本地目录
FTP客户端
  • FileZilla
    • FTP下载的利器
    • 支持多线程,速度快
    • 可以目录同步
    • 设置方便
  • WinScp
    • 可以支持目录同步
    • 不知为何,速度太慢
  • wget
    • 其实来就是做FTP镜像站点
    • wget -b -m -nH  ftp://user:passwd@192.168.0.1
      • -b:应用程序后,自动放入后台,输出日志到当前目录下wget-log文件
      • -m:mirror,就是镜像的意思
      • -nH:不产生站点的目录名,我讨厌产生那样的目录。
    • 就这么简单
    • 定时任务怎么写
    • wget -b -m -nH  -P d:/bakup -o d:/log/output.log ftp://user:passwd@192.168.0.1
      • -P:指定下载后的本地存放目录位置
      • -o:指定输出日志的路径
    • 缺点:
      • 在本地每个目录都会产生一个.listing的文件。
      • 只能单向同步
最方便的方式是WinSCP来操作,毕竟是有图形界面来操作的。但如果使用的多了,就会发现用脚本配合wget来操作是非常方便的。需要注意的是wget的参数众多,如果运用的好,更加可以事半功倍。
本地网络设置情况
由于本人备份的数据量超过几十G,即便是通过100M网线,每次同步也要耗费巨大的时间。一个快速的本地网络才是局域网数据快速备份的基础。
在房间有一个无线路由器,WIFI连接可以支持 802.11n标准,也就是网速最高可以达到150M。同时路由器也具备10/100M网线接口。所以,理想的情况下,笔记本通过无线与网线连接的台式机处于一个局域网中,也可以达到100M的网速。但是实际情况却是,这种连接下FTP的最高速度只有6M左右。更倒霉的是,公司配置的HP笔记本,其WIFI模块工作稳定性极差,不时断网,造成连接时断时续。
好马配好鞍,其实来现在的电脑都集成了1000M的以太网接口,为什么不试试1G网速的点对点对联呢?为了方便,在网上花了几十块购买了一个1G的PCI网卡(TG-3269C)。这个网卡不但支持1G网速,而且端口还自动支持网线反转。这样就可以直接使用手头路由器到电脑的那根网线,而不用特制对联的网线了。在将两个电脑的IP地址设成一个网段,比如 IP1=192.168.1.5 IP2=192.168.1.6 Mask=255.255.255.0 。现在就可以享受千兆网络带来的便利了。
测试的结果是网速最高可以达到21MB/s的水平。一分钟大概就可以将1G的文件传送过来。基本可以满足半小时备份电脑上几十GB数据的要求了。