This content has been marked as final. Show 9 replies
I am running Oracle Linux 6.3.
I have the ASM lib and support packages installed. Services are started successfully.
However , I was informed that I needed this package as well
Does Oracle 6.3 require this package?
Running "service oracleasm status" returns YES for all checks.
However creating disks returns
/usr/sbin/oracleasm createdisk DATADISK1 /dev/emcpowerc1
Writing disk header: done
Instantiating disk: failed
Clearing disk header: done
$ cat /var/log/oracleasm
Why does Oracle maintain ASMLib under Linux if it was not necessary? Commercial Unix distributions do not use ASMLib, so what's the point?
No doubt, every kernel driver increases the risk of failure and complexity. Unfortunately, the technical documentation for ASMLib is very vague to explain its true benefit or reason. However, ASMLib provides an alternative I/O path, bypassing the Linux kernel for good reasons.
It's part of the Linux kernel philosophy that the kernel should handle all I/O to improve performance. This was reasonable for the PC platform many years ago, for which intelligent I/O storage systems were not available or simply too expensive. The Linux kernel actually supports 4 different I/O schedulers (/usr/src/linux/Documentation/block/switching-sched.txt).
Technologies like Oracle ASM use their own intelligent I/O scheduling. Any additional I/O optimizing is a waste of resources and slows down. Unlike commercial Unix systems however, the Linux kernel does not come with raw devices to support unbuffered disk I/O. Red Hat Enterprise Linux 4 had raw disk support, but it was depreciated again under RHEL 5, suggesting to use IO_DIRECT instead. I think this might justify the reason for Oracle ASMLib.
there are 2 main reasons ASMLIB exists:
a.) Device user rights and in conjunction with that device security. While the user rights can easily be set with UDEV (so no need to use it for that), ASMLIB also provides an identification on OS lvl on block devices used for ASM, that not an administrator needs to know anything specific to find out which devices belong to ASM (and erroneously partition them for example).
b.) Open File handle. When you don't use ASMLIB every database process will have a file handle open for each ASM disk. If you use ASMLIB then only ASMLIB has the file handle for the ASM disks (and hence safe resources). However this advantage will only come into play if you use multiple databases and lots of disks, that you can see why this saves ressources.
And there is a commercial UNIX distribution with has ASMLIB already included in the kernel: Oracle Linux with the UEK (unbrakable enterprise linux kernel).
I remember from old discussions that Linux is not Unix. UNIX was developed by AT&T. Linux was a completely independent project by Linus Torvalds and he did not even have POSIX specs when it was coded. I tried to emphasize this by adding the word commercial, meaning that one has to pay for a license for using it, e.g. AIX, HP-UX. Oracle Linux is free and can be used for free even for running your business. Hence I don't think it is correct to call Oracle Linux a commercial Unix distribution.
The argument that Oracle Linxu ASMLib is not necessary and does more harm than good appears quite frequently in this forum.
So far I haven't been able to find a technically reasonable answer in favor of Oracle ASMLib other than the usual suspect, such as "it's more convenient, deals with device permissions, ASM device search string, and provides an alternative optimized I/O path". It's all negotiable unless more technical facts are supplied.
Personally I like Oracle ASMLib, but I can understand that the level of convenience versus availability is questionable. Someone may not be able to use the Oracle UEK kernel and need the RHCK or RHEL kernel, and hence cannot use ASMLib, at least not since RHEL 6. I remember one post where someone, perhaps finally driven by arguments to remove ASMLib, started to noticed a quite substantial increase in CPU time after the removal of ASMLib.
ASM can apparently work with disks and partitions. It is typical for ASMLib to configure disk partitions. The lack of raw disk support under Linux and having to rely on the underlying product to use IO_DIRECT to bypass kernel buffering to me was a compelling argument in favor of ASMLib. Please let me know if this isn't the case, so I can correct my previous post. Thanks.
When using ASM you have the option to use ASMlib or not. It was created when some operating systems lacked certain capabilities, but that was back in the early 2000's. The last ASMlib code update was in 2008, from what I can see. According to Oracle it is a "reference implementation" to be followed by 3rd party vendors, much like the reference implementation of libODM and the subsequent 3rd party implementations by Veritas and PolyServe.
Personally, I have never used ASMlib and when I take ownership of a server that uses ASMlib I remove it. Not because it's bad (it is not bad), but because we have no reason to use it.
Some say ASMlib is needed for persistent device naming, to ensure names don't change over reboot. Persistent device naming of local storage is managed by udev rules, and persistent naming of external storage is managed by mpio (i.e., multipath.conf) as shown in the Oracle documentation.
Some say ASMlib is needed to set ownership and permissions, otherwise these attributes are lost on reboot. These attributes are set by udev rules as shown in the Oracle documentation. Note, in the older Linux 4.x operating system we set ownership and permissions through file /etc/rc.local.
Having said all of that it's just a matter of preference. Customers who already have ASMlib as part of their standard Oracle deployment can continue to deploy ASMlib to new systems. Customers who are not using ASMlib can start using it or not.
When using ASM you have the option to use ASMlib or not. It was created when some operating systems lacked certain capabilities, but that was back in the early 2000's. The last ASMlib code update was in 2008, from what I can see. According to Oracle it is a "reference implementation" to be followed by 3rd party vendors, much like the reference implementation of libODM and the subsequent 3rd party implementations by Veritas and PolyServe.Can you supply some documentation or technical research to reenforce what you are writing?
Personally, I have never used ASMlib and when I take ownership of a server that uses ASMlib I remove it. Not because it's bad (it is not bad), but because we have no reason to use it.I was not sure if this is the right conclusion.
According to what I can gather, ASMLib provides an alternative method to "o_direct" on block devices to avoid kernel buffering (I/O scheduler) under Linux. According to the developers, ASMLib provides an optimized direct I/O path for ASM and uses far less handles than the normal direct I/O path in the kernel. This has been discussed several times already. For instance:
Release plans for oracleasm and RHEL 6?