Abstract:
To reduce the trouble required for creating and editing configuration data composed of pairs of an element names and element values. The system includes a file storage unit  120  storing a configuration data file describing pairs of element names and element values concerning respective predetermined elements; a reception unit  110  receiving a creation instruction of configuration data designating a predetermined configuration data file stored in the file storage unit  120  and an operation method; an operation unit  130  reading out the configuration data file designated by the creation instruction from the file storage unit  120,  conducting an operation with respect to the element value for each element of the configuration data file in accordance with the operation method designated by the creation instruction, and creating a new configuration data file in which, for each respective elements, a pair of an element name which is identical to the one in the original configuration data file and an element value resulted from an operation is described; and an output unit  150  outputting the new configuration data created by the operation unit  130.

Description:
FIELD OF THE INVENTION 
       [0001]    The present invention relates to a system for processing data, and more particularly relates to a system for creating and editing data comprised of pairs of names and values of predetermined elements and a system and a method for creating a logical partition using the data. 
       BACKGROUND OF THE INVENTION 
       [0002]    In recent years, backed by the improvement of hardware performance of computers, one computer is utilized by dividing it, into a plurality of logical partitions (for example, see Non-Patent Documents 1, 2). As a specific form, a Central Processing Unit (CPU), a memory, a storage medium such as a magnetic disk, a device such as a network interface or the like may be partitioned. 
         [0003]    Such resources partitioned into a plurality of logical partitions can be used so that each logical partition can function as an individual computer. That is, in one computer, a plurality of Operating Systems (OS) and applications running on the OSs can be used in the respective logical partitions. Further, a failure occurring in an individual logical partition does not affect other logical partitions. 
         [0004]    In general, a logical partition is defined by a data file (hereinafter called a configuration data file) comprised of pairs of names (attribute names) and values (attribute values) concerning each attributes assigned to the logical partition. In accordance with this configuration data file, a service processor provided in the computer divides and controls hardware resources such as a CPU, a memory and various devices. 
         [0005]    [Non-Patent Document 1] 
         [0006]    “AIX—logical partition (LPAR) and AIX 5L V5.2” written and edited by IBM Japan, Ltd. published by ASCII CORPORATION, Nov. 25, 2003 
         [0007]    [Non-Patent Document 2] 
         [0008]    “Hardware management console for pSeries, installation and operation guide” [online] IBM Japan, Ltd., (searched on Aug. 7, 2007), the Internet&lt;URL: http://publibfi.boulder.ibm.com/epubs/pdf/a8868437.pdf&gt; 
       SUMMARY OF THE INVENTION 
       [0009]    A configuration data file comprised of with pairs of attribute names and attribute values are used not only for the definition of a logical partition but also for various systems. Conventionally, such a configuration data file is created by man power or using Graphical User Interface (GUI) that supports the work by man power. However, in the case where there are a large number (types) of attributes to be designated, the work is troublesome. 
         [0010]    For instance, when a logical partition is created using a predetermined tool on a computer of IBM System pSeries, there is a need to designate a configuration data file defining the logical partition. Since this configuration data file is made up of a large number of attributes as follows, for example, it is not easy to create such a file: 
         [0000]    name=rpa — 11,Ipar_id=11,profile_name=p1_rpa11,Ipar_type=aixlinux,min_mem=128,desired_mem=256,max 13  mem=256,min_procs=1,desired_procs=1,max_procs=1, sharing_mode=share_idle_procs, proc_mode=ded, auto_start=1, io_slots=“21030076/65535/1, 21040076/65535/1”, max_virtual_slots=10 
         [0011]    In view of the above-stated problems, it is an object of the present invention to provide a system capability of reducing the trouble required for creating and editing a configuration data file comprised of pairs of element names (attribute names) and element values (attribute values). 
         [0012]    It is another object of the present invention to, when a resource of a computer is partitioned into a plurality of logical partitions, facilitate the creation of configuration data defining the logical partitions. 
         [0013]    In order to achieve the above-stated objects, the present invention is composed as the following system. This system includes: a file storage unit that stores a configuration data file in which pairs of element names and element values are described concerning a respective predetermined element; a reception unit that receives a creation instruction of configuration data that designates a predetermined configuration data file stored in the file storage unit and an operation method; an operation unit that reads out the configuration data file designated by the creation instruction from the file storage unit, conducts an operation with respect to the element value for each element of the configuration data file in accordance with the operation method designated by the creation instruction, and creates a new configuration data file in which, for each respective elements, a pair of an element name which is identical to the one in the original configuration data file and an element value resulted from an operation is described; and an output unit that outputs the new configuration data created by the operation unit. Thus the new configuration data created may be stored in a file as a new configuration data file, or may be used by transferring to another system instead of storing it in a file. 
         [0014]    Preferably, the system further includes a table storage unit that stores a table in which, for each operation method, contents of an operation to be conducted with respect to a respective element of the configuration data file is registered. The operation unit may refer to the table stored in the table storage unit concerning an operation method designated by the creation instruction, and conduct an operation registered in the table for a respective element of the configuration data file. 
         [0015]    The system further may include a control unit that controls of an operation of a computer by partitioning resources of the computer into a plurality of logical partitions. The configuration data file may describe attributes of each logical partition of the computer as elements, the output unit may send the new configuration data created by the operation unit to the control unit, and the control unit may create a new logical partition based on the new configuration data received from the output unit to make the computer operate. 
         [0016]    The present invention can be implemented in the following method as well. The method is for creating a logical partition for controlling an operation of a computer by partitioning resources of the computer into a plurality of the logical partitions, and includes the steps of: receiving a creation instruction of configuration data that designates configuration data files and an operation method, the configuration data files describing attributes of each logical partition as elements in the form of pairs of element names and element values of the elements; reading out the configuration data file designated by the creation instruction from storage means that stores the configuration data file of an already-existing logical partition; in accordance with the operation method designated by the creation instruction, conducting an operation with respect to the element value for a respective element of the read out configuration data file to create new configuration data describing, for each respective elements, a pair of an element name which is identical to the one in the original configuration data file and an element value resulted from an operation; and creating, based on the created new configuration data, a new logical partition by control means of the computer. 
         [0017]    The present invention further can be implemented as a program that implements the respective functions of the above-stated system by controlling a computer, or a program that makes a computer execute the processing corresponding to the respective steps of the above-described method. These programs may be delivered by storing them in a magnetic disk, an optical disk, a semiconductor memory and other recording media, or by distributing them via a network. 
         [0018]    According to the present invention configured as stated above, already-existing configuration data files are utilized, whereby the trouble required for creating and editing a new configuration data file can be reduced. Further, the present invention is applied to create a configuration data file defining logical partitions of a computer, whereby a new logical partition is created easily by using a configuration data files of already-existing logical partitions. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0019]      FIG. 1  shows a functional structure of a data processing system according to the present embodiment; 
           [0020]      FIG. 2  shows exemplary contents of an operation table of the present embodiment; 
           [0021]      FIG. 3  shows exemplary components of a preferable computer for implementing the data processing system of the present embodiment; 
           [0022]      FIG. 4  is a flowchart which is visual representation of the sequence of how the operation unit performs data calculations in the present embodiment; 
           [0023]      FIG. 5  shows the structure of a control system of a computer to which the data processing system of the present embodiment is applied; and 
           [0024]      FIG. 6  shows exemplary contents of an operation table applied to a control system of a computer. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0025]    The following describes embodiments of the present invention in detail, with reference to the attached drawings. 
         [0026]    &lt;System Configuration&gt; 
         [0027]      FIG. 1  shows a functional structure of a data processing system according to the present embodiment. 
         [0028]    A data processing system  100  of  FIG. 1  includes a reception unit  110  that receives a creation instruction of a configuration data file and a file storage unit  120  that holds configuration data files. The data processing system  100  further includes an operation unit  130  that creates a configuration data, an operation table storage unit  140  that is used for the processing by the operation unit  130 , and an output unit  150  that outputs created configuration data. 
         [0029]    The reception unit  110  receives an input by a user to instruct the creation of configuration data and sends the input to the operation unit  130 . In the present embodiment, configuration data is newly created using already-existing configuration data files. Thus, the instruction for creating a configuration data file includes already-existing configuration data files that become the foundation of the operation and information designating an operation method. 
         [0030]    The file storage unit  120  stores and holds configuration data files. The configuration data file held in the file storage unit  120  is used by the operation unit  130  to create new configuration data. In the case where the new configuration data created by the operation unit  130  is stored in a file, such a file is stored in the file storage unit  120 . 
         [0031]    In accordance with the instruction to create configuration data received by the reception unit  110 , the operation unit  130  creates a new configuration data file. The configuration data file is created using already-existing configuration data files stored in the file storage unit  120  and an operation table stored in the operation table storage unit  140 , which will be described later. 
         [0032]    The operation table storage unit  140  stores an operation table  141  that is used for the processing by the operation unit  130 . The operation table  141  contains a “function name” for each element configuring a configuration data file, which is registered for searching a function applied as an operation between configuration data files. 
         [0033]      FIG. 2  shows an exemplary contents of the operation table  141 . 
         [0034]    The operation table  141  of  FIG. 2 , as an example, contains five types of operations (op1 to op5) concerning five types of elements (A to E). The operation unit  130  refers to this operation table  141  and executes a function (func) set for each element to create a configuration data file. For instance, in the case where a configuration data file is created by operation op1, the operation is performed as in func A1 for element A, func B1 for element B and func C1 for element C. Each function takes on two arguments and returns one value or error, in which one of the arguments accepts the case of “no value”. 
         [0035]    In this operation table  141 , it is defined what kind of function is to be executed for each operation and for all of the “element names” permitted as the configuration data. These “operation name”, “element name” and “function name” can be added or changed, and if a new operation is to be added and if a new element name is added to the configuration data, the operation and the element name can be added and a function for a predetermined element can be changed to another function. Furthermore, in  FIG. 2 , each function is named based on the type of the element and the type of the operation (for example, the function of the operation “op1” for the element “A” is named the function “A1”). However, the entity of the function may be the same as that of another function (for example, the contents of func A1 and func A2 may be the same). Furthermore, the environment allowing a processing module to be loaded dynamically (for example, the environment using Java VM of Sun Microsystems Inc. in U.S.) may be used, whereby a function defined by a user can be designated as a “function name” in the operation table. 
         [0036]    The output unit  150  causes a new configuration data, file created by the operation unit  130  to store in the file storage unit  120 . The new configuration data file stored in the file storage unit  120  is used for the creation of the following configuration data as stated above. 
         [0037]      FIG. 3  shows exemplary components of a preferable computer for implementing the data processing system  100 . 
         [0038]    A computer  10  of  FIG. 3  includes a Central Processing Unit (CPU)  10   a  as operation means and a main memory  10   c  and a magnetic disk device (HDD: Hard Disk Drive)  10   g  as storage means. The computer  10  further includes a network interface  10   f  for the connection with an external device via a network, a video card  10   d  and a display device  10   j  for display output, and a voice system  10   h  for voice output. The computer  10  still further includes an input device  10   i  such as a keyboard and a mouse. 
         [0039]    As shown in  FIG. 3 , the main memory  10   c  and the video card  10   d  are connected with the CPU  10   a  via a system controller  10   b.  The network interface  10   f,  the magnetic disk device  10   g,  the voice system  10   h  and the input device  101  are connected with the system controller  10   b  via an I/O controller  10   e.  The respective elements are connected via various buses such as a system bus and an input/output bus. For instance, the CPU  10   a  and the main memory  10   c  are connected via a system bus or a memory bus. The CPU  10   a  and the magnetic disk device log, the network interface  10   f,  the video card  10   d,  the voice system  10   h , the input device  10   i  and the like are connected via an input/output bus such as Peripheral Components Interconnect (PCI), PCI express, serial At Attachment (ATA), Universal Serial Bus (USB), Accelerated Graphics Port (AGP). 
         [0040]    Note that  FIG. 3  simply illustrates a hardware components of a preferable PC to which the present embodiment is applied, and needless to say the illustrated configuration is not a limiting one. For instance, instead of having the video card  10   d,  having the video memory only and making the CPU  10   a  process image data would be another example. Alternatively, instead of having the voice system  10   h  independently, such a system may be provided as a function of a chip set configuring the system controller  10   b  or the I/O controller  10   e.  Alternatively, in addition to the magnetic disk device  10   g,  a drive of various optical disks and flexible disks as media may be provided as an secondary storage device. As the display device  10   j,  a liquid crystal display may be used mainly. However, any type of display may be used such as a CRT display or a plasma display. 
         [0041]    In the data processing system  100  of  FIG. 1 , the reception unit  110  may be implemented by the input device  10   i  and the program-controlled CPU  10   a  of  FIG. 3 , for example. 
         [0042]    The file storage unit  120  and the operation table storage unit  140  may be implemented by the storage means such as the main memory  10   c  and the magnetic disk device  10   g  of  FIG. 3 , for example. 
         [0043]    The operation unit  130  and the output unit  150  may be implemented by the program-controlled CPU  10   a  of  FIG. 3 , for example. Programs that control the CPU  10   a  for implementing the functions of the reception unit  110 , the operation unit  130  and the output unit  150  are stored in the magnetic disk device  10   g,  for example, which is read in the main memory  10   c  and is executed by the CPU  10   a.    
         [0044]    &lt;Operation of Data Processing System  100 &gt; 
         [0045]    The following describes how the operation unit  130  in the data processing system  100  performs data calculations. 
         [0046]    In the following description, an element and an element value in the configuration data may be called an attribute (or attribute name) and an attribute value, respectively. 
         [0047]      FIG. 4  is a flowchart which is visual representation of the sequence of how the operation unit  130  performs data calculations in the present embodiment. 
         [0048]    As the initial operation, it is assumed that the reception unit  110  receives the input of a creation instruction that designates already-existing configuration data files and an operation method used for the creation of a configuration data file, which is sent to the operation unit  130 . Herein, it is assumed that File 1 and File 2 are designated as the already-existing files and opt1 is designated as the operation method. Although it is expected that the already-existing configuration data files contain each of the elements registered in the operation table  141 , they do not always have values for all of the elements. 
         [0049]    When receiving the creation instruction of configuration data, the operation unit  130  reads out File 1 and File 2 designated by this creation instruction from the file storage unit  120 , and decomposes them into respective elements (Step  401 ). Further, the operation unit  130  creates new configuration data, and sets all values of the elements as “no value” as the initial setting (Step  402 ). 
         [0050]    Next, the operation unit  130  judges whether there are any unprocessed elements are left or not (Step  403 ). If there are unprocessed elements, the operation unit  130  selects one of them to make it the element Attr, and extracts values corresponding to the element Attr from File 1 and File 2 to make them v1 and v2, respectively (Step  404 ). At this time, if a value corresponding to the element Attr does not exist, “no value” is set. If both of File 1 and File 2 have “no values”, an operation cannot be conducted with respect to this element Attr, and therefore the process returns to Step  403 , where the next unprocessed element is selected and similar processing is performed thereto (Step  405 ). 
         [0051]    If at least one of File 1 and File 2 has a value corresponding to the element Attr (v1 or v2), the operation unit  130  conducts the operation using the function registered in the operation table  141  (Step  406 ). If an error occurs during the operation, error notification or the like is performed as abnormal end, and the process ends (Steps  407 ,  409 ). 
         [0052]    On the other hand, if the operation ends without any error, a value of the obtained operation result is recorded as the corresponding element in the configuration data created at Step  402  (Steps  407 ,  408 ). Note that in the case where an error does not occur but a value cannot be obtained as the operation result, “no value” is set for the element. Thereafter, the process returns to Step  403 , and the processing is repeated until no unprocessed element is left. When processing has been made for all of the elements, a user is notified of the end of the processing as normal end, and the process ends (Step  410 ). 
         [0053]    &lt;Application Example&gt; 
         [0054]    Next, a specific application example of the data processing system  100  of the present embodiment will be described below. The following describes an example in which the data processing system  100  is applied to a control system for dividing a hardware resource of a computer into a plurality of logical partitions. 
         [0055]      FIG. 5  shows the structure of a control system of a computer to which the data processing system  100  of the present embodiment is applied. 
         [0056]    In  FIG. 5 , a control system  200  and a controlled system  300  are implemented by the computer  10  of  FIG. 3 , for example. The control system  200  has functions similar to that of the data processing system  100  of  FIG. 1 . The controlled system  300  includes a service processor  310  mounted thereon, the service processor  310  allowing each logical partitions of a hardware resource of the controlled system  300  to actually operate independently. An example of the controlled system  300  includes a computer of IBM System pSeries. 
         [0057]    A file storage unit  120  of the control system  200  stores a configuration data file that defines a logical partition by describing attributes of the logical partition as elements to be represented in the form of names and values. That is, this configuration data file is configured with pairs of attribute names and values concerning attributes of a logical partition. The configuration data file defining a logical partition is created based on an already-existing configuration data file stored in the file storage unit  120 . However, the creation instruction of the configuration data file can also be made by partition profile, partition name which is already activated, and all of the resources of the controlled system  300 , “ALL”. In the case where “ALL” or the like is designated other than file names, such data is collected at that time from the controlled system  300  using already-existing commands. If “ALL” is designated, a logical partition which has all of the resources of the controlled system  300  will be assumed. Then, an operation will be conducted using the configuration data file defining the logical partition and a configuration data file defining another already-existing logical partition. 
         [0058]    Types of the data in the configuration data file include numeric data, a character string, a set, a logical value (true/false or IAA a type name and the like. An example of an attribute taking on numeric data includes a memory size (“min_mem” representing a minimum memory size, “max_mem” representing a maximum memory size, or the like). An example of an attribute taking on a character string includes a logical partition name “Ipar_name”, and a profile name “profile_name”. As an example of an attribute taking on a set includes an I/O slot “io_slot”. As an example of an attribute taking on a logical value includes auto-start “auto_start” and “all_resources” representing all of the resources. As an example of an attribute taking on a type name includes “Ipar_env” representing a operating system for a logical partition. 
         [0059]    The operation table storage unit  140  stores an operation table  141  in which operations used for creating a logical partition are registered. 
         [0060]      FIG. 6  shows an exemplary configuration of the operation table  141  stored in the operation table storage unit  140  of the control system  200 . 
         [0061]    In the operation table  141  of  FIG. 6 , five types of operations are registered, including “MIN”, “MAX”, “PLUS”, “*numeric value” and “MINUS”. Further, five types of attributes are registered, including “min_mem”, “name”, “io_slot”, “auto_start” and “Ipar_env”. 
         [0062]    According to the operation table  141  of  FIG. 6 , in the case where the operation “MIN” is conducted between configuration data files, a smaller value is adopted in the operation of the attribute “min_mem (numeric data)”. In the operation of the attribute “auto_start (logical value)”, the processing of AND (logical multiplication) is conducted. 
         [0063]    In the case where the operation “PLUS” is conducted, a character string obtained by combining two character strings with “_PLUS_” is created in the operation of the attribute “name (character string)”. If values are not same in the attribute “Ipar_env (type name)”, the operation “PLUS” as a whole becomes an error. 
         [0064]    In the case where the operation “numeric value” is conducted with respect to a predetermined configuration data file, the current value of the configuration data file is multiplied by a numeric value designated by “*numeric value” in the operation of the attribute “min_mem (numeric data)”. 
         [0065]    The reception unit  110  receives the creation instruction of configuration data in which logical partitions and an operation used are designated as follows: 
         [0066]    For instance, in the case where a new logical partition is created corresponding to the combination of two already-existing logical partitions (configA and configB), the instruction will be: 
         [0067]    configA+configB 
         [0068]    In the case where the logical partition configA already exists and new logical partition needs to have all of the remaining resources of the controlled system  300 , the instruction will be: 
         [0069]    ALL−configA 
         [0070]    In the case where a logical partition is created for using the capability of the CPU and the storage capacity of the memory 1.5 times those of the already-existing logical partition configA, the instruction will be: 
         [0071]    configA*1.5 
         [0072]    In the above relationships, “config A” and “config B” are file names of the configuration data defining logical partitions. “+” represents the operation “PLUS” of the operation table  141  of  FIG. 6 , “−” represents the operation “MINUS” of the operation table  141 , and “*1.5” represents the operation “*numeric value” of the operation table  141 . 
         [0073]    In the case where a logical partition is created on IBM System pSeries, for example, conventionally only one file can be designated using mksyscfg command as in: 
         [0074]      mksyscfg−r  Ipar− m  machine1− f  configA 
         [0075]    On the other hand, with the above configuration, the operation of two files can be designated as in: 
         [0076]      mksyscfg−r  Ipar− m  machine1 −f “configA+configB”   
         [0077]    The output unit  150  outputs new configuration data as the operation result by the operation unit  130 . In the case of  FIG. 5 , this new configuration data is not stored in the file storage unit  120 , but is sent to the service processor  310  mounted in the controlled system  300 . The service processor  310  creates a new logical partition actually based on the received configuration data, so as to control the use of the hardware resource of the controlled system  300 . 
         [0078]    The following describes a specific calculation example. 
         [0079]    It is assumed that two logical partitions exist, which are defined by the following configuration data files: 
         [0080]    File1:name=Ipar1, Ipar_env=aixlinux, min_mem=128, auto_start=1 
         [0081]    File2:name=Ipar2, Ipar_env=aixlinux, min_mem=512, auto_start=0 
         [0082]    In the case where these configuration data files are designated and the operation “MIN” is conducted with respect to File1 and File2 as a target, the following operation result will be obtained: 
         [0083]    Data:name=Ipar1_MIN_Ipar2, Ipar_env=aixlinux, min_mem=128, auto_start=0 
         [0084]    Referring to Data as the operation result, the operation in accordance with the operation table  141  of  FIG. 6  is conducted. That is, as for the attribute name, Ipar1 of File1 and Ipar2 of File2 are combined with “_MIN_”. As for the attribute Ipar_env, it is the same as the attribute value of File1 and File2. As for the attribute min_mem, a smaller value 128 is adopted between the attribute values of File1 and File2. As for the attribute auto_start, AND (logical multiplication) of the attribute values of File1 and File2 is obtained, which is 0. 
         [0085]    Another calculation example will be described below. It is assumed that File1 and File2 is defied as follows: 
         [0086]    File1:name=Ipar1, Ipar_env=aixlinux, min_mem=128, auto_start=1, io_slots=21020003/none/1,21020004/none/1 
         [0087]    File2:name=Ipar2, Ipar_env=aixlinux, min_mem=512, auto_start=0, io_slots=21020003/none/1,21020001/none/1 
         [0088]    In the case where these configuration data files are designated and the operation “MAX” is conducted with respect to File1 and File2 as a target, the following operation result will be obtained: 
         [0089]    Data: name=Ipar1_MAX_Ipar2, Ipar_env=aixlinux, min_mem=512, auto_start=1, io slots=21020003/none/1,21020004/none/1,21020001/none/1 
         [0090]    In the operation result, as for the attribute min_mem, a larger value 512 between the attribute values of File1 and File2 is adopted. As for the attribute auto_start, OR (logical sum) of the attribute values of File1 and File2 is obtained, which is 1. As for the attribute io_slot, the sum of the attribute values of File1 and File2 is obtained. 
         [0091]    On the other hand, when the operation “MINUS” is conducted with respect to the same File1 and File2, the following operation result will be obtained: 
         [0092]    Data: name=Ipar1_MINUS_Ipar2, Ipar_env=aixlinux, min_mem=384, auto_start=0, io_slots=21020004/none/1,21020001/none/1 
         [0093]    In the operation result, as for the attribute min_mem, a smaller value of the attribute values of File1 and File2 is subtracted from a larger one, which is 384. As for the attribute io_slot, 21020004/none/1 and 21020001/none/1 are adopted by the function (UserFunc) which is defined by the user. 
         [0094]    Although that is the description of an example in which the present embodiment is applied to the creation of a logical partition, the present embodiment can be applied to the creation of partition profile, system profile or the like as well. Further, the present embodiment can be applied generally to create new configuration data by the operation of configuration data files configured with a pair of attribute names and attribute values. 
         [0095]    According to the present embodiment, new configuration data can be easily created using an already-existing configuration data files. Thereby, the trouble required for creating a configuration data file and a logical partition defined by the configuration data file can be significantly reduced. Further, since a configuration data file configured with pairs of attribute names and attribute values is generally used in various systems, to create new configuration data using (operating) an already-existing configuration data file can be applied to these various systems as well.