Windows Server & Linux NAS Sparse File System

Overview

BackupAssist can be used to backup data from a Windows Server file system to a Linux NAS sparse file system (ext4 or XFS). Under certain conditions these types of backups can encounter an error. The issue is known to occur on Windows Server 2012/R2, Windows 8 and intermittently on Windows Server 2008/R2.

Compatibility issue

When using BackupAssist to perform a backup from a Windows file system to a Linux (ext4 or XFS) file system, the backup can fail if the following conditions apply:

  • The backup is running a system protection job to the Linux based NAS.
  • The Linux NAS has sparse file allocation turned on.

These conditions can result in the following possible error messages:

  • The version does not support this version of the file format.
  • Unable to backup volume to a sparse file system.

Many Linux-based NAS systems will present shared folders and iSCSI targets as an NTFS destination to the user, but this error can still occur if the underlying NAS file system is ext4 or XFS.

Resolution

The following Knowledge Base article provides instructions of how configure your NAS to resolve this error when it occurs. The following section provides background information on this known issue.

Additional information

Windows NTFS and Linux (ext4 or XFS) each handle the allocation of data blocks differently when preparing to write a file. This difference is transparent to the user, but limitations can be seen when trying to write a large file across a network from a Windows client application to a Linux-based NAS. When using the default Samba configuration, writing a large file from the Windows client can result in a timeout. BackupAssist would report this timeout as a backup failure.

Windows file system

Prior to writing a file, the Windows NTFS file system will allocate, at once, all blocks required for the file. This is an important difference when compared to the "sparse" file system behavior of Linux ext4 and XFS, which allocates blocks dynamically when the file is written.

Linux file system

With Windows, the file system is forced to allocate storage blocks when a file is created or extended. The default behavior on Linux is to create a sparse file. A sparse file is a specific type of file which aims to use file system space more efficiently by using metadata to represent empty blocks. In the case of a sparse file, blocks are allocated and written dynamically as the actual data is written, rather than at the time the file is created.

References

More information can be found in the following reference documents

From samba, there is a performance resource and a configuration resource

From technet, there is a blog article.