搭建 NAS 服务有什么好的方案吗?

  • 回答 (5)
  • 关注 (0)
  • 查看 (248)

最近入坑 NAS ,毕竟数据无价,存储备份很重要。求问下有什么方案可以推荐下吗?

hksjs梅hksjs梅提问于
ywgx

杭州悠云软件科技有限公司 · 负责人 (已认证)

一体化运维管控平台修改于

源代码

可以拖拽文件夹或者文件上传

功能列表:

  1. 文件列表
  2. 文件上传
  3. 文件下载
  4. 文件删除

可以当成自己文件的中转站点,临时上传,复制链接地址,随时下载

支持 # curl -F 'x=@filename' dl.xabc.io 上传文件

TCS-F回答于

【方案一、云机---COS存储桶海量数据NAS存储方案】

这里有一种基于腾讯云COS存储桶-----云机的NAS架构存储方案,单目录可挂载存储桶到云机上,实现单目录存储1PB!有兴趣您可以参考以下链接:

https://cloud.tencent.com/developer/article/1366968

【方案二、本地IDC机房---腾讯云COS存储桶海量数据NAS存储方案】

您可以继续关注“渠道技术圈”,后续我将方案会发布到这个上面,谢谢。

kjdkj4d5程序员回答于

推荐用Seafile来搭建 ,因为它是开源的,你可以把它部署在私有云的环境中,作为私有的企业网盘。Seafile 支持 Mac、Linux、Windows 三个桌面平台,支持 Android 和 iOS 两个移动平台。很赞。

准备数据库

由于Seafile需要SQLite或MySQL数据库引擎,注意地域选择靠近你服务器地区的数据库,我的服务器在成都,所以我这里选择成都。其他保持默认即可,

接下来会进入我们的系统的数据库系统的控制台,记录下系统分配的内网地址。然后点击初始化按钮。端口保持不变,设置数据库账户及密码,然后确定即可。

新建CFS服务

同样,我们也需要将文件存储到CFS服务上,通过在腾讯云控制台新建CFS服务。点击新建按钮,然后填下你CFS服务的名称,地域(建议与你CVM部署在同一地域下),比如你服务器部署在成都,则地域填写成都即可。

点击确定后,我们就可以开始使用CFS服务啦!

我们点击系统分配给你服务的ID,获取其他连接信息。

接下来,我们就可以在我们的服务器上挂载CFS服务啦,不过我们要安装一个名为nfs-common的服务。使用下面的命令进行安装。

sudo apt-get install nfs-common -y

安装完成后,我们需要进行挂载,首先创建一个文件夹,名称可以自定义,我这里以qcloud-cfs为例,目录创建在ubuntu用户的根目录下,为了方便数据写入,我给这个目录赋予可写入权限。

cd /home/ubuntu/
mkdir qcloud-cfs
sudo chmod 777 qcloud-cfs
cd qcloud-cfs
pwd

执行完pwd命令,系统输出/home/ubuntu/qcloud-cfs/,这就是你当前创建的需要挂载的目录,接下来我们进行挂载,使用mount命令即可,具体如下

sudo mount -t nfs -o vers=4 10.**.**.33:/ /home/ubuntu/qcloud-cfs/

/home/ubuntu/qcloud-cfs/是你在本地自己创建的目录,/是指你在CFS文件系统里面创建的根目录。10.**.**.33是腾讯云CFS系统分配给你的IP。执行完成后,你的CFS系统将会自动被挂载在/home/ubuntu/qcloud-cfs/目录下,后面我们配置Nextcloud将数据全部保存在/home/ubuntu/qcloud-cfs/目录,也就是会自动保存在腾讯云CFS上。CFS并非免费产品,其是收费产品,具体计费情况如下表,如果你数据较少,我推荐你用CVM自带的云硬盘,如果数据较大,还是推荐使用CFS产品。目前CFS还是有免费优惠的,截止到 2018 年 10 月 31 日,每个 CFS 的用户(主账户和协作者账户视为一个用户 - 相同 APPID)可以享受 10 GB 的免费存储量(不区分是 NFS 文件系统还是 CIFS/SMB 文件系统),每个计费周期内若用量超出免费额度,超出部分将按阶梯价格收取费用。

地区

中国大陆

香港

阶梯价格

0 ~ 10TB 0.35 元/GB/月 (0.00048611 元/GB/时)

1 TB 以内 0.63 元/GB/月 (0.00087500 元/GB/时)

10 TB以上 0.33 元/GB/月 (0.00045833 元/GB/时)

1 TB - 10 TB 0.58 元/GB/月 (0.00080556 元/GB/时)

10 TB - 50TB 0.52 元/GB/月 (0.00072222 元/GB/时)

50 TB 以上 0.46 元/GB/月 (0.00063889 元/GB/时)

连接服务器

当一切创建完,我们就可以开始安装Seafile 了,首先检查你的服务器安全组设置,确保其开放SSH使用的22和HTTP访问使用8000端口及同步文件的8002端口。然后我们通过SSH软件登录服务器,如果你本地电脑是Windows情况下可以使用putty等软件,Linux及MacOS请使用终端进行连接。

我这里以MobaXterm的终端软件为例,点击左上角的Session按钮,选择以SSH方式连接,在Remote host输入你的服务器的公网IP地址,Specify username输入你的用户名,如果你的服务器是Ubuntu系统,请输入ubuntu如果是CentOS系统则输入root。这里我们是ubuntu系统,所以我们输入ubuntu

点击OK后,输入你设置的密码(默认不显示),即可连接到你的服务器,你会看到类似下面的页面。

这样,你就进到你的服务器的页面了。

安装 Seafile 所需环境

如果你的CVM系统为Ububtu系统,请查看Ububtu系统安装教程,如果系统为CentOS,请参考CentOS操作系统安装教程,本文以Ubuntu Server 16.04.1 LTS为例。

Ubuntu系统

这里我们使用apt包管理器进行安装,安装之前,我们首先需要使用sudo apt-get update更新apt包管理器列表。然后在安装python及其 Seafile 所需要的环境。最后使用pip工具安装 Seafile 所需要的视频渲染动画插件moviepy具体代码如下

sudo apt-get update
sudo apt-get install python python2.7 libpython2.7 python-setuptools python-imaging python-ldap python-urllib3 ffmpeg python-pip python-mysqldb python-memcache -y
sudo pip install pillow moviepy

执行完命令后,你可能需要等待一段时间,系统将会自动安装所需要的文件。

CentOS系统

这里我们使用yum包管理器进行安装,安装之前,我们首先需要使用yum -y install epel-release安装epel-release第三方数据包。然后在安装python及其 Seafile 所需要的环境。最后使用pip工具安装 Seafile 所需要的视频渲染动画插件moviepy具体代码如下

yum -y install epel-release
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
yum -y install python-imaging MySQL-python python-memcached python-ldap python-urllib3 ffmpeg ffmpeg-devel
pip install pillow moviepy

执行完命令后,你可能需要等待一段时间,系统将会自动安装所需要的文件。

下载 Seafile 源码

我们可以在这里下载Seafile 源码安装文件。截止本文撰写日期,最新版的系统为6.3.3 64位版本。我们获取其地址后,通过wgetcurl命令将源码包下载下来。

复制完链接后,在你的服务器执行下面的代码,注意替换链接地址

sudo wget http://seafile-downloads.oss-cn-shanghai.aliyuncs.com/seafile-server_6.3.3_x86-64.tar.gz

这时,我们就将文件下载到服务器了

部署Seafile

接下来,我们需要解压这个文件,为了方便后续升级,建议按照下面的步骤去设置目录结构。我们新建一个名为Seafile的目录,当然,这个名字是自定义的,我这里只是用Seafile演示,请执行下面的命令。

mkdir Seafile
mv seafile-server_* Seafile
cd Seafile
tar -zxvf seafile-server_*
mkdir installed
mv seafile-server_* installed

这时,你的文件目录类似如下

ubuntu@VM-0-7-ubuntu:~$ tree Seafile -L 2
Seafile
├── installed
│   └── seafile-server_6.3.3_x86-64.tar.gz
└── seafile-server-6.3.3
    ├── check_init_admin.py
    ├── reset-admin.sh
    ├── runtime
    ├── seaf-fsck.sh
    ├── seaf-fuse.sh
    ├── seaf-gc.sh
    ├── seafile
    ├── seafile.sh
    ├── seahub
    ├── seahub.sh
    ├── setup-seafile-mysql.py
    ├── setup-seafile-mysql.sh
    ├── setup-seafile.sh
    └── upgrade

这样设计目录的好处在于

  • 和 seafile 相关的配置文件都可以放在 Seafile目录下,便于集中管理。
  • 后续升级时,你只需要解压最新的安装包到 Seafile 目录下。

安装Seafile

接下来就可以进行安装了,我们找到上一步新建的目录,然后开始安装。

cd seafile-server-*
sudo ./setup-seafile-mysql.sh

输出如下:

ubuntu@VM-0-7-ubuntu:~/Seafile/seafile-server-6.3.3$ sudo ./setup-seafile-mysql.sh
Checking python on this machine ...
  Checking python module: setuptools ... Done.
  Checking python module: python-imaging ... Done.
  Checking python module: python-mysqldb ... Done.
​
-----------------------------------------------------------------
This script will guide you to setup your seafile server using MySQL.
Make sure you have read seafile server manual at
​
        https://github.com/haiwen/seafile/wiki
​
Press ENTER to continue
-----------------------------------------------------------------

系统示意我们按ENTER键继续,我们按下键盘上的回车键,第一个弹出的是server name这里我们输入自己想定义的服务器名称,我这里填写为qcloud-Seafile,接下来要求填写你的服务器的IP或者指向的域名,我这里填写自己CVM的IP123.456.789.123。接下来系统要求填写你存放文件数据的目录,因为我们要放在CFS上,则填写CFS映射的文件夹\home\ubuntu\qcloud-cfs。最后填写你服务器文件同步端口,该端口用于文件同步,请使用默认的 8082,不能更改。然后,服务器将要求你选择创建数据库的方式。

-------------------------------------------------------
Please choose a way to initialize seafile databases:
-------------------------------------------------------
​
[1] Create new ccnet/seafile/seahub databases
[2] Use existing ccnet/seafile/seahub databases
  • 如果选择1, 你需要提供根密码. 脚本程序会创建数据库和用户。
  • 如果选择2, ccnet/seafile/seahub 数据库应该已经被你(或者其他人)提前创建。

这里我们是新建,则选择1,选择完成后,系统要求你输入数据库地址,我们这里输入准备数据库步骤中创建数据库的内网地址。我这里填172.27.16.14,接下来会询问你使用那个账户运行MySQL,默认是root,我们直接点回车,接下来会询问你的数据库的端口,我们依然保持默认3306端口,接下来,输入你的数据库的密码。默认密码是不显示的。输入完成后,系统会为你创建一个名为seafile的用户,我们保持默认即可,之后输入你为seafile用户创建的密码。创建完成后系统要求你创建ccnet-db数据库,我们保持默认的ccnet-db就行。接下来要求创建seafile-server的数据库,我们依然保持默认。接下来还要创建seahub数据库,仍保持默认就OK。一切完成后,系统将输出下面的内容。

---------------------------------
This is your configuration
---------------------------------
​
    server name:            qcloud-Seafile
    server ip/domain:       123.456.789.123
​
    seafile data dir:       \home\ubuntu\qcloud-cfs
    fileserver port:        8082
​
    database:               create new
    ccnet database:         ccnet-db
    seafile database:       seafile-db
    seahub database:        seahub-db
    database user:          seafile
​
​
---------------------------------
Press ENTER to continue, or Ctrl-C to abort
---------------------------------
​

我们按下键盘上的Enter键继续。不久,你会发现服务器创建完成。

启动 Seafile 服务器

现在,我们打开seafile-server-6.3.3目录,使用下面的命令启动启动 Seafile 服务器和 Seahub 网站。

  • 启动 Seafile 服务:
sudo ./seafile.sh start
  • 启动 Seahub 网站 (默认运行在8000端口上)
sudo ./seahub.sh start

你第一次启动 seahub 时,seahub.sh 脚本会提示你创建一个 seafile 管理员帐号。会要求你输入电子邮箱,管理密码及重新输入密码。请如实输入就行。输入完成后,你就通过访问http://你服务器的地址:8000来打开Seafile了。

输入你刚创建的用户名及密码,就可以访问 seafile 管理页面了。

关闭/重启 Seafile 和 Seahub

关闭

./seahub.sh stop # 停止 Seahub
./seafile.sh stop # 停止 Seafile 进程

重启

./seafile.sh restart # 停止当前的 Seafile 进程,然后重启 Seafile
./seahub.sh restart  # 停止当前的 Seahub 进程,并在 8000 端口重新启动 Seahub

如果停止/重启的脚本运行失败

大多数情况下 seafile.sh seahub.sh 脚本可以正常工作。如果遇到问题:

  • 使用pgrep命令检查 seafile/seahub 进程是否还在运行中
pgrep -f seafile-controller # 查看 Seafile 进程
pgrep -f "seahub" # 查看 Seahub 进程
  • 使用pkill命令杀掉相关进程
pkill -f seafile-controller # 结束 Seafile 进程
pkill -f "seahub" # 结束 Seafile 进程
或有或无习惯成就一切回答于

Nextcloud 吧。其功能与Dropbox相近,但Nextcloud是自由及开放源代码软件,每个人都可以在私人服务器上安装并运行它。与Dropbox等专有服务相比,Nextcloud的开放架构可以利用应用程序的方式在服务器上新增额外的功能,可以完全掌控自己的数据。同时,Nextcloud可与在Windows、macOS或是多种Linux散布版上运行的客户端同步。

连接服务器

首先检查你的服务器安全组设置,确保其开放SSH使用的22和HTTP访问使用80端口。然后我们通过SSH软件登录服务器,如果你本地电脑是Windows情况下可以使用putty等软件,Linux及MacOS请使用终端进行连接。

我这里以MobaXterm的终端软件为例,点击左上角的Session按钮,选择以SSH方式连接,在Remote host输入你的服务器的公网IP地址,Specify username输入你的用户名,如果你的服务器是Ubuntu系统,请输入ubuntu如果是CentOS系统则输入root。这里我们是ubuntu系统,所以我们输入ubuntu

点击OK后,输入你设置的密码(默认不显示),即可连接到你的服务器,你会看到类似下面的页面。

这样,你就进到你的服务器的页面了。

安装LNMP集成环境

LNMP是Linux+Nginx+MySql+PHP的简称,安装LNMP的步骤比较冗长,具体详细步骤可以参考如何搭建 LNMP 网站服务环境自己动手搭建,本文只简述基础安装步骤。

首先我们安装Nginx,具体命令如下

sudo apt-get update
sudo apt-get install nginx -y

安装完Nginx后,我们就可以继续安装MySQL服务了,请按照下面步骤继续

sudo apt-get install mysql-server -y

安装程序将要求你输入你的数据库root用户的密码,如图。

img

这里请输入你想为root用户设定的密码,我这里输入passwd为例。自己设置的时候请设置较复杂的密码。输入完成后按下回车,系统将要求你再次输入一遍刚才设定的密码,同样,输入完成后我们按下回车。安装完成mysql后,我们就可以继续安装php开发环境了。这里我们安装php-fpm、php-mysql相关软件。

sudo apt-get install php php-fpm php-mysql -y

这里注意,你的php版本一定要是7.0以上版本,如果使用的是Ubuntu 16.04.1 LTS系统的话,按照本教程安装的php是7.0版本。最后一步,我们需要配置Nginx支持PHP,可以按照下面的步骤继续。首先我们需要进入Nginx配置目录。在/etc/nginx/conf.d/这个目录下。

ubuntu@VM-0-7-ubuntu:~$ cd /etc/nginx/conf.d/
ubuntu@VM-0-7-ubuntu:/etc/nginx/conf.d$

接下来我们要新建一个名为default.conf的配置文件,你可以使用任意编辑器来编写,这里我使用nano编辑器进行编写,可以使用下面的命令。

sudo nano default.conf

然后复制下面的配置到编辑器

server {
    listen       80;
    root         /usr/share/nginx/html;
    index  index.php index.html index.htm;
    location / {
      if (-f $request_filename/index.html){
    rewrite (.*) $1/index.html break;
      }
      if (-f $request_filename/index.php){
          rewrite (.*) $1/index.php;
      }
      if (!-f $request_filename){
          rewrite (.*) /index.php;
      }
        try_files $uri $uri/ =404;
    }
                                                        
    location ~ .php$ {
        fastcgi_pass  unix:/run/php/php7.0-fpm.sock;
        # 如果你的php版本低于7.0,请将unix:/run/php/php7.0-fpm.sock;替换为127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

然后按下键盘上的Ctrl+O键然后按下回车保存,然后按下Ctrl+W退出。接下来我们需要删除nginx默认的配置文件,不然我们定义的这个文件运行会报错。首先打开/etc/nginx/sites-available目录,然后删除默认的default的文件。具体操作如下:

cd /etc/nginx/sites-available
sudo rm default

然后我们需要重启nginx以确保其正常运行,可以使用sudo service nginx restart这个命令。

sudo service nginx restart

没有报错证明系统一切正常,我们可以继续部署Nextcloud了。

新建CFS服务

我们可以通过在腾讯云控制台新建CFS服务。点击新建按钮,然后填下你CFS服务的名称,地域(建议与你CVM部署在同一地域下),比如你服务器部署在成都,则地域填写成都即可。

点击确定后,我们就可以开始使用CFS服务啦!

我们点击系统分配给你服务的ID,获取其他连接信息。

接下来,我们就可以在我们的服务器上挂载CFS服务啦,不过我们要安装一个名为nfs-common的服务。使用下面的命令进行安装。

sudo apt-get install nfs-common -y

安装完成后,我们需要进行挂载,首先创建一个文件夹,名称可以自定义,我这里以qcloud-cfs为例,目录创建在ubuntu用户的根目录下,为了方便数据写入,我给这个目录赋予可写入权限。

cd /home/ubuntu/
mkdir qcloud-cfs
sudo chown www-data:www-data qcloud-cfs
cd qcloud-cfs
pwd

执行完pwd命令,系统输出/home/ubuntu/qcloud-cfs/,这就是你当前创建的需要挂载的目录,接下来我们进行挂载,使用mount命令即可,具体如下

sudo mount -t nfs -o vers=4 10.**.**.33:/ /home/ubuntu/qcloud-cfs/

/home/ubuntu/qcloud-cfs/是你在本地自己创建的目录,/是指你在CFS文件系统里面创建的根目录。10.**.**.33是腾讯云CFS系统分配给你的IP。执行完成后,你的CFS系统将会自动被挂载在/home/ubuntu/qcloud-cfs/目录下,后面我们配置Nextcloud将数据全部保存在/home/ubuntu/qcloud-cfs/目录,也就是会自动保存在腾讯云CFS上。CFS并非免费产品,其是收费产品,具体计费情况如下表,如果你数据较少,我推荐你用CVM自带的云硬盘,如果数据较大,还是推荐使用CFS产品。目前CFS还是有免费优惠的,截止到 2018 年 10 月 31 日,每个 CFS 的用户(主账户和协作者账户视为一个用户 - 相同 APPID)可以享受 10 GB 的免费存储量(不区分是 NFS 文件系统还是 CIFS/SMB 文件系统),每个计费周期内若用量超出免费额度,超出部分将按阶梯价格收取费用。

地区

中国大陆

香港

阶梯价格

0 ~ 10TB 0.35 元/GB/月 (0.00048611 元/GB/时)

1 TB 以内 0.63 元/GB/月 (0.00087500 元/GB/时)

10 TB以上 0.33 元/GB/月 (0.00045833 元/GB/时)

1 TB - 10 TB 0.58 元/GB/月 (0.00080556 元/GB/时)

10 TB - 50TB 0.52 元/GB/月 (0.00072222 元/GB/时)

50 TB 以上 0.46 元/GB/月 (0.00063889 元/GB/时)

部署Nextcloud

LNMP环境搭建完成及新建CFS服务后,就可以部署Nextcloud网盘服务啦~!

下载Nextcloud

在上一步中,我们已经获取到了上传Nextcloud所需要的FTP服务账户及密码,接下来,就是下载安装Typecho的安装文件了,我们点击这里下载,点击Download Nextcloud按钮即可开始下载,本文撰写时,最新版是14.0.3版本。

接下来,将文件解压到本地,我们就可以继续下一步了。

上传Nextcloud

这一步,我们将Nextcloud安装包通过MobaXterm终端上传到服务器,操作很简单,只需要点击上传按钮,然后选择你的Nextcloud即可。

上传完成后,我们需要将刚上传的文件解压到你在LNMP中设置的root目录,我们这里定义的目录是/usr/share/nginx/html,解压完成后,我们需要将源码文件从nextcloud中抽取出来,并给你的网站目录赋予可执行权限。

sudo unzip nextcloud-14.0.3.zip -d /usr/share/nginx/html
sudo mv /usr/share/nginx/html/nextcloud/* /usr/share/nginx/html/
sudo chown -R www-data:www-data /usr/share/nginx/html

接下来,我们就可以访问你的服务器IP地址来安装Nextcloud了。

安装Nextcloud

当我们尝试访问你部署的服务器http://你的服务器IP/index.php,我们发现Nextcloud会报错,需要我们安装PHP zip、PHP dom、PHP XMLWriter、PHP XMLReader、PHP libxml、PHP mb multibyte、PHP GD、PHP SimpleXML、PHP cURL这些模块,具体如下。

我们可以使用下面的命令安装这些模块。

sudo apt-get install php7.0-zip php7.0-xml php7.0-curl php7.0-gd php7.0-mbstring -y

安装完成后,我们就可以正常打开http://你的服务器IP/index.php继续安装了,系统要求你提供管理账户、密码、数据库用户名、数据库密码、数据库名、及数据库地址。管理用户名及密码自定义,但一定要记清楚,这里以adminpasswd为例。数据目录就是存放你文件的目录,这里填写我们映射CFS文件的目录/home/ubuntu/qcloud-cfs/。数据库用户名填写root密码填写你安装数据库时候设置的密码。数据库名自定义,我这里以nextcloud为例。数据库地址默认localhost即可。

设置完成后,点击安装完成按钮,即可完成安装。接下来,我们就可以使用Nextcloud服务啦!

chenasxz晚睡癌。回答于

腾讯云 COS 有提供一个桌面工具 cosbrowser,可以可视化管理 COS 存储桶文件,支持 Windows、macOS。

一、下载软件

首先在 https://s3browser.com 下载安装包,并打开安装。

二、添加账户

删除

点击 Add new account

打开软件点击“Accounts”->“Add new account”

删除

添加账户弹窗

在弹出的窗口设置上图四个红框选项:

Account Type:选择 S3 Compatible Storage

REST Endpoint:填写格式如 cos.<Region>.myqcloud.com 的域名,其中 <Region> 填写想要访问的园区如广州园区填写 cos.ap-guangzhou.myqcloud.com,所有园区名称看园区列表 ,只会列出该园区的存储桶。

Access Key ID:填写腾讯云 SecretId,具体查看 云API控制台

Access Key ID:填写腾讯云 SecretKey

设置完保存,打开账户。

三、上传下载文件

删除

存储桶详情

点击要管理的存储桶,进去便可以上传、下载、删除文件,支持拖拽上传文件/文件夹

四、高级功能

删除

s3browser 高级功能

存储桶和文件菜单下有很多高级功能,功能很完善,其中有一部分不完全兼容。

五、代理配置

删除

s3browser 设置代理

扫码关注云+社区