[TOC]
说是家用NAS,其实有些名不副实,因为除了最基本的存储外,还期望它偶尔担任VOD点播或HTPC之类的工作,其实就是一个家用服务器,但是需要省电、静音。
硬件篇
选择机箱
家里的地方寸土寸金,这个你懂的,优先考虑小机箱,有几点需求:
- 根据要摆放机箱的橱柜位置,确定机箱的长宽高;
- 优先选择符合mini-itx主板规格的小机箱;
- 担任存储工作,期待4个以上的3.5寸盘位。
本来最中意的是联力PC-Q08,可惜家里橱柜的高度限制是25cm,最终选择了台湾的一款 4-Bay小机箱,箱体内部设计和 联想D400 有些类似,有4个热拔插3.5寸盘位,三围32x20x21cm,还算满意。
选择平台
确定机箱之后,就可以选择平台了。目前较流行的省电静音的选择一般有两种:
- Intel的ATOM平台,基本是废柴;
- AMD的APU平台,省电,能硬解绝大多数的高清视频,适合HTPC。
这两者的共同缺陷是CPU很弱,无论Atom D525还是Zacate E350之流都没法担任转码工作。
Intel的不少新款CPU未在国内发布,省电,性能又足够强劲的,挑来选去只有 Intel Core i3 2100T 这一款符合功耗需求了。TDP 35w,性能足够软解高清。FCLGA1155封装,H61或H67主板都能用。
而主板更难选择,由于机箱有4个热拔插硬盘接口,而作为服务器最好再外接一块额外的SSD用来单独安装操作系统,这意味着主板应该至少有5个SATA口。
一般的m-itx主板都只有2个或者4个SATA口,一种解决办法是使用RAID多功能阵列卡,从PCI-E接口转出5个SATA口。如果选择多于4个SATA口的主板,只能选择索泰的板子,比如这款 ZOTAC H67-ITX WIFI ,硬件指标很强劲,板载4个SATA口和2个SATA2口,支持RAID、WIFI、HDMI输出等等,只是BIOS设置稍逊色,但不超频使用也无所谓。
Update@2011-10-07:发现索泰主板的缺憾了,我打算把原机箱的风扇换成一颗PWM针脚的风扇,以便控制风扇转速,可以节能静音。结果BIOS里居然无法设置系统风扇的转速,而且fancontrol
也不支持索泰主板,lm-sensors
的支持也不佳。
其他配件
CPU和主板确定了,其他附件就容易选择了:
- Intel 320系列SSD 40GB x1
- WD 绿盘 2TB x4
- Kingston DDR3 1333 4GB x2
额外的一颗SSD发热量很小,而且很轻便,直接在机箱内部的隔板上钻了两个孔完美固定住。
功耗和噪音
开机硬盘的瞬时功耗20w x4=80w,外加CPU、主板的功耗,190W的随机电源刚好能够胜任;硬盘运行功耗大约5w,使用功率计量仪测量,待机时整机功耗能够控制在35w以内,基本满意。此外,由于家用服务器,占大头的数据是电影音乐之类的,并不重要,所以没有组RAID。设置硬盘定时停转,比较省电。
按DEL进入主板BIOS界面,不得不说Zotac的BIOS设置项的说明都好简陋,在H/W Monitor里可以查看和设置CPU风扇的转速。
- start fan temperature:启动风扇的温度,建议设置为40°C
- start fan duty:猜测是风扇转速的步进值,越低转速提升越慢,建议设置为20%
- highest fan duty: 猜测是风扇全速转动的上限值,越低转速上限也越低,建议设置为70%
这样设置完毕后,正常CPU风扇转速在1250RPM左右。
机箱自带一颗12cm风扇用于整箱散热,默认转速稍高,风噪稍大。由于随机风扇并非PMW接口,花2¥买了一根降速线,接上后机箱风扇转速降到800RPM左右,风噪几不可闻,把耳朵贴到机箱才能感觉到风扇在转。此时,正常待机CPU温度40°C以内,基本满意。
软件篇
安装系统
基础系统采用了ubuntu server。之所以没装desktop版,只因为不想用gnome,自带的一堆什么蓝牙、音频、视频、文档、游戏乱七八糟的多达700多个额外软件包对家用服务器来说完全没用处。其实这俩版本除了内核编译参数外,应该没有任何区别。
登录管理器使用slim,窗口管理器使用icewm,文件管理器使用rox-filer,TERM使用xterm。
禁止自动黑屏
黑屏一般因为两个原因:Screen Saver和DPMS,可以通过 xset
命令查询相关信息:
$ xset q
编辑 ~/.xsessionrc
,一般阻止Screen Saver就可以禁止自动黑屏了:
xset s noblank s off
setterm -blank 0 -powersave off -powerdown 0
如果还是不行,可以考虑关闭DPMS节能管理:
xset -dpms
自动关闭硬盘
自动关闭硬盘有很多方法。
一、设置 hdparam.conf
,但有人说ext3下无法正常工作:
/dev/sdb {
spindown_time = 340 # 2 hours
}
二、安装 noflushd,但ext3无法工作。
三、安装 laptop-mode-tools,参考 设置。laptop-mode的原理是先写到cache,当超过容量后,再写到硬盘上;危险是突然断电可能导致数据丢失。
-
设置在电源下也能工作
ENABLE_LAPTOP_MODE_ON_AC=1 ENABLE_LAPTOP_MODE_WHEN_LID_CLOSED=1
-
指定期望spin down的硬盘
HD="/dev/sdb"
-
设置每3小时必须写一次cache到硬盘
LM_BATT_MAX_LOST_WORK_SECONDS=10800 LM_AC_MAX_LOST_WORK_SECONDS=10800
-
也许有用
CONTROL_NOATIME=1
-
超时5秒后即休眠(有些激进,调整成半小时也可以)
LM_AC_HD_IDLE_TIMEOUT_SECONDS=5 LM_BATT_HD_IDLE_TIMEOUT_SECONDS=5 NOLM_HD_IDLE_TIMEOUT_SECONDS=5
-
脏页比率
LM_DIRTY_RATIO=30
查看 /proc/sys/vm/laptop_mode
是否laptop-mode已经激活。
通过如下命令检查当前硬盘的状态:
$ sudo hdparm -C /dev/sda
自动登录
编辑slim的配置文件 /etc/slim.conf
,设置 default_user
和 auto_login
即可。
音频输出
Linux下边的音频解决方案一直很乱,先后有oss、alsa、pulseaudio一堆,默认使用alsa就可以了:
$ sudo apt-get install alsa-base alsa-utils
然后把用户加到 audio
用户组。如果遇到音量偏小的问题,也可以考虑最新的oss4,据说有改善:
$ sudo apt-get install oss4-base oss4-dkms
可以使用如下命令调整默认的音频系统:
$ sudo dpkg-reconfigure linux-sound-base
此外,ZOTAC这块板子支持8声道输出,如果只需要双声道音频输出的话,应该驳接绿色的音频插孔,具体内容可以翻阅主板说明书。
安装mplayer
建议使用 Medibuntu源 的版本。
可能需要设置一下字幕,以及视频和音频输出,编辑 ~/.mplayer/config
:
subcp=cp936
font=/usr/share/fonts/truetype/wqy/wqy-microhei.ttc
vo=xv
af=volume=20:1,channels=2
softvol=yes
softvol-max=1000
安装PS3 media server
uPnP的视频服务非常多,但是支持全格式转码,且支持字幕的,似乎只有 PS3 media server 一个。可以顺利的把视频输出到Xbox360和Apple TV。
安装Airvideo server
AVS也有 linux版 了,专门用于iOS设备视频分享。
安装flashplayer
如果直接安装flashplayer-installer这个软件包,默认将会安装32-bit的flashplayer,速度要慢不少;建议从 Adobe官网 下载64-bit的flashplayer软件包,解压得到 libflashplayer.so,然后手工安装:
$ sudo mkdir /opt/google/chrome/plugins/
$ sudo cp libflashplayer.so /opt/google/chrome/plugins/
$ google-chrome --enable-plugins
音乐播放器
安装 mpd,可以播放ape格式。编辑 /etc/mpd.conf
,稍微配置一下,保证用户 mpd
属于用户组 audio
:
music_directory "/store1/Music"
bind_to_address "0.0.0.0"
user "mpd"
mixer_type "software"
audio_output {
type "pulse"
name "My Pulse Output"
}
audio_output {
type "alsa"
name "My Alsa Output"
}
Linux的客户端可以使用sonata或gmpc;Mac的客户端可以使用 Theremin;iOS设备上的客户端可以使用mPod和mPad。
自动挂载U盘
安装 usbmount。
Wake on LAN
可以从笔记本、移动设备(iPhone或iPad),甚至外网唤醒家用服务器。
远程播放
ssh到服务器,指定显示设备即可,例如:
$ DISPLAY=:0 mplayer /path/to/video
这样服务器能临时充当HTPC了。
远程登录
x11vnc 是个小巧的VNC Server,它的最大优点是可以共享真实的显示设备(一般即DISPLAY 0),而不是虚拟出一个新的显示设备。这样如果你把电脑接到电视机上,那么你就可以远程共享这台电视机,用mplayer播放视频,还是用浏览器播放网络视频,那都随你了。
注意需要设置正确的xauth权限,这里是搭配登录管理器slim使用,可以把如下命令加入到 ~/.icewm/startup
中,随登录启动。
$ x11vnc -bg -nopw -many -geometry 1024x576 -display :0 -auth /var/run/slim.auth -o /var/log/x11vnc.log
使用VNC Viewer远程登录,即端口5900。
$ vncviewer nas-ip:0
ubuntu11.10开始使用lightdm作为默认的登陆管理器了,参考 这里 新建 /etc/init/x11vnc.conf
:
start on login-session-start
script
/usr/bin/x11vnc -nopw -bg -many -geometry 1280x768 -display :0 -auth /var/run/lightdm/root/:0 -o /var/log/x11vnc.log
end script
迅雷下载
使用kvm虚拟一个Windows XP。
Update@2011-12-20: 使用几个月后,如果再给我一次选择的机会,我会选择一个专用nas + 专门的播放器,或者直接买一台mac mini,价格也基本相当,把存储和娱乐功能整合到一台机器上不是个很好的选择 :(
Update@2013-12-24: 已入群晖DS214,作为家用nas非常满意。