我将在接下来的这三篇文章中讲述如何搭建一个简便、实用的 NAS 云盘系统。我在这个中心化的存储系统中存储数据,并且让它每晚都会自动的备份增量数据。本系列文章将利用 NFS 文件系统将磁盘挂载到同一网络下的不同设备上,使用 Nextcloud 来离线访问数据、分享数据。
本文主要讲述将数据盘挂载到远程设备上的软硬件步骤。本系列第二篇文章将讨论数据备份策略、如何添加定时备份数据任务。最后一篇文章中我们将会安装 Nextcloud 软件,用户通过 Nextcloud 提供的 web 界面可以方便的离线或在线访问数据。本系列教程最终搭建的 NAS 云盘支持多用户操作、文件共享等功能,所以你可以通过它方便的分享数据,比如说你可以发送一个加密链接,跟朋友分享你的照片等等。
最终的系统架构如下图所示:
硬件
首先需要准备硬件。本文所列方案只是其中一种示例,你也可以按不同的硬件方案进行采购。
最主要的就是树莓派 3,它带有四核 CPU、1G RAM,以及(比较)快速的网络接口。数据将存储在两个 USB 磁盘驱动器上(这里使用 1TB 磁盘);其中一个磁盘用于每天数据存储,另一个用于数据备份。请务必使用有源 USB 磁盘驱动器或者带附加电源的 USB 集线器,因为树莓派无法为两个 USB 磁盘驱动器供电。
Welcome to fdisk (util-linux 2.29.2). Changes will remain in memory only, until you decide towrite them. Be careful beforeusing the write command.
Command (m for help): o Created a new DOS disklabel with disk identifier 0x9c310964.
Command (m for help): n Partitiontype p primary (0primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): p Partition number (1-4, default1): First sector (2048-1953525167, default2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-1953525167, default1953525167):
Created a newpartition1oftype'Linux'andof size 931.5 GiB.
pi@raspberrypi3:~ $ cd/nas/data pi@raspberrypi3:/nas/data $ cd/nas/backup pi@raspberrypi3:/nas/backup $ mount <...> /etc/auto.usb on /nas type autofs (rw,relatime,fd=6,pgrp=463,timeout=300,minproto=5,maxproto=5,indirect) <...> /dev/sda1 on /nas/data type ext4 (rw,relatime,data=ordered) /dev/sdb1 on /nas/backup type ext4 (rw,relatime,data=ordered)
首先进入对应目录以确保 autofs 能够挂载设备。autofs 会跟踪文件系统的访问记录,并随时挂载所需要的设备。然后 mount 命令会显示这两个 USB 磁盘驱动器已经挂载到我们想要的位置了。
设置 autofs 的过程容易出错,如果第一次尝试失败,请不要沮丧。你可以上网搜索有关教程。
挂载网络存储
现在你已经设置了基本的网络存储,我们希望将它安装到远程 Linux 机器上。这里使用 NFS 文件系统,首先在树莓派上安装 NFS 服务器: