利用树莓派搭建简单的家庭网络存储服务器
随着手机的对性能极度渴求,现在高端ARM架构的芯片早就在性能上完成了对X86的反超,苹果的M1就是一个典型例子。因为大小核的设计以及ARM架构多年在低功耗领域的深耕,M1的轻载待机功耗比你牙膏厂的芯片低,峰值性能还高。在服务器领域,华为的鲲鹏ECS也在华为云商用了,超多核心设计非常适合一些倚重IO性能和吞吐量的场景。现在的ARM架构CPU在生态方面相对比较成熟,很多必要的软件和工具都有ARM64编译的版本。这让ARM服务器可以提供和X86一样丰富的玩法。
树莓派是由树莓派基金会推出的低功耗ARM架构开发板,可以运行完整的Linux发行版系统。我最近买了一个树莓派4b 2G内存的乞丐版来玩,想着先做一个网络存储服务器,带个硬盘,用来下载东西以及提供家庭多媒体串流。价格只要250元,不过在ARM开发板里不算便宜,比如说很多人买的斐讯N1盒子,刷机之后也可以做软路由啊,NAS啊,问题都不大。树莓派强在生态比较完善,不需要太折腾就有着大把最新的Linux发行版可供选择,成熟的社区也可以解决很多问题。而且4b的性能也强于N1,树莓派4b使用的是四核A72架构的CPU,这个架构也就是几年前手机芯片麒麟950上用的大核架构。而斐讯这类的电视盒子用的都是A55架构,这是目前ARM公司的公版小核架构,性能和A72差了一倍左右。
预备用于存储的硬盘
我首先选择了海康威视代理的希捷酷鹰st400vx000,这个硬盘比希捷零售的酷鹰便宜100元左右,但是参数差不多,都是三碟六头,5900转的监控盘,CMR非叠瓦。拼多多叠加黑卡到手价格428,真香。监控盘设计长时间运行,转速低噪音也低,稳定性强。我觉得非常适合拿来作为仓库盘,价格也没得说了。到手先用 hdtune 工具检测,没有坏道,全绿;通电0小时。希捷官网系列号验证也能通过。
硬盘盒我买了了优越者的Y-ST03004双盘位硬盘座,京东124元到手,特意选了type c接口,相比于常见的type b接口更耐用一点。
这里我要特意说一下,因为考虑到主要用于Linux下面的访问,所以我将硬盘分区格式化成了ext4文件系统,具体在Linux终端里通过fdisk命令创建分区,再通过mkfs命令格式化分区,这里不再赘述。这个文件系统是Linux的默认文件系统,NTFS文件系统在Linux内核下默认只读。现在Windows也可以做到原生访问ext4分区了。需要Windows 10开启WSL2,通过虚拟化加载完整的Linux内核,在此之后Windows可以原生读取Linux所支持的文件系统。这可能是Windows下最好的支持ext4文件系统的方案,其他方案我试了问题不少。具体方法的链接我放在这里:https://docs.microsoft.com/zh-cn/windows/wsl/wsl2-mount-disk 。
Linux下面有非常好的查看硬盘S.M.A.R.T.信息的软件,用于监控硬盘的运行情况,Debian系的发行版只需要输入以下命令:
sudo apt install smartmontools
完成安装,再通过以下命令:
sudo lsblk #这一步为了查找到自己的硬盘名称
sudo smartctl -a /dev/sda #这里的sda需要替换成前文找到的名称
就可以轻松查看自己的硬盘健康程度了。下面是我这块硬盘的信息,可见Linux下挂载硬盘设备的维护真的很简单,都是开源免费的方案。
刷写启动树莓派的TF卡
树莓派到手后就可以着手开始刷写系统固件了。我用的是树莓派官方的刷写工具,还需要一张TF卡以及一个TF卡读卡器。TF卡我就用多年前老手机剩下的8G卡,C10速度。因为树莓派官方的限制,C10到U1的速度就已经够了,再快没有区别。
随便选一个吧,因为我的内存卡比较小,所以我刷了不带桌面的64位服务器版本20.10,桌面可以后面再来装。可以刷后面的LTS版本,这个版本的官方维护时间会长一点,可以长时间不升级。
登录
固件刷写好后就可以插进树莓派的TF卡槽,然后上电启动,再连上网线。啰嗦一句,我用的是家里多余的USB PD充电头,树莓派 4b通过type c口供电,支持PD供电协议。
现在Winddows 10已经支持了SSH,所以可以直接打开PowerShell,然后输入以下命令,再设置好密码,
ssh ubuntu@192.168.50.81 #后面的地址改成你树莓派的内网地址,可在路由器的相关页面查看,最好把DHCP设成固定IP
你就登上去了。
换源
APT是Ubuntu自带的包管理软件,简单来说就是可以通过一些简单的命令就可以完成Linux软件包的安装、更新和卸载。但是Ubuntu默认服务器在中国大陆的访问速度过于感人,所以最好换成国内的镜像地址。这里我选择了清华大学的源,网上换源的教程很多,这里不再赘述。但是要注意一点,因为树莓派是ARM架构,所以应该用ubuntu-ports这个源,ubuntu源不支持ARM64,会有问题。
挂载硬盘
Linux文件系统不用DOS的盘符系统,也就是大家熟悉的什么C盘D盘,而是有一个根文件系统,名叫”/“。所有其他的文件和文件系统都挂载在根文件系统之下,比如”/dev“指的就是根文件系统下的dev目录,dev是device的缩写,一般用于表示此计算机上的硬件设备。”~“表示当前用户的用户目录,等价于”/home/用户名“。首先把硬盘盒插入树莓派的USB 3.0口,再在系统里挂载到挂载点,就可以访问了。一般挂载点需要是一个空的目录文件(可以理解为Windows上的文件夹)。如果硬盘没有格式化,那么参照我前文的两个命令,先分区和格式化。首先在自己的用户目录创建一个目录文件,用如下命令:
mkdir ~/cangku #cangku是我给挂载点起的名字,这个可以根据自身喜好随意
然后使用lsblk命令,查看树莓派上的块设备。
如上图,sda就是我的4T海康威视代理的希捷硬盘,而底下的sda1就是这个硬盘上唯一的分区。下面通过命令将sda1分区挂载到前文所述挂载点上,这一步就完成了。
sudo mount /dev/sda1 ~/cangku
安装并配置网络存储服务器相关软件
我安装了Samba和MiniDLNA两个软件。Samba是一个开源免费的支持SMB共享协议的软件,这个共享协议就是Windows在网络(网上邻居)里分享文件的协议。另外因为我家的LG电视是Web OS系统,所以不能安装安卓软件,然后LG的播放器只支持DLNA的媒体服务器,为了可以在电视上用原生播放器串流,我多装了一个MiniDLNA。从网络开销上来说,DLNA也比SMB性能高。
两个软件安装非常简单,只需要如下命令:
sudo apt install samba
sudo apt install minidlna
然后各自配置好两个软件的设置文件。
Samba的配置输入如下指令:
sudo vim /etc/samba/smb.conf
需要配置的参数比较多,我也没搞得太懂,网上也是五花八门,我的参数配置拿出来如下。反正能用。
[Global]
netbios name = 树莓派
#用于在 Windows 网上邻居上显示的主机名
security = user
#定义安全级别
map to guest = bad user
#将所有samba系统主机所不能正确识别的用户都映射成guest用户
dns proxy = no
#是否开启dns代理服务
wins support = yes
# Windows Internet Name Serving Support Section:
# WINS Support - Tells the NMBD component of Samba to enable it's WINS Server
[ubuntu]
#共享显示的目录名
path = /home/ubuntu/cangku
#实际共享路径
browsable = yes
#共享的目录是否让所有人可见
writable = yes
#是否可写
guest ok = no
#是否允许匿名(guest)访问,等同于public
create mask = 0777
#客户端上传文件的默认权限
directory mask = 0777
#客户端创建目录的默认权限
之后需要设置以下SMB分享的账户名和密码。账户名要和参数中的[ubuntu]一致,也叫ubuntu,你可以换成自己喜欢的名字。输入:
smbpasswd -a ubuntu #ubuntu就是添加的用户名,应该与配置中的一致,最好也与当前Linux用户一致
然后设置好密码,就完成了。
MiniDLNA的配置我就改了一处,输入命令:
sudo vim /etc/minidlna.conf
然后改动如下的一处,指定共享的目录地址就可以了。
在配置好两个软件之后需要重启服务以生效,使用如下命令:
sudo systemctl restart smbd.service
sudo systemctl restart minidlna.service
如果对命令行模式下修改配置文本感到麻烦和困难,可以安装桌面环境后,在图形界面下修改。
安装桌面环境
我之前说了,我安装的是不带桌面的系统,其实在后期我们完全可以自己装桌面环境。Ubuntu可选的桌面环境有很多,比如Ubuntu自己的基于Gnome的桌面,这个桌面功能比较多,自带了很多工具软件,还有基于Xfce的轻量版本桌面。树莓派有两个小型的HDMI接口,我没买这个线,所以准备远程桌面上去。远程桌面软件我选的是xrdp,简单来说就是Windows上的远程桌面协议,好处是电脑上不用单独装客户端。
sudo apt install ubuntu-desktop #Gnome桌面
sudo apt install xubuntu-desktop #Xfce轻量桌面,以上二选一就行
sudo apt install xrdp #远程桌面软件
然后需要配置以下xrdp:
echo "gnome-session" > ~/.xsession #Gnome桌面
echo "xfce4-session" > ~/.xsession #Xfce桌面,以上根据安装的桌面选择
重启一下服务
sudo systemctl restart xrdp
然后在Windows里搜索远程桌面,输入IP地址登录即可。可能会遇到问题,要碰一点运气,具体的一些可能会遇到问题的解决步骤见以下链接。相对来说Xfce对xrdp的兼容性较好。
我用的是Gnome桌面,成功之后效果就是这样的。讲真因为我内存只有2G所以挺卡,我的电脑原生分辨率是3000x2000,Ubuntu的Gnome桌面可以开启缩放,我觉得效果还不错。
总结
这次折腾我觉得还挺值的,二百多块钱,就可以得到一个待机功耗3瓦的网络服务器。因为是Linux系统,所以树莓派的玩法实在太多太多了。这次也只是随便搞了一下。
redfoxjin
校验提示文案
大码垃圾佬
校验提示文案
低调的大狮子
校验提示文案
白女票王
校验提示文案
馒头龟龟
校验提示文案
白开水怪
校验提示文案
wwowww
校验提示文案
hjhuuiokk
校验提示文案
dcl2501
校验提示文案
值友3455619103
校验提示文案
DarthZero
校验提示文案
絮沫纷飞
校验提示文案
值友4138290567
校验提示文案
宅猫嘟嘟
校验提示文案
值友5098700957
校验提示文案
值友9189586578
校验提示文案
值友9189586578
校验提示文案
野渡啊渡Yodel
另外,我之前用树莓派3b+ 配合 奥睿科的硬盘盒子 软件用的 可道云 最后发现硬盘挂上去一直在转 老怀疑他没休眠 也不知道哪个环节出的问题 后来就改成了黑群 你这个硬盘有这个问题吗
校验提示文案
真大宝
校验提示文案
CupTeen
校验提示文案
值友6222617096
校验提示文案
六道城主
校验提示文案
七宝崽子
校验提示文案
爱范儿-精彩2016
校验提示文案
不明真相的围观
校验提示文案
啊强qiang
校验提示文案
霸霸值到了
校验提示文案
chin_120
校验提示文案
似水流年度
校验提示文案
值友6269194039
校验提示文案
大只11
校验提示文案
[已注销]
校验提示文案
值友5845784524
校验提示文案
Kevin买买买买
校验提示文案
chir
校验提示文案
DarthZero
校验提示文案
卷毛大地
校验提示文案
敞篷皮卡
校验提示文案
收酒瓶子易拉罐
校验提示文案
张大妈特许我用此昵称
校验提示文案