Global Deduplication

  • Increase font size
  • Default font size
  • Decrease font size

Windows Quickstart Guide

E-mail Print PDF

System Requirements

* Windows (8,7,XP,Vista,2003,2008,2012) Distribution. The application was tested and developed on Windows 7 (64bit)
* Dokan 5.3+.  Dokan can be downloaded from (Included in setup)
* 2 GB of Available RAM * Java 7 (32 bit) - included in package.

Getting Started

Step 1: Download and Install the SDFS package and setup the Dokan library and driver. 

Step 2: Opend a command propmt and go to "c:\program files\sdfs"

Step 3: Create an sdfs file system.

To create and SDFS file System you must run the mksdfs command from within the SDFS binary directory. Make sure you have "Full Control permissions to the "c:\program files\sdfs" directory. The setup should change the rights appropriately but you may want to make sure.

Example to create a SDFS volume

mksdfs --volume-name=<volume-name> --volume-capacity=<capacity>

A Fixed Block Real World Example :

mksdfs --volume-name=sdfs_vol1 --volume-capacity=100GB

Variable Block Real World Example

mksdfs --volume-name=pool0 --volume-capacity=256GB --hash-type=VARIABLE_MURMUR3

Step 4: Mount the sdfs

To mount SDFS run the following command:

mountsdfs -v <volume-name> -m <drive-letter>


mountsdfs -v sdfs_vol1 -m S

Known Limitation(s)

  1. Testing has been limited thus far. Please test and report bugs
  2. The Dokan library is quite flakey  and testing should be performed before putting into production

Additional Information:



By default SDFS on Windows is single threaded and this will be changed in the future once more testing is done. Based on testing, a single threaded SDFS volume will write at about 15 MB/s.   To enable faster throughput multithreading can be enabled either when the volume is created on within the XML file. To enable multithreading at volume creation add  "--io-safe-close=false" as a command line option to mksdfs. Otherwise edit the xml configuration file (<volume-name>-volume-cfg.xml) within c:\program files\sdfs\etc and set "io-saf-close=false" .

Example to create a SDFS volume with multi-threaded support:

mksdfs --volume-name=<volume-name> --volume-capacity=<capacity> --io-safe-close=false

Safe close prevents the file from closing when commanded by the filesystem, but is instead closed based on inactivity. Setting this to "false" could cause corruption if the file is still open while the system crashes.


Tips and Tricks

There are plenty of options to create a file system and to see them run "mksdfs --help".

File Placement

Deduplication is IO Intensive. SDFS, by default writes data to c:\program files\sdfs. MAKE SURE YOU HAVE READ AND WRITE PERMISSIONS TO THIS DIRECTORY SDFS does a lot of writes went persisting data and a lot of random io when reading data. For high IO intensive applications it is suggested that you split at least the chunk-store-data-location and chunk-store-hashdb-location onto fast and separate physical disks. From experience these are the most io intensive stores and could take advantage of faster IO.


SDFS provides snapshot functions for files and folders. The snapshot command is "sdfscli --snapshot --file-path=<path to file without drive letter> --snapshot-path=<destination>". The destination path is relative to the mount point of the sdfs filesystem.

Other options and extended attributes

SDFS keeps deduplication rates and IO per file. To get IO statistics run "sdfscli --file-info --file-path=<path to file without drive letter>" within the mount point of the sdfs file system.


sdfscli --file-info --file-path=folder\test.vmdk

Command Line Interface (SDFSCli)

Since windows does not have a command line for getting and setting file attributes similiar to Linux, SDFS created a command line interface for managing the SDFS filesystem. SDFScli matches 1 for 1 with all commands available with the getattr and setattr command available within Linux, except it does not set extended file attributes. Below is the command structure for SDFSCli.


usage: sdfs.cmd <options>

--dedup-file                      Deduplicates all file blocks if set to true, otherwise it will only dedup blocks that are already stored in the DSE.

e.g. --dedup-file=true --file-path=<file to flush>

--file-info                       Returns io file attributes such as dedup rate and file io statistics.

e.g. --file-info --file-path=<path to file or folder>

--file-path <RELATIVE PATH>       The relative path to the file or folder to take action on.

e.g. --file-path=readme.txt or --file-path=file\file.txt

--flush-all-buffers               Flushes all buffers within an SDFS file system.

e.g. --flush-file-buffers --file-path=<file to flush>

--flush-file-buffers              Flushes to buffer of a praticular file.

e.g. --flush-file-buffers --file-path=<file to flush>

--help                            Display these options.

--snapshot                        Creates a snapshot for a particular file or folder.

e.g. --snapshot --file-path=<source-file> --snapshot-path=<snapshot-destination>

--snapshot-path <RELATIVE PATH>   The relative path to the destination of the snapshot.

e.g. --snapshot-path=snap-readme.txt or --snapshot-path=file\snap-file.txt




Last Updated on Tuesday, 10 March 2015 04:46  


Latest News

SDFS Version 2.0.11 Released. Check out the change log.
The virtual NAS appliance version 3.0.1 has been released. It includes fixes for Cloud and local storage