目次
こんにちは、ふうせん(@fusen_niconico)です。
今回は、DSM 7.1.1~7.2がインストールされたSynology NAS+非純正M.2 SSD環境で、M.2 SSDのストレージプールを作る方法を試してみます。
この方法を使うことで、M.2 SSD上にストレージプールが作成できるモデルかどうかにかかわらず、また非純正M.2 SSDを使用したストレージプールを作成可能です。
1 今までも手順はありました
実はこれまでも非公式ながら、SSHからコマンドをひたすらたたいてM.2 SSD上にストレージプールを作成する方法がありました。
以下とかがそうですね。
Synology の NAS で NVMe SSD にボリュームを割り当てる – Qiita
ただこれは、コマンドを正確にコピペしたり、環境に依存する箇所を書き換えて実行しなければならないなど、簡単とは言えない方法です。
そのため、非公式な上に敷居が高いものでした。やってみると意外と簡単なんですけどね。
2 一連の操作をほぼ自動でやってくれる便利ツールがあった
いつもの通り、有志の方がほぼ自動でやってくれる便利なツールを作ってくれたおかげで、非公式ですが、非常に簡単にストレージプールを作れるようになりました。
今回使用するツールは以下の2つです。
使用ツール
上記のツールは、NASが持っているSynologyのHDD/SSD互換性リストに対して、現在装着している互換性リストに記載のHDD/SSDを自動で追加してくれるツールです。
こちらのツールを使用することで、非互換性のHDD/SSDを使用していても警告を出さないで使用できるというメリットが生まれます。(逆もしかりですが…。)
GitHub – 007revad/Synology_M2_volume: Easily create an M.2 volume on Synology NAS
上記のツールは、これまでコマンドでポチポチやっていたM.2 NVMeのストレージプールの構築をほぼ自動でやってくれるツールです。今回メインで使用するツールはこちらになります。
早速やっていきましょう。
3 NASへSSHでつながるようにする

まずは、DSMの設定から、Synology NASへSSHでつながるように設定します。
[端末とSNMP]→[端末]タブ→[SSHサービスを有効化する。]にチェックを入れ、[適用]をクリックします。
これでSSHサービスを有効化できたので、SSH経由でNASへ接続できるようになりました。
4 SSHでNASへ接続する
Windowsであれば、TeraTermやWindows Terminal、macOSであればTerminalなどで以下のコマンドを実行し、SSHで接続します。
ssh (Admin権限のあるユーザー)@SynologyNASのIPアドレス
ポートを変更している場合は
-p (設定したポート番号)
を引数につけます。
パスワードを求められますので、入力して続行、これで入力したユーザーでログインできたはずです。

5 ツールをダウンロードする
続いて、先ほどのツールをダウンロードします。
ツールのドキュメントには、releaseからsourcecodeをzipでダウンロードするように推奨されていますが、実際に必要なのはシェルファイルだけなのでそちらのみをダウンロードします。
以下のコマンドを順番に実行してください。

$ wget https://raw.githubusercontent.com/007revad/Synology_HDD_db/main/syno_hdd_db.sh
$ chmod +x syno_hdd_db.sh
$ wget https://raw.githubusercontent.com/007revad/Synology_M2_volume/main/syno_create_m2_volume.sh
$ chmod +x syno_create_m2_volume.sh
2つのシェルファイルがダウンロードでき、実行権限を付与出来たら準備完了です。
6 非純正SSDを互換性リストに追加する
正直、今までもこれを実施しなくてもストレージプールは作成できていたので、この工程が必要かどうかはわかりません。ただ、DSMのバージョンが上がった際に非純正製品を使用していると突然警告が出たりする場合があるので、その対策的な感じでしょうか。
まず、以下のコマンドを実行します。パスワードを求められたら入力します。
$ sudo -i ./syno_hdd_db.sh

NASに搭載されているHDDとSSD、M.2カードおよび拡張ユニットに搭載されているHDD/SSDの検索が行われ、非純正のストレージが自動的にNASの互換性リストに追加されます。合わせて、M.2ボリュームのサポートが有効化されます。
7 M.2 SSDのストレージプールを作る
いよいよM.2 SSDのストレージプールを作ります。
残念ながら、互換性リストにSSDが追加されてもDSMのストレージマネージャからはストレージプールを作れません。
代わりに、OSのコマンドでRAIDグループを構築し、それをDSMのストレージマネージャに構築準備が整ったストレージプールとして認識させることで、ストレージプールの作成を行います。
以下のコマンドを実行します。パスワードを求められたら入力します。
$ sudo -i ./syno_create_m2_volume.sh
yesを入力して続行すると、本番処理、それ以外の何かを入力して続行すると、ドライ実行になります。

まずは、以下から構築したいRAIDタイプを選んで、該当する数字を入力します。
- シングル(BJOD)
- RAID 0
- RAID 1
そして、搭載されているM.2ストレージから今回の構築に使用するものを選んでいきます。
私はM.2のSSDは2つ搭載しているので、それらを選んでいくことになります。

選択出来たら、M.2ストレージのデータがすべて削除されるけど良いかどうかを尋ねられるため、「yes」と入力します。
再度、続行していいかどうかを尋ねられたら「y」と入力します。

RAIDアレイの構築を実施していいかどうかを尋ねられたら「y」を入力して続行、M.2ストレージの容量によりますが、この作業は結構時間がかかりますので気長に待ちましょう。

構築が完了したら再起動を求められますので、「yes」と入力して再起動します。
8 ストレージマネージャからオンライン組立を行う

再起動後、DSMの通知に[システムは使用されていないドライブを検出しました]と、[システムは利用可能なプール1が組み立て可能であることを検知しました。]が現れます。
後者の通知内のストレージマネージャをクリックし、ストレージマネージャを開きます。

ストレージマネージャが開き、「利用可能なプール1」という新しいプールが表示されます。

右の「…」をクリックし、[オンライン組立]を選択します。

オンライン組立ウィザードが表示されます。
問題がなければ、[適用]をクリックして進めます。

ストレージプールが作成されます。

続いて、[作成]→[ボリュームの作成]からボリューム作成を行います。

ボリュームの作成ウィザードが出てきます。
容量の割り当てをします。今回は最大にしました。

ファイルシステムは、お好みで。
今回は、Btrfsを選びました。

フルボリューム暗号化に対応したモデルの場合、ボリュームの暗号化をするかどうかを尋ねられます。

設定を確認し、問題がなければ[適用]をクリックします。

ボリュームの作成が始まります。少し時間がかかります。
この処理が完了したら、M.2ストレージのストレージプールの完成です!
9 VMのパフォーマンスはどうなるのか?
今回やってみたかったのが、M.2のボリュームにVMを移動させて実行させたら
パフォーマンス向上につながるのか
を調べることです。
次回、実際にVMMにボリュームを追加し、VMをマイグレートして実行した結果、また、それぞれのストレージタイプごとでどの程度パフォーマンスに差が出るのかを調べてみます!