紧接上次说的打算把软路由和NAS整合在一起,那么我们首先说说我们选定的软件解决方案

在讨论前首先戴头盔
对于中小企业来说~千万不要~毕竟对于企业而言稳定第一~
以下看法纯属个人主观与偏见的看法~并非技术讨论帖~各位大神如果有不同意见可以留言讨论
如果觉得在下太水皮的话~就当你赢~我输就好~

好了,首先为什么我会选择OpenWRT来做整合呢?
1、我知道有很多人玩Esxi All in One,通过虚拟化进行路由器的资源调度为不同的功能部署不同的专用系统。
这样的方案的确是功能非常强大,而且每个系统都非常专业,而且虚拟化的扩展性还可以非常大。
但好像我之前说的一样,我首先排除版权的问题,同时还必须考虑数据安全性和稳定性,尽量不使用非授权或者盗版的解决方案。

2、更重要的是OpenWRT项目其实是一套针对嵌入式设备的开源的发行版Linux。
也就是说只要你有Linux的基础,基本上遇到问题比较容易解决。
并且可以编译进去你想要的在项目内的功能,而这些功能基本涵盖一个家用甚至是Soho级别的NAS的所有需要。

那么问题来了,我们需要的OpenWRT哪儿来呢~那么我就一步一步来说吧~
首先你需要在你的电脑建立一个ubuntu 16.04.06 LTS x64的虚拟机,我们在这个虚拟机上进行编译。


这里我个人比较推荐Lean大的在Github上的OpenWRT分支https://github.com/coolsnowwolf/openwrt
我们首先准备一个完整的编译平台,登录ubuntu后sudo su进入root用户后

apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx autoconf automake libtool autopoint

安装好前提条件后~我们要用exit命令退回普通用户
然后准备开始了~那么开始之前我们还有一个事情要做的~就是要为编译平台进行一个全局科学上网设置~至于怎么弄你自己想办法了~你懂的~

git clone -b lede-17.01 https://github.com/coolsnowwolf/openwrt
cd openwrt
./scripts/feeds update -a
./scripts/feeds install -a

做好准备后就开始选择自己想要的功能了~
那么我们定义一下对于一台SOHO级别的NAS我们需要的功能了

1、我要路由器的硬盘可以做Raid 5。
2、硬盘休眠
3、我们需要网络共享。
4、我们需要NFSd。
5、我们需要iSCSI。
6、我们需要SVN。
7、我们写的运维脚本需要向我们发送报告邮件。

make memconfig


我们首先把Target System改为X86,那么Subtarget就会自动改为x86_64。
然后下面来功能需求了~我们在这个界面下按“/”键,会进入搜索界面,我们就可以进行功能搜索。
1、Raid 5
首先我们需要Linux下的Raid管理程序mdadm,以及需要Raid 5我们需要Raid 5模块kmod-md-raid456,还有就是当我们单盘大于2T的话我们还需要gdisk进行GPT分区。
那么我们就要搜索相应的程序打勾
2、硬盘休眠
为了功耗、噪音、耐用度考虑,在空闲时候我们会让硬盘休眠,那么我们可以选择的方案有hdparm或者hd-idle,为了有luci管理界面我们选了后者
直接搜索luci-app-hd-idle,勾选后所需要的功能包会自动选上
3、网络共享
L大的分支默认带samba,所以我们不需要进行特别的设置,如果你用别的分支的话….你需要samba36-server / samba36-client / luci-app-samba
4、NFSd
之前的文章有说过,Android机顶盒对SMB的性能不太能让人满意,那么我们需要nfs
我们需要nfs-kernel-servernfs-kernel-server-utils
5、iSCSI
这个首先需要在Global build settings里面的Kernel build options里面勾选Compile the kernel with asynchronous IO support
然后搜索tgt就可以找到tgt功能包,勾选了
6、SVN
搜索subversion,然后把subversion-client / subversion-libs / subversion-server都选上
7、我们需要最轻盈的邮件客户端ssmtp
直接搜索ssmtp勾选上~

然后就是软路由的功能~那些什么去广告啊科学上网之类的我全部都不知道别问我~我这里不是讨论科学上网的~自己研究
当选上你们需要的软件功能后
然后就可以保存退出,然后开始编译!Go Go Go!

make -j1 V=s

然后去玩去吃饭或者去逛街~或者直接去睡觉~第二天就可以编译完了
编译完了后固件会在项目目录下的bin/target/x86/64/openwrt-x86-64-combined-ext4.img.gz
用Winscp把这个文件弄出来解压就可以得到固件本体~然后用Win32 Disk Imager写入到U盘里~
这个U盘以后就会插在路由上做引导~可以是Dom盘容量只要不低于512MB就够了~

下面开始准备硬件了~~