LoginSignup
10
11

More than 3 years have passed since last update.

Nextcloud で大容量ファイルを扱ってみた

Last updated at Posted at 2019-08-02

はじめに

Nextcloudは、自前のサーバを使って手軽にセキュアなファイル共有環境を実現できるオンラインストレージです。
今回は、特に1つのサイズがとても大きいファイルとして、1ファイル 300Gbyte(=300×1024×1024×1024byte) のファイルのアップロード/ダウンロードが可能かどうかを試してみました。

前提条件

  • 一般的な運用を想定し、 HTTPS で問題なくアクセスできる環境を準備します。
  • Nextcloud は、Web、データベース等必要なものすべてを包含したオールインワン環境で準備します。

評価した環境

■サーバーインフラ

  • AWS EC2
    • CentOS 7
    • インスタンスタイプ: t3.large (2コア、メモリ8Gbyte)
  • AWS EBS
    • SSD(gp2) 1Tbyte
  • AWS 東京リージョンを利用

■ミドルウェア等

  • Nextcloud 16.0.3
  • Nginx 1.16 (Webサーバ)
  • PHP 7.3
  • MariaDB 10.3 (データベースサーバ)
  • Redis 5.0 (セッションサーバ)
  • Let's Encrypt (サーバ証明書)

■クライアント (Webブラウザ)

  • Firefox Quantum 68

■WAN

  • UCOM光 (最大 1Gbps)

検証の成果

■300Gbyte ファイルのアップロード

※アップロード中・・・image.png
↓↓↓
image.png

成功しました!

■300Gbyte ファイルのダウンロード

※ダウンロード中・・・image.png
↓↓↓
image.png

成功しました!

設定のポイント

Nextcloudにおける大容量ファイルの処理については、ファイルそのもののアップロード/ダウンロードに時間がかかるのはもちろん、ファイルアップロード後の Nextcloud 内部処理に結構時間を要します。

※補足:Nextcloud における大容量ファイルアップロードの仕組み
Nextcloud で大容量ファイルをアップロードする際には、ファイルを 10Mbyte(=10×1024×1024byte) 単位に分割してアップロードし、すべてのファイルがアップロードされた後、Nextcloud 内部で分割されたファイルを結合し、通常の保管ディレクトリにファイルを設置する動きをします。
このため、Nextcloud のファイル保管先のディスクは、目安とする最大アップロードファイルサイズと同じだけの空き領域を常に確保しておく必要があります。

サーバスペックや低IOPSのディスクを使っている場合にはこの時間がかなりかかりますので、検証しながら諸パラメータを見直していく必要があります。
利用される環境 (サーバー、ネットワーク) にもよりますが、今回は成功させるにあたり以下のパラメータを見直しております。

  • Nextcloud

    • filelocking.ttl
      • Configuration Parameters
      • Nextcloud で取り扱うファイルロックの生存時間となります。デフォルトで3600秒(=1時間) ですが、今回の検証では ファイルアップロード後の内部処理だけで1時間20分ほどかかり、処理中にファイルロックが更新されてしまったため、設定の見直しを行いました。
  • Nginx

  • PHP

  • PHP-FPM

    • request_terminate_timeout
      • php-fpm.conf のグローバル設定項目
      • php.ini の実行タイムアウト(=max_execution_time) がうまく動かないときには、このタイムアウト設定で PHP-FPMのプロセスを強制的に落とす。
      • 問題なければ「いつまでも待ってる」 0 を設定してもいい。

あとがき

今回の検証結果を受け、 Nextcloud ではとても柔軟にファイルを取り扱うことができるように設計されていることが確認できました。
昨今は1つのファイルのサイズがとても大きいものを扱う必要がある要件が増えてきておりますが、 Nextcloud の提案の幅を広げることができることが大きな収穫です。

※今回のように「1Tbyte ディスクを持つサーバ立ててちょっと試したいな~」ってときにサクッと環境が準備できるので、 AWS には本当にお世話になっております。

★この記事は、スタイルズ社のNextcloudサイトNextcloudブログにも公開しております!

10
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
11