007revad / Synology_enable_Deduplication

Enable deduplication with non-Synology SSDs and unsupported NAS models
MIT License
121 stars 5 forks source link
deduplication diskstation dsm rackstation synology synology-disk-station synology-dsm synology-nas

Synology enable Deduplication

Donate committers.top badge

Description

Enable data deduplication with non-Synology SSDs and unsupported NAS models

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

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

  1. Download the latest version Source code (zip) from https://github.com/007revad/Synology_enable_Deduplication/releases
  2. Save the download zip file to a folder on the Synology.
  3. 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.