(unRAID 6.4.0) Redistributing data


Recommended Posts

I have an existing NAS array consisting of 8 drives plus parity drive. Three of the data drives and the parity drive are 8TB, the others are a mix (2 x 3TB, 2 x 4TB and 1 x 5TB). 34TB of the 43 TB in the array is used and only 9TB free. Most of the drives have only around 1TB free. Until now I've not been able to afford to expand the drives but over the weekend I plan to replace one of the 3TB drives with a new 8TB. This will give me approximately an additional 5TB storage. (Hopefully in the next few months I plan on another similar HDD upgrade from 3TB to 8TB).

 

The shares are arranged so that only the top level directory is split and I want to keep it that way.  What I need to do is to balance the drives better by redistributing the data and I'm wondering what would be the best way of doing it. I am considering using Krusader, but would welcome recommendations.

 

Thanks

 

Alan

Link to comment

@jonathanm I think you've misunderstood my intentions.

 

Replacing the drive will give me around 5TB extra storage in the array. When I replace the old 3TB drive (which has approx. 2TB used and 1TB free) and rebuild, the new 8TB drive will have 2TB used and 6TB free space.

 

The idea of the rebalance is to soak up some of the new spare capacity with data from the other drives. The allocation method on the shares is "most-free" so, assuming I can spread the data around evenly, then I should end up with around 14TB spare capacity spread across the 8 data drives (compared to the current 9TB free). In that scenario, each drive would have around 1.75TB free compared to the current 1.1TB.

 

So, what's the best of doing this?

Link to comment

You'll have to move the files manually. You mention Krusader so use that if you're happy with it as it will keep the moves local to your server rather than copying them back and forth via your PC. I would personally use Midnight Commander for moving large numbers of files between disks, or the command line for just one or two.

 

I'm curious why you're using "most free" though and why you feel the need to move files around. It's quite the opposite allocation strategy from what I use. I prefer "fill up" because it keeps files together and once a disk is full I can consider it as being almost read-only and move on to the next disk. Keeping recently written files on the same disk minimises spin ups, but your requirements are clearly different from mine.

Link to comment
2 hours ago, John_M said:

I'm curious why you're using "most free" though and why you feel the need to move files around. It's quite the opposite allocation strategy from what I use. I prefer "fill up" because it keeps files together and once a disk is full I can consider it as being almost read-only and move on to the next disk. Keeping recently written files on the same disk minimises spin ups, but your requirements are clearly different from mine.

I've never heard a good argument for using most-free, or a good argument for redistributing except for possibly freeing up a little maintenance space on a drive that is too full. OCD seems to be one argument. The other argument is something along the lines of "don't keep all your eggs in one basket". But the solution to that is good backups, not redistributing files.

Link to comment

Hi folks, thanks for the replies.

 

Firstly, I'll say, I'm a relative newbie to unRAID so I'm open to suggestions.

 

The following is my rationale for using "most free".  I have drives varying from 8TB down to 5TB, 4TB and 3TB. The 8TB drives were new at the time the NAS was built. The other drives had been used in other PCs, some Linux, some Windows. I wanted to make sure that the 8TB drives were used first but then once 3TB had been stored on each of them, to start to store data spread equally between the 8TBs and the 5TB. Then when another 1TB had been stored on all drives to store data across the 8, 5 and 4TBs and so on. Don't know if that makes sense.

 

In all shares only the top directory is split - so, for photos the top directory is the year directory for each year 2010, 2011, 2012 etc, then udnerneath that, folders by date, then the individual photos. For TV programmes this folder is the programme name, underneath this are series/season folders, then individual programmes themselves. *

 

When I'm adding files to the NAS, it could be anything from radio programmes, tv programme, films, photos, downloaded utilities, etc.

 

My understanding is that my system keeps series together, individual years for photos together, etc.

 

Unless my logic is wrong?

 

As regards moving the files around, I put forward Krusader and I've had suggestions for Midnight Commander and unBalance. Wondering what are the relative merits and otherwise of these options. As I said, I'm a relative newbie so I have a lot to learn!

 

Thanks

 

Alan

 

* PS I am finding that as I am adding items, my system is telling me that the drives are full for that share.

Edited by soulman1949
addition PS
Link to comment

Take a look at the "high water" allocation method. I think that's a closer fit for your requirements than "most free". You've already investigated the split level so you're on your way to getting the setup you want.

 

I haven't used unBalance. I have had no need for it and I prefer manual control anyway. Midnight Commander (MC) is one level removed from using the command line. It has a text-based user interface but it's menu driven so you don't have to type. The Krusader docker has a full graphical interface allowing file and folder icons to be dragged and dropped between source and destination. If you prefer Windows Explorer or Macintosh Finder you'll probably want to use Krusader. MC achieves the same thing without the pretty icons.

  • Like 1
Link to comment
1 hour ago, soulman1949 said:

I am finding that as I am adding items, my system is telling me that the drives are full for that share.

 

You need to set the "Minimum free space" parameter to be at least as large as the largest file you expect to write to the array. Files can't span disks so if there is insufficient space for the file you're currently writing on the disk to which you are currently writing it the write will fail, as you've noticed.

  • Like 1
Link to comment
4 hours ago, soulman1949 said:

I wanted to make sure that the 8TB drives were used first but then once 3TB had been stored on each of them, to start to store data spread equally between the 8TBs and the 5TB. Then when another 1TB had been stored on all drives to store data across the 8, 5 and 4TBs and so on. Don't know if that makes sense.

Why?

 

I concur with John_M on both high-water and minimum free. An argument can be made for fill up if you are planning on a mostly static archive. High-water is the default because it is a good compromise to distribute files without the need to constantly spin up different drives simply because one disk temporarily has more free than another. I say temporarily because that could mean after a single write it has to go to a different disk in an attempt to keep them closely matched in remaining free space.

 

The point about minimum free is simply, in the general case of writing a file, unRAID has no way to know how large a file will become. If there is more than minimum free remaining on a disk, it can choose the disk for a write, and if the file is too large, the write will fail. If there is less than minimum free remaining on a disk, then it will choose a different disk when it begins to write the file. Each user share has its own minimum free setting, and there is also a minimum free setting for cache in Global Share Settings. Cache minimum free comes into play for overflow on cache-yes or cache-prefer user shares.

  • Like 1
Link to comment

I concur with @John_M, using "fill-up" is in my opinion always greater than "most-free", once a drive is filled use it as read-only.

 

I'm the owner/developer of unBALANCE, and, in similar fashion to the "fill-up" philosophy, I believe that once you've filled up a drive, don't mess with it.

 

I built unBALANCE because I sometimes failed to do that, probably being an unRAID rookie and all. I believe Freddie's diskmv was built on a similar idea.

 

The thing is, to this day, I have separate folders for movies quality (xvid, dvd, blurip, bluray, uhd), so whenever I find a better version I delete a lesser one.

 

That leaves empty gaps in the drive where the content was deleted, so I've used unBALANCE to figure out how to better allocate space for me.

 

Also, I had tvshows season all over different disks, and whenever I binged, had to wait for spinup, which in retrospect, is it so bad ? Not sure, but millenials' timespan is like zero :)

 

In any case, along the lines, other scenarios, such as converting filesystems (RFS to XFS), freeing a disk to do encryption came along, and made sense for unBALANCE.

 

I believe the last frontier is in-place encryption .. once that happens, unBALANCE's usage (~4k+ per version), should go way down, I think.

 

Edited by jbrodriguez
  • Like 2
  • Upvote 1
Link to comment

Apologies for the delay in responding. The upgrading of the 3TB drive to 8TB and consequential data rebuild was delayed, but has now been completed.

 

Many thanks for the various responses, as a newbie to unRAID, they're very much appreciated and hopefully, I'll start to ponder on the comments over the coming week to decide on a course of action.

 

Alan

 

 

 

 

Link to comment
  • 4 months later...
  • 1 year later...

Besides ocd there is a case for spreading/distributing data up to every single file as equaly as possible.
Read Speed !!!
I edit videos straight of my unraid array very comfortably. Have only equal sized 7200rpm seagates in there and keep them all equaly filled and data spread as much as humanly possible to maintain maximum read spead. Works amazing and almost any file i acces has 200+ MB/s
Its getting as close to a classical striped array without a striped array ;-)
For the stuff i need to guarantee blazing speed above this max spindle rate i move the project to cache using unbalance and back with mover (as unbalnace does not spread files unfortunately) when done.

If you would fill up and stack all files in your edit on the same drive , it slows down massively and the more it fills up the slower a drive.

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
Reply to this topic...

×   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.