Mirrored Server Link (MSL): The MSL is a bidirectional
After a failure has occurred, the MSL is used to synchronize the memory and disk of the failed server. As it is being brought back up, the active server transfers the entire contents of its MS Engine memory image to the formally inactive server. After the contents of memory are transferred (a matter of seconds) normal activity resumes between the two servers.
If any disk activity occurs while the one server is down, the primary server sends all the disk updates to the formerly inactive server in a background mode, without impacting normal activity on the network. After the disks are fully
1.10.1.3 IOEngines and Mirrored Server (MS) Engines
Both the primary and secondary servers implement the operating system in two pieces: an IOEngine, which deals with the server hardware and is not mirrored, and a Mirrored Server (MS) Engine, which relies on the IOEngine for input.
The contents of the MSEngines are identical (mirrored), and both MSEngines have the same internal IPX number. The MSEngines mirror applications, data, and
Any module which communicates directly with hardware, or makes explicit assumptions about the hardware, must reside in the IOEngine. Examples of utilities and NLMs that can be loaded into the IOEngine include LAN drivers, disk drivers, the MSL driver, print servers, and tape backup applications.
The IOEngine and the MSEngine have the following characteristics:
1.The two engines address the same memory space; however, each segment in memory is defined as belonging to either the IOEngine or the MSEngine. Except for rare instances, memory sharing is prohibited.
2.NLMs loaded in the MSEngine are mirrored automatically whenever the SFT III server is mirrored.
3.NLMs loaded in the IOEngine are never mirrored.
4.The primary server′ s IOEngine controls the entire logical server. It converts
all network requests (packets), disk I/O completion interrupts, etc. into SFT III events, which are then submitted to both servers′ MSEngines.
When a client needs to access a resource on the server, a request packet is sent over the network to the primary IOEngine. Clients always send their packets to the primary IOEngine because it advertises that it is the best route to the MSEngine. The primary IOEngine receives the request packet and sends a copy over the MSL to the secondary IOEngine. Both IOEngines send the request to their part of the MSEngine residing on separate machines. When each part of the MSEngine receives the event, it triggers processing (identical in both machines), resulting in identical replies to each IOEngine. Although both parts of the MSEngine reply to their IOEngines, only the primary IOEngine responds to the clients.
The MSEngines in both servers receive the same events and generate the same output. However, the secondary server′s IOEngine discards all reply packets.
Chapter 1. IBM PC Server Technologies 49