Replies: 5 comments 5 replies
-
|
Beta Was this translation helpful? Give feedback.
-
Kindly share the complete log file as well to better understand what all was going on. |
Beta Was this translation helpful? Give feedback.
-
I've made some very modest progress in figuring out the problem. Part of it appears to be that the server utility I'm using (SQL Anywhere dbsrv17) alters file permissions to -r--r--r--. So I appear to have been mistaken above when I suspected that Blobfuse changes these. There are also many telling outputs in the log ("unexpected permissions"), possibly indicating an issue where the ACLs are modified by the server utility while Blobfuse is interacting with the file. Currently some database files cannot be recovered, while others can. The curious thing is that after cloning the file to the same directory, recovery succeeds. Copying the file from the mounted storage account to the local file system also allows for successful recovery. Other database files that have been copied using ADF can be successfully recovered. This may be more of an SQL Anywhere issue than an issue with Blobfuse. Something feels off about the fact that I'm able to recover the database successfully through blobfuse after cloning it though. Here is my current config file:
And here is a recent log file: blobfuse.log The log is from performing the following steps:
I have tried to increase block size and max buffers seemingly without any effect. File-caching also has made no difference. I think I will have to find a workaround, possibly copying all files to local storage before attempting recovery. Very frustrating though, as streaming directly from blobfuse appears very close to working. Thanks for taking the time to help resolve this issue. It may not be an issue with Blobfuse at all, but if you see anything strange either in the logs or my configuration I'd appreciate any input. |
Beta Was this translation helpful? Give feedback.
-
"unexpected permissions" : this is expected if you have assigned some Identity/Service principals' special permissions for your blob. Other then rwx triplets if we receive anything extra in the permissions section, we will report it using this error message so this can be ignored for now. |
Beta Was this translation helpful? Give feedback.
-
Thanks for all your assistance. I've decided to change my workflow to instead copy my database backups to the VM using AzCopy, which is disappointing but still workable given the volume of data I'm dealing with. I've settled on the problem possibly being caused by the fact that the database recovery tool alters permissions to read-only and the behavior can't be overridden. I suspect that ACLs are being cached and Blobfuse tries to write to the file after it has been changed to read-only. I could also be completely off track as I'm still learning as I go. I tried the same workflow with NFS v3 instead and seemed to encounter the same problem. Anyway, hopefully these comments may be of some use for anyone else wanting to serve SAP SQL Anywhere / Sybase databases on Blobfuse . |
Beta Was this translation helpful? Give feedback.
-
Hi,
I'm encountering some problems using Blobfuse2, would very much appreciate any suggestions.
Use Case
Restore and host multiple SQL Anywhere databases backups (.db-files) on a Linux VM in Azure. The files are fairly large (40+gb) so I would like to stream directly from blob storage.
Configuration
Mount command:
Configuration file:
Problem
The database backups need to be recovered, which is done automatically when starting a database server. This requires modifying the database file, but the write fails with the following error:
Exploring the log, I discover the following:
Partial solution
I observed in the log that the PUT-operation specifies a Blob-endpoint, not DFS. By putting my files in the container root folder and changing azstorage-type to "block" and the endpoint url to "blob" instead of "adls", and removing the "--use-adls"-parameter I can successfully restore the database. Once the database is restored, I can interact with the databases as expected.
This is only a partial solution, because each database instance generates its own log-file, and unfortunately these have the same name, so they can't co-exist in the same directory. An ad hoc solution would be to use multiple containers, but it's far from ideal.
As an aside, I'm unsure if the "--use-adls"-parameter is necessary when the azstorage-type is already set to "adls". Any clarification would be helpful!
Attempted solutions
Thanks very much for taking the time, any suggestions would be most appreciated!
Beta Was this translation helpful? Give feedback.
All reactions