Synology: DSM 7.2.1-69057 Update 3
For those who had errors after reboot. The script that update the DSM devices works for me.
When Synology released DS920+, many customer (include me) think the additional NVME slots can use as storage. But the truth is - NVME SSD can only setup as cache in DSM.
As DSM is a Linux based system, I think I can try to use command (instead of DSM interface) setup NVME as storage. After some trial and test, I found the step to make it work.
You should have some knowledge on using command line (ssh) in DSM and highly recommend to backup you system beforehand. Also, you may risk to lost your DSM setting/volume/data.
Install NVMe SSD
Install NVME SSD to DS920 and bootup.
Enable SSH
If you already enabled SSH. You can skip this.
Enable SSH login on your DS920+.
Use script to add your drives to your Synology's drive compatibility database v1.2.16
I found some sources to fix my device by running a script. Read more below how I fixed my NVMe device.
Login to SSH as root ( sudo -s
)
Run the script
# CHMOD the file
chmod +x Synology_HDD_db-main/syno_hdd_db.sh
# Run the script
/volume1/scripts/Synology_HDD_db-main/syno_hdd_db.sh
v3.4.84 this time of writing
https://github.com/007revad/Synology_HDD_db/archive/refs/tags/v3.4.84.tar.gz
Optional
You can download the file from the Release instead of Main branch
Optional: Run script on every boot
Yes. You also have to re-run the script after DSM downloads a newer version of the drive-compatibility database, which can happen between DSM updates.
It's best to schedule the script to run when the Synology boots.
- Go to Control Panel > Task Scheduler, click Create, and select Triggered Task.
- Select User-defined script.
- Enter a task name.
- Select root as the user.
- Select Boot-up as the event that triggers the task.
- Leave enable ticked.
- Click Task Settings.
- Optionally you can tick "Send run details by email" and "Send run details only when the script terminates abnormally" then enter your email address.
- In the box under "User-defined script" type the path to the script. e.g. If you saved the script to a shared folder on volume1 called "scripts" you'd type:
/volume1/scripts/Synology_HDD_db-main/syno_hdd_db.sh
- Click OK to save the settings.
In your DSM see the changes
Sources (Script compatibility database)
What the script does
- Gets the Synology NAS model and DSM version (so it knows which db files to edit).
- Gets a list of the HDD, SSD, SAS and NVMe drives installed in your Synology NAS.
- Gets each drive's model number and firmware version.
- Backs up the database files if there is no backup already.
- Checks if each drive is already in the Synology's compatible-drive database.
- Adds any missing drives to the Synology's compatible-drive database.
- Prevents DSM auto updating the drive database.
- Optionally disable DSM's "support_disk_compatibility".
- Optionally disable DSM's "support_memory_compatibility" to prevent non-Synology memory notifications.
- Optionally edits max supported memory to match the amount of memory installed, if installed memory is greater than the current max memory setting.
- DSM only uses the max memory setting when calculating the reserved RAM area size for SSD caches.
- Optionally disables Western Digital Device Analytics (aka WDDA) to prevent DSM showing a warning for WD drives that are 3 years old.
- DSM 7.2.1 already has WDDA disabled.
- Enables M2D20, M2D18, M2D17 and E10M20-T1 if present on Synology NAS that don't officially support them.
- Checks that M.2 volume support is enabled (on models that have M.2 slots or PCIe slots).
- Enables creating M.2 storage pools and volumes from within Storage Manager (newer models only?).
- Including M.2 drives in PCIe adaptor cards like M2D20, M2D18, M2D17 and E10M20-T1 for DSM 7.2.1 and above (need to run script after each boot).
- Makes DSM recheck disk compatibility so rebooting is not needed if you don't have M.2 drives (DSM 7 only).
- If you have M.2 drives you may need to reboot.
- Reminds you that you may need to reboot the Synology after running the script.
- Checks if there is a newer version of this script and offers to download it for you.
- The new version available messages time out so they don't prevent the script running if it is scheduled to run unattended.
Create Partition
Login as root sudo -s
with SSH and type :
ls /dev/nvme*
In this case /dev/nvme0n1
You will see the /dev/nvme0n1
or /dev/nvme1n1
depend on which slot you install the SSD.
If your SSD at slot 2, use /dev/nvme1n1
instead
Disk /dev/nvme0n1: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: Samsung SSD 980 PRO 1TB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
With this command we check
synopartition --check /dev/sata1
We use 14
for the next command.
--part [--force] disk_path index_of_list(1~20) [logical_size_GB ... 0]
Partition the disk with specific layout.
and answer y
if you confirm
WARNING! You have only one disk.
Cleaning all partitions...
Creating sys partitions...
Creating primary data partition...
Please remember to mdadm and mkfs new partitions.
it will create the partition that follow DSM required layout.
Type
fdisk -l /dev/nvme0n1
You will see the partition layout is created
Create FileSystem
Format Partition
Formatting as Ext4 or BTRFS
Option: BRTFS
Option: Ext4
Attach new partition to new RAID array
We need to see how many Multiple Devices (md) are, and attach the NVMe partition to new one.
Type:
Continue creating array? Answer: y
and press Enter
mdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
--metadata=0.90
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md3 started.
Continue creating array? Press y
and ENTER
Reboot
Online Assemble on DSM
And after the machine bootup, you will see in the Storage Manager, Storage Available Pool 1
- Go to: Available Pool 1
- Look for the three-dots (...) More-icon and hit: Online Assemble
- Hit: Apply
View (M.2 Drive)
Alternative view (M.2 Cache)
Then hit the More-icon (the three dots ...
) for Online Assemble
Confirm settings, hit Apply
Result
As a result Storage Pool 2 is ready and healthy
View (M.2 Drive)
-- insert images --
Alternative View (M.2 Cache)
History
My Storage Pool 2 stops working after reboot. Volume 2 didn’t show. Very frustrating, until I found the script that updates device database. See below the screenshots what it look like when it fails.
Incompatible NVMe
Everything seems fine, until you reboot your DSM (or have a power outage)
Specs
My NVMe specifications:
- Samsung PCIe 4.0 NVMe SSD 980 PRO 1 TB
Revive your critical device
You can go back and remove the Storage Pool (Critical Device).
Assuming DSM creates a record for the Storage Pool, that’s still active and for some reason unable to find a device.
The device/dev/md3
seems to be gone after Online Assemble and the reboot.
Go back to your terminal and format your NVMe. Remember your last address you messed around: /dev/nvme0n1
Login as rootsudo -s
with SSH and type:
Fix
Use the script
Trouble Shoot
I removed Storage Pool 2 by accident
You’ve lost all your data. Start over again with re-partition your NVMe again.
I rebooted my Synology
When you followed my article and missed the ‘Update my Synology HDD Database’ part. Use the script.
I upgraded my Synology to (v7.2.2-72806) and my Storage Pool 2 was missing
When your M.2 storage worked before, but since the update not anymore.
- Log in the SSH.
- Be root user:
sudo -s
- Run the exisiting script again here (or download and run)