Patent Publication Number: US-8527983-B2

Title: Host bus adaptor driver and operating system installation method

Description:
BACKGROUND OF THE INVENTION 
     This invention relates to a driver for host bus adaptors connected to both a PCI bus and an I/O device unit of a computer system. 
     The I/O device unit such as the disk array device sold on the market in recent years realizes a high speed, a large capacity and a high reliability by combining a plurality of unit I/O devices. 
     In addition, in order to secure the redundancy between the system device and the I/O device unit, a plurality of host bus adaptors are mounted on the system device and connected with the I/O device unit through a plurality of paths, thereby securing a high reliability and a high speed of the interface as well as the redundancy. 
     The system configuration described above is very useful in that the system operation can be continued without suspension even in the case where the hardware develops a fault during the normal system operation. 
     At the time of installing an operating system (OS) in the system that has secured the redundancy, however, the user is required to cancel the redundant path connection and connect a single path and a single disk unit before carrying out the installation job. This is by reason of the fact that the installer for installing the operating system is not adapted for the system configuration having the redundant path connection, and therefore, at the time of installing the operating system, the order of disk recognition may be changed due to a fault, with the possible result that the data may be overwritten erroneously on other than a target disk unit. 
     In order to avoid this problem, the user is required to guarantee the connection of the single path and the single disk unit between the system device unit and the I/O device unit by changing the system configuration definition and inserting/removing the cable, before carrying out the job of installing the operating system. 
     The change of the system configuration definition and the cable insertion/removal requires the recheck of the connection path state after installation of the operating system, resulting in the consumption of a great amount of time. 
     JP-A-2005-251188 is available as a laid-open document related to this invention. 
     SUMMARY OF THE INVENTION 
     The object of this invention is to provide a host bus adaptor driver and an operating system installation method which guarantee the connection of a single path and a single disk unit to the destination of installation at the time of installing the operating system in an I/O device unit having a redundant path or a plurality of disk units, and eliminate the need of the change of the system configuration definition and the cable insertion/removal job by the user. 
     According to this invention, there is provided a host bus adaptor driver for a computer system having an installer for installing an operating system in an I/O device unit having a plurality of disk units, wherein a system device and the I/O device unit are connected to each other through a plurality of host bus adaptors included in the system device unit, and wherein each host bus adaptor includes the OS start information for registering the connection information to start the operating system, the host bus adaptor driver comprising a means for reading the OS start information held by each host bus adaptor, a means for determining the host bus adaptor and the connection path for installing the operating system based on the OS start information thus read, and a means for permitting the installer to use only the host bus adaptor and the connection path thus determined. 
     According to this invention, the operating system installation job can be carried out while guaranteeing the destination of installation of the operating system without the need of the job of changing the system configuration definition and the physical cable insertion/removal. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a diagram showing a block configuration of the whole system according to this invention. 
         FIG. 2  is a diagram showing the OS start information in a host bus adaptor. 
         FIG. 3  is a diagram showing a disk recognition table in a system memory. 
         FIG. 4  shows the processing flow of the OS start information setting process. 
         FIG. 5  shows the flow of the process for the system as a whole. 
         FIG. 6  shows the flow of the process for the system as a whole (continued from  FIG. 6 ). 
     
    
    
     DESCRIPTION OF THE EMBODIMENTS 
     Next, this invention is explained with reference to the drawings. 
       FIG. 1  is a diagram showing the block configuration of the whole system including the host bus adaptor drivers (HBA driver) embodying the invention. A display array device is shown as an example of the I/O device unit connected. 
     An install medium  10  is configured of an installer  14  including a HBA driver  12 , an operating system  11  and the disk closing information  13 , wherein the data is transferred to the system device  20  through an external medium such as a CD-ROM or a network. 
     The system device  20  is configured of a processor  21 , a system memory  22  and a plurality of host bus adaptors (HBA)  30  to  31 . 
     The disk array device  50  is configured of a plurality of disk units  51  to  53 , which are connected by one or both of the connection ports  54 ,  55 . Each connection port has a unique world wide name. 
     The system device  20  and the disk array device  50  are connected to the connection ports  54 ,  55  using connection cables  40 ,  41  from the host bus adaptors  30 ,  31 . 
     The processor  21  can access the disk units  51  to  53  through the host bus adaptors  30 ,  31 , the connection cables  40 ,  41  and the connection ports  54 ,  55 . 
     The connection cables  40 ,  41  are constituted of fiber channel cables or Ethernet (registered trademark) cable. 
     The host bus adaptors  30 ,  31  include nonvolatile memories  32 ,  33  therein having OS start information  34 ,  35 , respectively, for designating a connection path indicating a particular connection port and a particular disk unit from which the operating system is started. 
     In a system having a redundant configuration, a plurality of connection paths are set for the OS start information  34 ,  35  so that the OS can be started from another connection path in the case where a fault develops in one connection path. 
     The disk recognition table  23  in the system memory  22  has registered therein only one connection path information indicating which host bus adaptor, which connection port and which disk unit are used to install the operating system in the disk unit. 
       FIG. 2  shows the structure of the OS start information  34 ,  35  in the nonvolatile memories  32 ,  33 . 
     The OS start information  34 ,  35  is configured of a world wide name/logical unit number (hereinafter referred to as the WWN/LU#) storage table  63  for storing the world wide name of the connection port and the logical unit number of the disk unit, a table entry number  64  indicating the storage number in the WWN/LU# storage table  63 , a WWN/LU# validity flag  62  for controlling the validation/invalidation of the WWN/LU# storage table  63 , and an OS start validity flag  61  for indicating that the operating system is started from a particular host adaptor. 
       FIG. 3  shows the structure of the disk recognition table  23  in the system memory  22 . 
     The disk recognition table  23  has the areas for storing the PCI bus numbers, the device numbers, the function numbers (PCI number) of the host adaptors  30 ,  31 , the table entry numbers  64  for the OS start information  34 ,  35 , the world wide names of the connection ports  54 ,  55  of the disk array device  50  and the logical numbers of the disk units. 
       FIG. 4  shows the processing flow for the preliminary setting job to execute the process of the HBA driver according to the invention. 
     This processing flow is for setting the OS start information to start the installed operating system  56  in the case where the operating system  11  stored in the install medium  10  is installed in the disk unit  51  in the disk array device  50 . 
     Before installation/duplication of the operating system, the user sets in valid state the OS start validity flag  61  of the OS start information  34  stored in the nonvolatile memory  32  of the host bus adaptor  30  on the route of connection to the disk unit  51  (S 101 ). 
     Also, the user sets the WWN/LU# validity flag  62  of the OS start information  34  in valid state (S 102 ). 
     Further, the user set the world wide name of the connection port  54  and the logical unit number of the disk unit  51  in the WWN/LU# storage table  63  of the OS start information  34  (S 103 ). 
     Furthermore, the user repeats the setting process (S 103 ) until all the redundant connection paths for starting the operating system  56  from the host bus adaptor  30  are set in the WWN/LU# storage table  63  (S 104 ). 
     In the case where a plurality of the connection paths connected to the host bus adaptor  30  are additionally registered, the world wide names of other connection ports and the logical unit numbers of the disk units are registered in the WWN/LU# storage table  63  (S 103  to S 104 ). 
     After complete setting of the connection paths associated with one host bus adaptor, the user repeats the steps S 101  to S 104  in the case where the setting of the redundant connection paths from another host bus adaptor to the disk unit  51  is required (S 105 ). 
     For example, the disk unit  51  is accessible using the host bus adaptor  31 , the connection path  41  and the connection port  55 , so that the OS start validity flag  61  is set in steps S 101  to S 104  in that order for the OS start information  35  stored in the nonvolatile memory  33  of the host bus adaptor  31 . 
       FIGS. 5 and 6  are diagrams showing the processing flow of the whole system including the process of the HBA driver according to this invention. 
     The installer  14  is started at the request of the user, transferred through an external medium such as CD/DVD and the network connection, and processed in the processor  21 . The installer  14  and the HBA driver  12  and the disk closing information included in the installer  14  are stored in the system memory  22  in the system device  20  (S 201 ). 
     The installer  14  of the install medium  10  stored in the system memory  22  is designated as an installer  24 , the HBA driver  12  stored in the system memory  22  as a HBA driver  26 , and the disk closing information  13  stored in the system memory  22  as disk closing information  25 . 
     The installer  24  stored in the system memory  22  is started, and in order to issue a SCSI (small computer system interface) command to the disk array device  50 , starts the HBA driver  26  (S 202 ). 
     The installer  24  stored in the system memory  22  accesses the disk array device  50  connected to the host bus adaptors  30 ,  31  using the HBA driver  26 . 
     The disk closing information  25  is defined in valid state by the installer  24 , and the HBA driver  26  checks to see whether the disk closing information  25  is valid or invalid during the initialization of the driver (S 203 ). 
     In the case where the disk closing information indicates the invalid state, all the disk units connected to the host bus adaptors  30 ,  31  are made accessible from the installer  24  by the HBA driver  26 . 
     In the case where the disk closing information  25  indicates the valid state, on the other hand, the HBA adaptor  25  searches the disk units associated with all the host adaptors in the system device  20  in order to determine a single connection port and a single disk unit for installing the operating system. 
     A case is shown below in which the HBA driver  26  has searched the disk units associated with the host bus adaptors  30 ,  31  in that order. 
     The HBA driver  26  reads the OS start information  34  stored in the nonvolatile memory  32  of the host bus adaptor  30  and determines whether the OS start validity flag  61  indicates the valid state or not (S 204 ). 
     In the case where the OS start validity flag  61  is valid, the HBA driver  26  determines whether the WWN/LU# validity flag  62  indicates the valid state or not (S 205 ). 
     In the case where the WWN/LU# validity flag  62  is valid, the HBA driver  26  accesses the disk unit connected to the connection port  54  using the connection table  40  connected to the host bus adaptor  30  (S 206 ). 
     The HBA driver  26  checks to see whether the connection path information registered in the WWN/LU# storage table  63  of the OS start information  34  contains any disk unit coinciding with the world wide name of the connection port  54  and the logical unit number of the disk unit at the time of access to the particular disk unit (S 207 ). 
     In the case where a coincident disk unit is so contained, the HBA driver  26  checks to see whether any connection path information is registered in the disk recognition table  23  in the system memory  22  (S 208 ). 
     In the case where no connection path information is registered in the disk recognition table  23 , the HBA driver  26  stores, in the disk recognition table  23 , the PCI bus number, the device number and the function number of the host bus adaptor  30 , the world wide name of the connection port  54 , the logical unit number of the disk unit, and further, the table entry number  64  in the WWN/LU# storage table of the OS start information  34  having a coincident WWN/LU# (S 210 ). 
     In the case where any connection path information is registered in the disk recognition table  23 , the HBA driver  26  checks to see whether the PCI bus number, the device number and the function number (PCI number) of the host bus adaptor  23  are smaller than the PCI bus number, the device number and the function number, respectively, of the connection path information stored in the disk recognition table  23  (S 209 ), and in the case where they are so small, the HBA driver  26  writes all the information shown in  FIG. 3  in the disk recognition table  23  (S 210 ). 
     In the case where the PCI number of the host bus adaptor  30  is coincident with the PCI bus number, the device number and the function number stored in the disk recognition table  23 , on the other hand, the HBA driver  26  checks to see whether the table entry number  64  having a coincident WWN/LU# of the OS start information of the host bus adaptor  30  is smaller than the table entry number of the OS start information stored in the disk recognition table  23  (S 209 ), and if smaller, writes all the information shown in  FIG. 3  in the disk recognition table  23  (S 210 ). 
     This process (S 206  to S 210 ) is executed for all the disk units accessible from the host bus adaptor  30 , while repeating the check with the OS start information (S 211 ). 
     Further, the HBA driver  26 , after completely searching all the disk units associated with the host bus adaptor  30 , searches all the disk units associated with the host bus adaptor  31  (S 212 ). 
     The HBA driver  26 , by repeating these steps (S 204  to S 212 ), checks the OS start information for all the host bus adaptors mounted in the system device  20 . 
     As a result, the connection path information, for which the disk unit  51  of the disk array device is accessible and which has the smallest table entry number  64  of the OS start information  60  in the host bus adaptor of the system device  20  having the smallest PCI number, device number and function number, is registered in the disk recognition table  23 . 
     After complete disk search (S 213 ), the HBA driver  26  receives the SCSI command start from the installer  24  (S 214 ). 
     The HBA driver  26  checks to see whether the disk closing information  25  is defined by the installer  24  that has started the SCSI command (S 215 ). 
     In the case where the disk closing information  25  indicates the invalid state, the HBA driver  26  gives the normal response to all the SCSI command starts from the installer (S 217 ). 
     In the case where the disk closing information  25  indicates the valid state, on the other hand, the HBA driver  26  checks to see whether the host adaptor having a coincident PCI bus number, device number and function number stored in the disk recognition table  23  and the WWN/LU# of the connection port of the disk array device connected to the particular adaptor are coincident or not (S 216 ). 
     The HBA driver  26  gives a normal response to the SCSI command start for the connection path coincident with the connection path information registered in the disk recognition table  23  (S 217 ). 
     The HBA driver  26  gives a disk-unconnected response to the installer  22  with regard to the SCSI command start for the disk unit not coincident with the connection path information registered in the disk recognition table  23  (S 218 ). 
     As the result of this process, only one connection port and only one disk unit that can be accessed and updated by the installer  24  are determined, so that the operating system can be installed for a single path and a single disk unit (S 220 ). 
     After complete installation of the operating system in the disk unit, the process of the installer  24  is terminated (S 221 ). 
     In the process described above, the operating system  11  stored in the install medium and installed in the disk unit is designated as an operating system  56 , and the HBA driver installed in the disk unit as a HBA driver  58 . 
     The operating system  56  installed in the disk unit may include a HBA driver. 
     After complete installation, the operating system  56  in the disk unit is started from the system device  20  (S 222 ). 
     Nevertheless, the disk closing information is not contained in the operating system  56 , and the HBA driver  58  judges that the disk closing information is invalid (S 223 ). The processing flow, therefore, is similar to the one for the processing flow shown in  FIGS. 5 and 6  in which the disk closing information is invalid (S 203 , S 215 ). Thus, all the disk units accessible from the system device  20  can be used from the operating system (S 224 ). 
     The HBA driver according to this invention may be installed in the host bus adaptor for controlling any protocol. For example, the I/O device unit may be connected by means of a fiber channel or Ethernet (registered trademark) cable. 
     By using the HBA driver for installation and duplication of the operating system, the operating system installation job can be performed without the system configuration definition or the path unification by the physical cable insertion/removal on the part of the user. 
     It should be further understood by those skilled in the art that although the foregoing description has been made on embodiments of the invention, the invention is not limited thereto and various changes and modifications may be made without departing from the spirit of the invention and the scope of the appended claims.