Releases: Azure/azure-storage-fuse
Releases · Azure/azure-storage-fuse
blobfuse2-2.4.0
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
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
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
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
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
blobfuse2-2.2.0
Features
- Support CPK for block storage accounts.
- Support to write files using block-cache.
- Optimized for sequential writing.
- Editing/Appending existing files works only if files were originally created using block-cache with the same block size.
Bug Fixes
- Invalidate attribute cache entry on PathAlreadyExists error in create directory operation.
- When $HOME environment variable is not present, use the current directory.
- Fixed mount failure on nonempty mount path for fuse3.
blobfuse2-2.1.2
Bug Fixes
- #1243 Fixed issue where symlink was not working for ADLS accounts.
- #1259 sync-to-flush will force upload the file contents to container.
- #1285 Rename directory fails for blob accounts when marker blob does not exist for source directory.
- #1284 Fixed truncate behavior for streaming write.
- #1142 Fixed truncate behavior for streaming write.
- Randomize token refresh interval for MSI and SPN to support multi-instance deployment.
blobfuse2-2.1.1
Bug Fixes
- #1237 Fixed the case sensitivity of content type for file extensions.
- #1230 Disable deletion of files from local-cache on sync. Use
--ignore-sync
cli option to enable this. - Rename API for HNS account now works with user delegation SAS
- SAS token is redacted in logs for rename api over dfs endpoint
- Allow user to configure custom AAD endpoint using MSI_ENPOINT environment variable for MSI based authentication
- Fail mount if block-cache prefetch count exceeds the defined memory limits.
- uid/gid supplied as CLI parameters will be shown as actual user/group while listing files.
- Corrected handling of
umask
libfuse option.
Optimizations
- Optimized file-cache to skip download when O_TRUNC flag is provided in open call.
- Refresh token 5 minutes before the expiry instead of last 10 seconds.
Features
- Sync in stream mode will force upload the file to storage container.
- Fail
Open
andWrite
operations with file-cache if the file size exceeds the high threshold set with local cache limits.
blobfuse2-2.1.0
Features
- Added support for ARM64 architecture.
- Block cache component added to support faster serial reads of large files with prefetching of blocks
- Only read-only mounts will support block-cache
- Adaptive prefetching to support random reads without incurring extra network cost
- Block cache with disk backup to reduce network cost if same blocks are read again
- On AML compute cluster MSI authentication is now supported (this will use the identity assigned to compute cluster)
Bug Fixes
- Fix to evict the destination file from local cache post rename file operation.
- If
$PATH
is not populated correctly, find out correct path fordu
command. - Disable
kernel_cache
andwriteback_cache
whendirect_io
is set. - Fix FUSE CLI parameter parsing, where CLI overrides parameters provided in config file.
- #1226 If max disk-cache size is not configured, check the available disk space to kick-in early eviction.
- #1230 Truncate file locally and then upload instead of downloading it again.
blobfuse2-2.0.5
Features
- In case of MSI based authentication, user shall provide object-id of the identity and honour-acl flag for file-system to work with ACLs assigned to the given identity instead of permissions.
- Added support to read OAuth token from a user given file.
Bug Fixes
- Fixed priority level check of components to reject invalid pipeline entries.
- #1196 100% CPU usage in 2.0.4 fixed.
- #1207 Fix log-rotate script.
- Unmount command was looking for fusermount while on fuse3 systems it should be looking for fusermount3.
- If du command is not found skip checking for disk usage in LRU cache-eviction policy.
- V1 flag of
file-cache-timeout-in-seconds
not interpreted correctly by V2 and causing eviction policy to assume its 0. - If du is not found on standard path try paths where it can potentially be found.
- Fix uid/gid marshalling for mountv1 command, which was resulting in panic.