Граф коммитов

44 Коммитов

Автор SHA1 Сообщение Дата
Ubuntu 338bf6560f fixed golangci-lint issues 2024-08-20 10:59:15 +00:00
Vikas Bhansali 3d46ca9e8a
Cleanup stale mount in remount case (#1453)
* Cleanup in case of mount failure for broken blobfuse mounts
2024-07-17 08:16:58 +05:30
ashruti-msft 7f395591db
ObjectID info updated and simplified base config (#1452) 2024-07-12 16:11:38 +05:30
ashruti-msft 5662b0f44c
Added mount path in the syslog (#1407)
* Log formatting
2024-05-15 15:05:22 +05:30
ashruti-msft 492d0c914a
Display mount command (#1400) 2024-05-08 16:25:07 +05:30
Vikas Bhansali 0efccdc3ab
Add lazy-write feature to make flush and close async in nature. (#1373)
* Adding lazy write feature
2024-04-04 12:51:48 +05:30
Sourav Gupta d918c11e5a
Mount on non-empty path (#1311) 2024-01-16 11:12:53 +05:30
Vikas Bhansali 439f7dbccd
Copyright fix" (#1302)
Copyright fix for 2024
2024-01-02 15:40:39 +05:30
Vikas Bhansali b511c522ab
Respect uid/gid sent over cli param or config file (#1276)
* Respect uid/gid sent over cli param or config file and respresent the same in file listing
2023-10-30 16:34:32 +05:30
Vikas Bhansali 5ecfe4004c
Adaptive Prefetch Streaming (#1181)
* Adaptive Prefetch Streaming
2023-08-25 12:20:34 +05:30
Sourav Gupta b81a04ae00
Fix related to direct_io (#1231) 2023-08-23 10:45:48 +05:30
Sourav Gupta 461fad73e9
Adding FUSE option direct_io (#1162)
* Adding direct_io flag
2023-06-06 21:23:25 +05:30
Vikas Bhansali 05a10949bd
Upgrading to go 1.19 (#1135)
* Upgrading to go 1.19
2023-05-10 14:53:05 +05:30
Vikas Bhansali 251047b942
Adding option to pass down allow_root option to libfuse (#1123)
Adding option to pass down allow_root option to libfuse (#1123)
2023-04-27 08:50:13 +05:30
Vikas Bhansali e60e3fe01e
uid/gid support (#1095)
* Add support for uid/gid
2023-04-10 14:34:44 +05:30
weizhi 8f655cf9e1
Fix: async (background) mount may cause problems (#1088)
#1079
Pod deletion will cause global mount point to disappear. The root cause is csi driver will bind mount the global mount point into Pod volume immediately after blobfuse2 mount return successfully. However, fuse is still mounting at background, so actually bind mount and fuse mount happened at the same time, this will lead to a problem that unmount the bind mount (when deleting a Pod) will cause the original mount point unmounted as well.
#1081
Mount is actually failed, but the errno returned by blobfuse2 is 0 and no error log (both terminal and log file).
2023-03-22 10:29:36 +05:30
Vikas Bhansali 5e06d43184
Exit with non-zero status code if allow_other is used but not enabled in fuse config (#1087)
* Fix for #1081 to return with non zero status code if allow_other is not enable in fuse.conf
2023-03-21 12:26:53 +05:30
Vikas Bhansali 1f039cfed0
Create work dir if it does not exists (#1052)
* Create work dir if it does not exists
2023-02-09 09:10:13 +05:30
Vikas Bhansali fc5629d3ac
If version check fails to reach public container mount ./all/v1 command is exited (#1050)
* Do not error out if version check fails, instead just dump the log and continue
2023-02-04 13:12:42 +05:30
Vikas Bhansali 34bdad7d87
Fix Panic generated when user does not have a home directory set (#1040)
Fix Panic generated when user does not have a home directory set
2023-02-03 11:55:57 +05:30
Sourav Gupta a3761af40d
Updating umask value (#1045)
* Changing umask value
2023-02-01 11:05:47 +05:30
Vikas Bhansali b7bb6309fa
uid/gid cli parameter parsing error (#1024)
Fixed uid/gid cli parameter parsing error
2023-01-07 12:03:00 +05:30
Vikas Bhansali e02acffd38
Copyright fix (#1025)
* Correcting copyright statement
2023-01-07 08:11:07 +05:30
Vikas Bhansali 6165f412b7
Subdirectory as cli option and support for nonempty libfuse option (#975)
* Allow mounting on a nonempty directory
* Allow subdirectory to be configured using cli option
2022-11-16 16:27:46 +05:30
Gauri Prasad 196a9085a0
Fixed a bug where mount all required a config file (#939) 2022-10-18 20:07:14 -07:00
Sourav Gupta a92ef4339b
Mount using /etc/fstab (#924)
* parsing os args

* Removing auto completion

* Update changelog

* Add more flags to ignore

* Small change'

* coverage edit

* Removing dead code

* Add test cases for parse and validate config

* Init logger for UT on config

* Correctly define const slice for fuse ignored flags

* Adding unmount test cases

* Add comments as per review comments

* Correcting unmount tests

* Add logs if mkdir fails

* spell correction in comments

* Run all unmount tests serially with different mount points

* correcting unmount test cases

* Making unmount test parallel

* Adding handle map test cases

Co-authored-by: vibhansa-msft <vibhansa@microsoft.com>
2022-10-05 21:33:52 +05:30
Sourav Gupta 719d81a434
Unit tests for mount, mountv1 and doc commands (#897) 2022-09-12 11:30:34 +05:30
Gauri Prasad f067d5ca23
Clean up exit 1 errors for blobfuse2 (#893) 2022-09-08 13:09:32 -07:00
Sourav Gupta 6ba1e91a7e
Expand path (#880)
Expanding tilde(~) character in mount, config file or cache paths
2022-09-01 19:30:08 +05:30
Gauri Prasad 1978243d43
Added supported v1 CLI parameters to v2 (#881) 2022-08-31 12:12:14 -07:00
Sourav Gupta 0ac75c29e7
Health monitor (#868)
Adding health monitor for blobfuse2
Co-authored-by: vibhansa-msft <vibhansa@microsoft.com>
2022-08-27 19:47:39 +05:30
Vikas Bhansali 4f805cc1ab
Adding code linting (#844)
* Adding Ubn-22 to pipelines

* Adding lint as standard ci step

* correcting lint command path

* Add copyright checks to ci pipeline

* Copyright fixes and ci check for copyright statements

* Adding go format check to CI

* Fixing some lint issues

* More lint fixes

* More lint fixes

* Fixing some lint issues

* Correcting code linting check in ci

* correcting lint status check

* correcting lint status check

* correcting lint status check

* correcting lint status check

* correcting lint status check

* correcting lint status check

* correcting lint status check

* correcting bugs reported by sa check

* notices_fix.sh update

* Add step to validate NOTICE file

* Add step to release for ubn-22

* Add logs for success

* Fixing copyright bug

* Correcting tag formats

* Correcting percentage check

* Spell error correction

* Ignore exectime from code coverage

* Correcting log string

* Removing dead file

* Correcting go format error
2022-07-28 10:09:41 +05:30
Sourav Gupta 35cf5ff4a2
Module name fix (#847)
* Correcting module name

* Changing module name

* Adding output binary name in go build
2022-07-27 12:19:36 +05:30
Gauri Prasad 1566734ec3
Background auth validation fix (#845) 2022-07-26 22:05:32 -07:00
Vikas Bhansali 597f15821e
Native (C) pread/pwrite to improve performance (#752)
* Adding more fuse options for optimization

* Correcting logs for fuse3

* Removing nullpath feature as fuse3 does not support it

* Remove symlink cache as fuse3 does not support that

* Convert expected err log to warn

* Removing dead code

* Try file read using native C api

* Try early pread to improve perf

* Adding dynamic profiler and disable native pread call

* Log error when profiler fails to start

* Try prefetching data into memory for disk-file

* Make dynamic profiler available in both foreground and daemon mode

* Move read/write call to native calls

* Add call to update the file-cache when native read/writes are invoked

* Remove cache updating call for better perf

* Remove readahead logic from file-cache

* Clear handle map dead code

* convert fd to uint64 instead of int

* Adding basic infra for read ahead in native code

* Clean up code, remove read-ahead logic and make direct read the default option

* Correcting the flag name for offload-io

* Correcting spell mistakes and adding comments

* Correcting fsync test failure

* Correct fuse3 UT for fsync and handle conversion

* Resolve compilation failure for filehandle struct

* Add logic to update the cache on every 1K operations on a handle

* Resolve failure with flush when native write is enable

* Add read-ahead logic in native code

* Compilation failure resolution on fuse2

* Correcting memset params

* Correcting spell error

* Add GOGC and MAXPROCS value for perf tuning

* Reduce min file size and correct read ahead buffer size for smaller fiels

* Replace fsync with close of duplciate handle

* Correcting write flow file corruption issue

* Handle write in file-cache instead of libfuse as the other approach is corrupting data somewhere

* File-cache to refresh cache on eveyr 1K operations and data validation test to wait for 2 seconds after copy

* Replace file-cache read/write calls with syscalls

* Enable native read/write again with read ahead disabled

* Remove cache update from read calls

* Remove read ahead logic completly

* Cleanup libfuse compo and e2e test changes

* Delete emptry directories recursively till root

* Changes as per review comments

* Fix issue with block-size running into overflow of number of blocks

* Add blocksize and file size to logs

* Make blocksize function to work on file size instead of fi object and add UT for blocksize calculations

* Adding more ut case

* Add some breather between upload and test

* FileCacheTimeout test case to wait untill file is deleted from local system

* FileCacheTimeout test case to wait untill file is deleted from local system

* Codespell error fix

* Restructuring code as per review comments and internal discussions

* Code spell fixes

* Stop updating cache on read

* Adjusting cache update operation counter

* Correcting libfuse_read flow and adding option to enable offload option manually

* Correcting file_cache UT configs

* Adding dynamic profiler config in base config
2022-05-19 10:32:23 +05:30
Gauri Prasad 4b64cb712a
Set flag parsing to exit on error to ensure exit status is non zero (#762) 2022-04-15 16:35:57 -07:00
Vikas Bhansali 50c2267008
Fixing pipeline issue where providing config file is leading to a mount failure (#749) 2022-03-26 12:28:59 +05:30
Vikas Bhansali b1ff604a39
Vibhansa/v2/noconfigfile (#747)
* Allow blobfuse2 to mount without config file, in case all required params are set as env variables

* Updating readme for perf comparison with v1

* Removing test code

* Changes as per review comments

* Corrected perf numbers in readme
2022-03-25 10:54:41 +05:30
Gauri Prasad 15b68d598a
Fixed some codespell errors (#745)
Co-authored-by: Gauri Prasad <gapra@microsoft.com>
2022-03-23 11:00:13 -07:00
Vikas Bhansali d9ffe5cba9
chmod fix to preserve additional principals added to to ACL (#727)
* chmod shall result into SetAccessControl call with permissions and not ACL to preserve the existing principals added to the file

* Adding loopbackfs config to base config
2022-03-11 09:11:05 +05:30
Vikas Bhansali ba1a18c34d
Double mount validation corrected and error string generalised (#722)
Double mount validation corrected and error string generalised
2022-03-10 09:18:05 +05:30
Gauri Prasad dd401750a3
Fixed bug where some user provided values that can be set to 0 were s… (#714)
* Fixed bug where some user provided values that can be set to 0 were set to default value

* Addressed comments

* Fixed unit test for file cache empty config

* Allow for cli params to be set to 0

* Fixed defaults and merged isSet

* Added test

Co-authored-by: Gauri Prasad <gapra@microsoft.com>
2022-03-07 10:23:52 -08:00
Vikas Bhansali 1aea8449ba
Perf and Memory Optimizations (#704)
* First commit of blobfuse v2 code

* Adding hadle optimization for v2

* Making direct read a configurable option, disabled by default

* Rearrange structures to reduce padding and save memory

* Correcting attr-cache UT for flag changes

* Merging file-cache-test

* Make flag check a function

* Adding comments to handle methods

* Adding more fuse options for optimization

* Adding more fuse options for optimization

* Removing exectime from red flows

* Correcting profiling code to work for both cpu and memory

* Cleanup old pprof reports

* Adding error log for policy local file removal case and adding 10mil max file limit in attr-cache

* Correcting file-cache UT for notInCache cases

* Correcting libfuse UT to get handle object out of open return parameters

* Addressing review comments

* Removing 7.5 old curl from nightly as it does not make sense for v2 to test different curl versions

* Tuning fuse parameters for better perf

* Fuse parameter tuning

* Removing some fuse options as mount is failing on some platforms

* Exit pipeline stage if mount failed

* Populate fuse connection flag based on kernel capabilities

* Log kernel fuse capabilities and the one chosen by blobfuse on given platform

* Fail pipeline if blobfuse2 binary is not found in df output

* Wait for some time for mount to go through before validating

* Correcting validation of mount point

* Correcting validation of mount point

* Use fuse2 on Deb-10 as with fuse3 we are not able to mount on that distro

* Update mount validation for huge listing

* Image signing to happen only when release option is chosen

Co-authored-by: Gauri Prasad <gapra@microsoft.com>
Co-authored-by: Ubuntu <vibhansa@vibhansa-perftest.l1vcg1e4u55e3gwz1dsfkxy2if.tx.internal.cloudapp.net>
2022-02-19 15:56:43 +05:30
Gauri Prasad 990af0fefa First commit of blobfuse v2 code 2022-02-14 09:41:31 -08:00