NASか、クラウドストレージか。そしてフリーか、メーカーか。

標題の件。
いつもリプレースとかで悶々と考えたり調べたりするので、つらつらとまとめてみた。

フリーのNAS系OS

後者で触れる「OS 上のアプリとして動く『クラウドストレージ』ソフト」とは異なり、OS レベルで NAS としての機能を提供する。
よって OS インストールと同時に、NAS としての機能も併せてインストールされる。

記事作成時点での主な OS は、以下。

  • TrueNAS(旧 FreeNAS)
  • openmediavault
  • Rockstor
  • XigmaNAS(旧 NAS4Free)

メリット

無料。

何と言ってもこれでしょう。

デメリット

バグ対策。

何と言ってもこれでしょう。(またかw)

CentOS など無料版 Linux OS とは、開発体制(というか、単純に言うと、関わっている人の数)からして、あまりにも脆弱。
保証? フリーなのだから、目標とかポリシー・スタンスはあるだろうけど、保証なんてものはない。

そのため、OS などのバグによって、データが破損したり、危険に晒されるリスクは常にある。
勿論そうならないようにするため、RAID 機能やバックアップ機能の提供はされているが、それすらフリーの機能なわけで。

でも NAS 上で管理するデータは、運用する個人・組織の「資産」にも等しいもの。
リスクがあるのは、あまり気分がよいものではないかも。

メーカー製 NAS に比べて、遅い(という可能性)

動作するハードウェア、たとえば CPU などを広範囲化する等、より汎用的に動作するように OS が実装されている。
そのため、OS 部分をはじめとしたプログラムが膨大になり、結果的に処理スピードの劣化に繋がってしまう。

所詮「フリー」という点に尽きる。

TrueNAS(旧 FreeNAS)⇒ ベース OS が FreeBSD = 主流じゃない。

FressBSD 系には ZFS という、とても多機能で魅力的なファイルシステムを利用できるメリットもある。
しかしながら、いかんせん FreeBSD は主流ではない。
そのため、Web 上での情報が少なく、例えばハードウェアに適合するデバイスドライバーを探すのに難儀する可能性や、トラブルシューティングの際のハードルが高くなる点が考えられる。

【記事注】
ZFS は最近 Linux 系 OS にも移植され、利用できるようになりつつある。
FreeBSD 系の普及があまりにもしないため、ZFS 作った人が折れて Linux を容認したからか?

クラウドストレージ

OS 上のアプリとして動く『クラウドストレージ』ソフトのこと。
ソフトウェアとはいえ、ミドルウェア的な位置づけのような感じ。

主なソフトウェアは、以下。

  • Nextcloud
  • ownCloud(商用版もあり)

これ以外にもあるとは思うが、個人的には Nextcloud の1強だと思ってる。
ちなみに Nextcloud は ownCloud からのフォーク(いわゆる「派生」)であり、ownCloud 自体にもフリー版はある。
でも、関係者や歴史的経緯(いわゆる「仲違い」)からして、現在フリーのクラウドストレージとしての代名詞は、Nextcloud になっているような気がする。

メリット

無料。

もういい(笑)

ファイルの世代管理など、付帯機能の可能性。

クラウドストレージは、ネットワーク先にあるディスクのファイルと同一の「コピー」を自分のマシンに保存し、「同期」する形態が基本。
そのためNASに比べて、ファイルを破損するリスクが軽減されたり、ファイルそのものの世代管理機能が提供されている場合もある。

デメリット

バグ対策。

これも NAS と同じ。

クライアントにも(原則として)領域が必要。

上記に触れた通り、コピーとは言え、利用中(編集・表示中)のファイルをローカル内に保存することが原則。
そのためローカルのディスク内から、ある程度の容量がクラウドストレージとの連携用に必要となる。

とはいえ、クラウド上のすべてのファイルを同期(コピー)を保存しているわけではなく、利用しているファイルのみ同期されることが基本。
それにローカルディスクで「どの程度の容量をクラウドストレージの同期用領域として使用するか」を設定で調整することができることも多い(または自動的にやってくれる)。
そのため、動画などの馬鹿みたいに大きなファイルを扱っていなければ、ローカルディスクは逼迫されないと思う。

【余談】クラウドストレージ ≠ NAS

最近はクラウドストレージの機能を有する NAS(たとえば、Web ブラウザやアプリを経由して NAS にアクセスする)、逆に NAS のようなファイルアクセスが可能なクラウドストレージ(WebDAV を使用し、通常のファイルのようにアクセスできる)など、お互いの垣根を越えるような機能が提供されることが多い。
しかしながら、そもそもクラウドストレージと NAS には大きな違いがある。

NAS はあくまで、ネットワーク接続して利用するストレージ領域。ネットワークディスク。

NAS には、ネットワークの先にあるサーバ上のディスクのファイルに直接アクセスする。これが基本。

クラウドストレージは、サーバにあるファイルの「コピー」をクライアント作成して、同期を取る。

ネットワーク先にあるサーバ上ディスクのファイルと同一の「コピー」を、自分のローカルマシンに保存している。
そして、参照や編集の都度、サーバ上のファイルとの整合性を確認し同期を取っている。
そのため、ネットワーク先にある実ファイルとのやりとりが生じるため、タイムラグが生じる場合がある。

ちなみに、NAS・クラウドストレージともに、例えば同一ファイルを複数人が編集していた場合、デッドロックや不整合、はたまたファイルの破損が生じる可能性がある。
しかしながらこの場合、最近のクラウドストレージだと、ファイルの履歴を保存(世代管理)する機能が提供されていること多い。この場合、万一ファイルが破損しても、破損前のファイルに戻すことができる。

NAS の場合は、編集・参照ともにファイルを直接弄っている事になる。
そのため、Excel ファイルの場合など一部のアプリケーションではファイル編集時に排他制御を行っているものものあるが、基本的には同時編集などが生じた場合は「あと勝ち」つまり最後に保存した状態のものが、実際に保存されることになってしまうし、世代管理もしていないので、後戻りすることは基本的に不可能。

ここまで考えると、クラウドストレージのほうが軍配かなぁ。
フリーのNASはちょっと危険な臭いがする。
バックアップや RAID は、クラウドストレージとは別物で考えても良さそうだし。

メーカー系NAS

メリット

保証がある。

保証の形態は有料・無料、ディスク(データ領域)までの保証有無など、メーカーや購入機材によって様々だとは思う。

だが、それでもなお、ハードウェアだけでなくソフトウェアの保証まで範囲があるメリットは大きい。
使用者の心理手的負担が少なくて済む。

ベースシステム(ソフトウェア・ファームウェア・BIOS など)が最適化されている

各メーカーとも、NAS を制御するためのシステムは、独自開発されている。
そしておそらくそれらは、(余程の聴いたことのようなヘボいメーカーでないかぎり)各ハードウェアに併せて最適化されているはず。
言わば Linux OS を、NAS のハードウェアに併せてカーネルレベルで最適化しているようなイージ。
それによってシステムのスループットなど、機能向上に寄与しているはず。

デメリット

サポートには期限がある。

保証も含めて、メーカーは永久にサポートしてくれるわけではない。
ハードウェア部分のサポートは、一般的に製造終了後3~5年程度で終了するだろう。
そしてソフトウェア部分についても、手厚いメーカーですら、5年程度で終わると思う。
そうなった時点で、メーカーのホームページからは情報は抹消されてしまう可能性だってある。(Drobo は、まさにそうだった。)

メーカーの継続性にも注意する必要がある。

企業が途中で買収されたり、メーカーは維持されても、ブランドやNAS ハードウェアのビジネスにメーカーつまり企業としての事業メリットがなければ、事業が売却されたり、事業そのものが廃止される可能性だってある。

そうなった場合は、購入者も一蓮托生。

新たなテクノロジーや規格への追随性。

NASのテクノロジーも、年々進化している。
例えば内蔵されるディスクの容量は、年々増加の一途を辿っているわけだが、NAS によっては、その上限(ディスクの最大容量)が決まっていることが多い。

それと NAS に接続するためのネットワークプロトコル。
例えば、NAS のプロトコルでよく使われる SMB は、この記事作成時点では v3.0 や v3.1 が最新になりつつある。
このネットワーク規格の進化に、いつまでファームウェア更新で追随してくれるのかは、正直だれも判らない。

ちなみに当方で 10 年ほど前に設置した NAS は、SMBv1.0 のままファームウェアサポートが終了してしまった。
そのため、ある日、Windows 10 のアップデートを行った時に、接続できなくなるという憂き目に遭った。

後日これは何とか接続できるよう、Windows10 側の設定を変更したが、SMBv1.0 にはランサムウェアによるセキュリティリスクがある。
それを考えると、この NAS を継続的に利用することは、リスクになってしまう。

これらの点を踏まえると、いつまでも同一の NAS ハードウェアを使用することには躊躇が残る。

クラウドストレージサービス

おそらく理想的な最適解。
以下のサービスが有名。

  • DropBox
  • GoogleDrive
  • OneDrive (Microsoft)
  • box

メリット

企業としての保証・サポート

文字通り。

バックアップやハードウェアの心配が不要

これは「ある程度」という話。
今のところ、極めて稀にだが、復旧できないレベルの障害が発生するリスクは存在する。ほとんどの場合は心配は少ないと思われる。フリーNASやオンプレに比べると、故障リスクは低いのではないかと思う。

デメリット

高い。特にストレージ。

何よりも、これが筆頭ではないかと。
どうしても「月々」といったランニングコストが発生する。
企業系などの規模によっては、こちらのほうが安価な可能性はあるが、一般利用するには、どうしても「お高い」感が出てしまうう。

メンテナンスやネットワーク障害に影響される。

オンラインサービスの場合、この問題を避けることができない。
そのため、たとえば企業などの場合だと、オンラインストレージとオンプレの多重化を施す必要もあると思う。

自分なりの現実解

とは言え、まだ現時点では到達してないのだが、最終的にこうする予定。

  • オンプレサーバをファイルストレージとし、そこに Nextcloud を設置。(HDD 4台で RAID6 構成)
  • バックアップとして、Amazon S3 Glacier を使用する。

予定は変更する場合があります。

さくらのレンタルサーバに Nextcloud 入れてみた感想

インストール方法は割愛

ググれば既に解説されてるサイトがいくつかヒットするので、詳しくはそちらを参照。
自分の場合、この時点での最新バージョン(21.0.1)をインストールしたが、以下の点にハマったこと以外は、問題なくインストール、稼働してます。

ハマったこと

WAF は必ず「無効」にすること。

別に Nextcloud の問題ではなく。

インストールの途中で Nginx のエラーが出たり(レンタルサーバは Apache 稼働)、スタイルシートなどが反映されず、レイアウトが崩れたり、最初、理由がさっぱり判らなかった。無駄にすること数時間。

結局原因は「これ」。

WAF を有効にしてたのをすっかり忘れてた。
無効にしてインストールしたら、すんなり入った。

いきなり結論

重い

所詮「レンタルサーバ」(共用サーバ)なので、レスポンスは期待してなかったけれど、Web 画面はかなり「もっさり」してる。
遅いからと言って、レスポンスか返ってくるのを待たずにあちこちクリックすると 500 エラーになる。
でも、この辺りは WordPress(特にダッシュボード、管理画面)の挙動でも同様なので、期待しないほうが良いかも。

一応 Nextcloud 内部でも、キャッシュなどのレスポンス対策は施されているようだが、大量のユーザを抱えての運用には耐えられないと思う。
レンタルサーバ上の Nextcloud は、あくまで個人利用ぐらい。

ちなみに、レンタルサーバのプランを上げることによって「重さ」が軽減できるとは考えないほうがいい。

「多少」は軽くなる可能性があるものの、体感できるほどのレスポンス改善はおそらく期待できないと思う。

IT技術者じゃないとインストールは難しい、かも?

インストール等はかなり簡単にできるようになってはいる。しかしながら、Apache などの conf 設定や、Nextcloud 自体の config 設定など、細かな設定調整をしようとすると、IT技術者としての知識や経験・勘所が必要な部分がどうしても出てくる。

また、セキュリティ面の部分も考えると、適切なIT技術者がインストールや設定を担当するのが望ましいと思う。

Android, iOS などのアプリ提供を謳ってるけど

アプリで直接できるのは、ストレージ機能ぐらい

CalDAV, CardDAV を用いた同期(連携)については、Android, iOS の Nextcloud アプリを経由してやれるようだが、あくまで同期だけ。
Android, iOS の Nextcloud アプリが、直接カレンダー機能などのグループウェア機能を提供してるわけではない。

カレンダーやメール閲覧機能について

Nextcloud システムは、アプリ(というかプラグイン?)機能として、カレンダーやメール、連絡先などの各種グループウェア機能を導入することができる。

しかしながら、機能面ではお世辞にも洗練されているとは言えない。
Nextcloud をビジネス上の統合環境として捉えるのであれば、選択するも良いとは思うが、その場合は、専用サーバを建てて運用するのが良いかと。

そして専用サーバを建てるぐらいであれば、Google Workspace(旧 G Suite)などのサービスを使ったほうが良い気がする、のだが?

それにレンタルサーバで Nextcloud を運用する場合、付加機能はそのままサーバ負荷になってしまう。
あくまでクラウドストレージとして割り切って、これらのアプリ導入は控えたほうが良いと思う。

外部ストレージ

たとえば、NextCloud のストレージから別サーバの領域を「外部ストレージ」として繋ぎ込むことが可能。
接続できるのは、Amazon S3 などの各種クラウドサービスのオブジェクトストレージや、FTP, SFTP で接続できるサーバ領域など。

ちなみに SMB/CIFS などにも接続できるが、今回はさくらのレンタルサーバに Nextcloud を設置したので、使えない(使わない)のではないかと。

自分の場合、いくつかの Web 領域として無駄に保有してる領域を FTP 接続して使ってみた。

「1つの外部ストレージの接続設定=1つのディレクトリ」として認識する

そのため、外部ストレージ配下の最大容量は、外部ストレージとして接続した先で個々に提供されている領域の上限になる。
接続先の領域サイズが極端に小さい場合は、その領域内に保存するファイルの容量に注意する必要がある。

あと、当たり前だが、ストレージ領域として合算された領域サイズとして、一連で使える訳でもない。

Web領域を繋ぎ込むことも可能だが、セキュリティに注意

ホームページ領域として提供された空間を FTP, SFTP で外部接続して有効利用すること自体は可能。
ただし、これらの領域は元々ホームページの領域として公開されている領域なので、外部接続先として繋ぎ込むディレクトリに対し、適切なアクセス制限を施さないと、ホームページの領域として丸見えになってしまうので、注意すること。

ちなみに ISP によっては、そもそもアクセス制限を施すことができない場合ホームページサービスもあるので、注意。
その場合、外部ストレージとしての使用は望ましくない。

遅い

ただでさえレンタルサーバ上の Nextcloud 本体への接続が遅い状況下で、さらに FTP 接続した先の外部ストレージを参照する以上、レスポンシブとは言い難い。
フォルダの同期という形で利用するのであれば、違和感を感じることはないかもだが、Nextcloud のWeb画面からテキスト等を直接参照・編集する場合には、かなり遅く感じる。
(たまに 500 エラーも発生する。)