Sharing SAN disk between two Oracle Linux Servers (5.9) without clustering
Linux - ServerThis forum is for the discussion of Linux Software used in a server related context.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Sharing SAN disk between two Oracle Linux Servers (5.9) without clustering
Hi,
I have been working with Linux as an Oracle DBA but not as a Linux Administrator. So, I am very comfortable using it but a newbie to the Admin side.
I have the following architecture:
All servers running Oracle Linux 5.9
Server 1 - Oracle Database with RAC one-node (active node - the DB is always active on this server)
Server 2 - Oracle Database with RAC one-node (passive node - if server 1 above fails, the DB is relocated to this server)
Server 3 - Oracle Applications (E-Business Suite).
Server 1 and 2 are clustered using Oracle Grid Infrastructure. They have 3 SAN disks shared between them for the DB.
Since server 2 is a passive node and sits idle for 99% of the time, I would like to use it as a secondary node for Oracle Applications (server 3 being the primary). Both application servers (2 and 3) will be active (and load balanced). To do that in an optimal manner, I need to share a SAN disk between servers 2 and 3 without clustering these servers.
One option I considered was to present the disk to server 3 and share it with server 2. The problem with that is if server 3 goes down, the disk becomes unavailable to server 2 and so the application becomes unavailable (which kind of defeats the purpose of having a second applications node).
So, is there a way to shared the disk between servers 2 and 3 without any clustering?
Before answering, I have questions about your infrastructure decisions:
Can you - alternatively - configure this as a three-node Oracle RAC cluster, and a three-node Oracle Applications cluster?
If that's not possible, the next best thing (to me) is doing a two-node Oracle RAC cluster, and procuring another server so that you can set up an Oracle Applications environment with a primary and secondary. Can you get a new server?
If neither of those is possible, it gets messier (as you have discovered).
What do you mean by sharing the disk "without any clustering"? Does a clustered filesystem qualify as "clustering"? If not, OCFS2 is an option. (It will do the heartbeating, fencing, and intelligent filesystem locking for you.)
Thank you for your response! Please see my answers below:
Quote:
Can you - alternatively - configure this as a three-node Oracle RAC cluster, and a three-node Oracle Applications cluster?
I'm guessing you mean add all 3 servers to one cluster and so all disks are accessible on all three servers. Two reasons why I don't want to go that route. 1. Oracle recommended not adding any non-DB servers to a RAC cluster. 2. In that case, I'm guessing I would be using OCFS2 (or something similar) for the file system for the application disks. I played with OCFS2 a little and it seems like it won't accept a hyphen (-) in the cluster name. My DB cluster has a hyphen in it. To change that, I would need to re-implement the RAC system, which is no easy task, not to mention downtime.
I have a question here. Oracle support said that it is impossible for a server to be part of more than one cluster. Is this correct? Or is it possible but just not a good idea?
Quote:
If that's not possible, the next best thing (to me) is doing a two-node Oracle RAC cluster, and procuring another server so that you can set up an Oracle Applications environment with a primary and secondary. Can you get a new server?
I can't do this because the main reason to implement the second application server is to utilize the idle DB server. We do not really need a second application server (maybe in the future) but since that second DB server is sitting idle, we want to utilize it for application load balancing and redundancy.
Quote:
What do you mean by sharing the disk "without any clustering"? Does a clustered filesystem qualify as "clustering"? If not, OCFS2 is an option. (It will do the heartbeating, fencing, and intelligent filesystem locking for you.)
I actually tried this in a TEST environment (configured OCFS2 on servers 2 and 3) and it seemed to work okay. But Oracle support said its a big no-no.
-- So, is there a difference between using a clustered file system (like OCFS2) and making the 2 servers part of a cluster? My understanding was that to configure OCFS2, you need to create a cluster.
-- I do not need heartbeat or fencing or other cluster stuff. I just need the 2 servers to be able to see and read/write simultaneously to the disk. For this, would clustering be a requirement?
One thing we should do is get on the same page with lingo: There may be a concept of a "cluster" within both the context of Oracle RAC, and (separately) within the context of Oracle Applications. When you use that terminology, my guess is you're referring to the presence of (and configuration of) their Clusterware.
OCFS2 is actually able to operate of its own accord, with no Oracle applications or add-ons. (Though, as I understand it, they only want Oracle customers using it..) Within the context of OCFS2, a "cluster" would refer to nodes that share the same clustered filesystem. They'll perform the needed heartbeating and fencing within the confines of that OCFS2 "cluster".
Make sense?
Getting back to your original question - I understand your dilemma. You have a low usage server, and you want to configure it to act as a standby/secondary for your Oracle Applications server. But I have to maintain this is messy. (And I confess I am not sure why Oracle support told you configuring your servers to use OCFS2 would be a "big no-no".)
If you cannot reconfigure all three servers as part of the same Oracle RAC cluster + the same Oracle Applications cluster, I understand. You don't want to mix Oracle applications together.
But if that's the reasoning, the same argument would prevent you from adding one of your Oracle RAC nodes as an Oracle Applications secondary. You'll be mixing Oracle applications together.
I am happy to discuss this further, but without procuring another server (e.g. even an inexpensive VM, perhaps), I don't see a way to do this cleanly. With four servers you'd have: two Oracle RAC nodes, two Oracle Applications nodes. Simple and clean.
One thing we should do is get on the same page with lingo: There may be a concept of a "cluster" within both the context of Oracle RAC, and (separately) within the context of Oracle Applications. When you use that terminology, my guess is you're referring to the presence of (and configuration of) their Clusterware.
Oracle RAC does use Oracle's clusterware (now called Grid Infrastructure).
Oracle Applications does not. It will just be 2 independent servers sharing the workload and provide redundancy, if one fails. In fact, they do not need to necessarily share the disk where the software is being installed. It can be independently installed on each server. However, it would be a better architecture if it is shared since it cuts the maintenance (patching, upgrading, troubleshooting etc.) in half.
When I say "cluster", I think (and I may be wrong) 2 servers configured as part of a group (2 or more) of servers which continuously monitor each other and reboot any hung servers, as required.
When I say "share the disk without clustering", I mean I don't want the 2 servers to be part of a cluster. I don't need the first server to know (or care) if the second server is up, down, hung. As long as it has access to the disk and it can read/write to it in a consistent manner, it is happy. No need for heartbeat or fencing or the first server rebooting the second server etc.
Also, clustering makes me a bt nervous so if I can share the disk without it, that would be an ideal solution for me.
Is this possible without clubbing the 2 servers in a cluster?
Quote:
OCFS2 is actually able to operate of its own accord, with no Oracle applications or add-ons. (Though, as I understand it, they only want Oracle customers using it..) Within the context of OCFS2, a "cluster" would refer to nodes that share the same clustered filesystem. They'll perform the needed heartbeating and fencing within the confines of that OCFS2 "cluster".
Getting back to your original question - I understand your dilemma. You have a low usage server, and you want to configure it to act as a standby/secondary for your Oracle Applications server. But I have to maintain this is messy. (And I confess I am not sure why Oracle support told you configuring your servers to use OCFS2 would be a "big no-no".)
Yes, that's what I understood about OCFS2 too (I believe it is available to anyone, not just Oracle customers). So, I thought I can use Oracle Clusterware for the DB (between servers 1 and 2) and use OCFS2 for sharing the disk between servers 2 and 3. That is what Oracle Support said "no-no" to - having server 2 as a member of 2 clusters. In fact, they said it is impossible to make a server part of more than one cluster, which I doubt since I have done it in practice in a TEST system. It may not be a good idea but it is definitely possible.
Quote:
If you cannot reconfigure all three servers as part of the same Oracle RAC cluster + the same Oracle Applications cluster, I understand. You don't want to mix Oracle applications together.
But if that's the reasoning, the same argument would prevent you from adding one of your Oracle RAC nodes as an Oracle Applications secondary. You'll be mixing Oracle applications together.
I am happy to discuss this further, but without procuring another server (e.g. even an inexpensive VM, perhaps), I don't see a way to do this cleanly. With four servers you'd have: two Oracle RAC nodes, two Oracle Applications nodes. Simple and clean.
The reason I cannot configure all 3 servers as part of the same cluster is:
1. The hyphen (-) I have used in the Oracle RAC clustername. OCFS2 does not allows hyphens. And to change the name of the Oracle RAC cluster, I will need to re-implement the whole thing, which is not a straight forward task.
Also to clarify, in my previous update, I had mentioned that Oracle had advised against it. I think Oracle was trying to err on the side of caution when they advised against it and said that it will only introduce more complications with fencing and rebooting servers. I don't think it would be an issue though.
There is no separate cluster requirement for Oracle Applications. As I detailed above, all it needs is a shared file system.
Hope this clears things a bit and I have not managed to totally confuse you
When I say "share the disk without clustering", I mean I don't want the 2 servers to be part of a cluster. I don't need the first server to know (or care) if the second server is up, down, hung. As long as it has access to the disk and it can read/write to it in a consistent manner, it is happy. No need for heartbeat or fencing or the first server rebooting the second server etc.
Also, clustering makes me a bt nervous so if I can share the disk without it, that would be an ideal solution for me.
Is this possible without clubbing the 2 servers in a cluster?
I think we're more or less on the same page with terminology. Now we're getting closer to the meat of the problem:
OCFS2 is a clustered filesystem. It absolutely needs to know whether its peers are up, down, or otherwise misbehaving. It handles intelligent file locking (and preserves filesystem integrity) by communicating, both over IP and on the clustered filesystem itself. If it had no knowledge of its peers, you'd have a destroyed filesystem.
Given your requirements, and the variables in your equation, I have no elegant answer. You could kludge together a "clever" solution using GlusterFS (which I have done under different circumstances), but I could write a mini book on getting that configured, deployed, and tested correctly for your precise scenario. In other words, beyond the scope of a forum.
Considering the above, the following questions / thoughts come to mind:
1. If I go for OCFS2 between server 2 and 3, is it a really bad idea to have server 2 part of 2 clusters (one with server 1 for Oracle RAC and the second with server 3 for the shared file system)?
2. If I mount the disk on one server (say server 3) and then share it with server 2 using SAMBA, any issues with that? I know it is not what I would prefer (if server 3 goes down, server 2 won't have access to the disk either) but just trying to determine all my options to see what would be the best compromise.
3. What about NFS? Never worked with it so I have no idea how it works. Is it as simple as installing Linux on a new server and configuring it to act as an NFS server? Or does it need any specialized hardware / proprietary software etc.?
1. Oracle seems to think so. I suggest you don't end up in a configuration that they refuse to support. On the other hand, if you are comfortable with a potentially unsupported configuration on production systems, this may be an option. (If you proceed down this path, make sure you communicate the consequences to your stakeholders. Failure to do so could lead to an employment-terminating event.)
2. I have never had a legitimate business case for Samba. I've never used it, and cannot provide advice on it.
3. With NFS, you could configure server 3 as both an NFS server and client (i.e. mounting its exported filesystem to itself). And you could configure server 2 as an NFS client (i.e. mounting server 2's exported filesystem). What this would buy you is intelligent file locking. What this doesn't buy you is a high-availability service. If server 3 goes down, the filesystem goes down.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.