Unionfilesystem Plugin

  • You don't have to delete the pool to change types. Select pool, click Edit, change the type, and reboot. Done. I have done it many times.


    See that's tooooo easy. I don't trust it :rolleyes: . Will it reallocate the files based on the MergerFS rules or just process everything going forward?

    • Offizieller Beitrag

    mergerfs and the other unionfilesystems run on top of the filesystem. They don't touch files that are already on the drive. The just read files currently on the filesystems they are pooling and decide which filesystem to write to when a new file is created. It won't change your files to switch. With mergerfs, it is even safe to read/write to the individual drives if you want. Switch and try it in a VM if you don't believe me :)

    omv 7.1.0-2 sandworm | 64 bit | 6.8 proxmox kernel

    plugins :: omvextrasorg 7.0 | kvm 7.0.13 | compose 7.2 | k8s 7.1.0-3 | cputemp 7.0.1 | mergerfs 7.0.5 | scripts 7.0.2


    omv-extras.org plugins source code and issue tracker - github - changelogs


    Please try ctrl-shift-R and read this before posting a question.

    Please put your OMV system details in your signature.
    Please don't PM for support... Too many PMs!

  • Oh I was joking, already done and working great so far :-D. I was thinking of UFS as something slightly more complicated than it actually is thanks for the clarification! That will help a ton moving forward and maybe with some other projects I am thinking about.


    Thanks for all the help everyone!

    • Offizieller Beitrag

    Good to hear :)

    omv 7.1.0-2 sandworm | 64 bit | 6.8 proxmox kernel

    plugins :: omvextrasorg 7.0 | kvm 7.0.13 | compose 7.2 | k8s 7.1.0-3 | cputemp 7.0.1 | mergerfs 7.0.5 | scripts 7.0.2


    omv-extras.org plugins source code and issue tracker - github - changelogs


    Please try ctrl-shift-R and read this before posting a question.

    Please put your OMV system details in your signature.
    Please don't PM for support... Too many PMs!

  • I can confirm that compiling fuse 2.9.3 from source worked for me. I was having constant disconnects using mddhfs or mergerfs under heavy load (crashplan), didn't matter.


    Download fuse 2.9.3 here from the Github page


    Transfer to your root user directory on OMV.
    Install build-essentials (apt-get install build-essentials)
    unzip the file (gunzip worked for me)
    untar the file (tar -xvf filename)
    change to the newly created fuse source directory
    ./configure
    make
    make install


    For me, it didn't "take" immediately, and I had to remove the shared folders inside OMV, and delete the union filesystem I had previously created, then uninstall the plugin. Reinstalled the plugin, and create your union, pool share, etc. Finally, make sure it is in play by typing "mergerfs -v" at the command prompt. Here is my output:


    root@OMV1:/media# mergerfs -v
    mergerfs version: 2.13.0
    FUSE library version: 2.9.3
    fusermount version: 2.9.3
    using FUSE kernel interface version 7.19

  • Is there an option in aufs to leave some free space on each drive? On mergerfs there was an option but I don't see it aufs? One drive is full so now it can't write the content file for snapraid.

  • I'm trying to use mergerfs from Unionfilesystem plugin in a VM to test if it is suitable for my real OMV installation.
    My VM has 3 HDs of different sizes (2x200MB and 1x 400MB) and mergerfs is set to use epmfs with a minfreespace of 20M. I have tried to fill the HDs expecting an error when the free space on every HDs reached the 20M limit, but I have been able to fill the Virtual HDs, regardless the minfreespace option. Is there a method to force mergerfs to honor the minfreespace in OMV?


    OMV 2.2.4

  • minfreespace is always honored as defined in the docs. It excludes drives from consideration in the first round of checks. As the documents indicate the policies have fallbacks should all drives be disqualified. It doesn't short circuit all calls and return ENOSPC arbitrarily.

  • Thanks for your response trapexit.


    English is not my native language so maybe I did not understand exactly what you have written or the doc of mergerfs.
    I have limited myself to install the Unionfilesystem plugin and set the options for mergerfs with the parameters already mentioned (epmfs & 20M for minfreespace option) and recompiled the .deb for FUSE 2.9.4.
    The value shown in the .mergerfs pseudfile for moveonenospc parameter is set to false (user.mergerfs.moveonenospc="false").
    If all the drives have the available space < minfreespace, the "chain" of the epmfs fallback for the create category (with a minfreespace parameter defined) is: epmfs->mfs->ff (is this right?).
    At the ff "level", what's the expected behaviour for the new added files?


    I'm sorry to ask a probable very obvious question...

  • "For create category it will exclude readonly drives and those with free space less than minfreespace (unless there is no other option)."


    "unless there is no other option" means it will pick the first drive if all else fails. The point is to let the filesystem do what it's supposed to.

  • I can confirm that compiling fuse 2.9.3 from source worked for me. I was having constant disconnects using mddhfs or mergerfs under heavy load (crashplan), didn't matter.


    Download fuse 2.9.3 <a href="https://github.com/libfuse/libfuse/releases/download/fuse_2_9_4/fuse-2.9.3.tar.gz" class="externalURL" rel="nofollow" target="_blank">here</a> from the <a href="https://github.com/libfuse/libfuse/releases" class="externalURL" rel="nofollow" target="_blank">Github page</a>


    Transfer to your root user…


    I followed all these directions, and everything seemed to install just fine (no errors), but I still show the old 2.9.0 mergerfs version. I built a 15TB volume and shared it, but I can't transfer any more data to the share after the first physical drive filled up. I get "disk out of space" error, despite the fact that the server (and my Mac OS machine) show there's over 10TB remaining.


    Any suggestions?
    Best,
    Phil

  • You only have as much free space as the drive with the most free space. It doesn't shard files across drives. If you want that use RAID, LVM, or similar. And make sure you use an appropriate policy. All the details on in the docs.

  • Okay, I'm a little confused. What's the point of building a pool of drives, if you can only ever fill one drive? I'm not trying to split a file across drives, I'm trying to spread a volume across drives.

    • Offizieller Beitrag

    What is the output of:


    dpkg -l | grep -E "openm|merger"

    omv 7.1.0-2 sandworm | 64 bit | 6.8 proxmox kernel

    plugins :: omvextrasorg 7.0 | kvm 7.0.13 | compose 7.2 | k8s 7.1.0-3 | cputemp 7.0.1 | mergerfs 7.0.5 | scripts 7.0.2


    omv-extras.org plugins source code and issue tracker - github - changelogs


    Please try ctrl-shift-R and read this before posting a question.

    Please put your OMV system details in your signature.
    Please don't PM for support... Too many PMs!

  • Here ya go:

  • Maybe I'm doing it wrong.
    I'm copying DVD rips from my Synology to the OMV mergerfs shared drive using epmfs policy. On the Synology, I had a directory titled "Movies" that is about 4.78TB. I copied and pasted that directory to the OMV server. Once the first drive got full, the copy operation errored out with "no more disk space."
    Do I need to go and create a "Movies" directory on each individual drive? Or should mergerfs have created that directory on the second drive to continue the copy operation?


    Basically, if you attempt to write a folder that is bigger than any single drive, will mergerfs span that folder across drives? Or will it just error out once the first drive is full?


    I'm just a noob, trying to understand OMV, Snapraid and mergerfs all at once. Appreciate the help.
    Best,
    Phil

  • Zitat

    Once the first drive got full, the copy operation errored out with "no more disk space."


    Yes. Because mergerfs doesn't try striping files across drives. It simply multiplexes the drives. If you fill one drive the write will fail with ENOSPC.


    Have you read the docs? They explain all the options and how the policies work.

  • Trapexit,
    Thanks for the help. I have read the documentation but I will admit - the jargon is a bit above my level.
    So what does it mean that the drives "multiplex"? It doesn't seem useful to be able to create a pool if you can't write to more than one drive anyway. I must be misunderstanding something.
    Best,
    Phil

    • Offizieller Beitrag

    Fuse on wheezy (OMV 2.x) is old. It is probably causing the problem.


    I just put amd64 versions of fuse compiled from the jessie release in the stoneburner-backports repo. So, if you have the backports kernel installed, the repo is enabled. Just update the system and the newer version of fuse should be installed.

    omv 7.1.0-2 sandworm | 64 bit | 6.8 proxmox kernel

    plugins :: omvextrasorg 7.0 | kvm 7.0.13 | compose 7.2 | k8s 7.1.0-3 | cputemp 7.0.1 | mergerfs 7.0.5 | scripts 7.0.2


    omv-extras.org plugins source code and issue tracker - github - changelogs


    Please try ctrl-shift-R and read this before posting a question.

    Please put your OMV system details in your signature.
    Please don't PM for support... Too many PMs!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!