Archive for July, 2009

If I can’t, why kernel can? :(

July 23, 2009 Leave a comment

Justice Is Lost
Justice Is Raped
Justice Is Gone
Pulling Your Strings
Justice Is Done
Seeking No Truth
Winning Is All
Find it So Grim
So True
So Real
(Metallica – And justice for All)

When I was a little boy, my dad thought of one thing I am very proud of. Never promise something you cannot fulfill. I tried to live by that principle, and I think I mostly succeeded. OK, I promised a girl or two a marriage, and then I broke up, but that kinda doesn’t count? Anyway, when I was 5 yearold, that seemed to me like a very logical thing. But now, 20 years later, I kinda question this approach. Why?

Here’s why. Linux kernel has memory overcommit behavior set as default. What is overcommit? Overcommit is ability to give more resources than you have. Something like what we call crediting in real world. So, here comes Kernel, and allows processes to allocate more memory than is currently free and avaliable in the system. So, basically, Kernel is crediting processes and boosting economy (whoops, boosting enviroment I suppose). As well as our economy collapsed because it is dept based, and credit based – so will the OS enviroment eventually.

Lets take an example. Our computer has 2GB’s of RAM, and 300MB free. My nasty application asks kernel if it can allocate 1GB. On a good OS, like Solaris, kernel would slap my nasty application all over the place! Acctually no, it would only said – you’re asking too much, I can’t answer on that demand. So application would probably crash if it was written poorly. On Linux however, kernel thinks it’s much better than that ugly Solaris. And wants to please everybody, and likes it’s popular. Linux kernel is an ego tripper. So it promises things it cannot fulfill for surely. So my nasty program gets it’s 1GB of memory. And then it starts using it… 100MB. 200MB. 300MB. Whooops. There’s no more memory available. But now our mr. ego tripper activates OOM – a fantastic superhero who goes out and gets some more memory for my nasty program. That fantastic hero then kills almost randomly processes who use lots of memory. In production environment, that would probably end up being your database. Or httpd. Or maybe both : ) And now everybody is happy. My nasty app does not have bad opinion about Linux kernel because it was granted all it wanted, Linux kernel grows it’s ego exponentially because of that, and because it showed that impolite database who’s a boss around here.

Things shouldn’t work like that on an enterprise level OS, should they? Or I got it totally wrong… Maybe I should ask my father – if kernel can promise more than it has, why can’t I? He will probably answer me something like – “Well, our goverments thought they were Linux kernel, and look in what mess that got us into.” So I guess I was right all along (as always), and the right to overcommit, or overpromise, or credit, is granted only to Linux kernel. Some days I’m really glad to be a Solaris convert : )

The greatest database ever

July 19, 2009 1 comment

Trough the fiery caverns we sail
Virgin at my side, my guide and master
Questing through the nine plains of hell
(Iced Earth – Dante’s Inferno)

Another day at work… Another day of troubles with a piece of shit known as MySQL. MyISAM, InnoDB, NBD, Memory, Merge, Federated. They announced that 5.4 will bring new storage engine along. As these current ones were not enough. Apparently not. Because they are all stinkin’ worthless shit. Dozen of storage engines and none of them really works. I hate MySQL… And every day of being forced to use it, I hate it more and more. MySQL is on a good path to surpass even vegeterians on my black list. I hated Sun for acquiring MySQL AB. I then loved Oracle for acquiring Sun : ) Because I hope that MySQL will be beaten to death, raped, ripped, torn apart, bombarded, nuked, and then reborn just to repeat the process again. That is the crappiest database world has ever seen. It’s insult to others like PGSQL to call that piece of hackery a database. Why don’t you need 10 different storage engines with PostgreSQL? Because they have one that works kicks, and kicks ass of all MySQL ones for example. Those guys at MySQL are idiots. In the dictionary under word idiot is supposed to be the following explanation: “The guy that engineers or programs MySQL”. And what about SQL92 standard? That’s whole other storry to tell. How the guys at MySQL AB break standards can be seen as the greatest try to redefine word Microsoft ever. INSERT with SET instead of VALUES? And all other bullshit? So that they can be sure noone will switch over to some other normal database ever… Fuckin’ morons…

Low cost JBODs…

July 6, 2009 Leave a comment

I work all night, I work all day, to pay the bills I have to pay
Aint it sad
And still there never seems to be a single penny left for me
Thats too bad
(ABBA – Money money money)

Today I intended to enjoy the ZFS + AVS installation on two SuperMicro JBOD’s. I didn’t have Thumpers in my hands yet, but this supposed to be a training session. Supposed.

On the scene, I learned that JBOD is divided into two parts. Left part (8 disks) connected to controller in slot 3, and right part (8 disks) connected to controller in slot 6. Bad part is that you cannot create arrays between this two parts. So, if you create for example RAID6 on the left side and on the right side, with an idea of striping data across that two arrays – alarm! A bad idea. if one controller dies on you, you loose everything. So what to do? Well, in the best practice of ZFS lowers, I created 8 single disk arrays on every side : )

I know what you’re thinking… You’re thinking this guy’s mad! Well, I’m not. General idea is to create ZFS RAID-10, by combining disk on port1 of left controller with disk on port1 of right controller into mirror, disk on port2 of left controller with disk on port2 of right controller into anthore mirror, and to stripe accross mirrors. This way I’m kinda safe if one controller completly breaks down.

OK, onto the installation. Well, not quite. Solaris 10u7 does not support 3ware controllers, and that’s the exact controller I had to deal with : ( So google says that Solaris Express and OpenSolaris support this particular controller. We’ll see about it next time.

Categories: Storage Tags: , , , ,
%d bloggers like this: