How to move a library?

Hello everyone

I have a library which is served to several clients (which synchronize it locally). The library is not encrypted.
It resides on a server I manage.

As its size is growing, I need to move it somewhere else. It is currently in the default location as decided by the server (somewhere¤ in /root/seafile-data/) and I would like it to be located somewhere¤ in /mnt/ext/thislibrary (at least the actual data which take the space).

I have not seen in the administrative panel a way to set the data location - is there a way to do that?

Please note that I do not want to move all of the data there (I believe that linking the current /root/seafile-data directory to the larger disk would be enough) but do that on a library-by-library basis


¤ I am using the word “somewhere” as the actual data is not a typical tree structure but is driven by a DB. By this I want to convey that I do not care how the data will ultimately be organized, just that the voluminous part is on another drive /mnt/ext/thislibrary/...

Open the library in your browser and copy the library id. Shutdown seafile. Navigate to seafile-data/storage/blocks. Move the folder with the library id and create a symlink to the new location. Start seafile.

You can also move commits and fs of the library but those don’t take much storage.

1 Like

I just tried this but the synchronization fails with the following entries in the logs:

[05/24/2018 06:13:53 PM] ../common/block-backend-fs.c(177): [block bend] failed to commit block 0f611800-bdd7-4ca5-99d0-ceb7c9cd90fc:c511dae882a49d79280f0e53924de167cc135e60: Invalid cross-device link

I checked if this is not an ACL issue but I can create ad-hoc files in the linkd directory (and subdirectories)

Edit: Googling this it looks like you can just put everything on one device. (Still asking myself for which file a hardlink / cross-device link is being created)

https://groups.google.com/forum/#!topic/seafile/9n82xUx1Ms8

Same here: https://matthewlai.ca/blog/about/#comment-7904

Filed a bug at Invalid cross-device link when distributing libraries across disks · Issue #2056 · haiwen/seafile · GitHub

I’m not sure if is supposed to work, as two of the developers state that it is unsupported in the mailing list thread on google, above.

At least some clarification why it doesn’t work would be great and if it would work that would be even better.

There is a „Update multi storage backend feature“ since 6.2.11 pro. Not sure how that works, but could maybe used for that:

https://manual.seafile.com/changelog/changelog-for-seafile-professional-server.html

Update: Oh wait, it will be released in version 6.3: Seafile pro 6.2.11 is ready! A few fixes