August 31, 200916 yr I have no idea why the 1TB drive is bigger than the other. Sounds like you have HPA (Host Protected Area) on one of the disks See http://lime-technology.com/forum/index.php?topic=3675 for potential solutions.
August 31, 200916 yr OK I got all my data copied to the drives in the array. Now I want to assign my parity drive and compute parity. I have a problem tho. Even tho the parity drive is 1TB and one of the other drives is 1TB, Unraid is not letting me assign it because it says it is not the biggest drive. I have no idea why the 1TB drive is bigger than the other but this sucks. Here is a screenshot of the issue. What can I do? I want to compute parity. Thx Let me take a wild guess... you have a Gigabyte MB? If so, look here: http://lime-technology.com/wiki/index.php/UnRAID_Topical_Index#HPA You might be able to reclaim the space your BIOS stole from you by using the hdparm command as described in this thread: http://lime-technology.com/forum/index.php?topic=4194.msg37003#msg37003 You will be one of the first to try this on unRAID... un-assign parity first.. Then type hdparm -N /dev/sdX (where sdX is the device for your parity drive) It should print the full size, and the reduced size. Then, type hdparm -N pXXXXXXXXXXXX /dev/sdX (where XXXXXXXXXXXXX = the full size... don't forget the leading "p" in front of the size to set it permanently) Then try re-assigning the parity drive... We'll see if it is recognized as the full size. Your MB bios may try to set it again when you reboot, but we'll see... You might also check for the "hidden" BIOS option to keep it from reserving disk space for itself. (try Control-F1 when booting to BIOS) Joe L.
August 31, 200916 yr Author Yes I do have a Gigabyte MB (GA-MA74GM-S2) Here are the results of the hdparm -N /dev/sdX command: root@Tower:~# hdparm -N /dev/sda /dev/sda: max sectors = 1953523055/1953525168, HPA is enabled Those numbers seems a lot higher than the ones listed in my screenshot. So I should execute this command now then: hdparm -N p1953525168 /dev/sda Is this correct?
August 31, 200916 yr Author I try this command: root@Tower:~# hdparm -N p1953525168 /dev/sda /dev/sda: setting max visible sectors to 1953525168 (permanent) SET_MAX_ADDRESS failed: Input/output error max sectors = 1953523055/1953525168, HPA is enabled but it failed and there was no change in the size reported and parity would not assign.
August 31, 200916 yr I try this command: root@Tower:~# hdparm -N p1953525168 /dev/sda /dev/sda: setting max visible sectors to 1953525168 (permanent) SET_MAX_ADDRESS failed: Input/output error max sectors = 1953523055/1953525168, HPA is enabled but it failed and there was no change in the size reported and parity would not assign. Have you power cycled the server since you installed the parity drive? If not, then that would be the next thing to try, as from my reading the setting of the HPA is only allowed once per power cycle. If the BIOS did it once when you powered up, then you would be prevented this time. (It's worth a try) In any case, your MB will fight you in this way unless you get it to stop adding an HPA to the parity drive. Sometimes this is only done to the first SATA connector, but the details are very sketchy about how to disable it. You might look for the advanced (hidden) bios options... Control-F1 when in the BIOS Another possibility, although also un-tested, is to ask your kernel to ignore the HPA upon boot up with a parameter added to the syslinux.cfg file. I've seen this mentioned in some posts I've read searching via google, but have no idea if the Linux kernel we are running has support for it enabled. Worst case, it will be ignored. Best case, it will be respected. The boot code to add to the "append" line in syslinux.cfg is libata.ignore_hpa=1 The line in syslinux.cfg would change from: append initrd=bzroot rootdelay=10 to append initrd=bzroot rootdelay=10 libata.ignore_hpa=1 Once you change the line in the syslinux.cfg line in the root directory of the flash drive, try rebooting and again try to assign the parity drive. Joe L.
August 31, 200916 yr Author Of course there is no way to turn it off in the BIOS. I tried what you said and the parity drive is still not the biggest. This is very frustrating. I have no idea what to do but buy a larger drive and I really do not want to do that.
August 31, 200916 yr Of course there is no way to turn it off in the BIOS. I tried what you said and the parity drive is still not the biggest. This is very frustrating. I have no idea what to do but buy a larger drive and I really do not want to do that. No need to do that... Did you try rebooting with the added boot-code?
August 31, 200916 yr Author Yes I rebooted with the new syslinux.cfg and still the same I am very frustrated LOL. If I would have known this I would have never bought the Gigabyte MB The bios must be setting the hpa because I cannot do it. It fails everytime. root@Tower:~# hdparm -N p1953525168 /dev/sda /dev/sda: setting max visible sectors to 1953525168 (permanent) SET_MAX_ADDRESS failed: Input/output error max sectors = 1953523055/1953525168, HPA is enabled
August 31, 200916 yr One of the other things you could do, but you might not want to, is to assign that drive you were going to use as parity as a data drive. Move the data to it and then assign the drive you moved data from to the Parity slot. Probably not the cleanest solution around but it should work.
August 31, 200916 yr One of the other things you could do, but you might not want to, is to assign that drive you were going to use as parity as a data drive. Move the data to it and then assign the drive you moved data from to the Parity slot. Probably not the cleanest solution around but it should work. I'm thinking exactly the same thing. Step 1... partition the drive you are trying to use as parity (the one that has the HPA) to be the entire disk minus the area the HPA reserved and create a reiser file system on it. We'll end up using it for data, and your current "data" drive for parity. Easiest way to create the file-system is to assign the drive with the HPA as a data drive in the device assignment and let unRAID format it. For the short term, you can assign it as disk4. Step 2. Temporarily, turn off user-shares. (we will be causing it to flag every file as a dupe as we copy the entire drive. It would only fill the syslog with error messages we don't need and slow the whole process. We can re-enable user-shares later, after you assign the parity drive) You might enable disk shares as read/write visible... for the short term. Step 3. Copy the data from the slightly larger data drive to the slightly smaller one. Leave the "port" connections to the MB as they are, as the BIOS will still see the drive with the HPA and be happy. Assuming you made the drive with the HPA as disk4, the commands to copy everything from disk1 to disk4 would be cd /mnt/disk1 cp -r * /mnt/disk4 cd The last "cd" is to keep you from preventing the disk from being un-mounted (if it is your current directory, it is "busy". "Busy" disks cannot be un-mounted) Step 4. ... once the copy is complete (if the disk is full, it could take 3 or 4 hours) then, you can stop the array, assign the old disk1 as a parity drive and be on your way. You can also re-enable user-shares. Joe L.
August 31, 200916 yr Author OK I am doing this now. When I am done can I stop the array, assign the disk1 as the parity and reassign disk4 as disk1? Will this work or screw up my configuration? Thx
August 31, 200916 yr OK I am doing this now. When I am done can I stop the array, assign the disk1 as the parity and reassign disk4 as disk1? Will this work or screw up my configuration? Thx Yes, you can do exactly that.
August 31, 200916 yr OK it is on its way. It has 400GB to copy to the other drive. Glad to hear that my suggestion is going to work for you. I had a similar probelm, even though i do not run a Gigabyte board. When i first set up my server i was testing different boards and one of them happened to be a Gigabyte. I noticed the problem only after I had decided to go with the Abit AB9 Pro board. I had to do some flip flopping of drives to get it the way it needed to be, but i essentially did exactly what you are doing now to get mine to work.
August 31, 200916 yr Author Thx to both of you. It is still running and most likely will for a few hours. Then I will reassign disk1 as parity. Do I need to format disk1 first before assigning to parity. Then once assigned to parity and I start the array, what do I have to do to compute parity so the array is protected? Is it automatic?
August 31, 200916 yr Do I need to format disk1 first before assigning to parity.Nope... just assign it Then once assigned to parity and I start the array, what do I have to do to compute parity so the array is protected? Is it automatic? It is automatic. You just need to start the array, nothing more. (before you start the array, don't forget to assign disk4 as disk1, re-enable user-shares, make disk-shares hidden read/write) Once parity is calculated, use the "Check" button on the management console to make certain the drive was written to properly... (Calculating parity "writes" it, checking will ensure the drive can be "read" too. From then on, a monthly press of the "check" button will ensure all the drives can be read if/when another drive were to fail) Joe L.
August 31, 200916 yr Author Ok the copying is complete. I did what you said... unassigned disk1 and disk4. Then assigned disk4 as disk1 and disk1 as parity. Now it says my config is invalid. See screenshot. What did I do wrong?
August 31, 200916 yr Ok the copying is complete. I did what you said... unassigned disk1 and disk4. Then assigned disk4 as disk1 and disk1 as parity. Now it says my config is invalid. See screenshot. What did I do wrong? You did nothing wrong... This is one of the times when pressing the "Restore" button is the correct action as you are, in effect, removing a disk from your array (disk4 is being removed) I did not think it would complain until after parity was calculated, but it is just trying to protect you from mis-assigning your disks... In this case, you are really deleting disk4 and not intending to replace it (at least not this morning) So, check the box below "restore" to enable it, and press it, then press "Start" Joe L.
August 31, 200916 yr Author I thought that might be it but I wanted to be sure. Thx It is now started and says Parity-Sync in progress Thx again for your help
August 31, 200916 yr Yup you should be able to get to the user shares and do anything you need to while parity is being calculated.
August 31, 200916 yr I had a HPA on one disk. If I recall correctly, I had to use a boot disk with another motherboard to get rid of it. Pain in the ass. The Gigabyte motherboard will keep modifying it or accessing it or something every boot and you can only do it once per power cycle which means it can't be changed again after booting. My drive was taken from my HTPC with the Gigabyte board so it was OK once I got it fixed and into the server. I'm pretty sure it had something to do with the BIOS recovery options that are given but can't remember the details and would have to go home and reboot the HTPC to find out. I'm also pretty sure I enabled some option that created it. At any rate, I had to connect a optical drive to the server and boot it from a CD and then clear the HPA. I think I used the Ultimate Boot Disk and it has a tool to do this disk operation. As for the moving, I think you could have just assigned the disk with data as the cache disk and the other as a the data disk as a data disk and then just hit the move cache button. Don't clear your other drives until the parity sync is completed and you've run another parity check with no errors. Also, look at the size of the parity drive now. If there is a HPA on it then you will be hosed again if you try to add another 1T data drive. Peter
August 31, 200916 yr Author Woo hoo. Parity is valid. Thx for all the help I have the monthly parity check script activated so it should run at midnight.
Archived
This topic is now archived and is closed to further replies.