Gist & Cookbook ...

小目标:每天能够提交一行代码 ...

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

吴亮's Avatar 2019-06-29

  1. 1. 背景
  2. 2. 树莓派安装
  3. 3. RAID设置
    1. 3.1. Step 1:安装mdadm
    2. 3.2. Step 2:确认硬盘都识别出来了
    3. 3.3. Step 3:检查硬盘是否已经被现有的 RAID 使用
    4. 3.4. Step 4:创建RAID分区
    5. 3.5. Step 5:创建 RAID md 设备
    6. 3.6. Step 6:给RAID设备创建文件系统
  4. 4. 用Samba来做目录共享
    1. 4.1. 安装Samba
    2. 4.2. 共享一个目录
    3. 4.3. 为Samba用户设置密码
    4. 4.4. 重启Samba
  5. 5. 结束
  6. 6. 参考

背景

如果不了解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,安装办法大致类似:

1
apt-get install mdadm

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

1
fdisk -l

看一下就可以

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

1
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了。

1
parted /dev/sde

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

1
set 1 raid on

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

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

Step 5:创建 RAID md 设备

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

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

1
cat /proc/mdstat

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

mkfs.ext4来格式化/dev/md0

1
mkfs.ext4 /dev/md0

然后挂载就搞定了哦

1
2
mkdir /mnt/raid0
mount /dev/md0 /mnt/raid0

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

1
chown -hR pi:pi /mnt/raid0

用Samba来做目录共享

安装Samba

1
apt-get install samba

共享一个目录

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
[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用户设置密码

1
smbpasswd -a pi

重启Samba

1
service smbd restart

结束

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

参考

本文作者 : 吴亮
本文使用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议
本文链接 : https://www.wuliang.me/set-up-nas-via-raspberry/

本文最后更新于 天前,文中所描述的信息可能已发生改变