2009.07.7 2:23 bruce:

1:硬件
必须是网络硬盘盒,及带嵌入式板和Linux操作系统的硬盘盒。便宜的方案有 微星和西数的。
自己用的话,就淘洋垃圾的西数WD My Book World Edition 1000M SATA WD网络硬盘盒。当然,如果有钱的话,可以WD这个系列的新产品。也就几千块吧。
本来这种小型NAS设备是带硬盘一起卖的,可能硬盘坏了返修,把硬盘扔掉,就集装箱扔中国了。嵌入式主机板一般是难坏掉的。所以自己加个新硬盘,就跟新的一样用了。
单硬盘的,也有双硬盘做raid的。
为提高性能,可以将32M内存模块换64M。找商家换好了,再用。
到这里淘个主机,还有很多GEEK的使用方法 http://www.qzxx.com/bbs/forum-23-1.html

背面,12V电源,千兆以太网,外置USB存储接口,一个笔记本锁。他的散热口很特别。是摩斯电码,是他产品标识的几个单词摩斯电码组成。

他的主板,是个标准的ARM架构的嵌入式主机板。
新的插上电就可以工作。我们这种DIY的,需要先把硬盘拿到PC里面装好操作系统,设置好ip,再装在机器里用。
因此,他的设置都是linux存在硬盘上的,所以很灵活。
我是年初淘的,加了个640G硬盘,装好后,拿来当硬盘存东西,一直没空研究。我还给他加了个USB风扇,辅助散热用,插在usb口上。
盒子加上改装64M、电源、运费等花了308。硬盘花了430多。
论坛上有不同的rom,一般都是拿来下电影用。
我只拿他来备份存储。省点空间,省点电。配好后,ftp和samba都可以用了。具体请搜索玩家论坛。
今天要做subversion版本控制,不想占用笔记本资源。就拿他做做实验吧。没想到很顺利的就装上去了。
没想到现在的开源工程配置都这么灵活,简单配置下就都装上去了。
具体装法简单描述:
下载相关工程源码
http://www.monkey.org/~provos/libevent-1.4.11-stable.tar.gz
http://www.sqlite.org/sqlite-3.6.16.tar.gz
http://apache.nedmirror.nl/apr/apr-1.3.5.tar.gz
http://apache.nedmirror.nl/apr/apr-util-1.3.7.tar.gz
http://www.zlib.net/zlib-1.2.3.tar.gz
http://www.webdav.org/neon/neon-0.28.5.tar.gz
http://downloads.sourceforge.net/sourceforge/expat/expat-2.0.1.tar.gz?use_mirror=nchc
http://apache.cs.uu.nl/dist/httpd/httpd-2.2.11.tar.gz
http://subversion.tigris.org/downloads/subversion-1.6.3.tar.gz
这些库、工具都装上的话,就是将subversion 1.6.3运行在apache上。
方法都是
#./configure –prefix=xxx –with-xx=xxx
#make
#make install
最好装在默认目录下,不然so文件找不到,还得自己一个一个link,或者修改/etc/ld.so.conf(添加lib路径,然后ldconfig)
socket服务方式启动服务
#/svn/subversion/bin/svnserve -d
创建仓库(名为bruce)
#/svn/subversion/bin/svnadmin create /shares/internal/svn_root/bruce
增加用户和口令
#vi /shares/internal/svn_root/bruce/conf/passwd
加 bruce=password
配置仓库
# vi /shares/internal/svn_root/bruce/conf/svnserve.conf
anon-access = none
password-db = passwd
使用简短的uri访问 svn://ip/svn/bruce
#ln -s /shares/internal/svn_root/bruce/ /svn/bruce
下载客户端访问成功
http://tortoisesvn.net/downloads
apache集成方式启动
httpd.conf中增加
<Location /svn>
DAV svn
SVNParentPath /shares/internal/svn_root
AuthzSVNAccessFile /shares/internal/svn_root/apache_authz.conf
AuthType Basic
AuthName “Subversion Repository”
AuthUserFile /shares/internal/svn_root/apache_pwd.auth
Require valid-user
</Location>
用户密码文件生成 /shares/internal/svn_root/apache_pwd.auth
#/svn/httpd/bin/htpasswd -cm “/shares/internal/svn_root/apache_pwd.auth” bruce
New password: ******
Re-type new password: ******
Adding password for user bruce
增加时,参数是-m 删除时参数是-D
用户权限文件 /shares/internal/svn_root/apache_authz.conf
#vi /shares/internal/svn_root/apache_authz.conf
[groups]
users=bruce
[/]
@users=rw
[svn:/]
@users=rw
apache访问刚才root帐号创建的仓库是有权限问题的。
因此需要改变目录所有者为apache后台用户
#chown daemon:daemon -R /shares/internal/svn_root/
配置完成,访问地址为 http://ip/svn/bruce
这个特殊的linux,配置服务自启动方式有所不同
编写自己的服务脚本svn.sh,见附件
编辑 /etc/init.d/network_servers.sh
start的地方
加:
$SCRIPTS_PATH/svn.sh start
如果是http方式,则
/svn/httpd/bin/apachectl start
stop的地方
加$SCRIPTS_PATH/svn.sh stop
如果是http方式,则
/svn/httpd/bin/apachectl stop
为了节省资源,不启动http等其他服务,在start的地方把lighttpd.sh给停掉
$SCRIPTS_PATH/lighttpd.sh stop
开机后,subversion就可以自动启动了。
还有个自动备份仓库的脚本,见附件。svnadmin hotcopy 命令老报错,还没找出原因。
现在 平常备份文件用samba(Windows文件共享) ,大文件用FTP续传,文档和源码就用Subversion
一个个人或小组的比较专业的文档、数据管理解决方案就诞生了。
性能比较
跑这几个服务,64M内存是够了的,硬盘也直接用上了DAM,几M的速度也够了
但因为嵌入式的CPU差了一些,所以subversion在处理数据时,会慢一些。
专门建立测试环境的数据
环境:
100M局域网连接
单个数据文件:100M(102400k)
性能:
| 服务方式 | CPU占用 | 内存占用 | checkin 时间,平均速率 | checkout时间,平均速率 |
| httpd | 98.3% | 9.5% 6.1% | 124s 826kBytes/s | 85s 1205kBytes/s |
| svnserve |
98.3%
|
6.2% 3.5%
|
102s 1004kBytes/s
|
89s 1150kBytes/s |
| vsftpd | 91.1% | 0.7% 0.7% | 16s 6400kBytes/s | 11s 9309kBytes/s |
经测试,磁盘访问速度还是相当快的,可以达到9MBytes/s
httpd方式提交比svnsrve方式稍慢,但更新速度相当。作为文档管理,速度可以接受。
附件
