Re: High Availability Options

  • From: Frits Hoogland <frits.hoogland@xxxxxxxxx>
  • To: jeremy.schneider@xxxxxxxxxxxxxx
  • Date: Tue, 26 Oct 2010 23:43:12 +0200

I agree with your view on the asmlib/udev matter. I like udev over asmlib, but 
if you are not able to manage udev, asmlib will probably do without much heavy 
linux lifting.

From what I've seen Oracle did not  fork a kernel of their own. They just 
rolled a kernel of their own, just like every distro does. I don't understand 
the hassle around it. Anyone can download the kernel source and roll a kernel 
of their own. Probably the reason lies in in some stuff needed by the database 
machine (OFED/infiniband, the # processors/cpu threads, NUMA), so some tweaked 
stuff. But really, what is the deal?

Frits Hoogland
mailto: frits.hoogland@xxxxxxxxx
cell: +31-6-53569942

On Oct 26, 2010, at 11:30 PM, Jeremy Schneider wrote:

> Yes, both udev and asmlib are integrated into the kernel.  Asmlib is not 
> distributed by redhat in the kernel rpm, so as you have pointed out, it needs 
> to be kept in sync.  This would be the case for any kernel modules installed 
> separately.  I have also occasionally seen network or hba drivers that are 
> installed separately and require separate maintenance with any kernel 
> upgrade.  On a side note, I bet that this will change in the new Oracle 
> kernel - quite likely you won't need the separate step anymore, now that 
> Oracle has officially forked their own kernel. 
> I was involved in the engineering effort at a very large org and we decided 
> to use udev.  (In fact, I was one of the main proponents of this approach.)  
> It has in fact fallen by the wayside since I left, because noone else can 
> figure out how to write those cryptic udev rules.  One of the major problems 
> was that for every new device that came along, we had to figure out new udev 
> rules to detect this device.  (New HBA vendor, new multipath driver, new SSD 
> card, etc.)  As long as I was around to reverse engineer what kinds of kernel 
> rules we needed to write, it was fine.  But noone else could really figure it 
> out.  With Asmlib, there's no new effort for new devices - any block device 
> is just as easy to work with.
> Personally, I love the flexibility and control of udev.  But I really do 
> think it's a bear to learn - you pretty much have to understand basic linux 
> kernel internals to get it...  there are some people out there who can do 
> that, but not everyone can.  I think that (for better or worse) pretty much 
> anyone can use Asmlib.
> -Jeremy
> David Robillard wrote:
>> Hello Jeremy,
>> On Tue, Oct 26, 2010 at 4:32 PM, Jeremy Schneider
>> <jeremy.schneider@xxxxxxxxxxxxxx> wrote:
>>> David Robillard wrote:
>>>> Should you decide to use ASM, I strongly suggest to stay away from ASMLib 
>>>> and use udev instead.
>>> I'm a little curious about the reasoning for this.  I wrote a few blog
>>> posts (long ago) about uncertainty in the state of ASMLib... but these
>>> days I'm not so convinced anymore that it's worth avoiding.
>> Unless things have changed since last summer, I think the main reason
>> to stay away from ASMLib is because it's a kernel module which depends
>> on the exact kernel version the machine was running on when ASMLib was
>> installed. That creates a problem when a kernel upgrade happens and
>> you reboot the machine. If you forgot to update ASMLib, then it won't
>> load because the kernel version changed. What you end up with is no
>> ASM disks :(
>> That's not a problem with udev(8) because it's independent of the
>> kernel version. Which means you can upgrade your kernel, udev will
>> still do it's job and you won't have any ASM disk problem.
>> One other thing I like with udev is that it's part of the official
>> RedHat (or OEL) release. So when a bug fix/enhancement happens to
>> udev, you benefit from it from the standard OS maintenance procedure.
>> With ASMLib, you have to keep an eye on the Oracle website. IMHO, it's
>> easier to maintain software when it's part of the OS.
>> Of course if you use ASMLib and have clear standard operating
>> practices and clear documentation that says you should update ASMLib
>> each time you upgrade a kernel, then I guess it's fine. But most
>> companies I've seen don't have that kind of rigid update procedures.
>> More often, the person in charge of ASM is not the same as the one in
>> charge of keeping the OS up to date. That situation can lead to
>> problems with special kernel modules like ASMLib.
>>> UDEV is kinda nice if you understand it... but the documentation is poor and
>>> frankly I've met precious few who do understand it.  I tend to tell most
>>> people now to just use ASMLib unless they already know UDEV.
>> Well, ok, udev's documentation may not be very easy to grasp at first.
>> But it's not that difficult either. And once you have it up and
>> running, maintenance is easier then ASMLib.
>> I've always wanted to blog about how to setup udev so that people have
>> a clear document how to set it up. But until I can find the time and
>> if you're curious, Freek D'Hooge and I had a long thread on this list
>> about the configuration of udev. You can find the thread archive here:
>>> I'm skeptical that it's worth the time required to learn it.
>> That depends. A day or two learning udev might look like long. But
>> they're nothing compared to the time and stress required to debug a
>> node that comes up with no ASM disks because of a kernel version
>> mismatch with ASMLib. You also have to calculate the time required to
>> check for new ASMLib versions on Oracle website, download and install
>> it compared to a standard OS upgrade with yum(8) when you use udev.
>> But, as always, YMMV.
>> Let me know if that answers your question?
>> Cheers,
>> David
>> --
> -- 
> +1 312-725-9249
> Jeremy Schneider
> Chicago

Other related posts: