ShadeRF Posted December 8, 2019 Share Posted December 8, 2019 I have a 1tb and 500gb ssd setup as a cache pool. I'm transferring files to a share with cache set to yes and I'm running into a "there is not enough space" message even though unraid shows I still have 500gb free on my cache. It appears to be saying this once the 1tb ssd fills up and doesn't even bother with the 500gb. Furthermore I thought once the cache filled up it would just start writing directly to the array. Array has over 10TB free. I've hit this a few times and each time I have to go ahead and run the mover manually to continue transferring files. What am I missing? Log files attached. tower-diagnostics-20191208-1901.zip Quote Link to comment
Squid Posted December 8, 2019 Share Posted December 8, 2019 If you still have the cache pool set up as RAID1 (mirroring which is default), then btrfs reports the wrong size. It is only 500GB in total size Quote Link to comment
ShadeRF Posted December 8, 2019 Author Share Posted December 8, 2019 Just now, Squid said: If you still have the cache pool set up as RAID1 (mirroring which is default), then btrfs reports the wrong size. It is only 500GB in total size How can I change this? Quote Link to comment
Squid Posted December 8, 2019 Share Posted December 8, 2019 It's a known limitiation of BTRFS when using mismatched drives. Quote Link to comment
ShadeRF Posted December 8, 2019 Author Share Posted December 8, 2019 Just now, Squid said: It's a known limitiation of BTRFS when using mismatched drives. I mean can I change it to not use mirroring and instead use the full capacity of both drives? Quote Link to comment
Squid Posted December 8, 2019 Share Posted December 8, 2019 https://forums.unraid.net/topic/46802-faq-for-unraid-v6/?tab=comments#comment-480421 Backup whatever you need though, as I wouldn't be surprised if all data in the pool gets lost in the process Quote Link to comment
trurl Posted December 8, 2019 Share Posted December 8, 2019 Note in that FAQ Squid linked that the mode you want to use is "single", not raid0. 2 hours ago, ShadeRF said: Furthermore I thought once the cache filled up it would just start writing directly to the array. Unraid decides where to write a file before it begins to write the file. It has no way to know in advance how large a file will become. After it has chosen a disk to write, if that disk runs out of space you get an error. There are a few things that have to be setup to get cache to overflow to the array. First of all, the user share you are writing to must be either cache-yes or cache-prefer. Cache-no will not be written to cache to begin with, and cache-only will not consider writing to the array. The setting you probably want is cache-yes. See this link in the FAQ for more details about what happens with the various Use cache settings: https://forums.unraid.net/topic/46802-faq-for-unraid-v6/page/2/?tab=comments#comment-537383 The other thing that comes into play is the Minimum Free setting for cache in Global Share Settings. As mentioned, Unraid doesn't know how large a file will become. If cache has less than Minimum Free, Unraid will choose the array instead. You should set Minimum Free to larger than the largest file you expect to write to cache. Each User Share also has a Minimum Free Setting. That controls how much space a disk must have for Unraid to choose the disk. So if an array disk has less than Minimum, Unraid will choose another disk. You should set it larger than the largest file you expect to write to the User Share. Quote Link to comment
Recommended Posts
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.