Jump to content

B00ze

Members
  • Posts

    81
  • Joined

  • Last visited

  • Days Won

    5

Everything posted by B00ze

  1. B00ze

    File Placement Limit

    What if you disable the Scanner Balancer plugin?
  2. Indeed - Have a look at the General forum; I just added a reply to a long thread about this, where I give examples of complications. Also, DrivePool will sometimes create a folder TEMPORARILY, when you place a file in it, and then move the file off to a different disk. The folder stays behind, so you could potentially end-up with your single season folder on multiple disks, where it is empty on all but 1 disk. So DrivePool cannot simply check for the existence of the folder, it would also have to see if it was empty or not (or else change the code a little to delete empty folders when it balances the contents somewhere else, which it does not do right now). Anyway, it's pretty complicated. Something that could help is to run Quinn's excellent Drive Pool Generate CSV (see here). Just schedule it in Task Scheduler and it will regularly create a CSV file of where all your files are. This way you can quickly find-out what you have lost should a disk go bad (you'll need a spreadsheet program). Regards,
  3. Good day. I thought about this per-folder balancing a while back - I thought maybe we could write a balancing plugin to do it? But quickly ran into all sorts of problems; it is definitively not as simple as it looks! Examples: If the folder grows beyond free space, then you have to split it between volumes (or maybe move it all to a different volume, but maybe there is not a single volume with enough free space.) So when it comes time to balance, you have to look at ALL the volumes - maybe the folder is on 3 different volumes, but now suddenly there is lots of free space on Volume 1 where a portion of the folder resides, so we should move all the files there, so they are together. Do we even do this if the folder in question is not present on Volume 1? Do we move all 3 folders from 3 different volumes (say 2, 3 and 4) to Volume 1 now that there is enough free space there to keep the folder together? And let's not forget that stuff can be duplicated, so you have double/triple the moving-files-around work to do. Also, since DrivePool balances on the fly, you'd have to check and calculate the size of the folder, on ALL volumes, every time a file was written to the pool - it would be a pretty slow balancing plugin (if the folder is on 3 volumes, and you write a new file, it should go to the volume where the folder is biggest so as to keep all files together). And think about it, DrivePool would potentially have to move files around each time a file was deleted from the pool, as it tries to "keep things together." It's definitively trickier than it looks! Regards,
  4. Good day. I doubt resetting permissions will take "all night" on a 15TB pool, unless you have millions of smallish files (then yeah, it could take a while). If your pool is filled with large video files it won't take too long to reset all permissions. What I did is I edited permissions on the Poolpart folders, did not change them (they are inherited from the root of the drive) but put the little check-mark where it says to replace child permissions. My pool is pretty much empty right now (500GB) so it took only like a minute per drive. By the way Christopher, you are right, the problem with the Recycle Bin(s) was the permissions. When Windows told me a second time that the bin was corrupted (there is 1 sub-folder for each user, per drive, so it was going to bug me about this a lot) I went to the console and deleted all the user folders from all drives; problem solved. Best Regards,
  5. I had a go with Google at "Operating system error 24" and found this. Apparently this means too many opened files and you can fix it by changing a setting in the database config file? Not sure why this is not also happening on the plain disks. Still no idea what error 224 means...
  6. Ohhh, I should've turned on logging and at least created 1 sub-folder, before resetting permissions. Permissions on the PoolPart folders looked fine, so it's not like it was replicating a problem from above. Maybe I should've looked at that more closely, with Subinacl and Setacl and iCAcls. I was so sure I was going to be able to reproduce, I just wiped all permissions before thinking. Sorry. Did you try to reproduce? Just format 2 drives, create a pool then create a folder inside. If we cannot reproduce, it will be hard to pinpoint the cause. Darn darn darn, I should not have cleared the permissions! Got another bug yesterday: As I logged on another user (ie. 2 users at once) Windows told me the recycle bin on the pool was corrupted. I told it to ignore this and show me the contents anyway and it looked fine. Since it kept pestering me about it, I finally gave in and told it to go ahead and empty the trash like it was asking me to - it did not empty at all, but it stopped telling me it was corrupted. If it happens again I'll take a closer look. It does say it's corrupted sometimes, even on plain NTFS volumes... Best Regards,
  7. Hi Christopher. Yeah, I formatted the drives first, then created the pool. Well, I have ownership of the folders/files, it's just that permissions are all funky. So today I picked an empty folder that I'd created using Explorer when I first setup the pool and told Explorer to go ahead and re-order the permissions so I could view them. All those "Special" permissions were all just Full Control, and every folder was split between inherited permissions applying to subfolders and files, and own permissions applying to the folder itself; really weird. The permissions on the Poolpart folders were OK (all inherited) but every folder inside was funky. So I shutdown the DrivePool service and replaced all permissions to all children with inherited permissions. Restarted the service and created a folder inside the pool -> It has correct permissions. Tried to robocopy some files/folders into it (this is how I loaded my data onto the pool) -> Everything is fine. I guess we can put this as a bug with Beta 890; cannot reproduce anymore. Best Regards,
  8. Hi. I searched the forum but did not see anything about this: On Win7, when I check NTFS security on any FOLDER (works fine on files) in the pool, it tells me the ACEs are incorrectly ordered, and if I keep going, I basically get 2x every permission, but they are all "Special" - one is inherited and one is applying to the folder itself. It won't let me edit the permissions without letting it "correct" them, but I haven't gone that far yet (see Pool-Permissions). If I check the underlying permissions, directly from the disk where the folder is located, they are also broken (see Underlying-Permissions). What is happening? I don't recall doing anything special to cause this... Regards,
  9. I've see that asked before, but don't recall if there is a solution. DrivePool will write to the least-full disk, so if the disk where the Zip is located is the one with the most free space, that's where the unzipped files will go.
  10. Yeah, I get this on every boot as well "The IO operation at logical block address 2 for Disk 5 was retried." I'm ignoring this too (Disk 5 is the pool)...
  11. Good day. I get this in the System Event Log each time the DrivePool service starts: VDS Basic Provider Unexpected failure. Error code: 490@01010004. This started the day I installed DrivePool (version 890 if I recall). Continued to today RC 904. DrivePool works regardless. Uploaded logs Service_B00ze.zip under the email address I use for this forum. Thank you.
  12. Hi Christopher. I'll continue the discussion, but read-striping is not the most crucial thing DrivePool does. And as it has to handle a variable number of disks, variable speeds (e.g. USB) and variable I/O requests (e.g. random access vs sequential) it's understandable that it is complicated and not 100% optimal (which would yield around 2x the speed of a single drive). However, it's far from optimal right now; it concentrates all I/O on a single disk, I'm not quite sure why... When I do my quick simple little tests, the only thing the disks are doing is the file-copy I run for the test. If it sees disk #2 as busy then it sure sees disk #1 as busy as well. For optimal performance you should keep both disks as busy as you can. If there's a disk that's sitting idle 90% of the time then you're losing performance.Disk I/O is slow, and it doesn't need the CPU (ie. DMA,) so there is plenty of time to do things even when multiple disks read at maximum speed. USB or network storage are different (USB on my very old Pentium 4 system does take noticeable CPU time). But then, DrivePool would be conservative using disk #1 as well, if it was afraid of taking too much resources, and it's not, it's very happy keeping that disk as busy as it can. And look at the graph (screenshot) I attached, the disks never really run at the same time, it uses each disk by itself for large amounts of time, there are big "holes" in the curves... Sure, don't allocate a 1GB buffer for each disk, but you gotta keep them busy. Besides, for I/O like disks, what happens is you allocate the buffer, request a DMA transfer, and go to sleep. Your own thread is not actually taking any system resource, you're just mostly always sleeping waiting for I/O to complete. You should be able to run multiple copies from multiple disks to multiple disks, and then run Prime95 and see only marginal impact, since it's all DMA. For USB, you would need many many disks connected to many different USB hubs to have a large impact on system performance, and even then, I'm pretty sure the impact would be minimal (it all runs on the one PCI Express bus, so there is only so much load you can achieve). 10GB networks will slow down a system (a lot, because of constant interrupts) but you would need a LOT of disks to get there. Nice that is has priority classes (it did cross my mind how you handle real disks vs USB drives vs network drives). But both disks are the same class. And they are both sitting idle besides running the copy operation. If Alex can explain that would be nice, but maybe there is a little bug somewhere too? I don't know, it's really strange that DrivePool just doesn't use the additional disks, it concentrates all I/O to the one disk. If I copy multiple big files, the disk that gets 90% of the I/O changes between files, but the other disk never sees more than 10% usage. Best Regards,
  13. Hmmm, strange error. According to Microsoft you can use GetLastError on DeviceIoControl, so if we look here Microsoft then error 224 is: ERROR_FORMS_AUTH_REQUIRED 224 (0xE0) Access Denied. Before opening files in this location, you must first add the web site to your trusted sites list, browse to the web site, and select the option to login automatically. If the error is in Hex then we get: ERROR_DEVICE_ALREADY_ATTACHED 548 (0x224) An attempt was made to attach to a device that was already attached to another device. None of which makes much sense... Regards,
  14. Thought I'd post this here rather than a new topic, since it has to do with placement rules. I have now learned how DrivePool handles file some file moves, and it's pretty nice. I have 3 drives. Most of my data goes into drives 1 and 2, duplicated; there are file-placement rules to make sure this is what happens. My "Downloads" folder however has no file placement rule and no duplication. Since free space is higher on drive 3, when I download it goes into drive 3. Once it's downloaded, I usually move it to one of the folders that are controlled by file placement rules - that means the file should go onto drives 1 and 2. But DrivePool doesn't turn the file move into a copy. What it does instead is it creates the directory structure necessary so the file can be moved to the correct folder ON DRIVE 3! This ensures fast move operations. Only LATER during balancing will it remove the file from drive 3 and duplicate it on drives 1 and 2. I think this is clever. Best Regards,
  15. Good day everyone. I had two issues with DrivePool-Generate-CSV-Log-V1.51 which I have corrected (I will try to attach to this reply): Get-PhysicalDisk is not supported on Windows 7 so I changed it to Get-CimInstance -ClassName CIM_DiskDrive. Under Win7 the script wouldn't fail but the disk model and serial number columns were just blank. Unicode CSV files do not load correctly when double-clicked, at least not with Excel 2016, they load as a single column. Turns out however that Excel 2016 supports TAB delimited Unicode CSV just fine, so I changed the format from comma-delimited to tab-delimited. Works fine. The updated script should be attached... DrivePool-Generate-CSV-Log-V1.60.zip
  16. Good day. But the tests I run are large sequential copies, they are the best candidate for read stripping, and DrivePool is not really doing it. It's clearly maximizing the use of ONE disk, and clearly it is trying to limit going from disk to disk, but "disk context switches" taking any time at all is not something I am familiar with. If you want to read-strip, what you do is allocate a big buffer and ask disk #1 to fill it. You do not wait for this to finish, you immediately allocate another buffer and ask disk #2 to fill it, starting further along the file. If both disks are as fast then you should be maximizing disk context switches, not trying to minimize them. Each time a block finishes you can calculate how long it took and figure out which disk is faster and adjust accordingly (if disk #1 is faster, you ask it for the next block, and ask for the THIRD block out from disk #2, meanwhile disk #1 returns and you ask it for the block in between.) But my disks are all the same; if DrivePool did striping optimally I should see 50% I/O on each disk. Instead what I see is 90% I/O on one disk. Read Stripping is not as important as everything else DrivePool does, but there is clearly room for improvement there. Best Regards,
  17. Good day everyone. As I mentioned somewhere else, I get about 12% more performance copying large files from a duplicated pool as I get from copying those files from the same disks, outside of the pool. So from the disks, I get 200MB/s, and from the pool I get 225MB/s. The performance increase is really low. What performance do you all get from Read Stripping? In preparation for this post, I copied more and larger files (duplicated) from the pool to the SSD but this time I switched to the "Disk Performance" TAB of DrivePool, and discovered that DP is barely ever using both disks, even tho the "Read Stripping" gauge on the "Pool Performance" TAB says 100% read stripping. If "Disk Performance" is accurate, DP reads mostly from a single drive. So I tested again and this time used Resource Monitor to watch the disks and sure enough, DP is pretty much never reading from both disks at the same time, it just switches from one to the other back and forth (see Screenshot) but it's mostly using only 1 of the disks (90% I/O is on a single disk). Is this normal? Both disks are the same model, both connected to the same controller. Thank you.
  18. Good day. I'll start a new thread, see if some of the forum users can post some performance results - you obviously can't because your media sits on the network. FYI I tested by copying two 4GB files using Explorer to a fast SSD. I have a little tool to invalidate caches in Windows, so I can repeat the test without rebooting. When I tested, that copy was the only thing running. You can't always use Junctions. For example, if you intend to Robocopy the stuff, it will have to be a SymLink, Robocopy doesn't copy Junctions as Junctions, it just makes a 2nd copy of the data. Also, you cannot Junction files; a HardLink is good there, but the pool doesn't support them. For the problem of evaluation of remote SymLinks, you have to enable R2L and R2R -> fsutil behavior set SymlinkEvaluation R2L:1 R2R:1 According to what I found on the web, it works this way: L stands for Local and R for "Remote" (who would've thunk?) The FIRST L or R refers to the location of the link itself (as opposed to its target) relative to the machine ACCESSING the link. The SECOND L or R refers to the location of the link's target relative to the machine where the LINK itself is located. So R2L should be what needs to be enabled to follow SymLinks on remote volumes, but it does not work for me, I need to enable R2R and THEN I can follow SymLinks on remote systems that point to local locations on that system. Once I enable R2R SymLinks work the way they should, even over the network. Best Regards,
  19. Hey DragonQ: That won't work for me. I cannot get DrivePool to accept Junction file placement rules, ie. a folder name with no pattern, no files; it accepts the rule but doesn't move the Junction to the disk I specify. My main entry point into the pool has several folders and several Junctions, and the later are all created on the most empty disk which is the 3rd disk (the other 2 disks I do NOT expect to ever sleep because they have duplicated data AND most of my data, so they will always wake-up). So whenever I open the pool, it has to access the 3rd disk to resolve those Junctions. It's ok, I don't mind too much. DrivePool does everything I want with only 4 placement rules; it took me 30 minutes to think about it, find the solution, and 3 minutes to set it up.
  20. Ah, I didn't have the release notes, thanks for that :-)
  21. Hey Christopher. Yeah, the "studiness" of DrivePool is really really nice, it has agreed to everything I have thrown at it so far, including Multi-Boot! As for performance of the read stripping, I have less good news: Today I tested copying from one of those disks but outside of the pool, to the SSD, and got ~200MB/s, so read stripping has only increased performance 12%. This is a far cry from the Intel RAID which simply doubled performance (Crystal Disk reported ~400MB/s sequential reads, but the RAID required Intel's own Write-Back cache or writes would fall down to 80MB/s). Of course you cannot match RAID, but 12% is a bit low, I was hoping for something like 50% faster. What do YOU get in term of performance improvement for 2x duplicated files on your server? PS: I see now how you manage reparse points. There is 1 file per point in the covefs folder, which contains type and souce and target, and an ID tagged to the reparse point as an alternate data stream. The reparse point is just an empty folder (I haven't yet tried SymLinks on files but presumably they will be empty files). Might slow down if someone has thousands of reparse points but I won't reach that many. What's nice is that Robocopy is able to copy SymLinks as Symlinks TO AND FROM the pool! Woohoo! AND if I FSUTIL the reparse point to delete it, DrivePool does its job and the reparse point becomes a normal folder, exactly the way it works on a normal disk. This is awesome! Best Regards,
  22. B00ze

    Issue with Beta 890

    Yeah, I tried again just now to trigger the problem by running the backup script and nope, all works fine with 904 - whereas with 890 every time I tried, one of the Robocopies would copy ALL the files over the existing ones and call all of the files "new." Don't know what changed, I checked the changelog and it does not speak of anything that would have this effect. If that matters, I am still using the Intel RAID drivers, even tho all my drives are now "non-member" drives; not sure if that would have any impact...
  23. Finally migrated my data to the pool. Folder placement rules worked flawlessly, and all in real time, no balancing/duplicating pass needed afterwards. It also writes at full speed (~150MB/s) no matter how many duplicates it creates, and re-reads duplicated files at ~225MB/s, not quite doubling the writing speed (copying from the pool to a SSD). I was also able to change drive letters around, the pool did not have any issues following. In fact, it has no issues at all moving from Win 7 where the drives are I/J/K to Win 10 where the drives are some other letters. This tool is lots of fun, and the UI is A-1, if a bit funky (e.g. it uses its own controls for minimizing/closing the window which are a bit weird). Best Regards,
  24. B00ze

    Issue with Beta 890

    Hi all. I had installed Beta version 890 instead of newer versions of DrivePool because the versions after 890 used the new mounting code and there were issues reported with that and Win 10. I think these are fixed in 90x release candidates, but I've only tested 904 in Win 7 so far. In any case, there is a bug in 890 that I noticed right away : I run a script which does backup operations using Robocopy in Mirror mode - it updates only changed files. That script runs about 8 Robocopies with thousands of files. I tested it tonight and noticed that each time I ran it, at least one of the copies decided that the target folder did not exist (or was empty) and proceeded re-copying ALL the files over to the pool. This is not right; it should've noticed that almost all files were identical, especially after the 2nd and subsequent backup runs, where ALL files were indeed identical. But not matter what, each run, at least 1 folder was copied completely over. Version 904 RC has fixed that. I also had some bizarre results from Robocopy when I first migrated all my data to the pool; it kept reporting that it had "skipped" some folders each time I copied over another chunk of data (but it kept reporting having copied all files.) I ran compares between the source and target folder trees and no folders were missing. I have not had occasion to re-test this with 904, since my data is now completely copied over to the pool. Anyway, avoid Beta 890, it's a bit buggy (note that it never LOST any files, but it apparently has issues with folders). Best Regards,
×
×
  • Create New...