Skip to content

Releases: Azure/azure-storage-fuse

blobfuse2-2.5.1

15 Oct 11:36
c09d35a

Choose a tag to compare

Bug Fixes

  • Fail file open operation if the file being downloaded by file-cache can not fit in available disk space (either configured by user or computed implicitly by blobfuse). User application will receive ENOSPC (no space left on device) in response to file open call. (PR #1870)
  • Mount will fail if FNS account is mounted as HNS account. (PR #1925)
  • Redirect Stack trace to log file (WORK_DIR/mount_path.pid.trace) instead of console in case of panic for better debuggability. (PR #1939)
  • Truncating the file in file_cache resulting in OOM panic by go-runtime in some scenarios. (PR #2003)
  • Open file error(No BlockList error) in block_cache when file is truncated before to less than 256MiB. (PR #2003) (GH Issue #1951)
  • Prevent reusing the same block ID in truncate operation which could lead to issues. (PR #2003)

blobfuse2-2.5.0

17 Jul 15:57
05bb085

Choose a tag to compare

Features

  • Added preload capability to enable downloading the entire dataset to the mount point at initialization, significantly speeding up model training. To preload only a subset of data, use the --preload option in combination with blob-filter to selectively cache files based on directory, prefix, suffix, size, last modified time or a combination of these.
  • Added support for lazy unmounts. Lazy unmount will wait for device to be free and unmount automatically, instead of giving "device or resource busy" on executing unmount. --lazy CLI option in unmount command will enable lazy unmount.
  • Added disable-kernel-cache CLI flag to disable kernel level data and metadata caching. Refer this section to get more details on this.

Bug Fixes

  • Mount on already mounted path resulting in unmount and remount, instead of failure.
  • Added support for listing directories and files on HNS accounts mounted as FNS account by customers.
  • Fixed bug where preload feature used to continue to download even after unmount was successful.
  • #1765 Make cleanup-on-start CLI flag common for file-cache, block-cache, xload components.
  • #1808 Fixed memory leak in attribute cache by periodic cleanup of cached entries.
  • Fixed a crash in blobfuse2 triggered by throttling events in the block-cache component.
  • Ensured block-cache correctly enforces the memory limit specified in the configuration.

blobfuse2-2.5.0-preview.1

30 Apr 16:30
4ef9779

Choose a tag to compare

Features

  • Preload feature added to download entire dataset on mount, to accelerate model training.
  • Added support for lazy unmounts. Lazy unmount will wait for device to be free and unmount automatically, instead of giving "device or resource busy" on executing unmount. --lazy CLI option in unmount command will enable lazy unmount.

Bug Fixes

  • #1687 rmdir will not allow to delete non-empty directories.

blobfuse2-2.4.2

08 Apr 07:44
25d9161

Choose a tag to compare

Bug Fixes

  • #1630 Added support to mount special containers in mount all command.
  • #1647 Provide detailed error when authentication fails.

Features

  • Added Client Assertion based authentication for containers. Configure tenant-id, client-id, aad-application-id and security scope with authMode set to workloadidentity.
  • Use AZURE_STORAGE_SERVICE_API_VERSION to override the x-ms-version parameter in REST calls.
  • Auto detection of account-type (block/adls) when user has not provided the type explicitly.

blobfuse2-2.4.1

18 Feb 08:17
2dde93c

Choose a tag to compare

Features

  • Mount container or directory but restrict the view of blobs that you can see. This feature is available only in read-only mount.
  • To protect against accidental overwrites on data stored by block-cache on temp path, crc64 hash will be validated on read. This feature can be enabled by using --block-cache-strong-consistency cli flag.
  • To provide strong consistency check, ETAG of the file will be preserved on open. For any subsequent block download, with block-cache, ETAG will be verified and if the blob has changed in container the download will be declare failure resulting into read failure.

Bug Fixes

  • Create block pool only in the child process.
  • Prevent the block cache to truncate the file size to zero when the file is opened in O_WRONLY mode when writebackcache is disabled.
  • Correct statFS results to reflect block-cache in memory cache status.
  • Do not wipeout temp-cache on start after a un-graceful unmount, if cleanup-on-start is not configured in file-cache.
  • When the subdirectory is mounted and there is some file/folder operation, remove only the subdirectory path from the file paths.
  • Enable atomic_o_trunc flag in libfuse to allow O_TRUNC flag to come in the open call for fuse2.
  • In file-cache, when the O_TRUNC flag is passed to the open call and no modifications were done to the file before closing it then update the file in the Azure Storage to size 0.

Other Changes

  • Optimized listing operation on HNS account to support symlinks.
  • Optimized Rename operation to do less number of REST calls.
  • Add documentation on usage of Private Endpoints with HNS-Enabled Storage Accounts

blobfuse2-2.4.0

03 Dec 10:58
4a57c1b

Choose a tag to compare

Features

  • Added 'gen-config' command to auto generate the recommended blobfuse2 config file based on computing resources and memory available on the node. Command details can be found with blobfuse2 gen-config --help.
  • Added option to set Entry cache to hold directory listing results in cache for a given timeout. This will reduce REST calls going to storage and enables faster access across multiple applications that use Blobfuse on the same node.

Bug Fixes

  • #1426 Read panic in block-cache due to boundary conditions.
  • Do not allow mount path and temp-cache path to be same when using block-cache.
  • Do not allow to mount with non-empty directory provided for disk persistence in block-cache.
  • Rename file was calling an additional getProperties call.
  • Delete empty directories from local cache on rmdir operation.
  • #1547 Truncate logic of file cache is modified to prevent downloading and uploading the entire file.
  • Updating a file via Blobfuse2 was resetting the ACLs and Permissions applied to file in Datalake.

Other Changes

  • Stream option automatically replaced with "Stream with Block-cache" internally for optimized performance.
  • Login via Managed Identify is supported with Object-ID for all versions of blobfuse except 2.3.0 and 2.3.2.To use Object-ID for these two versions, use AzCLI or utilize Application/Client-ID or Resource ID base authentication..
  • Version check is now moved to a static website hosted on a public container.

blobfuse2-2.3.2

03 Sep 11:52
d063317

Choose a tag to compare

Bug Fixes

  • Fixed the case where file creation using SAS on HNS accounts was returning back wrong error code.
  • #1402 Fixed proxy URL parsing.
  • In flush operation, the blocks will be committed only if the handle is dirty.
  • Fixed an issue in File-Cache that caused upload to fail due to insufficient permissions.

Data Integrity Fixes

  • Fixed block-cache read of small files in direct-io mode, where file size is not multiple of kernel buffer size.
  • Fixed race condition in block-cache random write flow where a block is being uploaded and written to in parallel.
  • Fixed issue in block-cache random read/write flow where a uncommitted block, which is deleted from local cache, is reused.
  • Sparse file data integrity issues fixed.

Other Changes

  • LFU policy in file cache has been removed.
  • Default values, if not assigned in config, for the following parameters in block-cache are calculated as follows:
    • Memory preallocated for Block-Cache is 80% of free memory
    • Disk Cache Size is 80% of free disk space
    • Prefetch is 2 times number of CPU cores
    • Parallelism is 3 times the number of CPU cores
  • Default value of Disk Cache Size in File Cache is 80% of free disk space

blobfuse2-2.3.0

16 May 10:02
33008bb

Choose a tag to compare

Bug Fixes

  • For fuse minor version check rely on the fusermount3 command output rather then one exposed from fuse_common.
  • Fixed large number of threads from TLRU causing crash during disk eviction in block-cache.
  • Fixed issue where get attributes was failing for directories in blob accounts when CPK flag was enabled.

Features

  • Added support for authentication using Azure CLI.

Other Changes

  • Added support in
    • Ubuntu 24.04 (x86_64 and ARM64)
    • Rocky Linux 8 and 9
    • Alma Linux 8 and 9
  • Added support for FIPS based Linux systems.
  • Updated dependencies to address security vulnerabilities.

blobfuse2-2.3.0~preview.1

04 Apr 12:35
8e06e67

Choose a tag to compare

Pre-release

Bug Fixes

  • #1057 Fixed the issue where user-assigned identity is not used to authenticate when system-assigned identity is enabled.
  • Listing blobs is now supported for blob names that contain characters that aren't valid in XML (U+FFFE or U+FFFF).
  • #1359, #1368 Fixed RHEL 8.6 mount failure

Features

  • Migrated to the latest azblob SDK.
  • Migrated to the latest azdatalake SDK.
  • Migrated from deprecated ADAL to MSAL through the latest azidentity SDK.
  • Added support for uploading blobs in cold and premium tier.
  • Support CPK for adls storage accounts.
  • Lazy-write support for async flush and close file call. Actual upload will be scheduled in background when this feature is enabled.

blobfuse2-2.2.1

28 Feb 09:20
bd7dffc

Choose a tag to compare

Bug Fixes:

  • Fixed panic while truncating a file to a very large size.
  • Fixed block-cache panic on flush of a file which has no active changeset
  • Fixed block-cache panic on renaming a file and then flushing older handle
  • Fixed block-cache flush resulting in invalid-block-list error