家庭云及其它(中)

博主分享了家庭服务器的搭建经验,包括选择处理器、内存、硬盘、操作系统等关键组件,以及如何避免常见错误和提高系统性能。文章还讨论了RAID、备份策略和服务器操作系统的优劣对比。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

硬件

基本上0bug老师对自己的需求还是比较清楚的,所以没有选择NAS产品,也没有选择企业级服务器都是很正确的。当然选择APU算是一个小失误,这个方案更适合做HTPC,而不是家用服务器,N550不论从功耗还是发热上,都优于E350的方案。

当然选N550的话肖老师也会碰到一个杯具:N550最大只支持2G内存,跟E350最大32G没法比……毕竟N550只是上网本CPU。

不过在最新的第21篇里,0bug老师说要把主板换成D525……这不就是我用了快两年的板子嘛。哈哈。

还 是要友情提醒一下:这个板子虽然不带风扇,但是机箱如果太小,或散热设计不良的话,夏天也是会比较热的。至少我用的立人Q5机箱就是,因为一侧的散热孔刚 好被一排电源插头完全挡住,通风不良,最可耻的是,机箱设计的风扇位也刚好就是在这个地方。所以我现在是把机箱顶盖拆了,在上面装一个风扇向下吹,目前看 来效果还行。

另外,D525最大只支持4G内存哦,亲。

其实指标和价格差不多,推荐还是新的D2700/D2800更好一些,32nm新工艺,比45nm的D525功耗更低,主频更高.。

我理想中的平台应该是一个低功耗的CPU,甚至可以是ARM平台,支持至少4G内存(因为对于ZFS来说内存越大越好,当然用ARM CPU的话另说),足够的SATA和USB——可惜当时万能淘宝上也没找到这种东西……不过也许现在有了吧。

不过硬盘是另一个失误,3.5寸7200转固然便宜又性能好,但是作为服务器用的话,耗电和发热就成大问题了。

关于SSD,其实还是有意义的,我本来是想买个小的SSD来装系统的,因为系统和SWAP是运行时经常需要访问的,但用户存储的数据却不是。把系统装在SSD上可以让硬盘在大部分时间里空闲,有利于节能和减少发热。

当 然最后还是没能找到合适的SSD,目前使用的是一块闲置的4G CF卡加CF-SATA转换做的一个简易SSD,当然性能什么的就没法跟真的SSD比了,只是便宜而已,CF卡本来就是闲置的,等于不要钱,转换器不过几 十块钱而已。话说一个FreeBSD9装上去也就才1个多G而已……要是Windows的话,真是没法想像。

0bug老师用一个二手服务器 SSD其实是个不错的办法,只是SSD毕竟是有寿命的东西,二手货真心不敢保证能用多久……当然,这也因为0bug老师用的这个服务器SSD是MLC的, 而不是通常服务器用的SLC,否则的话就好了,毕竟SLC比MLC速度快,寿命长,一定程度上二手倒也可以接受,只是估计价格就不会这么便宜了。

好吧,后来研究了一下0bug老师那个三星SSD,原来是830的上一代产品470改头换面罢了,根本不是什么服务器SSD…杯具。

至 于硬盘容量,当然是越大越好。不过我对0bug老师及其朋友拍照拍出10个T级别还是很佩服的。按中级单反一张RAW格式10M左右计算,就是100万张 啊。要是JPG的话还要多,更不用说小数码拍的了。差不多相当于商业摄影师每周拍两场婚礼拍十年的原片量,不服不行。不过如果不是商业摄影的话,有这么多 片子……大概是所谓敝帚自珍的缘故吧……

网段划分我就不吐槽了,世界如此之大,再怎么BT的拓扑结构都不奇怪。

关于RAID

0bug老师没有选择RAID是很明智的。

以前我也觉得RAID是个好东西,但是在企业里用了十多年以后,深深体会到,这货真心不适合家庭使用。

在企业应用中,RAID通常用来解决两种问题:性能和可靠性。但在同样价格的情况下,这二者又是矛盾的。

比如RAID0性能最好,但是RAID1可靠性最高,做RAID10又太花钱了……别跟我提RAID5——这货虽然说可靠性比 RAID0好,价格比RAID1便宜……但是反过来也可以说可靠性不如RAID1,还比RAID0贵,最重要的是性能还一般。

对于家庭应用来说,根本用不着RAID1那样的高可靠性,也用不着RAID0那样的高性能。

而且可靠性这个问题还有一个严重的误区:

RAID1/5 只能保证硬盘损坏时的可靠性,但是如果RAID控制器坏了呢?RAID1还好办,可以拆开当单硬盘用(不过我不确定是不是所有的RAID1实现都可以这么 干),RAID5就死定了。尤其是民用级的RAID都是主板集成RAID控制器,你必须要找到同型号的主板才有可能找回硬盘里的数据,而在运行若干年后, 想要再在市场上买到这样的设备往往就是一件不可能的任务。至于不保证可靠性的RAID0就更不用说了,条带化后的数据基本没可能取回。

这其实意味着随着时间的推移,数据丢失的风险会大大增加,各位在家庭中使用RAID的同学要小心啊——这跟企业不同,企业不需要担心这种问题,因为只要肯花钱,硬件都有厂商的完善维保,家庭用户则几乎是不可能的。

还有一个办法就是软件RAID,比如我曾经用过的FreeBSD的GMirror(相当于RAID1),这种方案的可移植性是硬件无关的,但这就要接受性能损失了。

所以,对于家庭使用来说,还是定时备份比较实用——成本低,风险反而低于RAID。

至于备份的方式,我个人是觉得ZFS的快照最强大,直接做文件系统级的备份。当然通用一点用rsync之类做文件级的备份也是不错。

操作系统

操作系统的选择我肯定是要黑的。

用什么Windows啊。不论是用Win7还是2008,都是败笔,比如0bug老师碰到的那个安全软件把系统搞坏的情 况。就是不搞坏,Win7做服务器也是会有问题的,否则微软也不需要另外搞Win Server了。从这个角度上说,他还应该感谢那个安全软件,怎么说换 2008至少比win7要好一点。

虽然0bug老师说了:

一台计算机,只要能承接外部的网络请求,提供计算服务,就算服务器

但服务器与服务器还是有区别的。比如0bug老师也知道那个XP的连接数限制问题,类似的其它问题当然还有。

还好0bug老师没有用Windows Home Server——它已经不幸地已经被微软抛弃了。

0bug老师说的那些关于微软和Windows的8挂,错误太多,大家看看就好了,毕竟0bug老师又不是专业干8挂的。

至于Windows到底不好在哪里,我已经说过很多次了,懒得重复。

反正就我自己来说,服务器操作系统还是最爱FreeBSD,其次是Debian/Ubuntu Server——以前比较喜欢Debian,现在比较倾向于Ubuntu Server。FreeBSD的最大优点就是安全稳定,装好以后基本不需要多费什么管理工作,用着踏实,省事。

(待续)

家庭信息YunHome 本项目使用开源硬件组建家庭信息系统,该系统可以从Internet获取各类常用信息(如天气预报等),并且在一个TFT显示屏上显示。 目前该项目使用两个硬件: 1. 一块Arduino Yun开发板(http://arduino.cc/), 你可以从Arduino 中国代理的天猫商店上购买到:http://xidikaiyuanshuma.tmall.com/ 2. 一块矽递 2.8" TFT触摸屏扩展卡,也可以从该商店购买到:http://xidikaiyuanshuma.tmall.com 硬件安装配置: 1. 将触摸屏扩展卡插入Arduino开发板,然后用Micro USB连接线连接电脑和Arduino。 2. 参照http://arduino.cc/en/Guide/ArduinoYun 的描述安装驱动程序和设置WiFi。 3. 下载并安装Ardunio IDE (http://arduino.cc/en/Main/Software), Arduino Yun要求1.5.5以上版本。 4. 运行IDE,Tools->Board->选择Ardiuno Yun;Port->选择Ardiuno Yun所在的端口。 5. Sketch->Import Library...,在弹出框选择本项目里面arduino-src/libraries/SeeedTFTv2目录;同样方式选择SeeedTouchScreen目录。 运行调试: 1. 运行样例程序: File->Examples->SeeedTFTv2->drawCircle,然后Verify, Upload,完毕后可以看到屏幕上出现不同颜色的圆形;同样方式可以测试其他样例程序。 Spacebrew服务器安装配置(如果仅作为测试,可以使用sandbox.spacebrew.cc,此步骤可以跳过) 服务器可使用任何托管或者服务器,运行linux系统。服务器使用spacebrew(http://docs.spacebrew.cc/),本节以Ubuntu为例,介绍如何安装运行spacebrew. 1. 安装node.js(https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager#ubuntu-mint-elementary-os): curl -sL https://deb.nodesource.com/setup | sudo bash - sudo apt-get install -y nodejs 2. 安装ws: npm install ws 3. 安装forever module npm install forever-monitor sudo npm install forever -g 4. 安装git sudo apt-get install git 5. 克隆Spacebrew代码库 git clone https://github.com/Spacebrew/spacebrew.git 6. 运行Spacebrew cd spacebrew forever start node_server.js 7. 测试浏览器访问(替换为实际ip地址): http://spacebrew.github.io/spacebrew.js/spacebrew_button/index.html?server=&name=button2 8. 测试浏览器访问(替换为实际ip地址):http://spacebrew.github.io/spacebrew/admin/admin.html?server= 客户端(Arduino Yun)Spacebrew 安装 ArduinoYun 端采用开源库yunSpacebrew(https://github.com/julioterra/yunSpacebrew),安装测试方法: 1. 下载源代码 2. 拷贝python文件到yun: scp -r ./spacebrew root@arduino.local:/usr/lib/python2.7 3. 拷贝shell文件到yun: scp ./run-spacebrew root@arduino.local:/usr/bin 4. ssh到yun,修改文件权限: chmod 0755 /usr/bin/run-spacebrew 5. 导入arduino lib: 在Arduino IDE选"Sketch->Import Library...->Add Libaray...", 选择源代码目录"arduino/SpacebrewYun" 6. 测试: 在Arduino IDE选"File->Examples->SpacebrewYun->spacebrewBoolean" 7. 在sb.connect()行修改服务器地址参数为实际部署服务器的地址 8. 通过usb上传到arduino 9. 运行serial monitor查看log,等待片刻,如出现: onnected to: xx.xx.xx.xx,表示连接成功 10. 这时打开spacebrew admin界面,应该有"SpacebrewYun"的客户端出现,将其subscriber连接到任何可测试的publisher,用publisher 进行测试,观察serial monitor,会有相应log打印。也可以增加代码到handleBoolean(), 如 if(value) { digitalWrite(13, HIGH); } else { digitalWrite(13, LOW); } 将观察到LED在控制下开/关,在wifi连接下测试,延时小于1秒,效果非常理想。 项目测试 1. 将TFT显示屏插入Arduino Yun 2. 用Arduino IDE打开 main/YunHome/YunHome.ino, 编译并上传到Arduino 3. 在Arduino IDE打开 Serial Monitor 4. 浏览器打开测试bool消息页面:http://spacebrew.github.io/spacebrew.js/spacebrew_button/index.html?server=sandbox.spacebrew.cc&name=testButton 5. 浏览器打开测试string消息页面: http://spacebrew.github.io/spacebrew.js/spacebrew_string/index.html?server=sandbox.spacebrew.cc&name=testString 6. 浏览器打开spacebrew admin:http://spacebrew.github.io/spacebrew/admin/admin.html?server=sandbox.spacebrew.cc 7. 在admin界面上将看到YunHome应用和testButton, testString应用,testButton/testString的publisher连接到YunHome对应的subscriber 8. 测试testButton页面,点击按钮,显示屏幕显示“ON”,松开按钮,显示"OFF" 9. 测试testString页面,发送英文字符串,发送,屏幕显示对应的字符
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值