西川和久の不定期コラム

x86 PC的なNASでいろいろ遊んでみる!「TerraMaster F2-423」

TerraMaster F2-423

 少し前に同社のDASをご紹介したが、今回は見た目そっくりのNAS、F2-423をご紹介したい。このNAS、実は中身がCeleronを搭載したPC。ベアボーン的にも遊べる面白NASとなっている。いろいろ試したのでレポートをお届けしたい。

実態はJasper LakeのCeleronにメモリ4GB搭載のベアボーン+NAS OS(TOS)

 前モデルに相当する「F2-422」に関しては、弊誌で既にレビューが載っている。プロセッサにApollo LakeのCeleron J3455、メモリDDR3 オンボード4GB(+SO-DIMMスロットで増設可能)、10GbE+GbE、USB 3.0✕2、HDMI。もちろんホットスワップ対応の3.5型ドライブベイ✕2もある。

 対して今回ご紹介する「F2-423」は、Jasper LakeのCeleron、DDR4 SO-DIMM✕2、ホットスワップ対応のドライブベイ✕2、キャッシュ用のM.2✕2、USB 3.1✕2、HDMI。多くの部分でパワーアップしているものの、10GbE(Gigabit Ethernet)+GbEではなく、2.5GbE✕2と、肝心のネットワークはスペックダウンしている。主な仕様は以下の通り。

TerraMaster「F2-423」の仕様
プロセッサCeleron N5105/5095(Quad Core、クロック2.0GHz/最大2.9GHz)
メモリ4GB(DDR4 SO-DIMM✕1)、SO-DIMMスロット2(空き1)
適合するドライブのタイプ3.5型SATA HDD/2.5型SATA HDD/2.5型SATA SSD
M.2スロット2(空き2)、Type 2280/メインドライブのキャッシュ用
ドライブホットスワップ対応
外部ポート2.5GbE✕2、USB3.1 Type-A✕2(10Gbps)、HDMI
ノイズレベル26.4dB(A)
サイズ/重量227✕119✕133mm(幅✕奥行き✕高さ)/1,627g(実測/ドライブ無し)
価格4万1,990円
用意したSSD
TranscendSSD 500GB(Amazon)✕2
価格4,880円✕2

 プロセッサは仕様を見るとCeleron N5105/5095とある。もちろんこのようなSKUはなく、N5105かN5095ということだ。調べると前者がモバイル用でTDP 10W、後者がデスクトップ用でTDP 15W。クロックやコア数は同じで2GHzから最大2.9GHzの4コア。メモリの仕様なども同じで、違うのはiGPUの最大周波数が800MHzか750MHzか(ベース周波数は同じ)。

 手元に届いたのは、確認したところN5095だった。おそらくNAS OS(以降TOS)自体はHDMIを使わないので、そういった意味からは同じ。ロットによって、どちらかが乗っているのだと思われる。

 メモリは4GB/DDR4-2400のSO-DIMM✕1。SO-DIMMスロット自体は2つある(1つ空き)ので増設できる。ストレージはホットスワップ対応のドライブベイを使うが、更にボード上にキャッシュ用としてM.2スロットが2つあり、2280タイプのSSDを装着可能だ。

 外部ポートは、2.5GbE✕2、USB3.1 Type-A✕2(10Gbps)、HDMI。前モデルでは10GbE+GbEだったので、ネットワークに関してはスペックダウンしている。幸い? 筆者の作業場は未だにGbEなので問題ないものの、ここが不満な人もいるだろう。映像出力のHDMIはTOS使用時には不要。BIOSやほかのOSで動かす時のみ必要となる。

 サイズ227✕119✕133mm(幅✕奥行き✕高さ)、重量1,627g(実測/ドライブなし)。価格は前モデルより少し上がって4万1,990円(Amazon)。ドライブなし、Celeron/4GBのNASとしては妥当なところだろう。もっと安いのもあるが、その場合、プロセッサがArmだったり、メモリがもっと少なかったりする(増設もできない)。

 後述するが、本機は中身的にはx86 PCなので、WindowsやUbuntu、ChromeOS Flexなど、x86系のOSも作動可能。Celeron N5095/4GB搭載のベアボーンとして見ることもできる。ただ同クラスの小型PCでWindows付きが3万円未満であるため、M.2スロットやホットスワップ対応のドライブベイなどを考慮しても少々割高になる。

 なお、今回は手持ちの関係もあり、ストレージには500GBのSSD✕2を使用した。NASで大容量を共有というより、Apache/Nginx、MariaDB、PHP、Node.js、Dockerなどを動かし、アプリケーションサーバー的な使い方で、LANからではなく内部でのアクセス速度を優先した。おそらくHDD✕2とキャッシュ用のM.2 SSD✕2でも似た効果は得られると思うので、この辺りは好みでと言うところだろうか。プログラムのテキスト(+Webサイトに掲載する画像データやDockerのimageなど)が主なら500GBはとてつもない(笑)容量となる。

前面。HDD1/HDD2、LAN、POWER LED。ホットスワップ可能な3.5型ドライブベイ✕2
背面。HDMI、USB Type-A✕2、2.5GbE✕2、電源入力。F2-422ではHDMIに蓋がされていたが、本機はそのまま出ている
付属品はACアダプタ(サイズ約95×43×32mm、重量177g、出力12V/3.33A)、電源ケーブル、LANケーブル、ネジ類
マウンタへ2.5型SSDを装着中。3.5型HDDはツールレスだが、2.5型HDD/SSDに関してはネジ止めが必要
背面のネジ4本外し、分解したところ。ファンへのケーブルがあるため、背面パネルを外す時、強く引っ張らないようにする
基板コネクタ側。各コネクタの後ろにドライブベイへのライザーがある
出荷時搭載済みのDDR4-2400 4GB SO-DIMM。表(ドライブベイ側)に1つめのSO-DIMMスロット。ここは4GBが装着済
裏にはもう1つのSO-DIMMスロットと、M.2(2280用)スロットが2つ。裏側のSO-DIMMスロットと、M.2スロットは空き

 筐体はアルミニウム合金で2ベイのNASらしいルックスだ。実は少し前にご紹介したDAS、「D2-310」とまったく同じケースが使われており、並べると、一見同じに見える。重量は実測で1,627g(ドライブなし)。

 前面は、HDD1/HDD2、LAN、POWER LED。ホットスワップ可能な3.5型ドライブベイ✕2。背面は、HDMI、USB Type-A✕2、2.5GbE✕2、電源入力。前モデルのF2-422ではHDMIに蓋がされていたが、本機はそのまま出ている。またファンの周囲にある4つの凹みにネジがあり、外すと内部にアクセス可能だ。

 付属品は、ACアダプタ(サイズ約95×43×32mm、重量177g、出力12V/3.33A)、電源ケーブル、LANケーブル、ネジ類。なおACアダプタは「D2-310」とまったく同じ仕様。ケース同様、流用しているのが分かる。

 内部へのアクセスは、ネジ4本と背面パネルを外せばOK。この時、背面パネルにあるファンは、ケーブルで本体側に接続されているので要注意。分解すると、ケース、基板+ドライブベイ、リアパネル(ファンへのケーブルあり)の3つに分かれる。

 装着済の4GB/SO-DIMMは基板表側(ドライブベイ側)、空きのSO-DIMMスロットとM.2スロットは基板裏側にある。今回SSDを使うのでM.2へはSSDを搭載しないが、せっかく分解したので、+4GBとして計8GBとしたが、ここでトラブル発生。システムが起動しなくなる。もちろん使用したメモリはほかでは動いているため不良品ではない。2つほど試したものの結果は同じ。

 調べると同社のフォーラムでも問題が出ている。ここによると……。

  • SKHynix 4GB 2400T HMA851S6AFRN6N, SK hynix HMA81GS6MFR8N-UH 1Rx8 8GB DDR4 PC4-19200 2400MHz Laptop Memory Module - 2400 T
  • Kingston Client Premier 8GB DDR4 2666MHz KCP426SS8/8
  • Kingston SODIMM DDR4, 1 X 16 GB, 3200MHz, CL22, KVR32S22D8/16

 これらは非対応。手持ちで試したのはSK hynix 4GB 2400Tだった。対応しているのは同社が販売している以下のものとなる。

  • 59.99 EUR TerraMaster A-SRAMD4-4G 4G DDR4 SO-DIMM 2400Mhz 223/423 Series Recommended
  • 99.99 EUR TerraMaster A-SRAMD4-8G 8G DDR4 SO-DIMM 2666Mhz 223/423 Series Recommended
  • 159.99 USD TerraMaster A-SRAMD4-16G 16G DDR4 SO-DIMM 2666Mhz 223/423 Series Recommended

 つまり、純正品のメモリしかサポートされていないのだ。8GBで価格は1万1,990円。Crucial製比で約倍。また4GBは在庫なし。高くても良ければいいが、これでは事実上増設できないのと同じだ。せっかく2つのSO-DIMMスロットがあるだけに非常に残念な部分となる。今回は増設を諦め4GBのままで試用することにした。

Ubuntu、ChromeOS Flexをインストールして遊ぶ

 TOSを入れて環境を作ってしまうと壊せなくなるので、先にほかのOSを入れて遊んでみたい。試したのはUbuntu、ChromeOS Flex。x86系OSのメインどころ2つ。前者は手元にあった適当な2.5型HDD、後者はUSBメモリで起動/動作、Live CD的に使用した。また撮影台まで届くLANケーブルがなかったため、USBのWi-Fi/11nアダプタを使用している。

 どちらもOSも写真/画面キャプチャの通り作動する。UbuntuはHDD、ChromeOS FlexはUSBメモリ、加えてCeleronなので、爆速ではないものの、まぁまぁ使えるレベルだ。参考までにGeekbench5のスコアはSingle 633、Multi 1,843。Google Octane 2.0@Firefoxは14,460。デスクトップ環境としてはエントリークラスだが、NASならこれで十分動いてしまうのが面白いところ。

BIOS/Main
BIOS/Advanced
ChromeOS Flex起動
Ubuntu起動
Ubuntu/hardinfoと、Geekbench5のスコア(Single 633、Multi 1,843)

 Ubuntu上でhardinfo(標準では入ってないのでsudo apt install hardinfo)を動かすと、ストレージが3つ見える。1つ目はUbuntuの入っている2.5型HDD 500GB、2つ目は未フォーマットで本番用の2.5型SSD 500GB、3つ目はこのTOSのベースシステム。どうやらUSBメモリ的に本体側に入っているようだ。

 OSをストレージにインストールする時の注意点がある。BIOSは電源ON時[Del]キーで起動。また30秒間Waitしているので、慌てて押す必要もない。BIOSのブートオプションを見ると、起動順番はHard Disk Device、USB Deveice:UEFI:General UDisk 5.0(TOSのベースが入っている)、NVME……となっている。

 ところが標準でUEFI Hard Disk Driveのプライオリティが「Disable」(無効)、UEFI USB DriveのプライオリティがUSB Deveice:UEFI:General UDisk 5.0となっているため、OSをストレージにインストールしても起動しない。UEFI Hard Disk DriveのプライオリティをDisableから該当ドライブへ変更する必要がある。

 気を良くしてWindows 11をインストールしようとしたところ、セットアッププログラム自体は動くものの、インストールドライブを選択後、システムのコピー中(0%)でエラーとなり、インストールできなかった。Windows 10でも結果は同じ。パーティション自体は3つ作られているので、なぜそうなるかは不明だ。おそらくインストール済のストレージを使えば動きそうだが、本来の用途ではないため、原因は追求しなかった。

TOSをセットアップ

 前置きが長くなってしまったが、ここから本論のNASとしてのセットアップとなる。付属するマニュアルは、クイックインストールガイド1枚あるだけ、しかも https://start.terra-master.comへアクセスと書かれているのみ……と、かなり玄人向けだ。

 実際にアクセスすると、メールアドレス、そしてモデル名など選択。はじめ数ページはハードウェア的な接続(LANなど)の説明があり、電源ONした後にhttp://tnas.local/へアクセスするようにと指示。ルーターのDHCPから自動的にIPアドレスなどが割当てられ、WindowsやmacOS上のWebブラウザ上にセットアップ画面が現れる。以降、手順を画面キャプチャで並べるが、ザックリやることは、

  1. TOSをインストールするドライブの選択
  2. TOSをネットワークからインストール
  3. 再起動
  4. デバイス名、ユーザー名、パスワード、メールアドレス(確認コードの送信/チェックあり)の設定
  5. ストレージプールの作成。2ドライブなのでRAID 0/1またはTRAID(独自)
  6. ファイルシステムの選択。BTRFSかEXT4
  7. コンパネへログイン

となる。今回はRAID1でEXT4を選択。また、IPアドレスは、とりあえずルーターのDHCPから割り振られるが、アプリケーションサーバー的に使う時、再起動でIPアドレスが変わると面倒なので、後からIPアドレスを固定へ変更する(コントロールパネル→ネットワーク→インターフェースで変更可能)。

初期化
警告
TNASをどのように初期化しますか。今回は”カスタマイズ”
ハードドライブを選択します
TOSをインストールします(オンラインインストール)
TOSインストール中
再起動
ヒント
ユーザー名、パスワードなどの設定。認証コードは入力したメールアドレスへ送られる
ストレージプールの作成。今回はRAID1
ボリュームの作成。今回はEXT4
警告(ハードデスク上のデータ全削除)
最後に
TOSへ設定したユーザー名/パスワードでログイン後(HTTPのポートはデフォルト8181)

 一通り設定し、TOSへログインすると、最後の画面キャプチャのように、ストレージプールの同期中パネルと、セキュリティアドバイザーのリスクありパネルがまず表示される。前者に関しては結構時間がかかるので100%になるまで待ち。

 後者は、具体的には、パスワード、ファイルシステムのスナップショット、ファイアウォール、HTTP/HTTPSポート、セキュリティ分離モードがリスクありになっている。この辺りは順にコントロールパネルで確認/変更することになるが、具体的な変更場所は、各項目にリンクがあり、それを開くと説明とともに設定場所のリンクもあるので、それを頼りに修正することになる。

 コントロールパネル→概要で調べると、TOSのバージョンは、5.0.176-00227(執筆時)。アイドル時(Webコンパネログイン後)CPU 10%未満、メモリ使用率10%未満、/ファイルシステムが7.44GB中1.08GB使用、/Volume以下は100%未使用。デバイス温度31℃、CPU温度46℃、ディスク温度40℃、ファン回転数1,157RPM。ファンの音も特にしない。余談だがメインで使っているCore i9-12900、アイドル時(と言ってもChromeで多数のタブなどを開いている)のCPU温度は30℃未満。本機の方が高い(笑)。

コントロールパネル→概要

 取り急ぎ、コントロールパネル→Terminal & SNMPの、ユーザー名とパスワードでSSHアクセスを許可する(ポート9222)と、ローカルネットワーク内のTelenet/SSHアクセスのみ許可するにチェックを入れ、LAN上のほかのマシンからSSH可能にし、接続を確認した。

DockerとVirtualBoxで遊んでみる

 さて、普通にNASでファイル共有するなら、デフォルトでSMBなどが作動し、\\NASのIPアドレス\ユーザー名 または \\NASのIPアドレス\public で既にアクセス可能になっている(設定したユーザー名/パスワードを使用)。ここへいろいろファイルを入れれば良い。

 今回はアプリケーションサーバー的に使うため、デフォルトで入っているソフトウェアを調べると、PHP 7.4.16、nginx/1.18.0、postgres (PostgreSQL) 13.2などが既に作動中。おそらくWebベースのコンパネを動かす仕掛けになっている。逆に一般的なApacheやMariaDB(MySQL)は入っていない。従って必要なものをアプリセンターからインストールすることになる。一覧を眺めたところ開発系では……

アプリセンター(一部)
Docker Manager
  • Git
  • PHP 8.0/8.1
  • Docker/Portainer
  • Python3
  • Ruby3
  • VirtualHost対応のWeb Server
  • Gcc build tools
  • Go
  • Java
  • MongoDB
  • MariaDB
  • Node.js
  • Perl5
  • phpMyAdmin
  • pip
  • VirtualBox

などがある。筆者的にはこれだけあれば十分。また一覧にない、例えばRedisなど何か必要であれば、Dockerのコンテナに入れるので大丈夫。逆にDockerのみの方がNASシステムを汚さずに済む。ということで、とりあえずDockerとPortainerをインストールすることにした。インストール自体は簡単でアプリセンターから選んでインストールするだけだ。

 早速触ってみるとこのDocker Managerからだと、いつものcli的な操作ができない。調べると、

# ls -l /Volume1/@apps/docker/dockerd/bin/
-rwxrwxr-x 1 dev dev 66787384 Dec 17 09:28 containerd
-rwxrwxr-x 1 dev dev 10691121 Dec 17 09:28 containerd-shim
-rwxrwxr-x 1 dev dev 18879696 Dec 17 09:28 containerd-shim-runc-v1
-rwxrwxr-x 1 dev dev 18915320 Dec 17 09:28 containerd-shim-runc-v2
-rwxrwxr-x 1 dev dev 34543928 Dec 17 09:28 ctr
-rwxrwxr-x 1 dev dev 55740927 Dec 17 09:28 docker
-rwxrwxr-x 1 dev dev 44949504 Dec 17 09:28 docker-compose
-rwxrwxr-x 1 dev dev  7843008 Dec 17 09:28 docker-containerd
-rwxrwxr-x 1 dev dev  1900064 Dec 17 09:28 docker-containerd-shim
-rwxrwxr-x 1 dev dev 86377488 Dec 17 09:28 dockerd
-rwxrwxr-x 1 dev dev  2559125 Dec 17 09:28 docker-proxy
-rwxrwxr-x 1 dev dev  5026544 Dec 17 09:28 docker-runc
-rwxrwxr-x 1 dev dev 11956096 Dec 17 09:28 runc

 ここに一式コマンドがあるので、使い慣れたdocker/Dockerfile、docker-compose/docker-compose.ymlでコンテナを起動する。今回はWordpress(port 9991)+MariaDBを動かしてみる。なおdockerはversion 20.10.17, build 20.10.17、docker-composeはversion v2.12.2だった。

「docker-compose.yml」
version: '3'
services:
# MariaDB
   db:
     image: mariadb:latest
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: root2wordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

# WordPress
   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports: # NASのIPアドレス:9991でアクセス可能に
       - "192.168.11.95:9991:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
volumes:
    db_data:

以下でコンテナを起動、状態を確認する。

# /Volume1/@apps/docker/dockerd/bin/docker-compose up -d
# /Volume1/@apps/docker/dockerd/bin/docker-compose ps
NAME                COMMAND                  SERVICE             STATUS              PORTS
test-db-1           "docker-entrypoint.s…"   db                  running             3306/tcp
test-wordpress-1    "docker-entrypoint.s…"   wordpress           running             192.168.11.95:9991->80/tcp

 runningの192.168.11.95:9991->80/tcpは、NASのIPアドレス:9991でWebブラウザからアクセスすると、コンテナのポート80、つまりHTTPへ転送されることを意味する。これでコンテナ内のWordpressにLAN上のマシンからアクセスできるようになる。

 せっかくDocker ManagerとPortainerを入れたので、GUIでも状態を確認。問題なさそうなので、Wordpressを初期設定し、管理画面にログイン。OKだ。

 実際操作してみると、長年使用中のQNAP TS-231+(Arm Cortex-A15 デュアルコア 1.4GHz/1GB/HDD RAID1)より、プロセッサもストレージも格段に速く、GUIのコンパネ、DockerのBuildなど、何をしても快適だ。メモリも1GB vs 4GBでアプリケーションサーバー的に使うにしても余裕がある。

Docker Manager/概要
Docker Manager/コンテナ/test-wordpress-1
Portainer/Container ※admin/adminでログインできる
Wordpress管理画面

 開発時、このパターンでWordpressを動かす時は、テーマの開発/改造だったり、先にコンテンツを作り込むのに使うのだが、このままだと、テーマやアップロードしたファイル、プラグインなどがコンテナ内に入ってしまい、容易に編集できないのと、コンテナのイメージを落とすと消えてしまうので、ストレージ上に恒久化するvolumes:を設定しなければならない。この辺りの話は検索すればいろいろ出てくるので、興味のある人は調べてほしい。

 最後はNAS自体のメモリが4GBなのでお遊びになるが、VirtualBoxを使ってWindowsを動かしてみた。ただしVMの仕様上、11は動かず、10までとなる。割当てたメモリは2GB。素の状態ではセットアップ途中でエラーとなり駄目だったが、こちらは問題なくインストールできた。画面はRDP(NASのIPアドレス:9100)を使い接続する。

Web UIのVirtualBox(admin/adminでログイン)
RDP接続でWindows 10が作動した。ただしCeleron/2GBなので、動いた……というレベル

 NASのメモリ4GBだと、この状態でもうシステム的には80%以上(3GB以上)使っており、ギリギリ。せめて+4GBで計8GBあれば……というところ。GUIなしのLinuxを動かすにしても、1-2GBは欲しい。せっかくSO-DIMM 1スロット空いているにも関わらず、上記したように結局高価な純正メモリしか使えないのが痛い。

NASとしての速度は!?

 さて、肝心のNASとしての速度だが、筆者の作業部屋は外部回線に固定IPアドレスが必要(IPアドレス制限のサーバーなどがあるため)で今どき光でも100Mbps。従ってLANはGbEとなっている。これではおそらく100MB/s程度だと思われるので(実測でもそうだった)、2.5GbE LAN搭載のPCへNASを直結。計測したのが以下の結果だ。

CrystalDiskMarkの結果。シーケンシャルリード/ライトが290MB/s超え

 さすがにシーケンシャルリード/ライトで290MB/s以上出ている。これでもSATA接続のSSDは500MB/s前後なので帯域幅不足。10GbEなら半分の帯域で間に合ってしまう計算になる。環境が整ってる人からみると、F2-422が10GbE+GbEだったのに、本機F2-423で2.5GbE✕2になってしまい残念な部分だろう。


 以上のようにTerraMaster「F2-423」は、Celeron N5095/4GBのベアボーンPC的なNASシステムだ。コストパフォーマンスはともかくとして、Ubuntuなど、ほかのx86系OSも素のままで動かすことができる。

 NASとしては、前モデルのF2-422が10GbE+GbEだったのに対し、2.5GbE✕2になってしまったのは残念だが、プロセッサのパワーアップ、DDR4、M.2 SSDによるキャッシュ、USB 3.1(10Gbps)、価格を度返しすれば最大32GBまでメモリを搭載可能。結構強力なシステムにすることができる。

 今回主にアプリケーションサーバー的な機能をピックアップしたので、クラウド同期など、NASの一般的な機能はご紹介しなかったが、もちろん一通り揃っている。

 プロセッサにx86系を搭載し、ちょっと遊び心のあるNASを探しているユーザーにお勧めしたい逸品だ。