Re: Informix vs. AIX Mirroring
Posted in 1996
John Morton (mortonj@interlog.com) wrote: > Hi there. We're just moving from a RAID5 box onto some SSA disk, so we > have to think about mirroring. Informix recommends Informix mirroring, > and IBM recommends AIX (what a shock!). We are running AIX 4.1.4 and > Informix 7.20 on an 8-way RS6000. > Seems to me that AIX mirroring on a JFS would be easier to manage than > Informix mirroring and raw space, but I'm worried about performance > .. it's a busy oltp application. > Any ideas or opinions? AIX is an excellent platform for Online, especially if your data needs dictate at or near 7x24 availability. RAID is good, but SSA is far better, and as far as mirroring goes, the AIX LVM beats Informix hands down. My testing has shown that implementing multiple copies ( usually a total of 2 is enough ) of critical ( or all ) Logical Volumes, LVs, associated with Informix Online dbspace chunks results in a very even I/O distribution among the Physical Volumes, PVs, that define those LVs. This is true both in small environments where copy 1 is on a single PV and copy 2 is on another single PV, and in larger environments where copy1 is spread out over 2..n PVs and copy2 is spread out over 2..n PVs, where each set of PVs are made up of different drives on separate controllers ( SSA adapters in your case ). This configuration ( simply stated: using the LVM to handle mirroring ) allows Informix to operate in a non-mirrored mode, where the Engine is only aware of its primary chunks and dbspaces. You do not have to define and maintain a separate set of dbspaces/chunks for your mirrors, which is difficult to manage. Informix will also not be aware of a drive failure. The users in the engine continue to produce I/O requests as usual. The eventual replacement of the failed drive and re-building of the mirror can proceed completely transparent to the users and the Engine. Mirroring, as implemented by Informix, is a life-saver when your OS doesn't support Low-Level mirroring or you don't have ( or don't want ) RAID. The only other benefit is the ability of the Engine to choose which side of the mirror to read. Its algorithm for choosing: Divide the data in half, read data from 'half_1' out of the primary dbspace, and read data from 'half_2' out of the mirror dbspace. Not very robust. How does AIX handle mirroring? Through the LVM. You can mirror a JFS ( which is really just another LV ), or you can mirror raw LVs defined for and owned by Informix. The LVM has a full suite of tools you can use to manipulate Logical definitions of data across groups of Physical storage devices. You can custom tailor an I/O subsystem depending on your RDBMS and its required functionality. In some cases, using the LVM to manage your mirrors, can result in a substantial increase in I/O performance, especially with fast drives ( SSA ) on a system that is read-mostly or read intensive. This is due to the OS's very smart disk device control ( the LVM ). During medium to heavy load periods, the LVM is able to spread read requests evenly across multiple copies of an LV. As a read request comes in, the LVM chooses which copy of a mirrored LV to read based on, among others, which controller is LEAST busy, smallest seek times and I/O queue lengths. This is in addition to the Async I/O characteristics, which improve mirrored write performance as well. Swapping out failed drives and rebuilding the mirror is very easy and can be done while your system is up and operational with absolutely no down-time and no Informix Online Shm overhead! One other note on using Informix mirroring: Parallel Data Query does NOT rely on whether or not mirror dbspaces exists. Table fragmentation does not require mirrors at the Informix level. In fact, Managing mirrors and table fragments both with Informix would be nasty. Good Luck! Kevin Brand