The host adapter connects the computers system bus to the external pathway where various devices are attached. In many cases, this is another bus technology, one that specializes in communicating with specific device types and which requires unique commands to perform I/O operations with the server. Host adapters consist of two main components . First is a hardware component, generally in the form of electronic cards that attach to the server motherboard or backplane (more about bus connectivity in Chapter 7). Just as important is the related software component that allows the specific devices to drive the underlying hardware bus protocols, the operating system, and, ultimately, the application.
The combined components, as shown in Figure 6-4, consist of microcode that functions within the electronic card circuitry , microcode of the basic input/output (BIOS) that exists on the computers motherboard, and high-level software that executes on the computer. The high-level software (commonly called drivers) works with the hardware microcode to provide the device command set (native I/O calls), services for the device, the operating system interface, and error recovery and checking routines. All of these functions communicate with the operating system through the BIOS microcode embedded in the computers motherboard. Any device utility software running on the computer will use the same native software.
Host adapters are provided as bundled solutions from storage vendors, or piecemeal through a host of hardware vendors . This requires the configuration activities to be both challenging and creative. Regardless of how the solution is acquired , the configurations are pretty standard, albeit limited. First, there are only so many host adapters you can attach to a server. This is a function of the server itself and, more specifically , the bus technology within the server. Second is the effect of multiple software drivers that can operate within a single server systemwhich means that having multiple vendor software drivers can become risky, given the different implementation that occurs within the division between the hardware (for example, the microcode) and the high-level software driver executing within the server.
This requires a homogeneous approach to implementationin other words, a common vendor solution to host adapters running on a single server. In addition, the number of adapters available for an individual servermore specifically, the servers busdefines the high end of paths that can be physically configured for directly connected I/O peripherals. This presents a theoretical limiting factor in storage sizes given the type of workload.
The number of paths, as depicted by Figure 6-5, shows the limitations of single path configurations when dealing with even medium- sized databases. Other components within the storage hierarchy will also be affected.