使用亚马逊FSx for NetApp ONTAP + Nextcloud 创建最强大的云存储!(第一部分)

首先

这篇文章介绍了利用NetApp的存储操作系统ONDAP的功能来构建自己的云存储的想法,并提供构建备忘录。

提到云存储,您是否有一种能够通过浏览器和移动设备进行访问的基于互联网的文件共享服务的印象呢?例如,Box和OneDrive就很有名。

据说,虽然它是一项方便易用的便利服务,但作为IT管理员,也存在这样的挑战。

    • データが国外に保存されるので、コンプライアンス的に問題

 

    • 動画や画像の大量保存には不向き(容量や保存できるファイルサイズが限られている)

 

    • 移行が大変

 

    • 使い勝手の大幅な変化(Excelで作った共有ツール等が動かない)

 

    ランサムウェア・ウィルス対策が難しい

有些人可能希望进行云迁移,但由于类似的问题而放弃,或者选择同时保留一部分的本地部署。

让我们自己构建可以解决这样问题(也许可能的)云存储服务。

我将以这个主题分几次发帖。

亚马逊为NetApp ONTAP提供的FSx

Amazon FSx for NetApp ONTAP(FSxN)是将NetApp公司在本地环境中培养了30年的专用存储操作系统”ONTAP”移植到云环境中的产品。ONTAP提供非常强大和高速的存储服务。

通过使用FSxN作为存储,可以期望以下效果。

    • [便利] Windows クライアントからは、従来型のファイルサーバーとしてアクセス可能

 

    • [安全] オプションのランサムウェア対策サービスと連携し、ユーザー単位での検知やレポーティング

 

    • [高速] オンプレや別サイトにキャッシュして、アクセスを高速化

 

    [コストダウン] 効率化機能による格納容量の削減、非アクティブなデータの自動階層化、キャッシュによる帯域削減

只有独立的浏览器或移动设备应用没有访问功能。为了弥补这一点,我们将构建Nextcloud作为前端服务器。

下一个云端解决方案

Nextcloud是一款开源软件,用于构建在线存储。它还可以将企业的存储在线化在本地环境中实现。尽管它可以与各种数据源兼容,但本文将使用AWS上的FSxN作为存储介质,因此Nextcloud服务器也将在AWS的EC2上进行构建。

构成形象

image.png

我们将为用户数据提供FSxN作为存储设备。

FSxN有一个称为存储虚拟机的概念,可以将文件系统“容器化”,根据用途提供独立的存储。数据存放的卷会在存储虚拟机内部创建。

如果要类比的话,
文件系统=餐桌
存储虚拟机=饭盆
卷=碗
这样的感觉吧。

本次我们要创建一个存储虚拟机,并通过NFS作为Nextcloud用户数据存储库进行使用。

Nextcloud的设计是通过http/https通过互联网连接,因此我们需要在公共子网上设置服务器并分配全球IP地址。
我个人习惯及喜好,选择了Ubuntu 22.04进行搭建。
作为Web服务器我也有我的偏好,因此我选择了Apache2。
由于需要使用MySQL/MariaDB等作为数据库,因此我也将其一同安装在了服务器上。

操作步骤

建立FSxN

从FSx控制台选择FSx for NetApp ONTAP,并创建文件系统。
如果只是想尝试一下,使用快速创建没有问题。
使用快速创建时,存储虚拟机和卷也会在此时以默认值创建。

将各个设定项放入,等待大约30分钟烘烤,即可完成。

建立Nextcloud服务器

创建 EC2 实例

我们将在EC2上搭建Nextcloud服务器。我们将它放置在公共子网中并分配一个全局IP地址。

这篇文章是按照以下结构组成的。

    • インスタンス : t3.micro (必要最低限)

 

    OS : Ubuntu 22.04 LTS

Linux的配置

使用apt命令更新到最新的软件包。
更新后也会重新启动。

$ sudo apt update
$ sudo apt upgrade -y
$ sudo reboot

稍后将添加所需的软件包。

$ sudo apt install build-essential pkg-config tcl -y
$ sudo apt install nfs-client -y

由于MariaDB需要特定版本的libssl,所以需要进行安装。

sudo dpkg -i libssl1.1_1.1.0g-2ubuntu4_amd64.deb

将FSxN的卷通过NFS进行挂载。

$ sudo mkdir /mnt/nextcloud_data
$ sudo mount -t nfs -o vers=v3 [NFS_IP]:/vol1 /mnt/nextcloud_data

[NFS_IP] 是从AWS控制台上选择FSx > 存储虚拟机的”SVM 名”后确认的”NFS IP 地址”。

为了在EC2重新启动时自动挂载,我会在fstab中添加以下内容。

以下是/etc/fstab的内容。

[NFS_IP]:/vol1  /mnt/nextcloud_data  nfs  vers=3  0  0

我将安装和配置Apache

$ sudo apt install apache2 -y
$ cd /etc/apache2/mods-available
$ sudo a2enmod rewrite
$ sudo a2enmod ssl
$ sudo a2ensite default-ssl

编辑Nextcloud网站的配置文件。

$ sudo vi /etc/apache2/sites-available/nextcloud.conf

【nextcloud.conf配置内容】

<VirtualHost *:80>
  DocumentRoot /var/www/html/nextcloud/
  ServerName 【サーバーのIPアドレス】

  <Directory "/var/www/html/nextcloud/">
    Require all granted
    AllowOverride All
    Options FollowSymLinks MultiViews
  </Directory>
</VirtualHost>

Apache的配置和启动的其余部分

$ cd /etc/apache2/sites-available/
$ sudo a2ensite nextcloud
$ sudo a2dissite 000-default

$ sudo systemctl enable apache2.service
$ sudo systemctl start apache2.service

PHP 的安装

$ sudo add-apt-repository ppa:ondrej/php -y
$ sudo add-apt-repository ppa:ondrej/apache2 -y
$ sudo apt install php7.4 php7.4-curl php7.4-dom php7.4-gd php7.4-mbstring php7.4-zip php7.4-mysql php7.4-bz2 php7.4-intl php7.4-apcu php7.4-redis php7.4-imagick php7.4-bcmath php7.4-gmp php7.4-ldap php7.4-smbclient -y

更改 PHP 参数

$ sudo sed -i "s/^max_execution_time = 30/max_execution_time = 60/" /etc/php/7.4/apache2/php.ini
$ sudo sed -i "s/^memory_limit = 128M/memory_limit = 512M/" /etc/php/7.4/apache2/php.ini

安装MariaDB

$ sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'
$ sudo add-apt-repository 'deb [arch=amd64] http://mariadb.mirror.glo
bo.tech/repo/10.5/ubuntu' focal main -y

$ sudo apt install mariadb-server mariadb-client -y

$ sudo systemctl enable mariadb.service
$ sudo systemctl start mariadb.service

创建数据库。

$ sudo mysql_secure_installation

我会用Wizard形式回答一些问题。
只需要回答以下问题中的第2个问题“切换到unix_socket认证”和第3个问题“改变root密码?”选择“n”即可。
其他问题可以通过按下enter继续。

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n]
 ... skipping.


You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] n
 ... skipping.

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n]
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n]
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n]
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n]
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

创建一个用于Nextcloud的数据库。

$ sudo mysql -uroot

CREATE DATABASE nextcloud DEFAULT CHARACTER SET utf8mb4;
CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'p@ssw0rd';
GRANT ALL ON nextcloud.* TO "nextcloud"@"localhost";
SHOW GRANTS FOR 'nextcloud'@'localhost';
quit;

我要安装Nextcloud。

$ cd /tmp

$ wget https://download.nextcloud.com/server/releases/nextcloud-24.0.5.tar.bz2
$ wget https://download.nextcloud.com/server/releases/nextcloud-24.0.5.tar.bz2.md5
$ md5sum -c nextcloud-24.0.5.tar.bz2.md5 < nextcloud-24.0.5.tar.bz2

$ cd /var/www/html
$ sudo tar -xvf /tmp/nextcloud-24.0.5.tar.bz2

$ sudo chown -R www-data:www-data /var/www/html/nextcloud
$ sudo chown www-data:www-data /mnt/nextcloud_data

$ sudo systemctl restart apache2.service

下一个云端的配置

通过浏览器连接到Nextcloud服务器。
首次连接时会进入初始设置界面。

image.png

以下是必要的参数。

設定項目設定例ユーザー名cloudadminパスワードp@ssw0rdデータフォルダー/mnt/nextcloud_dataデータベースのユーザー名nextcloudデータベースのパスワードp@ssw0rdデータベース名nextcloudホスト名localhost:3306

输入后,点击“安装”。然后设置就完成了。

在管理界面上创建用户时,将在FSxN中的”nextcloud_data”卷下创建一个用于用户的文件夹。这个文件夹可以用来存储用户的数据。

考虑到 FSxN 的默认设置,它能自动创建卷的快照备份。因此,即使不小心误删数据,也可以立即恢复,非常安心。
关于如何使用这方面的功能,我认为只需要搜索一下就能很快找到相关信息,请自行尝试。

最后一句 yī jù)

在下一篇文章中,我们将介绍如何将FSxN和Nextcloud与AD进行集成,以便将其配置为可以通过PC客户端访问的文件服务器。

请提供相关链接。

FSxN是亚马逊AWS提供的一种云存储服务,专注于NetApp ONTAP解决方案。

下一代云端存储解决方案:Nextcloud

Homepage

广告
将在 10 秒后关闭
bannerAds