Azure / azure-storage-fuse

A virtual file system adapter for Azure Blob storage
Other
647 stars 204 forks source link

Blobfuse2 mounted on wrong partition #1409

Closed joon612 closed 2 months ago

joon612 commented 2 months ago

Which version of blobfuse was used?

blobfuse2 version 2.3.0~preview.1

Which OS distribution and version are you using?

Ubuntu 22.04.4 LTS (GNU/Linux 6.5.0-1019-azure x86_64)

If relevant, please share your mount command.

sudo blobfuse2 /blobfuse/dataforgevisual001wu2st_video-annotation-data --config-file=/blobfuse/dataforgevisual001wu2st_video-annotation-data.yaml --pre-mount-validate=true -o allow_other --file-cache-timeout-in-seconds=60

What was the issue encountered?

Mounted on the wrong hard disk, resulting in incorrect partition availability information. I want to mount it under /dev/sda1, but its 'Avail' is as same as /dev/root.

user@server:~/scripts$ lsblk
NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
loop0     7:0    0 63.9M  1 loop /snap/core20/2264
loop1     7:1    0   87M  1 loop /snap/lxd/28373
loop2     7:2    0 38.7M  1 loop /snap/snapd/21465
sda       8:0    0    1T  0 disk
└─sda1    8:1    0 1024G  0 part /blobfuse
sdb       8:16   0   64G  0 disk
├─sdb1    8:17   0 63.9G  0 part /
├─sdb14   8:30   0    4M  0 part
└─sdb15   8:31   0  106M  0 part /boot/efi
sdc       8:32   0  150G  0 disk
└─sdc1    8:33   0  150G  0 part /mnt
sr0      11:0    1 1024M  0 rom
user@server:~/scripts$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        62G  2.1G   60G   4% /
tmpfs           7.8G     0  7.8G   0% /dev/shm
tmpfs           3.2G 1012K  3.2G   1% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
efivarfs        128K   32K   92K  27% /sys/firmware/efi/efivars
/dev/sdb15      105M  6.1M   99M   6% /boot/efi
/dev/sdc1       147G   44K  140G   1% /mnt
tmpfs           1.6G  4.0K  1.6G   1% /run/user/1000
/dev/sda1      1007G   36K  956G   1% /blobfuse
blobfuse2        62G  2.1G   60G   4% /blobfuse/dataforgevisual001wu2st_video-annotation-data

But in blobfuse1, its mounted correctly, the ‘Avail’ is same with /dev/sda1

batch-explorer-user@1d012d0bbc8d40fab2f987be9c9c745100000A:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        29G  8.9G   21G  31% /
devtmpfs        3.9G     0  3.9G   0% /dev
tmpfs           3.9G     0  3.9G   0% /dev/shm
tmpfs           795M  1.1M  793M   1% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/loop0       92M   92M     0 100% /snap/lxd/24061
/dev/loop1       64M   64M     0 100% /snap/core20/2264
/dev/loop2       39M   39M     0 100% /snap/snapd/21465
/dev/sdb15      105M  6.1M   99M   6% /boot/efi
/dev/sda1        74G  187M   70G   1% /mnt
blobfuse         74G  187M   70G   1% /mnt/batch/tasks/fsmounts/dataforgedevwu2st_code
blobfuse         74G  187M   70G   1% /mnt/batch/tasks/fsmounts/dataforgevisual001wu2st_annotation-data
blobfuse         74G  187M   70G   1% /mnt/batch/tasks/fsmounts/dataforgevisual001wu2st_annotation-data-backup
tmpfs           794M     0  794M   0% /run/user/1002
batch-explorer-user@1d012d0bbc8d40fab2f987be9c9c745100000A:~$ lsblk
NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
loop0     7:0    0 91.9M  1 loop /snap/lxd/24061
loop1     7:1    0   64M  1 loop /snap/core20/2264
loop2     7:2    0 38.8M  1 loop /snap/snapd/21465
sda       8:0    0   75G  0 disk
└─sda1    8:1    0   75G  0 part /mnt
sdb       8:16   0   30G  0 disk
├─sdb1    8:17   0 29.9G  0 part /
├─sdb14   8:30   0    4M  0 part
└─sdb15   8:31   0  106M  0 part /boot/efi
sr0      11:0    1  628K  0 rom

blobfuse2 config yaml

azstorage:
  type: block
  account-name: dataforgevisual001wu2st
  container: video-annotation-data
  endpoint: https://dataforgevisual001wu2st.blob.core.windows.net
  mode: msi
  resid: <hidden-secret>
file_cache:
  path: /blobfuse/dataforgevisual001wu2st_video-annotation-datablobfusetmp
  cleanup-on-start: true
  timeout-sec: 60

Have you found a mitigation/solution?

Not yet.

vibhansa-msft commented 2 months ago

Blobfuse does not choose sda1 or any such disk. Path which you have provided as mount path will be used. For the available disk space, blobfuse shows available disk space of the temp-cache path that you have provided for file-cache and not for the mount path itself. Mount path is just a placeholder and no physical data is stored on that path in any form.

joon612 commented 2 months ago

What I mean is that by looking at the Avail value, the blobfuse2 mount point is incorrect for the same command.

batch-explorer-user@ff5bb94b12954086b297c58a1ae0ea71000000:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        29G  8.5G   21G  30% /
tmpfs           3.9G     0  3.9G   0% /dev/shm
tmpfs           1.6G  1.1M  1.6G   1% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
/dev/sdb15      105M  6.1M   99M   6% /boot/efi
/dev/sda1        49G   15M   47G   1% /mnt
blobfuse2        29G  8.5G   21G  30% /mnt/batch/tasks/fsmounts/videopublic001wu2_raw
blobfuse2        29G  8.5G   21G  30% /mnt/batch/tasks/fsmounts/dataforgevisual001wu2st_annotation-data
blobfuse2        29G  8.5G   21G  30% /mnt/batch/tasks/fsmounts/dataforgedevwu2st_code
tmpfs           793M  4.0K  793M   1% /run/user/1001

Avail of blobfuse2 should same with /mnt (/dev/sda1)

vibhansa-msft commented 2 months ago

Available will not be for /mnt (where you mount) but rather root of your temp-cache path (that you provide for the file-cache).