Its been over two weeks now that I’ve had my Linux file server running and I am quite impressed with Linux. Its quite stable and reasonably quick. I don’t think anything can come close to FreeBSD however. I will miss BSD, but when it comes to stability vs. speed – stability wins every time.
I have thrown a lot at the server and nothing has broken the mirror. I only had two problems with the boot up process which I rectified as an incorrect configuration in the RAID. I had hard-coded in the partition names into the RAID startup file by accident. As anyone who uses Linux knows, the disk names can change occaisionally so it is not wise to refer to them in the fstab or mdadm.conf file directly. You have to refer to them by UUID.
Speed-wise it is significantly slower than FreeBSD. I suspect BSD can handle threads and DMA better. As well the device drivers are probably also better written. BSD is less fragmented development wise and thus I think there is more coordination and quality checks. Then again, FreeBSD couldn’t keep my SATA based RAID together whilst Linux can. I also discovered during this process that whilst SATA II is capable of 3Gbps transfer, each individual disk maxes out at either UDMA/100 or UDMA/133. Confusing to say the least.
I got my Windows Server 2008 going as well. Installation was dead easy – just pop the DVD in and follow the prompts. Setting the administrator password was tricky, as I did not realise that it needs to be a minimun 7 chars with a mix of letters upper and lowercase and numbers. Once in I was able to turn off that password policy. I don’t need it. SQL Server 2008 CTP went quite easily as well. But this is the CTP and I will need to re-install it at a later date, when SQL Server is released. This will be interesting as I have also installed Sharepoint 3 on the machine, and I wonder how the two will interact. I had some trouble getting Sharepoint to recognise my credentials from the other machines. I think I have it sorted, I am not running a domain and perhaps this is why? Any tips would be most welcome.
In other news I discovered the FORALL construct in Oracle. This is a fantastic operator and saved me from pulling my hair out. I needed to transfer 1M records from one database server to another – whilst consolidating the records through a map. I used a cursor with BULK INTO set at 1000 and a commit after inserting the 1000 records. This was done to help reduce Oracle undo as well as redo. Even on my fast servers this took ages to even get half-way through. Using FORALL cured my problem, reducing the transfer time to less than 10minutes! Fantastic.
Next time I have my first experience with mySQL and maybe some Linux tuning.