Synology enable Deduplication
Description
Enable data deduplication with non-Synology SSDs and unsupported NAS models
- Works for any brand SATA SSD, SAS SSD and M.2 SSD drives in DSM 7.01 and later.
- Now works for HDDs in DSM 7.2.1 and later.
- Now works for M.2 drives in a PCIe adapter card (E10M20-T1, M2D20, M2D18 or M2D17) in DSM 7.2.1 and later.
It works on Synology models that do offically support data deduplication.
It also works in DSM 7.0.1 to 7.2.1 on models with one of the following CPU architectures: V1000, R1000, Geminilake and Broadwellnk.
It only works in DSM 7.2.1 on models with a Broadwellnkv2, Broadwell, Purley, Epyc7002 CPU.
It does NOT work for models with Apollolake, Avoton or Denverton CPUs.
Please leave a comment in this discussion if it works, or doesn't work, for you.
Requirements
- Btrfs Tiny Data Deduplication requires 4GB of memory or more.
- Btrfs Data Deduplication requires 16GB of memory or more.
- The volume needs Usage detail analysis enabled. See Enable and View Usage Details.
Works in DSM 7.2.1 for the following models
Click here to see list
| Model | CPU Arch | DSM version | Works | Notes |
|------------|---------------|-------------------------------|--------|-------|
| DS224+ | Geminilake | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| DS1823xs+ | V1000 | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| DS923+ | R1000 | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| DS723+ | R1000 | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| DS423+ | Geminilake | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| DS3622xs+ | Broadwellnk | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| DS2422xs+ | V1000 | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| DS1821+ | V1000 | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| DS1621+ | V1000 | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| DS1621xs+ | Broadwellnk | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| DS1522+ | R1000 | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| DS1520+ | Geminilake | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| DS920+ | Geminilake | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| DS720+ | Geminilake | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| DS420+ | Geminilake | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| DS220+ | Geminilake | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| DS3018xs | Broadwellnk | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| DS3017xsII | Broadwell | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| DS3017xs | Broadwell | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| | | | | |
| DVA1622 | Geminilake | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| | | | | |
| RS2423xs+ | V1000 | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| RS822xs+ | V1000 | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| RS422xs+ | R1000 | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| RS4021xs+ | Broadwellnk | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| RS3621RPxs | Broadwellnk | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| RS3621xs+ | Broadwellnk | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| RS2821RPxs+ | V1000 | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| RS2421xs+ | V1000 | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| RS1221xs+ | V1000 | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| RS1619xs+ | Broadwellnk | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| RS3618xs | Broadwell | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| RS3617xs+ | Broadwell | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| RS3617RPxs | Broadwell | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| RS18017xs+ | Broadwell | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| RS4017xs+ | Broadwell | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| | | | | |
| FS6400 | Purley | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| FS3600 | Broadwellnk | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| FS3410 | Broadwellnkv2 | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| FS3400 | Broadwell | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| FS2500 | V1000 | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| FS2017 | Broadwell | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| FS1018 | Broadwellnk | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| | | | | |
| HD6500 | Purley | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| | | | | |
| SA6400 | Epyc7002 | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| SA3610 | Broadwellnkv2 | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| SA3600 | Broadwellnk | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| SA3410 | Broadwellnkv2 | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
| SA3400 | Broadwellnk | DSM 7.2.1-69057 Update 1 to 5 | yes | Use v1.2.14 or later |
Models confirmed working with older DSM versions
Click here to see list
| Model | CPU Arch | DSM version | Works | Notes |
|------------|---------------|-------------------------------|--------|-------|
| DS923+ | R1000 | DSM 7.2-64570 Update 1 to 3 | yes | |
| DS923+ | R1000 | DSM 7.2-64570 | yes | |
| DS3622xs+ | Broadwellnk | DSM 7.2-64570 | **No** | Update to DSM 7.2.1 |
| DS3622xs+ | Broadwellnk | DSM 7.2-64561 | yes | |
| DS3622xs+ | Broadwellnk | DSM 7.1.1-42962 Update 1 | **No** | Update to DSM 7.2.1 |
| RS4021xs+ | Broadwellnk | DSM 7.2-64570 | **No** | Update to DSM 7.2.1 |
| RS4021xs+ | Broadwellnk | DSM 7.1.1-42962 Update 2 | yes | |
| DS1821+ | V1000 | DSM 7.2-64570 Update 1 to 3 | yes | |
| DS1821+ | V1000 | DSM 7.2-64570 | yes | |
| DS1821+ | V1000 | DSM 7.2-64561 | yes | |
| DS1821+ | V1000 | DSM 7.1.1-42962 Update 4 | yes | |
| DS1621xs+ | Broadwellnk | DSM 7.2-64570 Update 3 | yes | |
| DS1621xs+ | Broadwellnk | DSM 7.2-64570 | yes | |
| DS920+ | Geminilake | DSM 7.2-64570 Update 1 to 3 | yes | |
| DS920+ | Geminilake | DSM 7.2-64570 | yes | |
| DS720+ | Geminilake | DSM 7.2-64570 Update 1 to 3 | yes | |
| DS720+ | Geminilake | DSM 7.2-64570 | yes | |
| DS3617xs | Broadwell | | **No** | Update to DSM 7.2.1 |
| | | | | |
| | Apollolake | | **No** | DSM missing many required files |
| | Avoton | | **No** | DSM missing many required files |
| | Denverton | | **No** | DSM missing many required files |
Download the script
- Download the latest version Source code (zip) from https://github.com/007revad/Synology_enable_Deduplication/releases
- Save the download zip file to a folder on the Synology.
- Unzip the zip file.
How to run the script
Running the script via SSH
How to enable SSH and login to DSM via SSH
Note: Replace /volume1/scripts/ with the path to where the script is located.
Run the script then reboot the Synology:
sudo -s /volume1/scripts/syno_enable_dedupe.sh
Options:
-c, --check Check value in file and backup file
-r, --restore Undo all changes made by the script
-t, --tiny Enable tiny data deduplication (only needs 4GB RAM)
DSM 7.2.1 and later only
--hdd Enable data deduplication for HDDs.
Can cause files to become more fragmented,
resulting in decreased access performance.
-e, --email Disable colored text in output for scheduler emails
--autoupdate=AGE Auto update script (useful when script is scheduled)
AGE is how many days old a release must be before
auto-updating. AGE must be a number: 0 or greater
-s, --skip Skip memory amount check (for testing)
-h, --help Show this help message
-v, --version Show the script version
Extra Steps:
To get rid of drive database outdated notifications and unrecognised firmware warnings run Synology_HDD_db which will add your drives to DSM's compatibile drive databases, and prevent the drive compatability databases being updated between DSM updates.
sudo -s /path-to-script/syno_hdd_db.sh --noupdate
What about DSM updates?
After any DSM update you will need to run this script, and the Synology_HDD_db script again.
Schedule the script to run at shutdown
Or you can schedule both Synology_enable_Deduplication and Synology_HDD_db to run when the Synology shuts down, to avoid having to remember to run both scripts after a DSM update.
See How to schedule a script in Synology Task Scheduler
Screenshots
Here's the result after running the script and rebooting. Note that the DS1821+ is not officially listed as supporting deduplication, and non-Synology SSDs are being used.
Unsupported NAS model with enough memory
Non-Synology SSDs setup as a volume
Enable Data Deduplication option available after running this script and rebooting
Configure Data Deduplication
Deduplication finished notification
Deduplications works.
Deduplication for HDDs too.