Jump to content
  • [6.11.5] Shares with "Use Cache Pool = Yes" run out of space when cache is full instead of spilling over to array.


    binaryrefinery
    • Closed

    I'm running Unraid 6.11.5 and have run into a situation that seems to run counter to the documentation regarding the use of Cache for shares.

     

    • A share called "media" on the array.
    • It is configured to "Use cache pool (for new files/directories): Yes"
    • It has 4.5 Tb of free space.
    • The cache is 500 Gb on an nvme drive.
    • It's served via SMB over the network and accessed from a Windows 11 client machine.

     

    When copying about 1 Tb of files (each file is 1-2 Gb in size) from Windows to the share over the network, the cache fills up and the following happens half way through the copy:

    • Windows copy errors and reports that an additional 500GB or so are required to continue copying.
    • Warnings notifications appear in Unraid saying the cache drive is full.
    • Docker and VM's running on the cache drive error out and pause/shut off (appdata and domains are set to "Prefer" cache)

     

    To recover from this situation:

    1. I manually kick off mover. It begins to move the files from cache to the array. As it does so, free space on the cache drive returns.
    2. In windows, I can click "Try again" on the copy and it will resume copying the files until the cache drive fills up again.

     

    According to the documentation, I would expect that when the cache drive is exhausted, new files are put directly onto the array and the copy from the perspective of the windows client continues uninterrupted (unless the array was out of space, which isn't the case). From the help:
     

    Quote

    Use cache pool (for new files/directories): Yes indicates that all new files and subdirectories should be written to the Cache disk/pool, provided enough free space exists on the Cache disk/pool. If there is insufficient space on the Cache disk/pool, then new files and directories are created on the array. When the mover is invoked, files and subdirectories are transferred off the Cache disk/pool and onto the array.

     




    User Feedback

    Recommended Comments

    You need to set the minimum free space for that share, we usually recommend setting it to twice the largest file you expect to copy there.

    Link to comment

    Understood. To clarify, you mean I need to set a minimum free space on the "media" share, not anything to do with free space on the cache drive?

    Link to comment
    1 minute ago, binaryrefinery said:

    To clarify, you mean I need to set a minimum free space on the "media" share

    Correct, you can also set a general minimum free space for the pool, whichever is higher will take effect in that case.

    Link to comment

    @binaryrefinery

    Just a FYI the documentation says

    Quote

    Yes: Write new files to the cache as long as the free space on the cache is above the Minimum free space value. If the free space is below that then by-pass the cache and write the files directly to the main array.

    When mover runs it will attempt to move files to the main array as long as they are not currently open. Which array drive will get the file is controlled by the combination of the Allocation method, Split level, and Minimum Free Space setting for the share.

    which DOES mention the need to set the Minimum Free Space value.  Maybe the Help needs that extra bit adding as well.

    Link to comment

    @itimpi - thanks. I was referring to/quoted the inline documentation / help in the Web UI, rather than the online docs.

    Documentation aside, it's a little non-intuitive for the free space setting on the share to affect the behavior of the cache. The share itself is nowhere near being full so I wouldn't have thought about the minimum free space as a fix. I'm also a bit curious to know if the split level would affect this too.


    Problem solved though... thanks @JorgeB and @itimpi

    Link to comment
    5 minutes ago, binaryrefinery said:

    @itimpi - thanks. I was referring to/quoted the inline documentation / help in the Web UI, rather than the online docs.

    Documentation aside, it's a little non-intuitive for the free space setting on the share to affect the behavior of the cache. The share itself is nowhere near being full so I wouldn't have thought about the minimum free space as a fix. I'm also a bit curious to know if the split level would affect this too.


    Problem solved though... thanks @JorgeB and @itimpi

    The pool (cache) also has a Minimum Free Space setting.

     

    At the moment if the setting on a share is higher than that on the cache pool it takes precedence.   I personally think this is wrong and only the setting on the cache pool should be taken into account when writing to the cache, and that for the share to apply when writing to the array drives.

    Link to comment
    Quote

    I personally think this is wrong and only the setting on the cache pool should be taken into account when writing to the cache, and that for the share to apply when writing to the array drives.


    Agreed. If I were to go as far as request a feature though, I'd love to be able to specify a "cache quota" per share. If I have a single 500 Gb nvme drive, I'd like to reserve 250 Gb for actual file caching in front of an array share, and the other 250 Gb for VMs/Docker. Multiple cache drives dedicated per share would do the trick I guess, but not feasible with one nvme slot.

    Link to comment


    Join the conversation

    You can post now and register later. If you have an account, sign in now to post with your account.
    Note: Your post will require moderator approval before it will be visible.

    Guest
    Add a comment...

    ×   Pasted as rich text.   Restore formatting

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.


  • Status Definitions

     

    Open = Under consideration.

     

    Solved = The issue has been resolved.

     

    Solved version = The issue has been resolved in the indicated release version.

     

    Closed = Feedback or opinion better posted on our forum for discussion. Also for reports we cannot reproduce or need more information. In this case just add a comment and we will review it again.

     

    Retest = Please retest in latest release.


    Priority Definitions

     

    Minor = Something not working correctly.

     

    Urgent = Server crash, data loss, or other showstopper.

     

    Annoyance = Doesn't affect functionality but should be fixed.

     

    Other = Announcement or other non-issue.

×
×
  • Create New...