QNAP NASの使用可能容量

QNAP NASの使用可能容量に関するメモ

最初に

QNAP NASをセットアップして実際にどのくらいの容量が使用できるのか?
NASですから当然気になる点だと思います

QNAPのNAS OSであるQTSには「システム予約スペース」というものがあり
いわばQTS版「天使の取り分」というのが存在します

この記事では実際にどれくらい容量が予約されるのかを紹介していきます

検証環境

検証機はQNAP TS-873-4G

Amazon | QNAP(キューナップ) TS-873 クアッドコア2.1 GHz CPU 4GBメモリ 8ベイ DTCP-IP/DLNA対応
https://amzn.to/34uq7oC

QTSはv4.4.1.1086を使用
HDDはSeagate ST1000DM010 1TB

1TB HDDの実容量は931.51GB
これは本来の「天使の取り分」である1000と1024の違いなんで特に問題なし

QNAPサイト上での情報

システム予約スペースとは

QNAP NAS では、システム予約スペース (Storage Manager では システム予約済み) に次のものが含まれます。

・QNAP RAID の予約スペースに RAID メタデータを格納。各 RAID グループの総容量の 1% が予約され、各グループに対する最大は 150GB です。
・QNAP ストレージ予約スペースには、ストレージ構成データと、NAS を正常に動作させ続けるための余分のスペースが含まれます。大きさは各ストレージプールごとに 約 70 GB 、各スタティックボリュームごとに 20 GB です。
・EXT4 ファイルシステム メタデータ: 大きさは各ユーザー作成ボリュームごとに 1% to 1.5% です。

リリース日: 2017-03-03

ストレージプール

NASのセットアップを始めると最初にストレージプールを作成することになりますが
ストレージプールを作成するだけで早速、システム予約されます

公式の情報が正しければ
まず総容量の1%(上限150GB)をRAID予約スペースとして確保した上で
残り容量を使ってストレージプールを作成

次にそのストレージプールからストレージ予約スペースとして
約70GBがストレージプール内で確保されます
(想定予約済みスペースで表示されるのがこの部分)

つまり1TBHDDの実容量は931.51GBなので
931.51の1%である9.3151GBがRAID予約スペースで使用し
残りの922.1949GBを使ってストレージプールを作成
そのストレージプールの中で70GBをストレージ予約スペースとして確保されます
計算上は(931.51-9.3151)-70=852.1949で約852GBが使用可能容量

RAID作成の想定画面でどの程度になるかを見つつ
実際に構築した結果も一部紹介します

HDD1台

RAIDなし

空き容量:922.01GB
予約済みスペース:75.82GB
未割り当てスペース:846.19GB

計算上は約852GBでしたが
ストレージ予約スペース(約70GB)の部分で75.82GB確保したため
実際にボリューム割り当てできる容量は846.19GBになりました

ちなみにHDD1台なのでRAIDではないのですが
画像内でも新規RAIDグループとして記載されている通り
QTSではディスク数に限らず基本的にはRAIDと同じ扱いになります

純粋なシングルディスクボリュームで作成したい場合は
静的ボリューム作成の方が容量的にはお得になりますが
静的ボリュームについては記事後半で紹介してます

HDD2台

RAID1(実効容量:1台)

空き容量:922.01GB
予約済みスペース:75.82GB
未割り当てスペース:846.19GB

HDD3台

RAID5(実効容量:2台)

空き容量:1.80TB
予約済みスペース:85.03GB
未割り当てスペース:1.72TB

HDD4台

RAID10(実効容量:2台)

空き容量:1.80TB
予約済みスペース:85.03GB
未割り当てスペース:1.72TB

RAID5(実効容量:3台)

空き容量:2.70TB
予約済みスペース:94.25GB
未割り当てスペース:2.61TB

RAID6(実効容量:2台)

空き容量:1.80TB
予約済みスペース:85.03GB
未割り当てスペース:1.72TB

HDD5台

RAID5(実効容量:4台)

空き容量:3.60TB
予約済みスペース:103.46GB
未割り当てスペース:3.50TB

RAID6(実効容量:3台)

空き容量:2.70TB
予約済みスペース:94.25GB
未割り当てスペース:2.61TB

HDD6台

RAID10(実効容量:3台)

空き容量:2.70TB
予約済みスペース:94.25GB
未割り当てスペース:2.61TB

RAID5(実効容量:5台)

空き容量:4.50TB
予約済みスペース:112.68GB
未割り当てスペース:4.39TB

RAID6(実効容量:4台)

空き容量:3.60TB
予約済みスペース:103.46GB
未割り当てスペース:3.50TB

RAID50(実効容量:4台)

空き容量:3.60TB
予約済みスペース:103.46GB
未割り当てスペース:3.50TB

HDD7台

RAID5(実効容量:6台)

空き容量:5.40TB
予約済みスペース:121.90GB
未割り当てスペース:5.28TB

RAID6(実効容量:5台)

空き容量:4.50TB
予約済みスペース:112.68GB
未割り当てスペース:4.39TB

HDD8台

RAID10(実効容量:4台)

空き容量:3.60TB
予約済みスペース:103.46GB
未割り当てスペース:3.50TB

RAID5(実効容量:7台)

空き容量:6.30TB
予約済みスペース:131.11GB
未割り当てスペース:6.17TB

RAID6(実効容量:6台)

空き容量:5.40TB
予約済みスペース:121.90GB
未割り当てスペース:5.28TB

RAID50(実効容量:6台)

空き容量:5.40TB
予約済みスペース:121.90GB
未割り当てスペース:5.28TB

RAID60(実効容量:4台)

空き容量:3.60TB
予約済みスペース:103.46GB
未割り当てスペース:3.50TB

実際に構築した後の容量

HDD1台 RAIDなし

構築前の想定表示
空き容量:922.01GB
予約済みスペース:75.82GB
未割り当てスペース:846.19GB

構築後の表示
空き容量:922.02GB
予約済みスペース:75.78GB
未割り当てスペース:846.23GB

ほぼほぼ想定通りの表示で作成されているのがわかります

HDD8台 RAID10

構築前の想定表示
空き容量:3.60TB
予約済みスペース:103.46GB
未割り当てスペース:3.50TB

構築後の表示
空き容量:3.60TB
予約済みスペース:103.44GB
未割り当てスペース:3.50TB

HDD4台 RAID5

構築前の想定表示
空き容量:2.70TB
予約済みスペース:94.25GB
未割り当てスペース:2.61TB

構築後の表示
空き容量:2.70TB
予約済みスペース:94.22GB
未割り当てスペース:2.61TB

HDD4台 RAID6

構築前の想定表示
空き容量:1.80TB
予約済みスペース:85.03GB
未割り当てスペース:1.72TB

構築後の表示
空き容量:1.80TB
予約済みスペース:85.00GB
未割り当てスペース:1.72TB

まとめ

ほぼ想定容量の表示通りに構築されるので
事前の想定計算は信用できそうです

RAID別で比較しても予約スペースの割合にほとんど変わりはなく
お得なRAID構成というのはないと思います

931.51GBから計算されているのでわかる通り
ここで表示されている未割り当てスペースは既に1024計算になっていて
ここから「天使の取り分」は取られません

ボリューム

ストレージプールを作成したら次にボリュームを作成します

公式情報によるとEXT4ファイルシステムメタデータという名で
ボリュームごとに1~1.5%が使用されます

これは最初から取られる予約スペースではなく
ファイル数など使用状況に応じて増減するようです

ボリューム作成前

システムボリュームになると容量比較が難しくなるので
システムボリュームを別ディスクに作成した後に別途ストレージプールを作成し
そこに検証用のボリュームを作成しました

ちなみにシステムボリュームは最低でも約16GB使われます
システムボリュームについてはこちらの記事をどうぞ

TS-873のシステムボリューム | fefcc.net
https://fefcc.net/archives/895

ボリューム作成画面

まずはボリューム作成画面にて表示される容量を確認します

0GBの場合

下のストレージプール容量に割り当て済みが既に75.78GBと表示されていますが
これはストレージプール作成時に既に確保されている予約されたスペースで
ボリューム作成ごとに75.78GBを取られるわけではありません

先ほどのボリューム作成前のストレージプール管理画面で表示されている通り
75.78GB+846.23GB=922.01GBになります(0.01GBは端数処理の関係だと思われます)

200GBの場合

200GBを設定しても割り当て済みが200GB増えるだけなので
ボリューム容量で設定した容量を超えて確保されることはありません

800GBの場合

最大846.23GBと表示されているのは使用可能容量なので
割り当て済みが846.23GBを超えても問題なく
設定されたアラートの閾値を超えても作成自体は可能です

ちなみに初期設定のままなので赤で表示されているアラート閾値は80%になっています
使用容量が超えるとアラートで教えてくれる機能ですが
不要な場合はストレージプールごとやボリュームごとに設定変更可能です

アイノード別バイト数

ついでの紹介になりますが
下にあるファイルシステムオプションでアイノード別バイト数の設定が可能です
アイノードとカタカナだと違和感がありますがLinux系でおなじみのinodeのことで
初期設定は32Kですが設定値によって最大ファイル数とボリュームサイズが変わります

200GBと800GBの画像を比較してもらうとボリューム容量の入力数値によって
最大ボリュームサイズとファイル・フォルダー最大数が変化しているのがわかります
最大数の表記は1Mが100万なので6Mが600万ファイル、26Mだと2600万ファイル

細かい話をするとアクセス速度や容量使用効率などいろいろあるんですけど
QNAP程度のマシンにそこまで求める人はいないでしょうから
Officeファイルやテキストが相当数あるのなら8Kや16K
動画や画像ファイルとかMB単位のファイルがメインなら16Kか32Kでいいと思います

ボリューム作成後

200GBでボリューム作成した後のストレージプールの状態がこちら
割り当て済みが200GBきっちり増えてます

200GBで作成したボリュームの状態はこちら

容量が196.91GBになっているので3.09GBが予約スペースとして確保されたようです
容量と空きサイズの差は使用済みの60.04MBで合うので無問題
何もファイルは転送してませんがSSHで覗くと管理用ファイルが確認できます

-rw-------  1 admin administrators  6144 2019-11-11 13:39 aquota.user
drwx------  2 admin administrators 16384 2019-11-11 13:39 lost+found/
-rw-r--r--  1 admin administrators    29 2019-11-11 13:39 .qextension

スナップショット領域

スナップショットを使わない人は読み飛ばしてもらって構いませんが
スナップショット機能を使う場合はこの領域を考えてボリュームを作成する必要があります

というのも「ストレージプール=ボリューム領域+スナップショット領域」で使う必要があり
ボリューム内にスナップショット領域があるわけではないのです

なのでボリューム作成時にボリューム容量を「最大に設定」ボタンで最大まで割り当てると
警告表示でフリーストレージプール領域がないことを知らせてきます

フリーストレージプール領域というのはボリュームに割り当てていない
未割り当てのストレージプール領域のことで
スナップショット用として割り当てる必要はありませんが
他に用途が限られているので実質的に未割り当て=スナップショット用になります

実際のスナップショットは差分処理されているので
ファイルの追加・削除・更新の回数や保存期間など様々な条件で
スナップショットに必要な容量は変化するため
(1回あたりのスナップショットは数十MB~GB単位まで変わります)
初めて利用する人はどのくらい容量を消費するかは最初から予測することはできません

というわけで最初から無駄なくボリュームを割り当てるのは不可能であり
実際にある程度の期間、NASを使ってみて
自分の使い方でスナップショットがどの程度の容量を消費するのかが判明してから
ボリュームサイズ調整で無駄スペースを埋める必要があります

保護されたスナップショット領域

一応QNAPとしては「保護されたスナップショット領域」というのを用意していて
スナップショット領域として全体容量の@@%を事前に確保するという形で
ボリュームで意図せず消費しないように防ぐ機能がありますので一応紹介します

こちらが有効化する前のストレージプール(先ほど作成した200GBボリュームの状態)

保護されたスナップショット領域を有効化すると容量設定が出てくる

初期値ではプール領域の20%でストレージプール全領域が922.01GBなので184.40GB
推奨のプルダウンで割合は変更可能でカスタムを選択すればサイズ固定の設定が可能です

ボリューム作成前に「保護されたスナップショット領域」を20%で設定しておくと
深緑の表示で184.40GBが確保されます(75.78GBは予約スペース)

ボリューム作成画面でも最大容量から既に引かれています

QTS上の説明では「保護されたスナップショット領域」の機能について
スナップショットで既にストレージプールを100%消費している状態で
ボリュームサイズを拡張してしまって自動で古いスナップショットが1つ消えてしまった!
というミスを防止する為とありますが実際にはかなりレアケースな事案ですので
普通の人はフリーストレージプールのまま放置でいいと思います

静的ボリューム

あまり使う人はいないと思いますが
HDD1台を外付けHDDのように単体でボリュームを作る場合は
ストレージプールを1台構成で作成する以外に
静的ボリュームを選択する方法もあります

静的ボリューム作成時の想定容量は922.01GB

静的ボリューム作成後に状態確認
ストレージ予約スペースは20GBとの情報でしたが実際には17.97GBで済み
残った実使用可能容量は904.04GB

ストレージプールを作成してから最大容量で割り当てた場合と
静的ボリュームで作成した場合の比較

システムで確保される容量が少ないおかげで約70GBほど違いが出ました

ちなみに画像内のストレージプール3が警告になっている通り
ストレージプールはボリュームに容量を割り当てた時点で容量消費扱いになるので
ストレージプールに容量アラート閾値を設定する場合はそのことを忘れずに

このようにストレージプールでも最大容量までボリュームに割り当てていれば
スナップショットは使えませんが
静的ボリュームは空き容量があってもスナップショット機能は使えませんので
その点だけご注意ください

最後に

1TBHDDの場合はスナップショットを使用しなければ837.94GB
スナップショット用に20%確保すると661.83GB
そこからがシステムボリューム用の16GBを引いたのが使用可能容量です

1TBHDDを使っているレベルでは変わりませんが
システム予約スペースは固定値や上限値があったりするので
実際に使うような数十TBクラスのストレージプールになれば
全体容量から見ると予約スペース使用割合が減ることから
QNAP NASはベイ数が多い方がいろんな意味で効率がいいです

QNAPにおける欠点の1つが今回紹介したスナップショット用の容量確保が必要という仕様で
ボリュームに割り当てたらもうスナップショットに使えないなんて今時ありえません
他社のNASはボリュームを最大限確保しておいてその中の未使用領域を利用する形が多く
容量を無駄にすることのない作りが一般的です
他社はまだext4を使っていた時から実装してますのでBtrfsとか関係ないはずで
そろそろQNAPでもボリューム内で済ませてもらいたいです