1. 二台win 7机器A,B同时连接上iSCSI,分别在iSCSI盘上新建立的文件,互相不可见,需要删除当前的iSCSI连接,再重设。
  2. 同上A,B二机短时间内写同一目录,大部分情况下会导致些目录损坏,不能再访问。
  3. 在iSCSI上COPY大文件后,马上重启NAS,文件大部分情况下会丢失。
  4. iSCSI盘采用NTFS时,COPY文件速度会降低一些。

可见freeNAS 8.0.1版本上的iSCSI存在比较大的问题,只有在长期开着NAS并且长期只有一个写入用户的情况下,才能放心使用。其他大多数情况,应该采用其他文件共享协议。

字体+阴影,打开

C:\Users\[用户名]\AppData\Local\Google\Chrome\User Data\Default\User StyleSheets\Custome.css

添加

*{font-family:Arial,"Microsoft Yahei" !important;}
*{text-shadow: silver 0px 0px 1px !important;}

其中第一行将所有字体改为雅黑,第二行设置1px的字体阴影。1440以上高分屏,设置第二行效果很好。1366的只添加第一行。

缓存目录 shift+右 点击Chrome图标,属性,目标后添加

--disk-cache-dir=“Z:\Users\"

其中Z:为RAM盘,设置RAM盘并修改系统TEMP目录后,会自动建立类Users[用户名]的目录。否则如果指定的Users目录不存在,Chrome启动会报错。

http://download.skype.com/SkypeSetupFull.exe

去广告 hosts加入

127.0.0.1 atm.youku.com
127.0.0.1 Fvid.atm.youku.com
127.0.0.1 html.atm.youku.com
127.0.0.1 valb.atm.youku.com
127.0.0.1 valf.atm.youku.com
127.0.0.1 valo.atm.youku.com
127.0.0.1 valp.atm.youku.com
127.0.0.1 lstat.youku.com
127.0.0.1 speed.lstat.youku.com
127.0.0.1 urchin.lstat.youku.com
127.0.0.1 stat.youku.com
127.0.0.1 static.lstat.youku.com
127.0.0.1 valc.atm.youku.com
127.0.0.1 vid.atm.youku.com
127.0.0.1 walp.atm.youku.com

去黑屏

cd ~/.macromedia/Flash_Player/#SharedObjects/xxx/

xxx为随机串

rm -tf static.youku.com
touch static.youku.com
sudo chown root.root static.youku.com

重启浏览器。

NAS系统的选择,首先放弃了windows系统. 然后在DIY linux与现成开源的类linux nas系统中,确定用现成的freenas,基于freebsd的nas.

freenas现在主版本有7.x 与8.x二个系列. 7.x的风格更类linux一点,配置时要先加硬盘,格式化,再mount到对应目录,最后再共享目录.

不过对于我配置的特定硬件,7.x 无法自动认出板上的网卡以及sata接口. 网卡驱动倒是可以换一个,不过认不出sata接口却无法解决,这样系统启动后一个硬盘都找不到.

8.x系列,封装得更好一点,配置也简单很多. 当然DIY的自由度也少了很多. 另外8.x对ZFS的支持要完善很多,用raid z相当方便.

  1. 首先去http://www.freenas.org/下载FreeNAS-8.0.2-RELEASE-amd64-Full_Install.xz,因为用到了8G内存,必须用64位版本,而且zfs文件系统,要求内存越大越好,6G+是必要的.
  2. 用7zip解开FreeNAS-8.0.2-RELEASE-amd64-FullInstall.xz,是个2G左右的FreeNAS-8.0.2-RELEASE-amd64-FullInstall文件
  3. 用dd或physdiskwrite.exe写到一个2G以上的u盘上.用u盘做系统盘,一是能省下一个sata接口以后好扩充,二是8.x的freenas不能再使用系统盘上的空闲空间.
  4. 启动nas并配置好ip地址后web登录,默认帐号为admin/freenas
  5. 在Storage中,用Create Volume,选取三块硬盘,fs选择zfs,zaid z模式.命名为public. 这时就创建好了一个总容易为3.8T的raid z卷. 并且以后所有的目录分配或iscsi都基于public卷.
  6. Create ZFS Dataset用来创建不用的应用目录,用于分配给不同的用户或是用作不同的用途.
  7. Create ZFS Volume创建一个指定容量的大文件,用于iscsi的虚拟磁盘.
  8. 配置好后,在System->Settings,->Save Config里,保存好当前配置.这样万一系统损坏或u盘物理损坏后,通过前四步,然后导入现有配置就能恢复.
  9. 最后在Services中,启用CIFS,FTP以及iSCSI三个主要共享功能.

这样能通过ftp,windows的网上邻居,linux的smb,以及iscsi访问nas上的空间.

1000Mbps网络环境中,上下传速度其中以iscsi速度最快,约70MB/s左右,然后是ftp,60MB/s左右,网上邻居要慢点,40~50MB/s左右. 100Mbps网络环境三者都能比较稳定在10MB/s左右. 由此可见,使用nas,1000Mbps的网络环境是必要的.

最后从总功耗以及传输速度来看,基本上满足了自己的要求.

一则硬盘空间一直比较紧张,二则现在硬盘质量不再象以前那么可靠,数据容易丢失,于是计划购置一个能做阵列的家用NAS机器. 仔细研究了一下国内外不少品牌或山寨的NAS,最后比较满意希捷BlackArmor NAS 400系列. 可惜的是国内一直没有售,而且价格好象也悄悄涨过一次,不带硬盘拿下来也得3K多了.

既然现成的不满意,就自己配一个好了.

想要达到的目的:

  1. 整机加4块左右硬盘的功耗要控制在50W左右.
  2. 至少要能上4块硬盘,最好能升级到8块左右硬盘.能做RAID 5.
  3. 千兆网络环境下,要有60MB/s的上下传速率.
  4. 除了能做NAS,还要能增加SVN server之类的应用.
  5. 有可能做HTPC,这样得有一个过得去的显卡或者至少有hdmi输出.
  6. 噪音尽量小.
  7. 不带硬盘价格控制在2K以下

本来先考虑的atom平台,cpu功耗相当小,可惜加上对应的主板后就难看了点. 然后只能转向amd apu系列. RAID5要消耗比较多的CPU资源,因此E350的性能要好得多. 再查询E350整合主板,品牌牌子有GIGABYTE和ASUS二家.此外梅捷,七彩虹都有类似的主板. 另外这类主板主要分二类,一是只有USB2以及SATA3G的,二是带USB3以及SATA6G的.显然后者参数要美妙得多.

  1. 技嘉(GIGABYTE)GA-E350N-USB3, 1.6G双核CPU,集成HD 6310显卡,2USB3,4 SATA 6G,CPU带风扇. 功耗约22w. 699大洋.
  2. Asus APU E35M1-M PRO FUSION,1.6G双核CPU,集成HD 6310显卡,2USB3,5 SATA 6G,1 ESATA 6G,静音设计,无风扇. 功耗约22w. 1299大洋.

这二块入眼的主板其实本不用考虑选哪个,ASUS的5SATA,无风扇设计,简直就是为NAS设计的. 可我还是纠结了二天才确定下来,因为ASUS的要1299块,TB也得1100+,而GIGABYTE的只要699块啊~,于是我决定用699块的.除了我一向勤俭节约外,主要还是考虑万一配出来的NAS不满意,这不就能减少不少损失么......当然前期4块硬盘也足够使用了. 至于那个明显是噪音制造者的CPU风扇,我就当没看见好了.

机箱有大小二种选择,小机箱省地,大机箱散热和扩展性要好不少. 我觉得4块硬盘挤一起,那热量也挺吓人的,还是用大点的机箱好了. 电源得配个好点的.烧主板烧硬盘的电源,碰到过不少. 查了一下JD上的存货,配了TT的机箱+电源:

  1. TT 金刚500高效电源,5SATA电源头,带14cm风扇一个.299大洋.
  2. TT Commander MS-I指挥官居中塔机箱,7HD位. 带12cm风扇一个.279大洋.

主板最高支持8G内存,考虑到要使用ZFS文件系统,要求最少6G内存,这样内存得上满,好在现在这东西非常便宜.

  • Samsung 三星 金条 DDR3 1066 4G x2, 275大洋.

原有一块2T WD绿盘,再购置二块同型号硬盘. 花费998大洋.

这样总计花费,不算硬盘约1500块,DIY出一个8G内存,1.6G双核CPU,4个SATA 6G接口,2个USB3接口的家用NAS. 相当超值了.

所有硬件分别采购于JD,新蛋,易讯三家. 早上9点前下的订单,当天下午JD送到一部分,易讯送到.第二天上午JD送完剩下的,新蛋送到. 大体可见三家物流的情况.

到手后主板要处理一下. CPU的散热片要拆下来,是个二层结构. 在二层金属片接触的地方,只是象征性的涂了不到一平方厘米的硅胶. 买管硅胶,恶狠狠地把它涂满吧~ 不然开机时间一长,CPU/GPU的温度会很高. 而且主板四个SATA接口,只配了二根SATA硬盘线, 在此BS一下GIGABYTE的偷工减料.

硬件安装好后一次点亮, 不接硬盘,按下电源开机时有个100W+的瞬时功耗, 然后稳定在33W左右. 进BIOS把内置显卡频率下调到300M.能减少2W功耗. 这样不带硬盘功耗在31W左右. 加上三块硬盘,待机时功耗增加9W左右,全机约38W~40W, RAID 5读写时功耗增加10~20W左右,全机功耗50W~59W,基本上没超过60W. 虽然还是嫌功耗稍高了点,总体来说还是能够接受, 毕竟大多数时间还是待机, 不到40W的功耗也算是看得过去了.

下篇再说说NAS系统软件的选择与安装.

he.net申请到的免费IPV6地址块只用到一台机器上太浪费了, 而Toastman的Tomato修改版, 对he.net的ipv6地址块支持得相当完美了. 这样可以把申请到的地址块放在路由器上, 并自动分配IPV6地址给所有接入路由器的机器.

首先去https://www.tunnelbroker.net/申请一个64位的IPV6地址块,并记下

Server IPv4 Address
Server IPv6 Address
Client IPv4 Address
Client IPv6 Address

然后你要有一个能刷tomato的路由器,并刷上相应的Tomato Toastman版. 我用的中兴h618b对应的版本是Tomato Firmware v1.28.7820 MIPSR1-Toastman K26 USB VPN.

login到router,进入basic->ipv6菜单.

  • IPv6 Service Type 选择 6in4 Static Tunnel
  • Assigned / Routed Prefix 填写要分配给接入机器的ipv6前缀,比如你申请到的是类x.x.x.x::1的地址,这儿填写x.x.x.x::
  • Prefix Length填64
  • Router IPv6 Address选择Default,会自动填写成he.net分配的Server IPv6 Address,不然选择Manual手工填写成Server IPv6 Address.
  • Enable Router Advertisements勾上,
  • Tunnel Remote Endpoint (IPv4 Address)填写he.net分配的Server IPv4 Address,
  • Tunnel Client IPv6 Address填写he.net分配的Client IPv6 Address,64位长.

如果你好运气路由器是固定的IPV4地址,那么设置这些就ok了.保存后radvd会自动启动用于分配ipv6地址.

如果是pppoe之类拿的动态IP地址,那么这时候he.net上显示的Client IPv4 Address则会和你现在路由器地址不符. 这个时候所说的"完美"支持就表示出来了. 进入basic->ddns菜单,看,下拉列表里有个"HE.net IPv6 Tunnel Broker",贴心吧.帐号填写完后保存,这样地址改动后,会自动update he.net上的Client IPv4 Address数据.

之后路由器给接入的机器分配IPv4地址时,会自动也分配一个IPv6地址. 这样router后面带的所有机器,都能实现IPV6接入了.

原本使用的SIP Server是sip ser,后来改用kamailio. 二者的配置和使用都基本一样. kamailio放在VPS上,程序本身相当稳定,但随着通话时间的增长,随机在5到10分钟后,会因为一些已知或未知的原因,通话质量迅速下降. 挂掉重拨后能且只正常一小会儿,然后又必须重拨, 很是烦人.

后来把sip流量放在vpn里,情况好了很多. 至少不会因为莫名的干扰导致通话质量下降. 不过这样一来,sip流量必须通过vps进行中转, 而出国线路每天会不定期的抽风随机的一段时间......全国LAN网时代大概不远了吧?

暂时方案,把sip server放在家里的router上,然后再挂上vpn,这样二方通话就能直接走国内线路vpn里. 虽然我也曾发现国内有时候也丢包15%~30%,但总比去VPS丢50%+要好. 而且国内线路抽风的时候要少些, 因为大多数G点都不在国内.

翻出落了不少灰尘的中兴h618,吹吹. 其实我蛮看好开源的Netgear WNR 3500L,5个1000M端口有木有?480M的CPU有木有?64M内存有木有?到手的3500L被人抢走了有木有? 可惜只有8M FLASH,抢就抢吧, 我也主要用无线,1000M的有线端口暂时用处不大. 我还是再吹吹h618吧,干净了.

firmware换成Tomato Firmware v1.28.7820 MIPSR1-Toastman K26 USB VPN了,为了它的IPV6功能.

中兴h618有16M FLASH,安装完firmware后,还能空8M+,用来安装ipkg及sip server. 如果其他开源router没有足够的FLASH空间,则要有usb接口,mount一个小u盘到/opt,8M以上容量就可以了,实际安装完占用约3.5M的空间.

ipkg包里,选择极其轻巧的siproxd做为sip server,功能自然没有ser及kamailio多,但足够满足简单的通话要求.

ssh到路由器里,Enable jffs并且mount到/opt,然后安装ipkg基本包,也可参考 Tomato Pandora之Optware软件安装.

cat opt.sh 或下载 http://www.3iii.dk/linux/optware/optware-install-ddwrt.sh.txt

#!/bin/sh
# Optware pre-installation script, Leon Kos 2006, 2008
# added -verbose_wget to some lines, MrAlvin 2009

REPOSITORY=http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable
TMP=/tmp

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/opt/bin:/opt/sbin
unset LD_PRELOAD
unset LD_LIBRARY_PATH

_check_config()
{
    echo "Checking system config ..."
    GATEWAY=$(netstat -rn |
    sed -n 's/^0.0.0.0[ \t]\{1,\}\([0-9.]\{8,\}\).*/\1/p' )
    if [ -n "${GATEWAY}" ]; then
    echo "Using ${GATEWAY} as default gateway."
    else
    echo "Error: No default gateway set!"
    exit 2
    fi
    if [ -s /etc/resolv.conf ]; then
    echo "Using the following nameserver(s):"
    if grep nameserver /etc/resolv.conf ; then
            GATEWAY_SUBNET=$(echo "${GATEWAY}" |
        sed 's/\.[0-9]\{1,3\}\.[0-9]\{1,3\}$//')
        if [ "${GATEWAY_SUBNET}" = "192.168" ]; then
        if grep -q ${GATEWAY} /etc/resolv.conf ; then
            echo "Gateway ${GATEWAY} is also nameserver."
        else
            echo "Warning: local nameserver is different than gateway!"
            echo "Check config or enter:"
            if test -L /etc/resolv.conf ; then 
              echo "  sed -i s/192.168.*/${GATEWAY}/ /tmp/resolv.conf"
            else
              echo "  sed -i s/192.168.*/${GATEWAY}/ /etc/resolv.conf"
            fi
            echo "and try again - or wait to see if your download continues anyway."
        fi
        fi
    else
        echo "Error: No nameserver specified in /etc/resolv.conf"
        exit 5
    fi
    else
    echo "Error: Empty or nonexistent /etc/resolv.conf"
    exit 3
    fi

    if mount | grep -q /opt ; then
    [ -d /opt/etc ] && echo "Warning: /opt partition not empty!"
    else
    echo "Error: /opt partition not mounted."
    echo "for running Optware on JFFS (not recommended), Enter"
    echo "    mkdir /jffs/opt"
    echo "    mount -o bind /jffs/opt /opt"
    echo "to correct this."
    exit 4
    fi
}

_install_package()
{
    PACKAGE=$1
    echo "Installing package ${PACKAGE} ..."
    echo "   Some newer versions of DD-WRT does not show download progress bar,"
    echo "   so just be patient - or check STATUS -> BANDWIDTH tab for download"
    echo "   activity in your routers Web-GUI"
    wget -O ${TMP}/${PACKAGE} ${REPOSITORY}/${PACKAGE}
    cd  ${TMP} 
    tar xzf ${TMP}/${PACKAGE} 
    tar xzf ${TMP}/control.tar.gz
    cd /
    if [ -f ${TMP}/preinst ] ; then
    sh ${TMP}/preinst
    rm -f ${TMP}/preints
    fi
    tar xzf ${TMP}/data.tar.gz
    if [ -f ${TMP}/postinst ] ; then
    sh ${TMP}/postinst
    rm -f ${TMP}/postinst
    fi
    rm -f ${TMP}/data.tar.gz
    rm -f ${TMP}/control.tar.gz
    rm -f ${TMP}/control
    rm -f ${TMP}/${PACKAGE}
}

_check_config
_install_package uclibc-opt_0.9.28-13_mipsel.ipk
_install_package ipkg-opt_0.99.163-10_mipsel.ipk
/opt/sbin/ldconfig
/opt/bin/ipkg -verbose_wget update 
/opt/bin/ipkg -force-reinstall -verbose_wget install uclibc-opt
/opt/bin/ipkg -force-reinstall -verbose_wget install ipkg-opt

安装

cd /opt
sh ./opt.sh
ipkg update

先安装libtool库,打包sipproxd时人没把这个依赖加进去

ipkg install libtool

安装好用的ngrep工具,这个没有依赖,不安装也可以省点空量.

ipkg install ngrep

安装sipproxd

ipkg install siproxd

此时会提示

To complete the installation, you must edit /opt/etc/siproxd.conf-example and rename it to /opt/etc/siproxd.conf,
and then run /opt/etc/init.d/S90siproxd to start siproxd.

其实应该先改/opt/etc/siproxd_passwd.cfg文件,把sip帐号增加进去,格式很简单. 然后

cp /opt/etc/siproxd.conf-example /opt/etc/siproxd.conf

修改ifinbound及ifoutbound为br0就可以了. 我这里因为用vpn连接了远程的路由器, 可视为全走内网,所以把rtpproxyenable也设为0了. 最后启动

/opt/etc/init.d/S98siproxd

siproxd会在TCP以及UDP的 0.0.0.0:5060上监听.

这样我把自己路由器里的sip电话以及远端vpn连接的路由器里的sip电话都设置为自己路由器内网ip就可以了.

简单示意图: sip phone1 ----> GW1,siproxd server & openvpn server----> internet <----->GW2,openvpn client <-----sip phone2

好了,你就真变成国内大LAN网,也影响不了我打电话了.

siproxd比较可惜的是不支持ipv6,没有查看注册及通话情况等管理功能.如果有啥问题,直接动用ngrep监听数据吧.