# 使用树莓派来创建NAS服务器

# 背景

如果不了解 NAS 什么的,请自行百度。我想要说的是,目前NAS服务器都太多了,不带硬盘的竟然都得2000+元

想想其实NAS又不是什么高科技的玩意,简单架构无非如此:

  • 最底层是一个Linux操作系统,当然Windows其实也可以,无所谓什么
  • 目前大多数NAS都支持插多块硬盘,这无非是用RAID来做一个硬盘矩阵,就是让多块物理硬盘做成一个逻辑硬盘,说得直白点,就是看上去想是一块硬盘;当然,如果你只有一块硬盘,就可以忽略
  • NAS最核心的就是文件共享,如果是Linux的话,自然选择Samba
  • 其实设置好Samba后,NAS就已经完成了;其他的无非是各个厂商提供的第三方应用了,无非是一些文件共享、家庭影院什么的,这些对一些会一些开发技术的人来说都好简单的。

经过我这么一分析,大家都可以看出NAS其实没啥了吧,真心不知道为啥卖得这么贵;不过没事,作为一个技术宅来说,这些都完全自己做。

首先先看一下的最终的效果:

我的方案:

  • 树莓派一块:我用的是Raspberry 3B(手头上只有这款,¥150二手入的),其实Raspberry 1代就足够了。当然还需要一张最小8G的SD卡,这个很便宜的。
  • 硬盘盒一个:我有5块硬盘,因此买一个可以插5块硬盘的硬盘柜,价格¥670

把硬盘装到硬盘盒中,USB接入树莓派,150+670=820就搞定了,是不是很划算。

# 树莓派安装

这块内容可以自行百度,很简单的,没啥好说的

# RAID设置

关于RAID我以前也没配置过,因此这块对我来说可以尝试一下,记录一下。大体参考^[1]^

# Step 1:安装mdadm

关于mdadm的介绍,可以参见wikipedia/mdadm,安装办法大致类似:

apt-get install mdadm

# Step 2:确认硬盘都识别出来了

fdisk -l

看一下就可以

# Step 3:检查硬盘是否已经被现有的 RAID 使用

mdadm --examine /dev/sd[a-e]

如果几块硬盘都是"No md superblock detected on /dev/sd*"之类的,说明就OK了。

否则可以mkfs.ext4之类的命令把硬盘重新格式化一把。

# Step 4:创建RAID分区

这里需要注意一下,一般我们创建分区使用fdisk命令,但fdisk单个分区最大只能2T,而我们既然做NAS,同时都是比较大的硬盘,比如我这里一块8T、两块4T的,因此我们得上parted了。

parted /dev/sde

这里需要注意一点,我们需要把硬盘的分区创建为RAID类型,在parted中设置为raid类型的命令是:

set 1 raid on

每块硬盘创建完成后,我们来检查一下:

mdadm --examine /dev/sd[a-e]
mdadm --examine /dev/sd[a-e]1

# Step 5:创建 RAID md 设备

mdadm --create /dev/md0 --level=stripe --raid-devices=5 /dev/sd[a-e]1

执行完成后,我们可以检查一下硬盘盒阵列的情况

cat /proc/mdstat

# Step 6:给RAID设备创建文件系统

mkfs.ext4来格式化/dev/md0

mkfs.ext4 /dev/md0

然后挂载就搞定了哦

mkdir /mnt/raid0
mount /dev/md0 /mnt/raid0

默认mount上的目录是root权限的,为了后续方便操作,我们可以改为当前用户的属性:

chown -hR pi:pi /mnt/raid0

# 用Samba来做目录共享

# 安装Samba

apt-get install samba

# 共享一个目录

我们在之前的/mnt/raid0目录下在创建一个public目录作为被共享的目录

Samba的配置还是比较简单的,最要在/etc/samba/smb.conf下追加对public目录的共享配置即可:

[public]
	map hidden = yes
	force user = pi
	delete readonly = yes
	path = /mnt/raid0/public
	map system = yes
	public = yes
	write list = pi,@pi
	writeable = yes
	case sensitive = yes
	valid users = pi,@pi
	guest account = pi
	force group = pi

# 为Samba用户设置密码

smbpasswd -a pi

# 重启Samba

service smbd restart

# 结束

好了,我们使用树莓派+Samba创建NAS服务的基本设置已经完成了

# 参考