{"id":17674531,"url":"https://github.com/007revad/synology_enable_deduplication","last_synced_at":"2025-04-05T10:07:19.142Z","repository":{"id":150650724,"uuid":"622670747","full_name":"007revad/Synology_enable_Deduplication","owner":"007revad","description":"Enable deduplication with non-Synology SSDs and unsupported NAS models","archived":false,"fork":false,"pushed_at":"2025-03-22T20:05:31.000Z","size":725,"stargazers_count":164,"open_issues_count":5,"forks_count":6,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-03-28T13:46:09.632Z","etag":null,"topics":["deduplication","diskstation","dsm","rackstation","synology","synology-disk-station","synology-dsm","synology-nas"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/007revad.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.txt","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"007revad","buy_me_a_coffee":"007revad","custom":["https://www.paypal.me/007revad"]}},"created_at":"2023-04-02T19:34:52.000Z","updated_at":"2025-03-28T11:44:49.000Z","dependencies_parsed_at":"2023-11-17T10:29:56.696Z","dependency_job_id":"7c377ec8-0188-4bd6-bb8a-1c0aef08dac2","html_url":"https://github.com/007revad/Synology_enable_Deduplication","commit_stats":{"total_commits":210,"total_committers":1,"mean_commits":210.0,"dds":0.0,"last_synced_commit":"0ae7dd2a319ae3fdb15fef28404611d7dd53adaf"},"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/007revad%2FSynology_enable_Deduplication","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/007revad%2FSynology_enable_Deduplication/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/007revad%2FSynology_enable_Deduplication/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/007revad%2FSynology_enable_Deduplication/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/007revad","download_url":"https://codeload.github.com/007revad/Synology_enable_Deduplication/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247318744,"owners_count":20919484,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deduplication","diskstation","dsm","rackstation","synology","synology-disk-station","synology-dsm","synology-nas"],"created_at":"2024-10-24T07:07:25.769Z","updated_at":"2025-04-05T10:07:19.123Z","avatar_url":"https://github.com/007revad.png","language":"Shell","funding_links":["https://github.com/sponsors/007revad","https://buymeacoffee.com/007revad","https://www.paypal.me/007revad","https://www.paypal.com/paypalme/007revad"],"categories":[],"sub_categories":[],"readme":"# Synology enable Deduplication\n\n\u003ca href=\"https://github.com/007revad/Synology_enable_Deduplication/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/release/007revad/Synology_enable_Deduplication.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://hits.seeyoufarm.com\"\u003e\u003cimg src=\"https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2F007revad%2FSynology_enable_Deduplicationh\u0026count_bg=%2379C83D\u0026title_bg=%23555555\u0026icon=\u0026icon_color=%23E7E7E7\u0026title=views\u0026edge_flat=false\"/\u003e\u003c/a\u003e\n[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/paypalme/007revad)\n[![](https://img.shields.io/static/v1?label=Sponsor\u0026message=%E2%9D%A4\u0026logo=GitHub\u0026color=%23fe8e86)](https://github.com/sponsors/007revad)\n[![committers.top badge](https://user-badge.committers.top/australia/007revad.svg)](https://user-badge.committers.top/australia/007revad)\n\n### Description\n\nEnable data deduplication with non-Synology SSDs and unsupported NAS models\n\n- Works for any brand SATA SSD, SAS SSD and M.2 SSD drives in DSM 7.01 and later.\n- Now works for HDDs in DSM 7.2.1 and later.\n- Now works for M.2 drives in a PCIe adapter card (E10M20-T1, M2D20, M2D18 or M2D17) in DSM 7.2.1 and later.\n\nIt works on [Synology models that do offically support data deduplication](https://kb.synology.com/en-global/DSM/tutorial/Which_models_support_data_deduplication).\n\nIt also works in DSM 7.0.1 to 7.2.1 on models with one of the following [CPU architectures](https://kb.synology.com/en-global/DSM/tutorial/What_kind_of_CPU_does_my_NAS_have): V1000, R1000, Geminilake and Broadwellnk.\n\nIt only works in DSM 7.2.1 on models with a Broadwellnkv2, Broadwell, Purley, Epyc7002 CPU.\n\nIt does **NOT** work for models with Apollolake, Avoton or Denverton CPUs.\n\nPlease [leave a comment in this discussion](https://github.com/007revad/Synology_enable_Deduplication/discussions/31) if it works, or doesn't work, for you.\n\n### Requirements\n\n- Btrfs Tiny Data Deduplication requires 4GB of memory or more.\n- Btrfs Data Deduplication requires 16GB of memory or more.\n- The volume needs **Usage detail analysis** enabled. See [Enable and View Usage Details](https://kb.synology.com/en-global/DSM/help/DSM/StorageManager/volume_view_usage?version=7).\n\n\n### Works in DSM 7.2.1 and 7.2.2 for the following models\n\n\u003cdetails\u003e\n  \u003csummary\u003eClick here to see list\u003c/summary\u003e\n\n| Model      | CPU Arch      | DSM version                   | Works  | Notes |\n|------------|---------------|-------------------------------|--------|-------|\n| DS224+     | Geminilake    | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| DS1823xs+  | V1000         | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| DS923+     | R1000         | DSM 7.2.2-72806 Update 2 | yes    | Use v1.2.14 or later |\n| DS923+     | R1000         | DSM 7.2.2-72806 | yes    | Use v1.2.14 or later |\n| DS923+     | R1000         | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| DS723+     | R1000         | DSM 7.2.2-72806 Update 3 | yes    | Use v1.2.14 or later |\n| DS723+     | R1000         | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| DS423+     | Geminilake    | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| DS3622xs+  | Broadwellnk   | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| DS2422xs+  | V1000         | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| DS1821+    | V1000         | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| DS1621+    | V1000         | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| DS1621xs+  | Broadwellnk   | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| DS1522+    | R1000         | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| DS1520+    | Geminilake    | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| DS920+     | Geminilake    | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| DS720+     | Geminilake    | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| DS420+     | Geminilake    | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| DS220+     | Geminilake    | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| DS3018xs   | Broadwellnk   | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| DS3017xsII | Broadwell     | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| DS3017xs   | Broadwell     | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| | | | | |\n| DVA1622    | Geminilake    | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| | | | | |\n| RS2423xs+  | V1000         | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| RS822xs+   | V1000         | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| RS422xs+   | R1000         | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| RS4021xs+  | Broadwellnk   | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| RS3621RPxs | Broadwellnk   | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| RS3621xs+  | Broadwellnk   | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| RS2821RPxs+ | V1000        | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| RS2421xs+  | V1000         | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| RS1221xs+  | V1000         | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| RS1619xs+  | Broadwellnk   | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| RS3618xs   | Broadwell     | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| RS3617xs+  | Broadwell     | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| RS3617RPxs | Broadwell     | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| RS18017xs+ | Broadwell     | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| RS4017xs+  | Broadwell     | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| | | | | |\n| FS6400     | Purley        | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| FS3600     | Broadwellnk   | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| FS3410     | Broadwellnkv2 | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| FS3400     | Broadwell     | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| FS2500     | V1000         | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| FS2017     | Broadwell     | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| FS1018     | Broadwellnk   | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| | | | | |\n| HD6500     | Purley        | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| | | | | |\n| SA6400     | Epyc7002      | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| SA3610     | Broadwellnkv2 | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| SA3600     | Broadwellnk   | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| SA3410     | Broadwellnkv2 | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n| SA3400     | Broadwellnk   | DSM 7.2.1-69057 Update 1 to 5 | yes    | Use v1.2.14 or later |\n\n\u003c/details\u003e\n\n\n### Models confirmed working with older DSM versions\n\n\u003cdetails\u003e\n  \u003csummary\u003eClick here to see list\u003c/summary\u003e\n\n| Model      | CPU Arch      | DSM version                   | Works  | Notes |\n|------------|---------------|-------------------------------|--------|-------|\n| DS923+     | R1000         | DSM 7.2-64570 Update 1 to 3   | yes    | |\n| DS923+     | R1000         | DSM 7.2-64570                 | yes    | |\n| DS3622xs+  | Broadwellnk   | DSM 7.2-64570                 | **No** | Update to DSM 7.2.1 |\n| DS3622xs+  | Broadwellnk   | DSM 7.2-64561                 | yes    | |\n| DS3622xs+  | Broadwellnk   | DSM 7.1.1-42962 Update 1      | **No** | Update to DSM 7.2.1 |\n| RS4021xs+  | Broadwellnk   | DSM 7.2-64570                 | **No** | Update to DSM 7.2.1 |\n| RS4021xs+  | Broadwellnk   | DSM 7.1.1-42962 Update 2      | yes    | |\n| DS1821+    | V1000         | DSM 7.2-64570 Update 1 to 3   | yes    | |\n| DS1821+    | V1000         | DSM 7.2-64570                 | yes    | |\n| DS1821+    | V1000         | DSM 7.2-64561                 | yes    | |\n| DS1821+    | V1000         | DSM 7.1.1-42962 Update 4      | yes    | |\n| DS1621xs+  | Broadwellnk   | DSM 7.2-64570 Update 3        | yes    | |\n| DS1621xs+  | Broadwellnk   | DSM 7.2-64570                 | yes    | |\n| DS920+     | Geminilake    | DSM 7.2-64570 Update 1 to 3   | yes    | |\n| DS920+     | Geminilake    | DSM 7.2-64570                 | yes    | |\n| DS720+     | Geminilake    | DSM 7.2-64570 Update 1 to 3   | yes    | |\n| DS720+     | Geminilake    | DSM 7.2-64570                 | yes    | |\n| DS3617xs   | Broadwell     |                               | **No** | Update to DSM 7.2.1 |\n| | | | | |\n|            | Apollolake    |                               | **No** | DSM missing many required files |\n|            | Avoton        |                               | **No** | DSM missing many required files |\n|            | Denverton     |                               | **No** | DSM missing many required files |\n\n\u003c/details\u003e\n\n\n## Download the script\n\n1. Download the latest version _Source code (zip)_ from https://github.com/007revad/Synology_enable_Deduplication/releases\n2. Save the download zip file to a folder on the Synology.\n3. Unzip the zip file.\n\n## How to run the script\n\n### Running the script via SSH\n\n[How to enable SSH and login to DSM via SSH](https://kb.synology.com/en-global/DSM/tutorial/How_to_login_to_DSM_with_root_permission_via_SSH_Telnet)\n\n**Note:** Replace /volume1/scripts/ with the path to where the script is located.\nRun the script then reboot the Synology:\n```YAML\nsudo -s /volume1/scripts/syno_enable_dedupe.sh\n```\n\n**Options:**\n```YAML\n  -c, --check           Check value in file and backup file\n  -r, --restore         Undo all changes made by the script\n  -t, --tiny            Enable tiny data deduplication (only needs 4GB RAM)\n                          DSM 7.2.1 and later only\n      --hdd             Enable data deduplication for HDDs.\n                          Can cause files to become more fragmented,\n                          resulting in decreased access performance.\n  -e, --email           Disable colored text in output for scheduler emails\n      --autoupdate=AGE  Auto update script (useful when script is scheduled)\n                          AGE is how many days old a release must be before\n                          auto-updating. AGE must be a number: 0 or greater\n  -s, --skip            Skip memory amount check (for testing)\n  -h, --help            Show this help message\n  -v, --version         Show the script version\n```\n\n**Extra Steps:**\n\nTo get rid of \u003ca href=\"images/notification.png\"\u003edrive database outdated\u003c/a\u003e notifications and \u003ca href=images/before_running_syno_hdd_db.png\u003eunrecognised firmware\u003c/a\u003e warnings run \u003ca href=https://github.com/007revad/Synology_HDD_db\u003eSynology_HDD_db\u003c/a\u003e which will add your drives to DSM's compatibile drive databases, and prevent the drive compatability databases being updated between DSM updates.\n\n```YAML\nsudo -s /path-to-script/syno_hdd_db.sh --noupdate\n```\n\n### What about DSM updates?\n\nAfter any DSM update you will need to run this script, and the Synology_HDD_db script again. \n\n### Schedule the script to run at shutdown\n\nOr 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.\n\nSee \u003ca href=how_to_schedule.md/\u003eHow to schedule a script in Synology Task Scheduler\u003c/a\u003e\n\n\u003cbr\u003e\n\n## Screenshots\n\nHere'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.\n\n\u003cp align=\"center\"\u003eUnsupported NAS model with enough memory\u003c/p\u003e\n\u003cp align=\"center\"\u003e\u003cimg src=\"/images/0_ds1821+.png\"\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003eNon-Synology SSDs setup as a volume\u003c/p\u003e\n\u003cp align=\"center\"\u003e\u003cimg src=\"/images/1_ds1821+_dedupe_nvmes.png\"\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003eEnable Data Deduplication option available after running this script and rebooting\u003c/p\u003e\n\u003cp align=\"center\"\u003e\u003cimg src=\"/images/3_ds1821+_dedupe_option_enabled.png\"\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003eConfigure Data Deduplication\u003c/p\u003e\n\u003cp align=\"center\"\u003e\u003cimg src=\"/images/4_ds1821+_dedupe_configure.png\"\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003eDeduplication finished notification\u003c/p\u003e\n\u003cp align=\"center\"\u003e\u003cimg src=\"/images/5b_ds1821+_dedupe_notification.png\"\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003eDeduplications works.\u003c/p\u003e\n\u003cp align=\"center\"\u003e\u003cimg src=\"/images/6b_ds1821+_dedupe_works.png\"\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003eDeduplication for HDDs too.\u003c/p\u003e\n\u003cp align=\"center\"\u003e\u003cimg src=\"/images/hdd_dedupe.png\"\u003e\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F007revad%2Fsynology_enable_deduplication","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F007revad%2Fsynology_enable_deduplication","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F007revad%2Fsynology_enable_deduplication/lists"}