CloudTier Storage Tiering Filter Driver SDK

Download CloudTier Storage Tiering SDK Setup File
Download CloudTier Storage Tiering SDK Zip File

What is the CloudTier Storage Tiering SDK

The CloudTier Storage Tiering SDK is a Hierarchical Storage Management (HSM) file system filter driver development kit. It implements a data storage strategy that automatically migrates data between high-cost and low-cost storage media, optimizing storage efficiency and reducing both capital and operational expenses.

This SDK offers a simple and cost-effective solution to seamlessly integrate your on-premises storage infrastructure with cloud storage. The migration of files to the cloud happens transparently and securely, with no disruption to existing applications or infrastructure.

The SDK uses on-premises storage as Tier 0 (hot storage) and cloud storage as Tier 1 (cold storage). Cooler or less frequently accessed data is automatically moved to cloud storage, freeing up local storage capacity. Your applications can continue to access all files as if they reside locally—no changes to your code or workflow are required.

Cloud Tiering

Understand The File System Filter Driver

A file system filter driver intercepts requests targeted at a file system or another file system filter driver. By intercepting the request before it reaches its intended target, the filter driver can extend or replace functionality provided by the original target of the request. File system filtering services are available through the filter manager in Windows. The Filter Manager provides a framework for developing File Systems and File System Filter Drivers without having to manage all the complexities of file I/O.

filter driver

Storage Tiering Solution

Storage tiering is a powerful technology that enables seamless, transparent access to remote storage. The CloudTier Storage Tiering SDK integrates directly with the local file system, allowing applications to interact with remote data as if it were stored locally. When an application accesses a stub file, the CloudTier filter driver automatically retrieves the corresponding data from remote storage or rehydrates the stub into a fully accessible physical file—based on defined recall policies.

A stub file mimics a standard file in appearance and behavior. It retains all the original file’s metadata—including file size, creation time, last write time, last access time, and security attributes. Technically, a stub file is a sparse file with a reparse point attribute. It can also store custom tag data, embedded directly in the stub metadata. Unlike a physical file, a stub file consumes minimal disk space, as it does not store the actual file content—only the file’s metadata.

stub file

How to Implement a Storage Tiering Solution

To implement a storage tiering solution, the first step is to transfer files to remote storage, which can be either a private cloud or a public cloud provider. Once the files have been successfully uploaded to the remote server, they can be replaced with stub files on the local system—according to your Information Lifecycle Management (ILM) policy.

After a file is replaced by a stub, the actual data is no longer stored locally, thereby freeing up valuable on-premises storage space. The stub file retains the original metadata and serves as a placeholder, enabling seamless access and recall when needed.

archived data

Key Features

🔁 Transparent Data Tiering

  • Automatically identifies and offloads less-used files to cloud storage.

  • Replaces migrated files with stub files that retain metadata (name, size, timestamps, permissions) but consume minimal local disk space.

  • Stub files appear and behave like normal files, allowing users to access them as usual. When opened, content is fetched from the cloud in real time.

⚙️ Non-Disruptive Integration

  • No changes required in existing applications or business logic.

  • Cloud storage is mapped as Tier 1 (cold storage) while local on-premises storage remains Tier 0 (hot storage).

  • Applications continue to function as if all files are locally available.

🔐 Secure & Policy-Based Migration

  • Supports policy-driven data movement based on file age, size, or access frequency.

  • Ensures data security and integrity during migration and recall.

  • Allows flexible configuration for retention, recall, and purging strategies.

🧰 Developer-Friendly SDK

  • Designed for fast integration into your software products.

  • Supports popular programming languages including C++, C#, and Java.

  • Comes with complete demo source code and sample applications.


Benefits

  • 📉 Reduce storage costs by offloading infrequently used files to cloud.

  • 📦 Optimize local storage capacity without affecting performance.

  • 🔄 Maintain seamless file access for end users.

  • 🔧 Accelerate product development with robust APIs and ready-to-use demos.

  • 🌐 Enable hybrid cloud strategies for scalable and flexible storage management.


Use Cases

  • Healthcare: Archive patient records and imaging data to comply with regulatory retention requirements.

  • Legal & Compliance: Retain large volumes of data for audits and litigation support.

  • Media & Entertainment: Store high-resolution media files cost-effectively.

  • Public Safety: Archive surveillance video and forensic files securely in the cloud.

Getting Started with CloudTier Storage Tiering SDK

Using the CloudTier Storage Tiering SDK is straightforward. We provide C++ and C# demo source code to help you quickly understand how to integrate and use the SDK in your application.

The first step in implementing storage tiering is to generate a stub file using the API CreateStubFileEx, as shown below:

[DllImport("FilterAPI.dll", SetLastError = true)]
public static extern bool CreateStubFileEx(
    [MarshalAs(UnmanagedType.LPWStr)] string fileName,
    long fileSize,
    uint fileAttributes,
    uint tagDataLength,
    IntPtr tagData,
    long creationTime,
    long lastWriteTime,
    long lastAccessTime,
    bool overwriteIfExist,
    ref IntPtr fileHandle);

This API allows you to create a stub file that replaces the original file after it has been moved to remote storage, helping you manage your on-premises storage more efficiently.

Handling Read Requests for Stub Files

After generating a stub file, the next step is to handle read requests for that file. To do this, you must register a callback function with the file system filter driver.

When the stub file is accessed by an application, the registered callback function is triggered. This function is responsible for retrieving the actual file data from the remote storage (e.g., cloud server) and returning it to the filter driver. The filter driver will then pass this data to the requesting application seamlessly.

To integrate this functionality into your application, you need to start the filter driver service and register the callback function, as demonstrated below.

C# Example: Start Filter Driver and Register Read Callback

using System;
using EaseFilter.FilterControl;

public class CloudTierService
{
    static FilterControl filterControl = new FilterControl();

    public static void Main()
    {
        // Initialize the filter driver control
        if (!filterControl.StartFilter("yourRegistrationKey", FilterType.FILE_SYSTEM_FILTER, 0))
        {
            Console.WriteLine("Failed to start the filter driver: " + FilterControl.GetLastErrorMessage());
            return;
        }

        // Register the read callback for stub files
        filterControl.OnReadFile += new FilterControl.ReadFileEventHandler(OnStubFileRead);

        Console.WriteLine("Filter driver started and callback registered.");
    }

    // Callback function that retrieves data from remote storage
    private static bool OnStubFileRead(string fileName, long offset, int length, out byte[] dataBuffer)
    {
        // Example: retrieve data from cloud storage
        dataBuffer = CloudStorageClient.FetchData(fileName, offset, length);
        return dataBuffer != null;
    }
}

CloudTier SDK Demo Video

CloudTier Storage Tiering SDK Demo
CloudTier Storage Tiering SDK Demo
Storage tiering with S3 cloud.