WO2012098650A1 - コンピュータ、コンピュータシステム、方法、およびプログラム - Google Patents

コンピュータ、コンピュータシステム、方法、およびプログラム Download PDF

Info

Publication number
WO2012098650A1
WO2012098650A1 PCT/JP2011/050780 JP2011050780W WO2012098650A1 WO 2012098650 A1 WO2012098650 A1 WO 2012098650A1 JP 2011050780 W JP2011050780 W JP 2011050780W WO 2012098650 A1 WO2012098650 A1 WO 2012098650A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
identification information
job
login
user identification
Prior art date
Application number
PCT/JP2011/050780
Other languages
English (en)
French (fr)
Inventor
直希 林
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to PCT/JP2011/050780 priority Critical patent/WO2012098650A1/ja
Publication of WO2012098650A1 publication Critical patent/WO2012098650A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication

Definitions

  • the present invention relates to a computer, a computer system, a method, and a program.
  • a computer system including a login node as a first node and a calculation node as a second node can be exemplified.
  • the first node often provides a user interface for the computer system.
  • the second node mainly takes charge of execution of, for example, calculation processing and other various processes in response to a request from the first node.
  • the second node is also called a calculation node, an operation node, a processing node, a child node, or the like.
  • a super computer or a PC (Personal Computer) cluster can be exemplified.
  • user identification information is registered in the first node and the second node by the following procedure.
  • the user identification information includes, for example, a user name and is also called user account information.
  • User identification information is registered in the first node. For example, the system administrator executes a command such as useradd prepared for user registration at the first node to register user identification information.
  • Process 2 The same user identification information as that of the first node is registered in the second node. For example, the system administrator executes a command such as useradd prepared for user registration at the second node to register user identification information.
  • the system administrator registers user identification information in each of the second nodes.
  • the first node Based on the registered user identification information, the first node assigns a home directory area for the user to the user whose user identification information is registered. In addition, each second node allocates a home directory area for a user to a user whose user identification information is registered.
  • the technology of the embodiment disclosed below is to solve the problem that occurs when registering user identification information in the second node when registering user identification information in the first node as described above.
  • One aspect of this embodiment is a first node that receives an execution request for a first process based on first user identification information for identifying a request source that requests execution of the process, and a first node that receives an execution request at the first node.
  • a computer used as the first node in a computer system including one or more second nodes that execute a second process corresponding to at least a part of one process.
  • the computer includes an identification information allocating means for allocating the second user identification information registered in the second node to the first user identification information, and a second user identification in response to an execution request for the first process based on the first user identification information.
  • execution control means for controlling the execution of the second process at the second node using the information.
  • using the second user identification information to control the execution of the second process at the second node means, for example, requesting the second node to execute the second process using the second user identification information. .
  • the second user identification information is assigned in advance to the first user identification information by the identification information assigning means.
  • the first node when the first node accepts the execution request for the first process based on the first user identification information, the first node uses at least the first process using the second user identification information assigned to the first user identification information. Execution at the second node of the second process corresponding to a part can be controlled. Further, for example, even when the first user identification information is registered for the first node, the second user identification information that has already been registered for the second node may be assigned to the first user identification information. That is, it is not necessary to newly register user identification information in the second node.
  • FIG. 1 is a diagram illustrating an information system according to a comparative example.
  • FIG. 2 is a diagram illustrating an information system problem according to the comparative example.
  • FIG. 3 is a diagram illustrating an information system problem according to the comparative example.
  • FIG. 4 is a diagram illustrating an information system problem according to the comparative example.
  • FIG. 5 is a diagram illustrating an information system problem according to the comparative example according to the first embodiment.
  • FIG. 6 is a diagram illustrating a configuration of the information system.
  • FIG. 7 is a diagram illustrating the configuration of the login management unit.
  • FIG. 8 is a diagram illustrating a hardware configuration of the login node.
  • FIG. 9 is a diagram illustrating a hardware configuration of the calculation node.
  • FIG. 10 is a diagram illustrating an information system construction process.
  • FIG. 11 is a diagram illustrating a user account information setting process in the login node.
  • FIG. 12 is a diagram illustrating an operation process of the information system.
  • FIG. 13 is a diagram illustrating a login tag.
  • FIG. 14 is a diagram illustrating a processing flow at the login node when a job execution request is made.
  • FIG. 15 is a diagram exemplifying a processing flow in the calculation node.
  • FIG. 16 is a diagram illustrating a processing example of job priority control using a current ID.
  • FIG. 17 is a diagram exemplifying a processing flow at a calculation node of the information system according to the second embodiment.
  • the information system 501 includes a login node 502 and a calculation node group including a plurality of calculation nodes 503.
  • the login node 502 and the calculation node 503 are computers each having a CPU (Central Processing Unit), a main storage device, a communication interface, and the like.
  • the calculation node 503 further includes a type having an external storage device and a type having no external storage device.
  • the login node 502 and the computation node 503 are connected to each other via a communication interface.
  • the communication interface of each node accesses the network and provides a communication function with other nodes to the CPU of its own node.
  • the network connecting the login node 502 and the calculation node 503 may include, for example, a LAN (Local Area Network), InfiniBand (trademark), a crossbar switch, and the like.
  • the construction procedure of the information system 501 is illustrated in the flowchart of FIG.
  • the system administrator performs new user registration using a command provided by the login node 502 such as useradd (S501).
  • the login node 502 requests each computation node 503 to register each user with the computation node 503 using the useradd command.
  • the login node 502 transmits a user registration request to each calculation node 503 together with user account information to be registered, for example, a user account ID (Identifier), a password, and the like.
  • the computing node 503 that has received the request registers the transmitted user account information (S502).
  • the calculation node 503 can be used with the registered user account ID.
  • FIG. 2 illustrates problem 1 of the information system 501 according to the comparative example.
  • FIG. 2 illustrates the passage of time of processing executed in any of the calculation nodes 503.
  • a user registration process a calculation process A, a calculation process B, and a calculation process C are illustrated as the processes being executed.
  • calculation processes A, B, and C are, for example, processes executed in parallel.
  • the parallel execution may be, for example, a process in which a plurality of computer programs are executed in parallel by a plurality of CPUs, or a process in which a plurality of processes are switched and executed in parallel by a single CPU.
  • the user registration process is further executed when the calculation processes A, B, and C are executed in parallel.
  • the user registration process is further executed when the calculation processes A, B, and C are executed in parallel.
  • the CPU of the calculation node 503 executes user registration processing.
  • an interruption occurs in the process being executed by the CPU of the calculation node 503, and for example, the calculation process A being executed is interrupted.
  • the interrupt may interrupt the calculation process A according to the process scheduling of the OS.
  • the calculation process A is interrupted and the user registration process is executed instead. Then, after the user registration process is completed, the calculation process A is resumed again. The calculation process A is restarted, for example, according to the OS process scheduling. As described above, when the user registration process is executed in the calculation node 503 according to the request from the login node 502, any process of the calculation node 503, for example, the calculation process A is interrupted, and the calculation process A progresses. Is delayed.
  • the influence of the progress delay of the calculation process A may not be limited to the calculation process A.
  • this is a case where other processes such as calculation processes B and C are waiting for the calculation process A at a predetermined synchronization point. Waiting at a predetermined synchronization point corresponds to a case where other processes such as calculation processes B and C use the processing result of calculation process A, for example.
  • synchronization wait occurs in other processes such as the calculation processes B and C, and the delay may spread to the entire information system 501. is there.
  • FIG. 3 illustrates problem 2 of the information system 501 according to the comparative example.
  • the same configuration and processing as those of FIG. 2 are denoted by the same reference numerals and description thereof is omitted.
  • the problem caused by executing new user registration at each computation node 503 shown in S502 many times is examined.
  • the login node 502 executes the process of S502 for all the calculation nodes 503. Therefore, the login node 502 confirms completion of user registration (S503), and further determines whether or not user registration in S502 has been completed for all the calculation nodes 503 (S504). If there is a calculation node 503 for which registration of a new user has not been completed, the login node 502 returns control to S502, and executes the processing of S502 for the calculation node 503 for which registration of a new user has not been completed.
  • the process of S502 is repeatedly executed on all the calculation nodes 503.
  • the new user registration process is repeatedly executed, and the calculation process and the user registration process are performed.
  • the calculation process and the user registration process are performed.
  • FIG. 4 illustrates problem 3 of the information system 501 according to the comparative example.
  • the information system 501 in FIG. 4 includes a login node 502 and computation nodes 503- (n), 503- (n + 1), 503- (n + 2),..., 503- (n + x). Note that when the calculation nodes 503-(n + x) and the like are collectively referred to (n and x are integers of 0 or more), they are simply referred to as calculation nodes 503.
  • each calculation node 503 as a result of the processing shown in FIGS. 2 and 3, user account information to be registered is registered in a management file for managing user accounts, for example, an / etc / passwd file.
  • the registered user account information may not be completely the same in all the calculation nodes 503.
  • the login node 502 is set to one of the calculation nodes 503. It may occur that the user account information requested for registration is not registered in the management file of the calculation node 503.
  • the consistency of the management file for managing user account information is not ensured between the login node 502 and the calculation node 503.
  • the login node 502 cannot log in to the calculation node 503-p having such a management file having no consistency.
  • the job cannot be executed in the calculation node 503-p when user account information having inconsistency is used.
  • the user account ID U1 registered in the login node 502 is not registered in the calculation node 503-p. Further, it is assumed that the user account ID U1 is registered in the calculation nodes 3 other than the calculation node 503-p. In such a case, consider a case where the login node 502 requests each computation node 3 to execute a job with the user account ID U1. Then, among the jobs requested by the login node 502 to each computation node 503, the job requested by the computation node 503-p is not executed, and the execution result in the information system 501 cannot be guaranteed.
  • the user account information matches the user account information managed by the login node 502 in the calculation nodes 503- (n), 503- (n + 1), 503- (n + 2), and the like. Yes. Further, in the calculation node 503- (n + x), it is assumed that the user account information does not match that managed by the login node 502 and is incomplete. For example, the user account ID “user-xyz” such as the calculation nodes 503- (n), 503- (n + 1), and 503- (n + 2) does not exist in the calculation node 503- (n + x), and “user ⁇ It is assumed that “USER-DIFF” is registered instead of “xyz”. In such a case, when the login node 502 requests the calculation node group to execute the job with the user account ID “user-xyz”, the calculation node 503- (n + x) does not accept the job execution. It becomes.
  • FIG. 5 illustrates the information system 1.
  • the information system 1 includes, for example, a login node 2, a calculation node group 3A, and a global file system 9.
  • the user terminal 8 is connected to the information system 1.
  • the user terminal 8 only needs to be connectable to the information system, and the type of the user terminal 8 is not particularly limited.
  • the information system 1 can be connected from a LAN or a dedicated line in an organization such as a company
  • the user terminal 8 may be a computer, a terminal, or the like that can be connected to such a LAN or a dedicated line.
  • the information system 1 can be connected from a public network such as the Internet
  • the user terminal 8 may be a computer, a terminal, or the like that can be connected to such a public network.
  • the user of the information system 1 requests the information system 1 for various processes through the user terminal 8.
  • Examples of the user terminal 8 include a personal computer connected to the information system 1 through a network. Further, the user terminal 8 may be a terminal such as a system console connected to the login node 2.
  • the login node 2 is an example of a first node.
  • the login node 2 has a login management unit 201.
  • the login management unit 201 receives a request through the user terminal 8 from a user having management authority for the information system 1 and registers the user account information in the login node 2.
  • the user account information is information for authenticating the user of the login node 2.
  • the user account information includes, for example, designation of a user account ID, a password, a home directory, and a shell.
  • the login node 2 determines whether or not to accept the login request according to the registered user account information. Login is permitted in response to a login request from a user who has registered user account information. If login is permitted, the user is given the right to execute the job. The login node 2 allocates the job requested by the user who has permitted the login to each calculation node 3 in the calculation node group 3A.
  • the login management unit 201 is an example of an execution control unit.
  • the computation node group 3A includes a plurality of computation nodes 3 and a local file system 300 accessed from the computation node 3.
  • the calculation node 3 is an example of the second node.
  • the local file file system 300 is a file system on an external storage device such as a hard disk connected to each computation node 3, for example. Further, the local file file system 300 may be a file system on an external storage device shared by a plurality of calculation nodes 3 in the calculation node group 3A.
  • the global file system 9 is a file system shared between the login node 2 and the calculation node group 3A.
  • the global file system 9 may be constructed on, for example, an external storage device on a network that connects the login node 2 and the calculation node 3.
  • FIG. 6 illustrates the configuration of the information system 1.
  • the information system 1 in FIG. 6 includes, as an example, a login node 2, a global file system 9, calculation nodes 3-0, 3-X, 3-Y, 3-Z, etc., and other configurations are omitted. .
  • the login node 2, the global file system 9, the computation nodes 3-0, 3-X, 3-Y, 3-Z, and the like are connected to each other through a network.
  • the type of network is not limited.
  • the network for example, LAN (Local Area Network), InfiniBand (trademark), or the like may be used.
  • the network may include an interconnect and a crossbar switch.
  • the interconnect includes various types of networks that connect nodes. In FIGS. 5 and 6, the network is drawn with one line, but a plurality of standard networks may be used in parallel.
  • the login node 2 has a local file system 200 on the external storage device.
  • the login node 2 includes a login management unit 201.
  • the login management unit 201 determines which calculation nodes 3-0, 3-X, etc. to which the job requested by the user is allocated, and requests the calculation nodes 3-0, 3-X, etc. to execute the job.
  • the login management unit 201 receives a processing result executed by the computation nodes 3-0, 3-X, and the like.
  • calculation nodes 3-0, 3-X, 3-Y, 3-Z, etc. are illustrated.
  • the number of calculation nodes 3 may be determined according to the specifications of the information system 1.
  • the calculation node 3-0 has a calculation node management unit 301-0
  • the calculation node 3-X has a calculation node management unit 301-X. That is, in FIG. 6, the local file system is not clearly shown in the calculation nodes 3-0 and 3-X. That is, the computation nodes 3-0, 3-X, etc. included in the information system 1 are examples of types that do not have a local file system.
  • the computation nodes 3-0, 3-X, etc. may store the information to be processed or the information of the processing results in, for example, the main storage device.
  • the computation nodes 3-0, 3-X, etc. also send information to be processed or information on the processing results, for example, outside the computation nodes 3-0, 3-X, for example, an external storage device on the network You may make it memorize
  • the calculation node 3-Y has a local file system 300-Y and a calculation node management unit 301-Y
  • the calculation node 3-Z has a local file system 300-Z and a calculation node management unit 301-Z.
  • the calculation node management units 301-0, 301-X, 301-Y, and 301-Z are collectively referred to, ⁇ 0, ⁇ X, ⁇ Y, ⁇ Codes excluding branch numbers such as Z are used.
  • the calculation node management unit 301 receives a request from the login management unit 201 and executes the allocated job. Then, the calculation node management unit 301 delivers the job execution result to the login management unit 201 of the login node 2.
  • the calculation node management unit 301 has a communication function with the login node 2 and a job execution function in the calculation node 3. For example, the calculation node 3 executes a computer program as the calculation node management unit 301.
  • the execution procedure of the calculation node management unit 301 is not limited.
  • the computation node management unit 301 may be activated as the computation node 3 is activated as a resident process or a daemon process.
  • the calculation node management unit 301 may execute the login process as a login procedure. Good.
  • the login procedure in that case may be described as a shell script, for example.
  • the global file system 9 is constructed on an external storage device on the network so that it can be accessed from the login node 2 and the computation node 3, for example. Both the login node 2 and the calculation node 3 can write and read data to and from the global file system 9.
  • the global file system 9 can be constructed as a remote file system using, for example, an external storage device of a computer connected to a network.
  • FIG. 7 illustrates the configuration of the login management unit 201.
  • the login management unit 201 includes a job scheduler 210, a login tag management unit 202, a current ID allocation unit 203, a job ID allocation unit 204, and a user account ID indexing unit 205.
  • the login management unit 201 refers to the login management file 4 and the login tag storage unit 6 provided in the login node 2, and refers to the job scheduler 210, the login tag management unit 202, the current ID allocation unit 203, the job ID allocation unit 204, the user
  • the process of the login node 2 is executed by the account ID indexing unit 205 or the like.
  • the job scheduler 210 assigns a job requested by the user to one or a plurality of calculation nodes 3 and requests execution. Further, the job scheduler 210 acquires the execution result of the job executed on the calculation node 3.
  • the login tag management unit 202 creates a login tag 60 in an initial state when a user account ID is newly defined in the login node 2 and stores the login tag 60 in the login tag storage unit 6.
  • the login tag storage unit 6 may be on the global file system 9 or the local file system 200 of the login node 2.
  • the login tag 60 is management information for the job scheduler 210 to allocate a job requested to be executed by the user to one or more computing nodes 3.
  • the login tag 60 includes a user account ID of a user who has logged into the login node 2, a current ID that is a user account ID when logging in to the calculation node 3, and a job ID of a job executed on the calculation node 3.
  • the current ID is one of a plurality of work user account IDs registered in advance in the calculation node 3 when the information system is constructed, and is a work user account ID added to each job at the time of job execution.
  • the reason is that the user account ID for work is the user account ID of the calculation node 3 that is the current ID, which is used when processing is executed in the calculation node 3. Therefore, the user account ID of the calculation node 3 that becomes the current ID is also called a work account ID. That is, the user account ID of the calculation node 3 is called a work account ID because it is used for work when the login node 2 requests the calculation node 3 to execute a job.
  • the work account ID assigned to the login tag 60 among the work account IDs registered in the calculation node 3 is referred to as a current ID. That is, the current ID is assigned to the user account ID of the login node 2 from the work account IDs registered in the calculation node 3.
  • the term work account ID is used to distinguish it from the user account ID of the login node 2, and the work account ID is a user account ID defined in the calculation node 3.
  • the term work account ID is used to distinguish a user account ID that has not been assigned to the login tag 60 from a user account ID that has been assigned to the login tag (current ID).
  • a work account ID for executing a job in the calculation node 3 is assigned to the user account ID of the user, and a job execution environment is prepared. This work account ID becomes the current ID.
  • a user requests to execute a plurality of jobs in parallel with one user account ID when the login node 2 receives a job execution request, a different work account ID is assigned to each job as a current ID. You can do that.
  • the work account ID is used as a user account ID for temporary calculation processing.
  • the work account ID of the calculation node 3 assigned to the user account ID of the login node 2 is called a current ID.
  • the login tag 60 is an example of relationship information including a correspondence relationship between the user account ID of the login node 2 and the current ID that is the work account ID of the calculation node 3.
  • the user account ID of the login node 2 is an example of first user identification information.
  • the work account ID is an example of second user identification information.
  • the login tag storage unit 6 is an example of a storage unit for relation information.
  • the current ID assignment unit 203 assigns a work account ID defined on the calculation node 3 to the user who has requested execution of the job. .
  • the current ID assigning unit 203 manages which user account ID among user account IDs registered in the calculation node 3 can be assigned as the current ID.
  • the current ID assigning unit 203 is an example of identification information assigning means.
  • the current ID assigning unit 203 has a work account management table 203A for managing a work account ID being used in the calculation node 3 and a vacant work account ID.
  • the work account management table 203A holds a list of work account IDs registered in advance in the calculation node 3, and a list of empty work account IDs and a work account ID in use among the work account IDs of the calculation node 3. .
  • An empty work account ID is a work account ID registered in the calculation node 3 and is not assigned to the user account ID of the login node 2.
  • the list of work account IDs registered in the computation node 3 may be indicated by an empty bit indicating whether it is empty or not empty.
  • a free work account ID may be held and managed in a list structure connected by a pointer.
  • the job ID assigning unit 204 assigns a job ID to a user who requests job execution.
  • the job ID assigning unit 203 has a job ID management table 204A for managing job IDs.
  • the job ID management table 204A holds a management record of a used job ID or a management record of an unused job ID.
  • the management record of the job ID in use refers to, for example, a job ID that is currently set in the login tag 60.
  • the user account ID indexing unit 205 is a part for deriving the relationship between the user account ID and the work account ID (current ID).
  • the user account ID is reversely looked up based on the current ID at the time of job execution in the calculation node 3.
  • This reverse lookup method is an example of a processing procedure executed by means for specifying the relationship between the user account ID and the work account ID.
  • the login management unit 201 writes the execution result of the job processed in each calculation node in the login node 2 in the processing result collection location such as the user home directory of the user account ID.
  • the user account ID indexing unit 205 specifies a relationship between the first node storage unit and the second node storage unit capable of storing information related to the user specified by the second user identification information in the second node. It is good also as an example of a means.
  • FIG. 8 illustrates a hardware configuration of the login node 2.
  • the login node 2 includes a CPU 20, a main storage device 21, an external storage device 22, a removable storage device 23, a communication device 24, an input device 25, and a display device 26.
  • the input device 25, the display device 26, and the like may be omitted in a configuration that accepts user input by logging in to the login node 2 from another computer, for example, a terminal on the network.
  • the CPU 20 provides the user with the function and service of the login node 2 by executing a computer program that is executably deployed on the main storage device 21.
  • the CPU 11 is not limited to one and may include a plurality of cores.
  • the main storage device 21 stores a computer program executed by the CPU 20 or data processed by the CPU 20.
  • the main storage device 21 may include a nonvolatile ROM (Read Only Memory) and a volatile DRAM (Dynamic Random Access Memory).
  • the external storage device 22 stores computer programs that are executable on the main storage device 21, data processed by the CPU 20, data after processing, and the like.
  • the external storage device 22 is a nonvolatile storage device.
  • the external storage device 22 is a solid state drive (SSD) such as a hard disk drive or a flash memory.
  • SSD solid state drive
  • a local file system 200 or the like is constructed in the external storage device 22.
  • the removable storage device 23 is an input / output device such as a portable storage medium, for example, a flash memory card, a CD (Compact Disc), a DVD (Digital Versatile Disc), a Blu-ray Disc (Blu-ray Disc).
  • a portable storage medium for example, a flash memory card, a CD (Compact Disc), a DVD (Digital Versatile Disc), a Blu-ray Disc (Blu-ray Disc).
  • a portable storage medium for example, a flash memory card, a CD (Compact Disc), a DVD (Digital Versatile Disc), a Blu-ray Disc (Blu-ray Disc).
  • the communication device 24 is an access device to a network connecting computers such as the login node 2 and the calculation server 3 shown in FIG. Therefore, the communication device 24 has an interface according to a standard corresponding to the type of network.
  • the communication device 24 is, for example, a NIC (Network Interface Card) that accesses a LAN.
  • the communication device 24 may be a device including an interface according to a standard such as InfiniBand (trademark).
  • the communication device 24 may be an interface to a network including a crossbar and an interconnect. In FIG. 8, the communication device 24 is represented by a single box, but an interface conforming to a plurality of standards may be provided in parallel.
  • the input device 25 is a keyboard, a pointing device, or the like.
  • the display device 26 is, for example, a liquid crystal display, an electroluminescence panel, or the like.
  • the present invention is not limited to the above hardware configuration example.
  • FIG. 9 illustrates the hardware configuration of the computation node 3.
  • the configuration of the calculation node 3 is substantially the same as the configuration of the login node 2 except that the removable storage device 23, the input device 25, and the display device 26 are omitted.
  • the calculation node 3 may include the removable storage device 23, the input device 25, the display device 26, and the like.
  • the calculation node 3 includes a CPU 30, a main storage device 31, an external storage device 32, and a communication device 34. Since these configurations and operations are the same as those of the CPU 20, the main storage device 21, the external storage device 22, and the communication device 24 of the login node 2, description thereof is omitted.
  • the CPU 30 is an example of an execution unit.
  • the external storage device 32 is shown. However, some types of calculation nodes 3 are equipped with the external storage device 32 and others are not equipped with the external storage device 32.
  • the information system 1 according to the first embodiment will be described with reference to FIGS.
  • processing executed in the information system 1 is described by dividing into (1) a construction process of the information system 1, (2) a setting process of user account information in the login node 2, and (3) a job execution process. To do.
  • FIG. 10 is a diagram illustrating the construction process of the information system 1.
  • the information system 1 includes, for example, calculation nodes 3-0, 3-1, 3-2,..., 3-X as the calculation node group 3A.
  • the calculation nodes 3-0 and the like are also simply referred to as calculation nodes 3 as a general term.
  • the construction process of the information system 1 includes a work account creation process (process A1) and a work account information copy process (process A2).
  • Step A1 is a step of creating a plurality of user account information for work for executing processing in the calculation node 3.
  • one of the nodes detects a user input from a system administrator or the like through the user interface, and the user account information for work is stored in the work account management file 4A in the management node. Store.
  • the management node may be any of the calculation nodes 3 or the login node 2 shown in FIG.
  • the management node may be the user terminal 8 shown in FIG.
  • the system builder or system administrator inputs a plurality of user account information for work through the user interface of the management node.
  • Work user account information includes, for example, work account ID, password, home directory, and shell designation.
  • elements of work account information such as a work account ID, a password, a home directory, and a shell are examples, and are not limited to these.
  • the work account management file 4A in which the set user account information for work is stored is, for example, a passwd file in the / etc directory.
  • a file with another file name in another directory may be used as the work account management file 4A.
  • one work account is set per line in the work account management file 4A.
  • the work account information on one line stores work account IDs, passwords, home directories, and shell designations separated from each other by a colon (:) from the top of each line.
  • the user work account IDs are set for 1000 users from “1” to “1000” in numbers.
  • the password is encrypted.
  • / bin / bash is specified as the shell.
  • these work account information is an example, and the setting of the work account information of the calculation node 3 is not limited to FIG.
  • Step A2 is a step of copying the work account management file 4A of the management node to the calculation node 3 of the calculation node group 3A.
  • the management node may execute the execution step A2 in accordance with a user instruction in the management node.
  • the management node may automatically execute the process A2.
  • the work account management file 4A is copied to each of the calculation nodes 3.
  • the contents of the work account management file 4A are copied to the / etc / passwd file of each computation node 3.
  • FIG. 11 is a diagram illustrating a user account information setting process in the login node 2.
  • the user account information setting process in the login node 2 includes a new user account creation process (process B1) and a login tag creation process (process B2).
  • Step B1 is a step of newly setting user account information in the login node 2.
  • the setting of user account information is also called user registration.
  • a job executed in the information system 1 is activated by a user defined by user account information registered in the login node 2. Therefore, it can be said that the process B1 is a process of newly setting a user of the information system 1.
  • step B1 the login node 2 detects a user input from a system administrator or the like through the user interface, and stores the user account information in the login management file 4 at the login node 2. The user inputs new user account information through the user interface of the login node 2.
  • User account information set in the login node 2 is stored in, for example, the login management file 4.
  • the user account information may include, for example, a user account ID, password, home directory, and shell designation. However, the user account information is not limited to designation of the user account ID, password, home directory, and shell.
  • the login management file 4 in which the set work account information is stored is, for example, a passwd file in the / etc directory. However, as the login management file 4, a file with another file name in another directory may be used. In the information system 1, even when new user account information is registered in the login node 2, the work account information of the calculation node 3 is not changed.
  • the login node 2 creates a login tag 60.
  • the login tag 60 includes, for example, a user account ID, a current ID, and a job ID.
  • the user account ID is information that identifies a user who logs in to the login node 2.
  • the current ID is the work account ID of the work account management file 4A that is associated with the user account ID in the login management file 4. That is, the current ID is a work account ID used when logging in to each computation node 3 and is information for identifying a user who executes a job in each computation node 3.
  • the login tag 60 associates the user account ID for logging into the login node 2 with the work account ID of the calculation node 3.
  • the login tag 60 associates a job ID with a set of a user account ID and a work account ID. Therefore, the job executed by the user who has logged into the login node 2 and the work account ID of the user who executes the job at the calculation node 3 are specified by the login tag 60. Therefore, when any of the user account ID, work account ID, and job ID is different, a different login tag 60 is created.
  • the current ID and the job ID are set to “Nothing”. “Nothing” indicates that the current ID and the job ID are not set.
  • the login node 2 when a new user account ID is registered in the login node 2, the login node 2 newly creates a login tag 60 in association with the registered user account ID. However, after the user account ID is registered, the current ID and the job ID are set to “Nothing” in a state where the user of the registered user account ID is not logged in to the login node 2.
  • the work account ID and the job ID are set in the login tag 60 searched by the user account ID of the logged-in user.
  • the requested job is submitted to each computation node 3 based on the information of the login tag 60.
  • a work account ID may be set in the login tag 60 when the job is activated.
  • the job ID may be determined and set in the login tag 60.
  • the job is executed with the work account ID specified by the current ID. Further, when the job in each computation node 3 is completed, the job execution result is delivered to the user who requested the job activation based on the login tag 60.
  • FIG. 12 illustrates an operation mode (step C) of the information system 1.
  • the user account information when the user account ID is “ABC” as an example is already registered in the login management file 4. Accordingly, it is assumed that the login tag 60 having the user account ID ABC and the current ID and the job ID None has already been created.
  • the operation mode (step C) of the information system 1 will be described by dividing it into steps C1 to C6. In FIG. 12, steps C1-C6 are simply indicated by reference numerals C1-C12.
  • step C1 the login node 2 receives user input and acquires the input user account ID, password, and the like. Then, the login node 2 checks whether or not the user account ID and password acquired from the user input are registered in the login management file 4. If the confirmation is successful, the user is allowed to log in.
  • the login management unit 201 requests the login tag management unit 202 to set the login tag 60 of the logged-in user.
  • the login tag 60 may be set when the user logs in to the login node 2 or when the user requests execution of a job.
  • the login tag management unit 202 acquires from the current ID assignment unit 203 a current account ID (available current ID) that is not currently assigned to a user account ID or another job.
  • the current ID assigning unit 203 holds a list of usable work account IDs among the work account IDs registered in the calculation node 3 in the work account management table 203 ⁇ / b> A.
  • the login tag management unit 202 acquires from the job ID assignment unit 204 a usable job ID that is not assigned to another user account ID or another job.
  • the job ID assigning unit 204 holds a list of usable job IDs in the job ID management table 204A.
  • the login tag management unit 202 writes the available current ID and job ID into the login tag 60 of the logged-in user.
  • the login tag management unit 202 writes the usable current ID and job ID into the login tag 60 of the user who has requested execution of the job.
  • the login management unit 201 hands over the job ID used in the job for which the job execution has been completed from the job scheduler 210 and the current ID for executing the job with the job ID on the calculation node 3. It is. Then, the login management unit 201 passes the current ID of the completed job, that is, the work account ID, to the current ID assignment unit 203. Then, the current ID assigning unit 203 adds the current ID, which is the work account ID used in the job that has been executed, to the list of usable work account IDs that have not been issued to the user.
  • the login management unit 201 delivers the job ID of the job that has been executed to the job ID assignment unit 204.
  • the job ID assignment unit 204 adds the job ID of the job that has been executed to the list of available job IDs that have not been paid out to the user.
  • the user inputs information for creating a job through the user interface of the login node 2.
  • the user interface of the login node 2 creates a job control statement according to the input information, and requests the job scheduler 210 to execute the job through the login management unit 201.
  • the job scheduler 210 has a function of allocating a job requested to be executed through the user interface to each computation node 3.
  • the job scheduler 210 processes jobs for the purpose of distributing execution requests to the computation nodes 3.
  • “Processing a job” means, for example, a job change such that a job including execution of a plurality of programs is divided into a plurality of jobs, and different calculation nodes 3 can be assigned to the divided jobs.
  • Such job processing may be automatically executed by the job scheduler 210 or may be instructed to be executed by the upper middleware.
  • the job scheduler 210 may divide a single job into a plurality of jobs by analyzing an execution format of a computer program designated by the job and automatically extracting a group of instructions that can be executed in parallel.
  • the number of divisions for dividing a job may be specified in the job.
  • the division unit for dividing the job may be manually specified in the job by the user.
  • the user may specify in the job that a plurality of programs specified in the job can be executed in parallel with each other.
  • a job processed so that each calculation node 3 can take charge is referred to as an allocation job.
  • the assignment job is an example of a second process.
  • the job scheduler 210 logs in to each computation node 3 using the current ID written in the login tag as a work account ID.
  • the calculation node management unit 301 executed with the work account ID is activated in the calculation node 3 to which the job scheduler 210 has logged in.
  • the computation node management unit 301 may be a resident process such as a daemon that is activated when the computation node 3 is activated.
  • the job scheduler 210 being executed in the login node 2 requests the calculation node management unit 301 started in the login calculation node 3 to start the assigned job allocated to each calculation node 3.
  • the job scheduler 210 transmits a control statement specifying the assigned job specified by the current ID and the job ID to each computation node 3.
  • the computation node management unit 301 activated in the computation node 3 activates an allocation job in the computation node 3 according to the delivered control statement. More specifically, the calculation node management unit 301 requests the OS of the calculation node 3 to execute the allocation job. Each computation node 3 executes the requested allocation job.
  • FIG. 12 exemplifies calculation processing as the allocation job, but the allocation job processing itself is not limited.
  • the computing node 3 During execution of the allocation job, the computing node 3 temporarily uses the work home directory in the local disk as the directory of the user specified by the work account ID that requested the job execution. For example, the subordinate of / home / current ID symbol / shown in FIG. 10 is used as a storage destination for storing intermediate files, job management data, and processing result data.
  • the computation node management unit 301 When the job is completed, the computation node management unit 301 notifies the login management unit 201 of completion of the assignment job through the job scheduler 210 of the login node 2. In addition, the calculation node management unit 301 writes the execution result of the job in the work home directory in a predetermined area of the global file system 9, for example, a communication area used when communicating with the login node 2.
  • the login management unit 201 requests the user account indexing unit 205 to determine a user account.
  • the user account indexing unit 205 searches the login tag 60 based on the job ID and current ID, and identifies the user account ID.
  • the login management unit 201 of the login node 2 writes the final generation data of the calculation node 3 from the communication area to the home directory for the user ABC on the global disk.
  • the login management unit 201 of the login node 2 collects the processing results of the jobs of each calculation node 3 and writes them as final result data in the home directory of the user ABC that is the job execution request source on the global disk.
  • the calculation node management unit 301 writes the final result of the job in the communication area of the global file system 9, and the login management unit 201 of the login node 2 writes it in the home directory for the user ABC.
  • the computation node management unit 301 may search for the login tag 60 for managing this job from the current ID and job ID in the login tag 60.
  • the login tag 60 may be held in the global file system 9.
  • the calculation node management unit 301 may acquire the user account ID from the detected login tag 60 and specify the home directory of the user ABC on the global disk from the user account ID. Then, the computation node management unit 301 may write the processing result of the job of the computation node 3 as result data in the home directory of the user ABC that is the job execution request source on the global disk.
  • the login tag is also distributed at the time of job distribution, the final processing result of the job can be written to the home directory of the user ABC (an example of a job final result writing location) without communicating with the outside.
  • FIG. 13 shows an example of the login tag 60 stored in the login tag storage unit 6.
  • the login tag storage unit 60 is provided in, for example, the local file system 200 of the login node 2 or the global file system 9 of the information system 1.
  • the login tag management unit 202 executes processing such as generation of a login tag 60, setting of a value, and reading.
  • login tags 60-1, 60-2, and 60-3 are illustrated as examples of the login tag 60.
  • the login tag 60-1 and the like are simply referred to as a login tag 60.
  • a plurality of login tags 60 can be generated by assigning a plurality of current IDs to the same user account ID.
  • the user can execute a plurality of jobs in parallel on the information processing apparatus 1 by being provided with a plurality of login tags 60.
  • FIG. 14 illustrates a processing flow in the login node 2 at the time of job execution request.
  • the user makes a login request to the login node 2 (S1).
  • the OS of the login node 2 compares the user account ID and password input from the input device 25 with the user account ID and password stored in the login management file 4. If the input information from the input device 25 matches the registration information of the login management file 4 as a result of the comparison, the login request is successfully authenticated and the user is allowed to log in.
  • the CPU 20 of the login node 2 executes the login management unit 201 which is a computer program developed in the main storage device 21.
  • the following processing is an example, and the processing of the information system 1 is not limited to the following configuration.
  • the login management unit 201 the CPU 20 that executes a computer program is an example of an execution control unit.
  • the user next makes a job execution request through the input device 25 and the display device 26, for example.
  • the user interface program executed by the CPU 2 receives a job execution request from the user (S 2), the user interface program delivers the received job execution request to the login management unit 201.
  • the login management unit 201 specifies the user account ID and requests the login tag management unit 202 to set the login tag 60.
  • the login tag management unit 202 inquires of the current ID assignment unit 203 about an empty work account ID.
  • the current ID assignment unit 203 excludes the assigned work account ID that has already been assigned to another user, returns a free work account ID to the login tag management unit 202, and assigns the returned free work account ID to the current assigned work account ID.
  • the ID is stored (S3). Instead of storing the assigned current ID, the returned empty work account ID may be excluded from the unassigned work account ID.
  • an empty work account ID is assigned to the login tag 60. However, the work account ID may be assigned when the user logs in.
  • the login tag management unit 202 inquires of the job ID assignment unit 204 about an unused job ID.
  • the login tag management unit 202 receives an unused job ID from the job ID assignment unit 204 and sets it in the login tag 60. It is only necessary that the job ID assignment unit 204 can identify a usable job ID. After setting the current ID and the job ID, the login tag management unit 202 hands over the login tag 60 of the user to the login management unit 201 (S3).
  • the login management unit 201 delivers information specifying the accepted job, for example, a control statement and a login tag 60 corresponding to the user account ID to the job scheduler 210.
  • the job scheduler 210 requests the calculation node 3 to execute the assigned job in accordance with the login tag 60 that has been delivered. At this time, the job scheduler 210 may process the job in order to assign the information specifying the accepted job to each of the plurality of calculation nodes 3 as an assigned job.
  • the job scheduler 210 logs in to the calculation node 3 using the current ID described in the login tag 60 as the user account ID.
  • the login to the calculation node 3 starts the calculation node management unit 301 in the login calculation node 3.
  • the job scheduler 210 delivers information specifying the assigned job together with the job ID described in the login tag 60 to the computation node management unit 301 and makes a process execution request (S4).
  • the information for designating the job includes the location of the program to be executed, the name, parameters passed to the program, and the like.
  • the information specifying the job may include a login tag.
  • the job scheduler 210 waits for completion of processing in the computation node 3 (S5). While waiting for the completion of processing, the CPU 30 of the computation node 3 executes the designated allocation job with the designated job ID. Then, after the execution of the allocation job is completed, the computation node management unit 301 moves the processing result stored in the local file system 300 to the communication area of the global file system 9.
  • the forest area of the global file system 9 may be identified by, for example, a job ID.
  • the calculation node management unit 301 transmits a notification of completion of the designated assignment job to the job scheduler 210 of the login node 2.
  • a current ID that is, a work account ID
  • a job ID are specified in the completion notification.
  • the job scheduler 210 notifies the login management unit 201 of the completion of the job in the calculation node 3.
  • the login management unit 201 acquires the processing result from the global file system 9 and stores it in the user's home directory (S6). In this case, for example, the processing result is stored in the communication area specified by the job ID on the global file system 9.
  • the login management unit 201 inquires of the user account ID indexing unit 205 about the user account ID of the user.
  • the user account ID indexing unit 205 specifies the user account ID of the user from the login tag 60 specified by the current ID and the job ID. Then, the login management unit 201 identifies the user's home directory from the login management file 4 based on the user account ID.
  • the login management unit 201 stores the processing result of the area specified by the current ID and the job ID on the global file system 9 in the user's home directory.
  • the login management unit 201 executes the process of S6 for all the computation nodes 3 that have requested execution of job processing.
  • FIG. 15 is a diagram illustrating a processing flow in the calculation node 3.
  • the CPU 30 of the computation node 3 executes the processing of FIG. 15 by the computation node management unit 301 that is expanded in the main storage device 31 in an executable manner.
  • the CPU 30 receives a login request for the computing node 3 and authenticates it (S11). This process is the same as S1 in FIG. 14 except that the user account ID at the time of the login request is the current ID of the login tag, that is, the work account ID.
  • the computation node management unit 301 is activated.
  • the CPU 30 receives a job execution request from the login node 2 through the processing of the calculation node management unit 301 (S12).
  • the job execution request for example, the location of the program to be executed, parameters passed to the program, and the like are specified.
  • the CPU 30 activates the assignment job in the calculation node 3 through the processing of the calculation node management unit 301. Then, the CPU 30 waits for completion of the assignment job (S15).
  • the CPU 30 transfers the processing result from the local file system 300 of the calculation node 3 to the global file system 9 through the processing of the calculation node management unit 301 (S16). Then, the CPU 30 transmits a completion report to the login node 2 through the processing of the calculation node management unit 301 (S17). At this time, all the contents of the current ID directory of the work calculation node are deleted. This is to prevent the next user from leaking data and to allow the next user to freely use the directory. Another object is not to cause local file system depletion because data is not stored.
  • ⁇ Effect> As described above, according to the information system 1, even when a process for registering a new user occurs, the process for registering a new user is completed in the login node 2.
  • a work account ID is set in advance in the calculation node 3.
  • a work account registered in the calculation node 3 is associated with the user account ID of the user who has made the job execution request in the login node 2. An ID is given. Therefore, it is not necessary to perform user registration in the calculation node 3 at the time of new user registration. Therefore, the login node 2 does not have to interrupt the processing in the calculation node 3 for user registration.
  • the new user registration processing is not waited until the processing at the computation node 3 is completed. Therefore, if a further job can be submitted according to the operation status of the computing node 3, a newly registered user can execute the job without waiting from user registration to job execution. The possibility increases.
  • the same work account information may be copied to all the calculation nodes when the information system 1 is constructed, as described in step A2 of FIG. . Therefore, the time cost can be reduced as compared with the case where user registration is sequentially executed from the login node 2 to all the calculation nodes 3.
  • the work account information of the calculation node 3 managed by the login node 2 side and the work account information on the calculation node 3 side are also copied. It is easy to ensure consistency. In addition, it is easy to ensure consistency with the work account information among a large number of computing nodes 3. Therefore, when the login node 2 requests job execution from the calculation node 3, it is possible to reduce the possibility of inconvenience of requesting job execution by a work account ID not registered in the calculation node 3.
  • the work account ID is registered in advance. Therefore, as the number of users at the login node 2 increases, the number of user registrations at the calculation node 3 does not increase. Therefore, in the calculation node 3, home directory creation, work disks, and the like accompanying new user registration are fixed in the state at the time of construction of the information system 1. Therefore, the resource allocation in the calculation node 3 does not occur as the number of users in the login node 2 increases. Therefore, it is possible to suppress the possibility that the resources of the calculation node 3 or the capacity of the storage device is insufficient due to the increase in the number of users of the information system 1.
  • the login node 2 can easily manage the relationship between the work account ID of the calculation node 3 and the job ID corresponding to the user account ID of the login node 2 based on the login tag 60 when executing the job. Also, by acquiring the user account ID based on the current ID information in the login tag 60, it is possible to transfer job execution result data existing in the local file system 300 of the calculation node 3 to the user's home directory. become. That is, the login tag 60 can easily and centrally manage the relationship between the local file system 300 of the computing node 3 and the home directory of the user of the login node 2.
  • the login management unit 201 simply calculates the corresponding user account ID of the login node 2 from the worker account ID and the job ID of the completed job. Can be specified. The identification is performed by a unified operation of searching the login tag storage unit 6.
  • a system on a network in which an LDAP server manages clients according to LDAP can be exemplified.
  • the LDAP server manages, for example, user account information of the first node and user account information of the second node.
  • the first node inquires of the LDAP server about user account information.
  • the second node inquires of the LDAP server about user account information.
  • the information system 1 can acquire work account information in each calculation node 3 exemplified as the second node within the login node 2 exemplified as the first node. Therefore, the information system 1 can suppress the problems of the LDAP server load and the network load that occur in the LDAP server.
  • the information system 1 according to the second embodiment will be described with reference to FIGS.
  • the processing of the information system 1 that gives the work account ID to the user of the login node 2 at the time of job execution by registering the work account ID in advance in the calculation node 3 is exemplified.
  • the relationship between the user account ID of the login node 2, the current ID (that is, the work account of the calculation node 3), and the job ID is described in the login tag 60 and managed.
  • the second embodiment an example of processing for specifying the priority order of jobs according to the value of the current ID will be described.
  • other configurations and operations of the information system 1 are the same as those in the first embodiment. Therefore, among the constituent elements of the information system 1, the same constituent elements as those in the first embodiment are denoted by the same reference numerals as those in the first embodiment, and the description thereof is omitted.
  • each computation node 3 when an allocation job is executed, the priority of the allocation job may be specified. For example, designation of high urgency, normal, low urgency, etc.
  • the job urgency management is executed by, for example, a job management unit that is one of the functions of the OS in the calculation node 3.
  • a mechanism that can be designated with simple processing as much as possible while suppressing the communication load is desirable.
  • the urgency value designated from the login node 2 to the calculation node 3 is set by the current ID value. Therefore, the current ID is used for both the designation of the work account ID for specifying the user in the calculation node 3 and the designation of the priority of the job executed by the work account ID.
  • FIG. 16 illustrates a processing example of job priority control using the current ID.
  • the current ID of job A is 100.
  • the job management unit starts job B.
  • the CPU 30 of the computation node 3 temporarily stops execution of job A and starts execution of job B.
  • the job management unit resumes the execution of job A that has been paused.
  • job management unit of the calculation node 3 receives an execution request for job B by interrupt processing. Then, the job management unit of the calculation node 3 waits for execution start of the job B that has received the execution request (S31-S32). Then, the job management unit of the computation node 3 compares the current ID of job A with the current ID of job B (S22). This process is called job swap determination.
  • the job management unit temporarily stops the execution of job A having a large current ID (S23), and saves the execution state of job A and the execution result until halfway (S24). Further, the job management unit of the calculation node 3 puts the job A in a state of waiting for completion of the job B (S25). Then, the job management unit starts execution of job B (S33). Then, after execution of job B is completed (S34), the job management unit of the computation node 3 resumes execution of job A (S26).
  • the current ID value is also used for job priority designation, so that the login node 2 can be easily and inexpensively connected to the calculation node 3. You can specify and control job priority.
  • the processing example in which the priority of the job is specified by the value of the current ID has been described.
  • the specification by the current ID is not limited to the priority of the job, and the user who requests the execution of the job Alternatively, it can be used to specify various orders from the login node 2 to the calculation node 3.
  • Computer-readable recording medium A program for causing a computer or other machine or device (hereinafter, a computer or the like) to realize any of the above functions can be recorded on a recording medium that can be read by the computer or the like.
  • the function can be provided by causing a computer or the like to read and execute the program of the recording medium.
  • a computer-readable recording medium is a recording medium that stores information such as data and programs by electrical, magnetic, optical, mechanical, or chemical action and can be read from a computer or the like.
  • Examples of such a recording medium that can be removed from a computer or the like include a flexible disk, a magneto-optical disk, a CD-ROM, a CD-R / W, a DVD, a Blu-ray disk, a DAT, an 8 mm tape, a flash memory, and the like.
  • cards There are cards.
  • a recording medium fixed to a computer or the like there are a hard disk, a ROM (read only memory), and the like.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

 第1ノードに登録済みの第1ユーザ識別情報により第1処理の実行要求を受け付け、第1処理の少なくとも一部に相当する第2処理を実行する1以上の第2ノードと連携する第1ノードのコンピュータが、第2ノードに登録済みの第2ユーザ識別情報を第1ユーザ識別情報に割り当てる識別情報割当手段と、第1ユーザ識別情報による第1処理の実行要求に対して、第2ユーザ識別情報を用いて、第2ノードでの第2処理の実行を制御する実行制御手段と、を有する。

Description

コンピュータ、コンピュータシステム、方法、およびプログラム
 本発明は、コンピュータ、コンピュータシステム、方法、およびプログラムに関する。
 従来の複数ノードを含むコンピュータシステムとしては、例えば、第1ノードとしてのログインノードと、第2ノードとしての計算ノードを含むものを例示できる。第1ノードは、コンピュータシステムのユーザインターフェースを提供するものが多い。第1ノードの呼称は複数あり、第1ノードは、例えば、ログインノード、インタラクティブノード、あるいは親ノードと呼ばれることもある。
 第2ノードは、第1ノードからの要求に応じて、例えば、計算処理その他様々な処理の実行を主に担当する。第2ノードは、計算ノード、演算ノード、処理ノード、子ノード等とも呼ばれる。このようなコンピュータシステムとしては、スーパーコンピュータやPC(Personal Computer)クラスタと呼ばれるものを例示できる。
 従来システムの一例としては、複数のノードを含むコンピュータシステムでは、以下のような手続きで、ユーザ識別情報が第1ノードと第2ノードに登録される。ユーザ識別情報は、例えば、ユーザ名等を含み、ユーザアカウント情報とも呼ばれる。
(手続き1)第1ノードにユーザ識別情報が登録される。例えば、システム管理者が第1ノードで、ユーザ登録のために用意されているuseradd等のコマンドを実行し、ユーザ識別情報を登録する。
(手続き2)第2ノードに、第1ノードと同一のユーザ識別情報が登録される。例えば、システム管理者が第2ノードで、ユーザ登録のために用意されているuseradd等のコマンドを実行し、ユーザ識別情報を登録する。第2ノードが複数ある場合には、システム管理者は、第2ノードのそれぞれにおいて、ユーザ識別情報を登録する。
 登録されたユーザ識別情報を基に、第1ノードは、ユーザ用のホームディレクトリ領域をユーザ識別情報が登録されたユーザに割り当てる。また、各第2ノードは、ユーザ用のホームディレクトリ領域をユーザ識別情報が登録されたユーザに割り当てる。
特表2007-518169号公報 特開平1-177736号公報 特表2008-511931号公報
 しかしながら、第1ノードへのユーザ識別情報の登録以外に、第2ノードにもユーザ識別情報の登録処理を実施する従来のシステムでは、様々な問題が生じる。例えば、第2ノードで実行中の処理と、第2ノードへのユーザ識別情報の登録処理とでどちらかの処理が優先的に実行された場合に、優先されなかった処理が遅延する。また、例えば、第2ノードの数が増加し、システムが大規模となった場合に、ユーザ識別情報の登録処理のための手間、コスト等が増大する。さらには、複数ノード間で登録されるユーザ識別情報の整合性も問題となる。
 以下に開示される実施形態の技術は、以上のような、第1ノードへのユーザ識別情報の登録の際に、第2ノードにユーザ識別情報を登録するために生じる問題を解決することを課題とする。
 本実施形態の一側面は、処理の実行を要求する要求元を識別するための第1ユーザ識別情報により第1処理の実行要求を受け付ける第1ノードと、第1ノードで実行要求を受け付けた第1処理の少なくとも一部に相当する第2処理を実行する1以上の第2ノードと、を含むコンピュータシステムにおける、第1ノードに用いられるコンピュータによって例示される。このコンピュータは、第2ノードに登録済みの第2ユーザ識別情報を第1ユーザ識別情報に割り当てる識別情報割当手段と、第1ユーザ識別情報による第1処理の実行要求に対して、第2ユーザ識別情報を用いて、第2ノードでの第2処理の実行を制御する実行制御手段と、を有する。
 ここで、第2ユーザ識別情報を用いて、第2ノードでの第2処理の実行を制御するとは、例えば、第2ユーザ識別情報による第2処理の実行を第2ノードに要求することをいう。この場合、第2ユーザ識別情報は、第2ノードに登録済みであるので、第2処理の実行要求時に、第2ノードに第2ユーザ識別情報を登録しなくてもよい。また、第2ユーザ識別情報は、識別情報割当手段によって、第1ユーザ識別情報に予め割り当てられている。
 したがって、第1ノードが第1ユーザ識別情報により第1処理の実行要求を受け付けると、第1ノードは、第1ユーザ識別情報に割当られた第2ユーザ識別情報と用いて、第1処理の少なくとも一部に相当する第2処理を第2ノードでの実行を制御できる。また、例えば、第1ノードに対して第1ユーザ識別情報を登録する場合でも、第1ユーザ識別情報に対して、すでに第2ノードに登録済みの第2ユーザ識別情報を割り当てておけばよい。つまり、第2ノードに、新たにユーザ識別情報を登録しなくてもよい。
 本システムによれば、第1ノードと第2ノードを含むシステムにおいて、第1ノードへのユーザ識別情報の登録の際に、第2ノードにユーザ識別情報を登録することに伴って生じる問題を低減できる。
図1は、比較例に係る情報システムを例示する図である。 図2は、比較例に係る情報システム問題点を例示する図である。 図3は、比較例に係る情報システム問題点を例示する図である。 図4は、比較例に係る情報システム問題点を例示する図である。 図5は、実施例1に係る比較例に係る情報システム問題点を例示する図である。 図6は、情報システムの構成を例示する図である。 図7は、ログイン管理部の構成を例示する図である。 図8は、ログインノードのハードウェア構成を例示する図である。 図9は、計算ノードのハードウェア構成を例示する図である。 図10は、情報システムの構築工程を例示する図である。 図11は、ログインノードにおけるユーザアカウント情報の設定工程を例示する図である。 図12は、情報システムの運用工程を例示する図である。 図13は、ログインタグを例示する図である。 図14は、ジョブ実行要求時のログインノードでの処理フローを例示する図である。 図15は、計算ノードでの処理フローを例示する図である。 図16は、カレントIDを用いたジョブの優先度制御の処理例を例示する図である。 図17は、実施例2に係る情報システムの計算ノードでの処理フローを例示する図である。
 以下、図面を参照して本発明を実施するための最良の形態(以下、実施形態という)に係る情報システムについて説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成には限定されない。
[比較例]
 まず、図1から図4に、比較例に係る情報システム501について説明する。情報システム501は、ログインノード502と、計算ノード503を複数含む計算ノード群とを有している。ログインノード502および計算ノード503は、それぞれ、CPU(Central Processing Unit)、主記憶装置、通信インターフェース等を有するコンピュータである。なお、計算ノード503には、さらに、外部記憶装置を有するタイプのものと、外部記憶装置を有しないタイプのものがある。
 ログインノード502と計算ノード503とは、通信インターフェースを介して、相互に接続されている。それぞれのノードの通信インターフェースは、ネットワークにアクセスし、他のノードとの通信機能を自ノードのCPUに提供する。ログインノード502と計算ノード503とを接続するネットワークは、例えば、LAN(Local Area Network)、InfiniBand(商標)、クロスバースイッチ等を含むものであってもよい。
 情報システム501の構築手順が図1のフローチャートに例示されている。情報システム501では、例えば、システム管理者がuseradd等、ログインノード502で提供されているコマンドを用いて、新規ユーザ登録を実施する(S501)。
 次に、システム管理者の操作にしたがい、ログインノード502は、各計算ノード503に対して、useraddコマンドにより各計算ノード503にユーザ登録を依頼する。あるいは、ログインノード502は、各計算ノード503に、登録するユーザアカウント情報、例えば、ユーザアカウントID(Identifier)、パスワード等とともに、ユーザ登録依頼を送信する。すると、依頼を受けた計算ノード503は、送信されたユーザアカウント情報を登録する(S502)。登録の結果、登録されたユーザアカウントIDによる計算ノード503の利用が可能となる。
 図2に、比較例に係る情報システム501の問題点1を例示する。図2は、いずれかの計算ノード503において実行される処理の時間経過を例示する。図2では、実行中の処理として、ユーザ登録処理、計算処理A、計算処理B、計算処理Cが例示されている。
 図2おいて、計算処理A、B、Cは、例えば、並列実行される処理である。並列実行は、例えば、複数のCPUによってコンピュータプログラムを複数並列に実行する処理でもよいし、また、単一のCPUによって複数のプロセスを切り替えて見かけ上並列に実行する処理でもよい。
 ここでは、計算処理A、B、Cが並列実行されているときに、ユーザ登録処理がさらに実行される場合を想定する。例えば、ログインノード502からの要求を受け付けて、計算ノード503のCPUが、ユーザ登録処理を実行する場合を考える。この場合、ユーザ登録処理を実行するため、計算ノード503のCPUが実行中の処理には割り込みが発生し、例えば、実行中の計算処理Aが中断する。ここで、割り込みは、例えば、OSのプロセススケジューリングにしたがって、計算処理Aを中断するものでもよい。
 いずれにしても、計算処理Aが中断され、代わって、ユーザ登録処理が実行される。そして、ユーザ登録処理が終了後、再度、計算処理Aが再開される。計算処理Aは、例えば、OSのプロセススケジューリングにしたがって再開される。以上のように、ログインノード502からの要求にしたがって、計算ノード503でユーザ登録処理が実行されると、計算ノード503のいずれかの処理、例えば、計算処理Aが中断され、計算処理Aの進捗が遅延する。
 このような計算処理Aの進捗の遅延の影響は、単に、計算処理Aに留まらない場合がある。例えば、計算処理B、C等、他の処理が所定の同期ポイントで計算処理Aを待ち合わせているような場合である。所定の同期ポイントで待ち合わせるとは、例えば、計算処理B、C等、他の処理が計算処理Aの処理結果を利用する場合が相当する。そのような同期ポイントでの待ち合わせの場合に、計算処理Aの進捗が遅延すると、計算処理B、C等、他の処理において、同期待ちが発生し、情報システム501全体に遅延が波及する場合がある。
 図3に、比較例に係る情報システム501の問題点2を例示する。図3の構成および処理で、図2と同一の構成および処理については、同一の符号を付してその説明を省略する。ここでは、S502で示す各計算ノード503での新規ユーザ登録を多数回実行することによる問題を検討する。
 ログインノード502は、S502の処理をそれぞれすべての計算ノード503に対して実行する。したがって、ログインノード502は、ユーザ登録の完了確認を行い(S503)、さらに、全計算ノード503に対して、S502のユーザ登録を完了したか否かを判定する(S504)。そして、新規ユーザの登録が未完了の計算ノード503がある場合、ログインノード502は、制御をS502に戻し、新規ユーザの登録が未完了の計算ノード503に対して、S502の処理を実行する。
 以上のように、全計算ノード503に、S502の処理を繰り返して実行する結果、多数の計算ノード503を含む情報システム501において、新規ユーザの登録処理が繰り返し実行され、計算処理とユーザの登録処理を含む全ての処理の完了に時間を要するという問題が生じる。
 図4に、比較例に係る情報システム501の問題点3を例示する。図4の情報システム501は、ログインノード502と、計算ノード503-(n)、503-(n+1)、503-(n+2)、・・・、503-(n+x)を含む。なお、計算ノード503-(n+x)等を総称する場合には(nとxは0以上の整数)、単に、計算ノード503と呼ぶことにする。
 それぞれの計算ノード503では、図2、図3に示した処理の結果、ユーザアカウントを管理する管理ファイル、例えば、/etc/passwdファイル等に、登録対象のユーザアカウント情報が登録される。しかしながら、計算ノード503の数が多数となると、登録されたユーザアカウント情報が、すべての計算ノード503で完全に同一ではない場合が生じる。例えば、システム管理者によるユーザ情報の登録時のオペレーションミス、あるいは、ログインノード502と計算ノード503との間の通信上の問題等に起因して、計算ノード503のいずれかで、ログインノード502が登録依頼したユーザアカウント情報が、計算ノード503の管理ファイルに登録されていないことが生じ得る。すなわち、ログインノード502と計算ノード503との間で、ユーザアカウント情報を管理する管理ファイルの整合性が確保されていない場合が生じ得る。そのような整合性のない管理ファイルを有する計算ノード503-pに対しては、ログインノード502からログインができない。その結果、計算ノード503-pにおいて、整合性がないユーザアカウント情報を用いた場合にジョブの実行ができないという問題が生じる。
 例えば、ログインノード502に登録済みのユーザアカウントID U1が、計算ノード503-pには登録されていないとする。また、ユーザアカウントID U1は、計算ノード503-p以外の計算ノード3には登録されていると仮定する。このような場合に、ログインノード502が、各計算ノード3にユーザアカウントID U1によってジョブの実行を依頼した場合を考える。すると、ログインノード502が各計算ノード503に依頼したジョブのうち、計算ノード503-pに依頼したジョブは実行されず、情報システム501での実行結果が保証できないものとなる。
 図4の例では、計算ノード503-(n)、503-(n+1)、503-(n+2)等では、ユーザアカウント情報が、ログインノード502で管理されているユーザアカウント情報と一致すると仮定している。また、計算ノード503-(n+x)では、ユーザアカウント情報が、ログインノード502で管理されているとものと一致せず、不完全であると仮定している。例えば、計算ノード503-(n)、503-(n+1)、503-(n+2)等のユーザアカウントIDの"user-xyz"が、計算ノード503-(n+x)には存在せず、"user-xyz"の代わりに、"USER-DIFF"が、登録されていると仮定している。このような場合に、ログインノード502が、計算ノード群に、ユーザアカウントIDの"user-xyz"によるジョブの実行を依頼すると、計算ノード503-(n+x)では、ジョブの実行が受け付けられない結果となる。
<システム構成例>
 図5に、情報システム1を例示する。情報システム1は、例として、ログインノード2、計算ノード群3A、およびグローバルファイルシステム9を含む。また、図5の例では、ユーザ端末8が情報システム1と接続されている。ここで、ユーザ端末8は、情報システムに接続可能なものであればよく、ユーザ端末8の種類に特に限定はない。例えば、情報システム1が企業等の組織内のLANあるいは専用線から接続可能なものであれば、ユーザ端末8は、そのようなLANあるいは専用線に接続可能なコンピュータ、端末等であればよい。また、例えば、情報システム1がインターネット等の公衆網から接続可能なものであれば、ユーザ端末8は、そのような公衆網に接続可能なコンピュータ、端末等であればよい。
 情報システム1のユーザは、ユーザ端末8を通じて、情報システム1に種々の処理を依頼する。ユーザ端末8としては、例えば、ネットワークを通じて情報システム1と接続されるパーソナルコンピュータを例示できる。また、ユーザ端末8は、ログインノード2に接続されたシステムコンソールのような端末であってもよい。ログインノード2が第1ノードの一例である。
 ログインノード2は、ログイン管理部201を有している。ログイン管理部201は、例えば、情報システム1の管理権限を有するユーザから、ユーザ端末8を通じて要求を受けて、ユーザアカウント情報をログインノード2に登録する。ここで、ユーザアカウント情報は、ログインノード2のユーザを認証するための情報である。ユーザアカウント情報は、例えば、ユーザアカウントID、パスワード、ホームディレクトリ、シェルの指定を含む。
 そして、ユーザからのログイン要求に対して、ログインノード2は、登録されたユーザアカウント情報にしたがって、ログイン要求を受け付けるか否かを決定する。ユーザアカウント情報を登録済みのユーザからのログイン要求に対して、ログインが許可される。ログインが許可されると、ユーザには、ジョブの実行権限が付与される。ログインノード2は、ログインを許可したユーザから要求されたジョブを計算ノード群3Aの各計算ノード3に割り振る。ログイン管理部201は、実行制御手段の一例である。
 計算ノード群3Aは、複数の計算ノード3と、計算ノード3からアクセスされるローカルファイルシステム300とを有する。計算ノード3が第2ノードの例である。ローカルファイルファイルシステム300は、例えば、個々の計算ノード3に接続されたハードディスク等の外部記憶装置上のファイルシステムである。また、ローカルファイルファイルシステム300は、計算ノード群3A内で複数の計算ノード3によって共有される外部記憶装置上のファイルシステムであってもよい。
 グローバルファイルシステム9は、ログインノード2と計算ノード群3Aとの間で、共有されるファイルシステムである。グローバルファイルシステム9は、例えば、ログインノード2と計算ノード3とを接続するネットワーク上の外部記憶装置上に構築すればよい。
 図6に、情報システム1の構成を例示する。図6の情報システム1は、例として、ログインノード2、グローバルファイルシステム9、計算ノード3-0、3-X、3-Y、3-Z等を含み、他の構成は、省略されている。ログインノード2、グローバルファイルシステム9、計算ノード3-0、3-X、3-Y、3-Z等は、ネットワークを通じて、相互に接続される。実施例1では、ネットワークの種類に限定はない。ネットワークとしては、例えば、LAN(Local Area Network)、InfiniBand(商標)等、を利用すればよい。また、ネットワークは、インターコネクトやクロスバースイッチを含むものでもよい。なお、インターコネクトは、ノード間を接続する種々の方式のネットワークを含む。また、図5、図6では、ネットワークは、1つの線で描かれているが、複数の規格のネットワークを並列で用いてもよい。
 ログインノード2は、外部記憶装置上にローカルファイルシステム200を有する。また、ログインノード2は、ログイン管理部201を有する。ログイン管理部201は、ユーザから要求されたジョブをどの計算ノード3-0、3-X等に割り振るかを決定し、計算ノード3-0、3-X等にジョブの実行を要求する。また、ログイン管理部201は、計算ノード3-0、3-X等で実行された処理結果を受け取る。
 図6では、計算ノード3-0、3-X、3-Y、3-Z等が例示されているが、総称する場合には、計算ノード3という。計算ノード3の数は、情報システム1の仕様にしたがって決定すればよい。
 計算ノード3-0は、計算ノード管理部301-0を、計算ノード3-Xは、計算ノード管理部301-Xを有している。すなわち、図6では、計算ノード3-0、3-X等には、ローカルファイルシステムが明示されていない。すなわち、情報システム1に含まれる計算ノード3-0、3-X等は、ローカルファイルシステムを有しないタイプの例である。計算ノード3-0、3-X等は、処理する対象の情報、あるいは、処理した結果の情報を、例えば、主記憶装置等に記憶すればよい。また、計算ノード3-0、3-X等は、処理する対象の情報、あるいは、処理した結果の情報を、例えば、計算ノード3-0、3-X外部、例えば、ネットワーク上の外部記憶装置に設けられた共有のファイルシステム上に記憶するようにしてもよい。
 一方、計算ノード3-Yは、ローカルファイルシステム300-Yと計算ノード管理部301-Yを、計算ノード3-Zは、ローカルファイルシステム300-Zと計算ノード管理部301-Zを有している。なお、ローカルファイルシステム300-Y、300-Z、計算ノード管理部301-0、301-X、301-Y、301-Z等を総称する場合には、-0、-X、-Y、-Z等の枝番を除いた符号を用いる。
 計算ノード管理部301は、ログイン管理部201からの要求を受け付け、割り振られたジョブを実行する。そして、計算ノード管理部301は、ジョブの実行結果をログインノード2のログイン管理部201に引き渡す。計算ノード管理部301は、ログインノード2との通信機能、および、計算ノード3でのジョブの実行機能を有する。計算ノード3は、例えば、計算ノード管理部301としてコンピュータプログラムを実行する。
 計算ノード管理部301の実行手順に限定はない。例えば、常駐プロセス、あるいは、デーモンプロセスとして、計算ノード3の起動とともに、計算ノード管理部301が起動されるようにしてもよい。また、例えば、ログインノード2から、計算ノード3に登録されたユーザアカウントIDに対してログインが実行されたときに、ログインプロシジャとして、計算ノード管理部301が当該ログイン処理を実行するようにしてもよい。その場合のログインプロシジャは、例えば、シェルスクリプトとして記述されたものであってもよい。
 グローバルファイルシステム9は、例えば、ログインノード2および計算ノード3からアクセスができるように、ネットワーク上の外部記憶装置上に構築される。ログインノード2および計算ノード3は、いずれも、グローバルファイルシステム9に対して、データの書き込みと読み出しが可能である。グローバルファイルシステム9は、例えば、ネットワークに接続されるコンピュータの外部記憶装置を用いて、リモートファイルシステムとして構築可能である。
 図7に、ログイン管理部201の構成を例示する。ログイン管理部201は、ジョブスケジューラ210、ログインタグ管理部202、カレントID割当部203、ジョブID割当部204、ユーザアカウントID割出部205を有する。
 ログイン管理部201は、ログインノード2に設けられたログイン管理ファイル4、ログインタグ格納部6を参照し、ジョブスケジューラ210、ログインタグ管理部202、カレントID割当部203、ジョブID割当部204、ユーザアカウントID割出部205等により、ログインノード2の処理を実行する。
 ジョブスケジューラ210は、ユーザから要求されたジョブを1または複数の計算ノード3に割り当て、実行を依頼する。また、ジョブスケジューラ210は、計算ノード3で実行されたジョブの実行結果を取得する。
 ログインタグ管理部202は、ログインノード2で新たにユーザアカウントIDが定義されたときに、初期状態でログインタグ60を作成し、ログインタグ格納部6に格納する。ログインタグ格納部6は、グローバルファイルシステム9上にあってもよいし、ログインノード2のローカルファイルシステム200にあってもよい。
 ログインタグ60は、ジョブスケジューラ210がユーザから実行要求されたジョブを1以上の計算ノード3に割り振るための管理情報である。ログインタグ60は、ログインノード2にログインしたユーザのユーザアカウントIDと、計算ノード3にログインするときのユーザアカウントIDであるカレントIDと、計算ノード3で実行されるジョブのジョブIDとを含む。
 カレントIDは、あらかじめ情報システム構築時に計算ノード3に登録された複数の作業用ユーザアカウントIDの一つであり、かつ、ジョブ実行時ジョブ毎に付加される作業用ユーザアカウントIDである。作業用のユーザアカウントIDと呼ぶのは、カレントIDとなる計算ノード3のユーザアカウントIDが計算ノード3での処理実行時に用いられるからである。そこで、カレントIDとなる計算ノード3のユーザアカウントIDは、ワークアカウントIDとも呼ばれる。つまり、計算ノード3のユーザアカウントIDは、ログインノード2から、計算ノード3にジョブの実行を依頼するときに、作業用として使用されるので、ワークアカウントIDと呼ばれる。一方、計算ノード3に登録済みのワークアカウントIDのうち、ログインタグ60に付与されたワークアカウントIDをカレントIDと呼ぶのである。すなわち、カレントIDは、ログインノード2のユーザアカウントIDに対して、計算ノード3に登録済みのワークアカウントIDの中から割り当てられる。本実施形態で、ワークアカウントIDという用語を用いるのは、ログインノード2のユーザアカウントIDと区別するためのであり、ワークアカウントIDは、計算ノード3で定義されたユーザアカウントIDである。また、ワークアカウントIDという用語を用いるのは、ログインタグ60に付与されていない、ユーザアカウントIDをログインタグに付与済みのもの(カレントID)と区別するためのである。
 例えば、ユーザがログインノード2にログインすると、そのユーザのユーザアカウントIDに対して、計算ノード3でジョブを実行するためのワークアカウントIDが付与され、ジョブの実行環境が用意される。このワークアカウントIDがカレントIDとなる。また、ユーザが1つのユーザアカウントIDにおいて、複数のジョブの並列実行を依頼する場合には、ログインノード2がジョブの実行要求を受け付けたときに、ジョブ毎に異なるワークアカウントIDをカレントIDとして付与するようにすればよい。 ユーザが計算ノード3でジョブを実行するために、ワークアカウントIDが一時的な計算処理用のユーザアカウントIDとして使用される。
 ログインノード2のユーザアカウントIDに付与される計算ノード3のワークアカウントIDをカレントIDと呼ぶ。
 ログインタグ60は、ログインノード2のユーザアカウントIDと計算ノード3のワークアカウントIDであるカレントIDとの対応関係を含み、関係情報の一例である。また、ログインノード2のユーザアカウントIDが、第1ユーザ識別情報の一例である。さらに、ワークアカウントIDが、第2ユーザ識別情報の例である。さらに、ログインタグ格納部6が、関係情報の記憶手段の一例である。
 カレントID割当部203は、ユーザが例えば、ログインノード2にログインし、ジョブの実行を要求したときに、ジョブの実行を要求したユーザに、計算ノード3上で定義済みのワークアカウントIDを付与する。カレントID割当部203は、計算ノード3で登録済みのユーザアカウントIDのうち、どのユーザアカウントIDがカレントIDとして割り当て可能であるかを管理する。カレントID割当部203は、識別情報割当手段の一例である。
 例えば、カレントID割当部203は、計算ノード3で使用中のワークアカウントIDおよび空いているワークアカウントIDを管理するワークアカウント管理表203Aを有する。ワークアカウント管理表203Aには、計算ノード3に予め登録済みのワークアカウントIDの一覧と、計算ノード3のワークアカウントIDのうち、空きのワークアカウントIDの一覧と使用中のワークアカウントIDを保持する。空きのワークアカウントIDとは、計算ノード3に登録済みのワークアカウントIDで、ログインノード2のユーザアカウントIDに割り当てられていないワークアカウントIDをいう。
 なお、使用中のワークアカウントIDおよび空いているワークアカウントIDの具体的な管理方法としては、様々なものがあり得る。例えば、計算ノード3に登録済みのワークアカウントIDの一覧に対して、空きビットで、空きか、空きでないかを示すようにすればよい。あるいは、空きのワークアカウントIDをポインタでつないだリスト構造に保持して管理してもよい。
 ジョブID割当部204は、ジョブの実行を要求するユーザにジョブIDを付与する。ジョブID割当部203は、ジョブIDを管理するジョブID管理表204Aを有する。ジョブID管理表204Aには、使用中のジョブIDの管理記録、または未使用のジョブIDの管理記録を保持する。使用中のジョブIDの管理記録とは、例えば、現在、ログインタグ60に設定済みのジョブIDをいう。
 ユーザアカウントID割出部205は、ユーザアカウントIDとワークアカウントID(カンレントID)の関係を導き出す部分である。
 具体的な利用方法は、計算ノード3でのジョブの実行が終了したときに、計算ノード3でのジョブ実行時のカレントIDを基に、ユーザアカウントIDを逆引きする。この逆引き方法は、ユーザアカウントIDとワークアカウントIDの関係を特定する手段によって実行される処理手順の一例である。
ログイン管理部201は、逆引きの結果を基に、ログインノード2において、ユーザアカウントIDのユーザのホームディレクトリ等の処理結果収集場所に、各計算ノードで処理したジョブの実行結果を書き込む。また、ユーザアカウントID割出部205は、第1ノード蓄積部と第2ノードにおいて第2ユーザ識別情報で特定されるユーザに係る情報を蓄積可能な第2ノード蓄積部との関係を特定する特定手段の一例としてもよい。
<ハードウェアの構成例>
 図8に、ログインノード2のハードウェア構成を例示する。ログインノード2は、CPU20、主記憶装置21、外部記憶装置22、着脱可能記憶装置23、通信装置24、入力装置25、表示装置26を有する。ただし、他のコンピュータ、例えば、ネットワーク上の端末からログインノード2にログインすることによって、ユーザの入力を受け付ける構成の場合には、入力装置25、表示装置26等を省略してもよい。
 CPU20は、主記憶装置21上に実行可能に展開されたコンピュータプログラムを実行することにより、ログインノード2の機能とサービスをユーザに提供する。CPU11は、1個に限定されず、複数のコアを含むものでもよい。
 主記憶装置21は、CPU20が実行するコンピュータプログラム、あるいは、CPU20が処理するデータを格納する。主記憶装置21は、不揮発性のROM(Read Only Memory)と、揮発性のDRAM(Dynamic Random Access Memory)とを含むようにしてもよい。
 外部記憶装置22は、主記憶装置21に実行可能に展開されるコンピュータプログラム、CPU20が処理するデータ、処理後のデータ等を保存する。外部記憶装置22は、不揮発性の記憶装置である。外部記憶装置22は、ハードディスク駆動装置、フラッシュメモリ等によるソリッド・ステート・ドライブ(SSD:Solid State Drive)等である。外部記憶装置22には、ローカルファイルシステム200等が構築される。
 着脱可能記憶装置23は、可搬型の記憶媒体、例えば、フラッシュメモリカード、CD(Compact Disc)、DVD(Digital Versatile Disk)、ブルーレイディスク(Blu-ray Disc)等の入出力装置である。なお、通信装置24を通じて、コンピュータプログラム、データ等をログインノード2に読み込ませる場合、あるいは、ログインノード2のコンピュータプログラム、データ等をネットワーク上の他のコンピュータ上の記憶装置にバックアップを作成する場合には、着脱可能記憶装置23は、なくてもよい。
 通信装置24は、図6に示したログインノード2、計算サーバ3等のコンピュータを接続するネットワークへのアクセス装置である。したがって、通信装置24は、ネットワークの種類に応じた規格によるインターフェースを有する。通信装置24は、例えば、LANにアクセスするNIC(Network Interface Card)等である。また、通信装置24は、InfiniBand(商標)、等の規格にしたがったインターフェースを含む装置でもよい。また、通信装置24は、クロスバーやインターコネクトを含むネットワークへのインターフェースであってよい。なお、図8では、通信装置24は、1つのボックスで表されているが、複数の規格の規格にしたがったインターフェースを並列で設けてもよい。
 入力装置25は、キーボード、ポインティングデバイス等である。表示装置26は、例えば、液晶ディスプレイ、エレクトロルミネッセンスパネル等である。ただし、以上のようなハードウェア構成例に限定される訳ではない。
 図9に、計算ノード3のハードウェア構成を例示する。計算ノード3の構成は、着脱可能記憶装置23、入力装置25、表示装置26が省略されている点を除外すると、ログインノード2の構成とほぼ同様である。ただし、計算ノード3が着脱可能記憶装置23、入力装置25、表示装置26等を有するものでもよい。図9の例では、計算ノード3は、CPU30、主記憶装置31、外部記憶装置32、通信装置34を有する。これらの構成および作用は、ログインノード2のCPU20、主記憶装置21、外部記憶装置22、通信装置24と同様であるので、その説明を省略する。CPU30が実行部の一例である。なお、図9では、外部記憶装置32が示されているが、計算ノード3には、外部記憶装置32を搭載しているタイプのものと、外部記憶装置32を搭載していないものがある。
 <処理例>
 図10から図13により、実施例1に係る情報システム1を説明する。実施例1では、(1)情報システム1の構築工程、(2)ログインノード2におけるユーザアカウント情報の設定工程、および(3)ジョブ実行工程に分けて、情報システム1で実行される処理を説明する。
 図10は、情報システム1の構築工程を例示する図である。図10のように、情報システム1は、例えば、計算ノード群3Aとして、計算ノード3-0、3-1、3-2、・・・、3-Xを含む。計算ノード3-0等は、総称として、単に計算ノード3とも呼ばれる。情報システム1の構築工程は、ワークアカウント作成工程(工程A1)と、ワークアカウント情報コピー工程(工程A2)を含む。
 <工程A1>
 工程A1は、計算ノード3で処理を実行する作業用のユーザアカウント情報を複数作成する工程である。工程A1では、例えば、いずれかのノード(管理ノードと呼ぶ)が、ユーザインターフェースを通じて、システム管理者等のユーザ入力を検出し、管理ノードにおいて、作業用のユーザアカウント情報をワークアカウント管理ファイル4Aに格納する。
 管理ノードは、いずれかの計算ノード3であってもよいし、図6に示すログインノード2であってもよい。また、管理ノードは、図5に示したユーザ端末8であってもよい。システム構築者、又は、システム管理者は、管理ノードのユーザインターフェースを通じて、作業用のユーザアカウント情報を複数個入力する。
 作業用のユーザアカウント情報は、例えば、ワークアカウントID、パスワード、ホームディレクトリ、およびシェルの指定を含む。ただし、ワークアカウントID、パスワード、ホームディレクトリ、シェル等のワークアカウント情報の要素は、例示であり、これらに限定されるわけではない。また、設定された作業用のユーザアカウント情報が格納されるワークアカウント管理ファイル4Aは、例えば、/etcディレクトリのpasswdファイルである。ただし、ワークアカウント管理ファイル4Aとして、他のディレクトリの他のファイル名のファイルを用いてもよい。
 図10の例では、ワークアカウント管理ファイル4Aには、1行に1つのワークアカウントが設定されている。1行のワークアカウント情報は、各行の先頭から、ワークアカウントID、パスワード、ホームディレクトリ、およびシェルの指定が、コロン(:)で区切られて、格納されている。また、図10のワークアカウント管理ファイル4A内には、数字でユーザワークアカウントIDが”1”から”1000”まで1000ユーザ分設定されている。また、図10の例では、パスワードは、暗号化されている。さらに、ワークアカウントIDがk(k=1から1000)のホームディレクトリは、本実施例では、/home/kとした。さらに、シェルは、/bin/bashが指定されている。ただし、これらのワークアカウント情報は、例示であり、計算ノード3のワークアカウント情報の設定が図10に限定されるわけではない。
 <工程A2>
 工程A2は、管理ノードのワークアカウント管理ファイル4Aを計算ノード群3Aの計算ノード3にコピーする工程である。例えば、管理ノードにおけるユーザの指示にしたがって、管理ノードが実行工程A2を実行するようにしてもよい。また、工程A1の完了時に、管理ノードが工程A2を自動的に実行するようにしてもよい。工程A2により、計算ノード3のそれぞれには、ワークアカウント管理ファイル4Aがコピーされる。例えば、それぞれの計算ノード3の/etc/passwdファイルに、ワークアカウント管理ファイル4Aの内容がコピーされる。
 図11は、ログインノード2におけるユーザアカウント情報の設定工程を例示する図である。ログインノード2におけるユーザアカウント情報の設定工程は、新規ユーザアカウント作成工程(工程B1)と、ログインタグ作成工程(工程B2)を含む。
 <工程B1>
 工程B1は、新規にログインノード2においてユーザアカウント情報を設定する工程である。ユーザアカウント情報の設定は、ユーザ登録とも呼ばれる。情報システム1において実行されるジョブは、ログインノード2に登録されたユーザアカウント情報で規定されるユーザによって起動される。そのため、工程B1は、新規に情報システム1のユーザを設定する工程ということもできる。
 工程B1では、例えば、ログインノード2が、ユーザインターフェースを通じて、システム管理者等のユーザ入力を検出し、ログインノード2において、ユーザアカウント情報をログイン管理ファイル4に格納する。ユーザは、ログインノード2のユーザインターフェースを通じて、新規のユーザアカウント情報を入力する。
 ログインノード2で設定されるユーザアカウント情報は、例えば、ログイン管理ファイル4に格納される。ユーザアカウント情報は、例えば、ユーザアカウントID、パスワード、ホームディレクトリ、シェルの指定を含むようにすればよい。ただし、ユーザアカウント情報は、ユーザアカウントID、パスワード、ホームディレクトリ、シェルの指定に限定されるわけではない。また、設定されたワークアカウント情報が格納されるログイン管理ファイル4は、例えば、/etcディレクトリのpasswdファイルである。ただし、ログイン管理ファイル4として、他のディレクトリの他のファイル名のファイルを用いてもよい。なお、情報システム1では、ログインノード2において新規にユーザアカウント情報が登録された場合でも、計算ノード3のワークアカウント情報は変更されない。
 <工程B2>
 工程B2では、ログインノード2は、ログインタグ60を作成する。ログインタグ60は、例えば、ユーザアカウントID、カレントID、およびジョブIDを含む。ユーザアカウントIDは、ログインノード2にログインするユーザを特定する情報である。また、カレントIDは、ログイン管理ファイル4内のユーザアカウントIDと関連づけられるワークアカウント管理ファイル4AのワークアカウントIDである。すなわち、カレントIDは、各計算ノード3にログインする際に用いられる作業用のアカウントIDであり、各計算ノード3でジョブを実行するユーザを識別する情報となる。
 以上のように、ログインタグ60は、ログインノード2にログインするユーザアカウントIDと、計算ノード3のワークアカウントIDとを関連づける。また、ログインタグ60は、ユーザアカウントIDとワークアカウントIDの組に対して、ジョブIDを関連づける。したがって、ログインタグ60によって、ログインノード2にログインしたユーザが実行するジョブと、そのジョブを計算ノード3で実行するユーザのワークアカウントIDが特定される。そのため、ユーザアカウントID、ワークアカウントID、およびジョブIDのいずれかが異なる場合に、異なるログインタグ60が作成される。
 図11の例では、カレントIDと、ジョブIDとが"Nothing"に設定されている。"Nothing"は、カレントIDと、ジョブIDとが未設定であることを示す。実施例1では、ログインノード2に新たに、ユーザアカウントIDが登録されたときに、ログインノード2が、登録されたユーザアカウントIDに対応づけて、新たに、ログインタグ60を作成する。ただし、ユーザアカウントIDが登録された後、登録されたユーザアカウントIDのユーザがログインノード2にログインしていない状態では、カレントIDと、ジョブIDとが"Nothing"に設定されている。
 そして、ユーザアカウントIDで指定されるユーザがログインノード2にログインすると、ログインしたユーザのユーザアカウントIDで検索されるログインタグ60に、ワークアカウントIDとジョブIDが設定される。そして、ログインしたユーザがログインノード2でジョブの起動を要求すると、要求されたジョブは、ログインタグ60の情報を基に各計算ノード3に実行依頼される。なお、ジョブが起動されたときに、ログインタグ60に、ワークアカウントIDが設定されるようにしてもよい。また、ジョブが起動されたときに、ジョブIDが決定され、ログインタグ60に設定されるようにしてもよい。そして、各計算ノード3では、カレントIDで指定されるワークアカウントIDによってジョブが実行される。さらに、各計算ノード3でのジョブが終了すると、ジョブの実行結果は、ログインタグ60を基に、ジョブの起動を要求したユーザに引き渡される。
 <工程C>
 図12に、情報システム1の運用形態(工程C)を例示する。図12の例では、ユーザアカウントIDが一例として“ABC”である場合のユーザアカウント情報がログイン管理ファイル4に登録済みであるとする。したがって、ユーザアカウントIDがABCであり、カレントIDとジョブIDがNothingのログインタグ60がすでに作成済みであるとする。以下、情報システム1の運用形態(工程C)を工程C1~C6に分けて説明する。なお、図12では、工程C1-C6を単にC1-C12の符号で示している。
(工程C1)
 まず、ユーザABCはログインノード2にログインする。工程C1では、ログインノード2は、ユーザの入力を受け付け、入力されたユーザアカウントID、パスワード等を取得する。そして、ログインノード2は、ユーザ入力から取得したユーザアカウントIDとパスワードとがログイン管理ファイル4に登録されたものであるか、否かを確認する。確認が正常終了すると、ユーザのログインが許可される。
(工程C2)
 次にログイン管理部201は、ログインタグ管理部202に、ログインしたユーザのログインタグ60の設定を要求する。ログインタグ60の設定は、ユーザがログインノード2にログインしたときでもよいし、または、ユーザがジョブの実行を要求したときでもよい。
 ログインタグ管理部202は、現在、ユーザアカウントIDまたは他のジョブに割り当てられていないカレントID(使用可能なカレントID)をカレントID割当部203から取得する。すでに、図7で説明したように、カレントID割当部203は、計算ノード3に登録されたワークアカウントIDのうち、使用可能なワークアカウントIDの一覧をワークアカウント管理表203Aに保持している。
 また、ログインタグ管理部202は、他のユーザアカウントIDまたは他のジョブに割り当てられていない、使用可能なジョブIDをジョブID割当部204から取得する。ジョブID割当部204は、使用可能なジョブIDの一覧をジョブID管理表204Aに保持している。ログインタグ管理部202は、使用可能なカレントIDとジョブIDをログインしたユーザのログインタグ60に書き込む。あるいは、ログインタグ管理部202は、使用可能なカレントIDとジョブIDを、ジョブの実行を要求したユーザのログインタグ60に書き込む。
 なお、ジョブの実行が完了すると、ログイン管理部201は、ジョブスケジューラ210からジョブの実行が完了したジョブで使用されたジョブIDと、そのジョブIDのジョブを計算ノード3で実行したカレントIDを引き渡される。すると、ログイン管理部201は、完了したジョブのカレントID、すなわち、ワークアカウントIDをカレントID割当部203に引き渡す。すると、カレントID割当部203は、実行が完了したジョブで使用されたワークアカウントIDであるカレントIDをユーザに払い出されていない、使用可能なワークアカウントIDの一覧に追加する。
 また、ログイン管理部201は、実行が完了したジョブのジョブIDをジョブID割当部204に引き渡す。ジョブID割当部204は、実行が完了したジョブのジョブIDをユーザに払い出されていない使用可能なジョブIDの一覧に追加する。 図12には示されていないが、ユーザはログインノード2のユーザインターフェースを通じて、ジョブ作成のための情報を入力する。すると、ログインノード2のユーザインターフェースは、入力された情報にしたがって、ジョブの制御文を作成し、ログイン管理部201を通じてジョブの実行をジョブスケジューラ210に要求する。ジョブスケジューラ210は、ユーザインターフェースを通じて実行要求されたジョブを各計算ノード3に割り振る機能を有する。
 ジョブスケジューラ210は、実行要求を計算ノード3に分配することを目的にジョブを加工する。ジョブを加工するとは、例えば、複数のプログラムの実行を含むジョブを複数のジョブに区分し、区分されたジョブにそれぞれ異なる計算ノード3を割り当てることを可能する、等のジョブの変更をいう。
 このようなジョブの加工は、ジョブスケジューラ210により自動実行されてもよいし上位のミドルウェアによって上部実行指示をされてもよい。ここでは、ジョブスケジューラを使用した場合を説明する。ジョブスケジューラ210は、ジョブで指定されているコンピュータプログラムの実行形式を解析して、並列実行可能な命令群を自動抽出することによって、単一のジョブを複数のジョブに分割してもよい。また、ジョブを分割する分割数は、ジョブの中に指定されていてもよい。さらに、ジョブを分割する分割単位をユーザがジョブの中にマニュアルで指定しておいてもよい。例えば、ジョブで指定された複数のプログラムが互いに並列に実行可能であることをユーザがジョブ内に指定しておいてもよい。以下、それぞれの計算ノード3が担当できるように加工されたジョブを割当ジョブと呼ぶ。割当ジョブは、第2処理の一例である。ジョブの実行要求を受け付けると、ジョブスケジューラ210は、次に、工程C3を実行する。
(工程C3)
 次にジョブスケジューラ210は、ログインタグに書かれたカレントIDをワークアカウントIDとして、各計算ノード3にログインする。ジョブスケジューラ210がログインした計算ノード3には、ログインの結果として、ワークアカウントIDで実行される計算ノード管理部301が起動される。ただし、計算ノード管理部301は、計算ノード3の起動とともに起動される、デーモン等の常駐プロセスであってもよい。
(工程C4)
 そして、ログインノード2で実行中のジョブスケジューラ210は、ログイン先の計算ノード3で起動された計算ノード管理部301に、それぞれの計算ノード3に割り振られた割当ジョブの起動を依頼する。ジョブスケジューラ210は、それぞれの計算ノード3に、カレントIDとジョブIDによって特定される割当ジョブを指定した制御文を送信する。
 すると、計算ノード3で起動された計算ノード管理部301は、引き渡された制御文にしたがって、計算ノード3内で割当ジョブを起動する。より具体的には、計算ノード管理部301は、計算ノード3のOSに割当ジョブの実行を要求する。各計算ノード3は、要求された割当ジョブを実行する。なお、図12は、割当ジョブとして、計算処理を例示しているが、割当ジョブの処理自体に限定はない。
(工程C5)
 割当ジョブの実行中、計算ノード3は、ジョブの実行を依頼したワークアカウントIDで特定されるユーザのディレクトリとして、ローカルディスク内の作業用ホームディレクトリを一時的に使用する。例えば、図10に示した/home/カレントIDの記号/の配下が、中間ファイル、ジョブ管理データ、処理結果のデータを格納する格納先として用いられる。
(工程C6)
 ジョブが終了すると、計算ノード管理部301は、割当ジョブの完了をログインノード2のジョブスケジューラ210を通じてログイン管理部201に通知する。また、計算ノード管理部301は、作業用ホームディレクトリにあったジョブの実行結果をグローバルファイルシステム9の所定領域、例えば、ログインノード2との通信を行なう場合に用いられる通信領域に書き出す。 ログイン管理部201は、ユーザアカウント割出部205にユーザアカウントの割り出しを要求する。ユーザアカウント割出部205は、ジョブID、カレントIDを基に、ログインタグ60を検索し、ユーザアカウントIDを特定する。すると、ログインノード2のログイン管理部201は、計算ノード3の最終生成データを通信領域からグローバルディスク上のユーザABC用のホームディレクトリに書き出す。このようにして、ログインノード2のログイン管理部201は、各計算ノード3のジョブによる処理結果を集めて最終結果データとしてグローバルディスク上のジョブ実行要求元であるユーザABCのホームディレクトリに書き出す。
 なお、ここでは、計算ノード管理部301がグローバルファイルシステム9の通信領域にジョブの最終結果を書き出し、ログインノード2のログイン管理部201がユーザABC用のホームディレクトリに書き出す例を説明した。しかし、このような処理に代えて、例えば、計算ノード管理部301が、ログインタグ60内のカレントIDとジョブIDからこのジョブの管理用のログインタグ60を検索するようにしてもよい。計算ノード管理部301が、ログインタグ60を検索する場合には、例えば、ログインタグ60をグローバルファイルシステム9に保持すればよい。
 そして、計算ノード管理部301が、検出されたログインタグ60からユーザアカウントIDを取得し、ユーザアカウントIDからグローバルディスク上のユーザABCのホームディレクトリを特定してもよい。そして、計算ノード管理部301が、自計算ノード3のジョブによる処理結果を結果データとしてグローバルディスク上の、ジョブ実行要求元であるユーザABCのホームディレクトリに書き出すようにしてもよい。
 さらに、ジョブ分配時にログインタグも分配されれば、外部と通信することなしに、ジョブの最終処理結果をユーザABCのホームディレクトリ(ジョブの最終結果書き出し場所の一例)へ書き出すことができる。
<データ例>
 図13に、ログインタグ格納部6に記憶されたログインタグ60の例を示す。ログインタグ記憶部60は、例えば、ログインノード2のローカルファイルシステム200、または情報システム1のグローバルファイルシステム9に設けられる。また、ログインタグ管理部202が、ログインタグ60の生成、値の設定、読み出し等の処理を実行する。
 図13では、ログインタグ60の例として、ログインタグ60-1、60-2、60-3が例示されている。以下、総称する場合には、ログインタグ60-1等を単にログインタグ60と呼ぶ。ログインタグ60は、同一のユーザアカウントIDに対して、複数のカレントIDを付与することで、複数生成することができる。
 ユーザは、複数のログインタグ60を付与されることで、複数のジョブを情報処理装置1で並行して実行することができる。例えば、図12の例では、ログインタグ60-1のように、ユーザアカウントID=ABCのユーザは、カレントID=100によって、ジョブID=5678の実行が可能となっている。さらに、ユーザアカウントID=ABCのユーザは、ログインタグ60-3のように、カレントID=300によって、ジョブID=1234の実行が可能となっている。
<処理フロー>
 図14に、ジョブ実行要求時のログインノード2での処理フローを例示する。ジョブ実行要求を受け付ける前提として、まず、ユーザがログインノード2にログイン要求する(S1)。ログインノード2のOSは、入力装置25から入力されるユーザアカウントID、パスワード等と、ログイン管理ファイル4に格納されたユーザアカウントID、パスワード等とを比較する。そして、比較の結果、入力装置25からの入力情報と、ログイン管理ファイル4の登録情報が合致すると、ログイン要求の認証が成功し、ユーザのログインが許可される。
 以下、例えば、ログインノード2のCPU20は、主記憶装置21に展開されたコンピュータプログラムであるログイン管理部201を実行する。ただし、以下の処理は例示であり、情報システム1の処理が以下の構成に限定されるわけではない。なお、ログイン管理部201として、コンピュータプログラムを実行するCPU20が実行制御手段の一例である。
 S1によるログインが許可されると、次に、ユーザは、例えば、入力装置25と表示装置26を通じて、ジョブの実行要求を行う。CPU2が実行するユーザインターフェースプログラムは、ユーザからのジョブ実行要求を受け付けると(S2)、ログイン管理部201に、受け付けたジョブの実行要求を引き渡す。
 ログイン管理部201は、ユーザアカウントIDを指定して、ログインタグ管理部202に、ログインタグ60の設定を要求する。ログインタグ管理部202は、カレントID割当部203に対して、空きのワークアカウントIDを問い合わせる。カレントID割当部203は、すでに他のユーザに割り当て済みの割り当て済みワークアカウントIDを除外して、空きワークアカウントIDをログインタグ管理部202に返信するとともに、返信した空きワークアカウントIDを割り当て済みカレントIDとして、記憶する(S3)。なお、割り当て済みカレントIDを記憶する代わりに、未割当のワークアカウントIDから、上記返信した空きワークアカウントIDを除外するようにしてもよい。また、図14では、ジョブ実行要求を受け付けた後に、ログインタグ60に空きワークアカウントIDを割り当てるが、ワークアカウントIDの割り当ては、ユーザがログインしたときに行ってもよい。
 また、ログインタグ管理部202は、ジョブID割当部204に、未使用のジョブIDを問い合わせる。そして、ログインタグ管理部202は、ジョブID割当部204から未使用のジョブIDを受け取り、ログインタグ60に設定する。ジョブID割当部204が使用可能なジョブIDを特定できればよい。ログインタグ管理部202は、カレントIDと、ジョブIDとを設定した後、そのユーザのログインタグ60をログイン管理部201に引き渡す(S3)。
 ログイン管理部201は、受け付けたジョブを指定する情報、例えば、制御文と、ユーザアカウントIDに対応するログインタグ60をジョブスケジューラ210に引き渡す。ジョブスケジューラ210は、引き渡されたにログインタグ60にしたがって、計算ノード3に割当ジョブの実行を要求する。このとき、ジョブスケジューラ210は、受け付けたジョブを指定する情報を複数の計算ノード3に割当ジョブとしてそれぞれ割り当てるために、ジョブを加工してもよい。
 すなわち、ジョブスケジューラ210は、ログインタグ60に記述されたカレントIDをユーザアカウントIDとして、計算ノード3にログインする。計算ノード3へのログインによって、ログインされた計算ノード3で、計算ノード管理部301が起動される。そして、ジョブスケジューラ210は、ログインタグ60に記述されたジョブIDとともに、割当ジョブを指定する情報を計算ノード管理部301に引き渡し、処理実行要求を行う(S4)。ここで、ジョブを指定する情報は、実行されるプログラムの所在、名称、プログラムに引き渡すパラメータ等を含む。また、ジョブを指定する情報は、ログインタグを含む場合もある。
 そして、ジョブスケジューラ210は、計算ノード3での処理完了待ちの状態となる(S5)。処理完了待ちの間、計算ノード3のCPU30は、指定されたジョブIDにより、指定された割当ジョブを実行する。そして、割当ジョブ実行の完了後、計算ノード管理部301は、ローカルファイルシステム300に格納された処理結果をグローバルファイルシステム9の通信領域に移動する。なお、グローバルファイルシステム9の通林領域は、例えば、ジョブID等で識別するようにすればよい。
 そして、計算ノード管理部301は、指定された割当ジョブの完了通知をログインノード2のジョブスケジューラ210に送信する。完了通知には、例えば、カレントID(すなわち、ワークアカウントID)と、ジョブIDが指定される。
 処理完了が通知されると、ジョブスケジューラ210は、計算ノード3でのジョブの完了をログイン管理部201に通知する。ログイン管理部201は、グローバルファイルシステム9から、処理結果を取得し、ユーザのホームディレクトリに格納する(S6)。この場合、例えば、グローバルファイルシステム9上のジョブIDで特定される通信領域に、処理結果が格納される。ログイン管理部201は、ユーザのユーザアカウントIDをユーザアカウントID割出部205に問い合わせる。ユーザアカウントID割出部205は、カレントIDとジョブIDで特定されるログインタグ60から、ユーザのユーザアカウントIDを特定する。そして、ログイン管理部201は、ログイン管理ファイル4から、ユーザアカウントIDを基に、ユーザのホームディレクトリを特定する。
 そして、ログイン管理部201は、グローバルファイルシステム9上のカレントIDとジョブIDで特定される領域の処理結果をユーザのホームディレクトリに格納する。ログイン管理部201は、ジョブの処理実行要求を行ったすべての計算ノード3について、S6の処理を実行する。
 図15は、計算ノード3での処理フローを例示する図である。計算ノード3のCPU30は、主記憶装置31に実行可能に展開された計算ノード管理部301により図15の処理を実行する。
 まず、CPU30は、計算ノード3に対するログイン要求を受け付け、認証する(S11)。この処理は、ログイン要求時のユーザアカウントIDがログインタグのカレントID、すなわち、ワークアカウントIDである点以外は、図14のS1と同様である。ログイン要求が認証されると、計算ノード管理部301が起動する。
 次に、CPU30は、計算ノード管理部301の処理を通じて、ログインノード2からのジョブの実行要求を受信する(S12)。ジョブ実行要求には、例えば、実行するプログラムの所在、プログラムに引き渡すパラメータ等が指定されている。
 そして、CPU30は、計算ノード管理部301の処理を通じて、割当ジョブを計算ノード3において起動する。そして、CPU30は、割当ジョブの完了を待つ(S15)。
 起動した割当ジョブが完了すると、CPU30は、計算ノード管理部301の処理を通じて、処理結果を計算ノード3のローカルファイルシステム300からグローバルファイルシステム9に転送する(S16)。そして、CPU30は、計算ノード管理部301の処理を通じて、ログインノード2に、完了報告を送信する(S17)。また、この時、作業用計算ノードのカレントID用のディレクトリの中身を全て削除する。これは、次に使うユーザにデータを漏えいさせない為であり、かつ次のユーザがディレクトリを自由に使えるようにする為である。また、データを蓄積しないのでローカルファイルシステムの枯渇を発生させない目的もある。
 <効果>
 以上述べたように、情報システム1によれば、新規ユーザを登録する処理が発生した場合でも、新規ユーザを登録する処理は、ログインノード2内で完了する。一方、計算ノード3には、事前にワークアカウントIDが設定されている。ログインノード2に登録されたユーザからジョブの実行要求があった場合、ログインノード2内で、ジョブの実行要求を行ったユーザのユーザアカウントIDに関連づけて、計算ノード3で、登録済みのワークアカウントIDが付与される。したがって、新規ユーザ登録時に、計算ノード3にユーザ登録を行わなくてもよい。したがって、ログインノード2は、ユーザ登録のために、計算ノード3での処理に割り込まなくてもよい。その結果、新規ユーザ登録処理の影響を受けて、計算ノード3での処理が遅延することを抑制できる。さらに、情報システム1では、事前にワークアカウントIDが計算ノード3に登録されているので、新規ユーザ登録時に、計算ノード3でのユーザ登録に伴う時間的コスト、および通信コストを抑制できる。
 また、逆に、計算ノード3での処理を優先するために、計算ノード3での処理完了まで新規ユーザ登録処理が、待たされることもない。したがって、計算ノード3の運用状況に応じて、さらなるジョブを投入可能な場合には、ユーザ登録からジョブ実行に至るまで、待たされることなく、新規に登録されたユーザがジョブを実行することができる可能性も高まる。
 さらに、情報システム1では、計算ノード3が多数存在するシステムにおいても、図10の工程A2で説明したように、情報システム1の構築時に全計算ノードに、同一のワークアカウント情報をコピーすればよい。したがって、ログインノード2から、順次、すべての計算ノード3にユーザ登録を実行する場合と比較して、時間的コストを削減できる。
 さらに、また、すべての計算ノード3に、同一のワークアカウント情報をコピーすることによって、ログインノード2側が管理している計算ノード3のワークアカウント情報と、計算ノード3側のワークアカウント情報との間の整合性を確保することが容易となる。また、多数の計算ノード3の間で、ワークアカウント情報との間の整合性を確保することが容易となる。したがって、ログインノード2が計算ノード3にジョブ実行を要求する場合に、計算ノード3に登録されていないワークアカウントIDによって、ジョブ実行を要求するという不都合を生じる可能性を低減できる。
 さらにまた、計算ノード3においては、ワークアカウントIDが事前に登録されている。したがって、ログインノード2でのユーザ数の増加にしたがって、計算ノード3でユーザ登録数が増加することがない。したがって、計算ノード3において、新規ユーザ登録に伴う、ホームディレクトリ作成、作業用ディスク等は、情報システム1の構築時の状態で固定される。したがって、ログインノード2でのユーザ数増加に伴う、計算ノード3での資源割り当てが生じない。したがって、情報システム1のユーザ数増加によって、計算ノード3での資源、あるいは記憶装置等の容量が不足する可能性を抑制できる。
 ログインノード2は、ジョブの実行時に、ログインタグ60を基に、ログインノード2のユーザアカウントIDに対応する計算ノード3のワークアカウントID、および、ジョブIDの関係を簡易に管理できる。また、ログインタグ60中のカレントIDの情報を基に、ユーザアカウントIDを取得することで、計算ノード3のローカルファイルシステム300に存在するジョブ実行結果データをユーザのホームディレクトリに転送することが可能になる。すなわち、ログインタグ60によって、計算ノード3のローカルファイルシステム300と、ログインノード2のユーザのホームディレクトリとの関係を簡易に一元的に管理できる。例えば、計算ノード3が割当ジョブの完了をジョブコントローラ210に通知したときに、ログイン管理部201は、ワーカアカウントIDと、完了したジョブのジョブIDから、ログインノード2の該当するユーザアカウントIDを簡易に特定できる。また、その特定は、ログインタグ格納部6を検索するという一元的な作業で実施される。
 なお、複数のノードを含むシステムの他の例としては、LDAP(Lightweight Directory Access Protocol)にしたがって、LDAPサーバがクライアントを管理するネットワーク上のシステムを例示できる。LDAPサーバを用いるシステムでは、LDAPサーバが、例えば、第1ノードのユーザアカウント情報と、第2ノードのユーザアカウント情報を管理する。LDAPサーバを用いるシステムでは、ユーザが、第1ノード(ログインノード等)にログインするときに、第1ノードは、LDAPサーバに、ユーザアカウント情報を問い合わせる。また、ユーザが、第2ノードにログインするときに、第2ノード(計算ノード)は、LDAPサーバに、ユーザアカウント情報を問い合わせる。しかしながら、LDAPサーバを用いるシステムでは、各ノードから、LDAPサーバにユーザアカウント情報の問い合わせが発生する。このため、第2ノードの数が増加し、システムが大規模システムとなった場合に、LDAPサーバでの負荷、および、LDAPサーバと各ノードを接続するネットワークの負荷が問題となる。この点で、情報システム1は、第1ノードとして例示されるログインノード2内で、第2ノードとして例示される各計算ノード3でのワークアカウント情報を取得できる。したがって、情報システム1では、LDAPサーバで生じるようなLDAPサーバ負荷およびネットワーク負荷の問題は抑制できる。
 図16、図17を参照して、実施例2に係る情報システム1を説明する。実施例1では、計算ノード3に、事前にワークアカウントIDを登録することで、ジョブ実行時に、ログインノード2のユーザに、ワークアカウントIDを付与する情報システム1の処理を例示した。実施例1の処理では、ログインノード2のユーザアカウントIDと、カレントID(すなわち計算ノード3のワークアカウント)と、ジョブIDとの関係は、ログインタグ60に記述され、管理された。
 実施例2では、カレントIDの値によって、ジョブの優先順位を指定する処理例を説明する。実施例2において、情報システム1の他の構成および作用は、実施例1と同様である。そこで、情報システム1の構成要素のうち、実施例1と同一の構成要素は、実施例1と同一の符号を付してその説明を省略する。
 それぞれの計算ノード3において、割当ジョブを実行する場合に、割当ジョブの優先度が指定される場合がある。例えば、緊急度高、普通、緊急性度低等の指定である。ジョブの緊急度管理は、例えば、計算ノード3内のOSの機能の1つであるジョブ管理部が実行する。ただし、ログインノード2から計算ノード3に対して、緊急度を指定する場合に、極力単純な処理で、かつ、通信負荷を抑制して指定できる仕組みが望ましい。
 そこで、実施例2においては、カレントIDの値によって、ログインノード2から計算ノード3に指定する緊急度の値とする。したがって、カレントIDは、計算ノード3でのユーザを特定するワークアカウントIDの指定と、そのワークアカウントIDによって実行されるジョブの優先度の指定とを兼用することになる。
 図16に、カレントIDを用いたジョブの優先度制御の処理例を例示する。図16の例では、ノードn、ノードn+1、ノードn+2で例示される計算ノード3の時刻t=xにおいて、ジョブAが実行中である。ここで、ジョブAのカレントIDは、100である。
 次に、時刻t=x+1において、ジョブBの実行依頼が割り込み処理で受信されたとする。ジョブBのカレントIDは、50である。実施例2の情報システム1では、例えば、カレントIDが小さいほど、優先度が高いとする。
 すると、計算ノード3のジョブ管理部は、ジョブAのカレントIDと、ジョブBのカレントIDを比較する。そして、ジョブ管理部は、ジョブAよりもジョブBを優先して実行することを決定する。そこで、時刻t=x+2において、ジョブ管理部は、ジョブAの実行を停止し、ジョブAの実行状態および途中までの実行結果を待避用領域に待避する。例えば、ジョブAを実行中にジョブAの状態を管理しているレジスタセットを主記憶装置21に待避する。また、主記憶装置21に展開されていたプログラムおよびデータを外部記憶装置32に待避する。
 そして、ジョブ管理部は、ジョブBを起動する。この結果、計算ノード3のCPU30は、ジョブAの実行を一時止めて、ジョブBの実行を開始する。時刻t=x+3でジョブBが起動し、時刻t=x+4でジョブBが終了したとする。ジョブBの終了後、ジョブ管理部は、一時停止していたジョブAの実行を再開する。
 図17は、実施例2に係る情報システム1の計算ノード3での処理フローの例である。今、計算ノード3で、ジョブAがカレントID=100で実行中であるとする(S21)。
 次に、計算ノード3のジョブ管理部が割り込み処理によって、ジョブBの実行要求を受信したとする。すると、計算ノード3のジョブ管理部は、実行要求を受けたジョブBを実行開始待ちとする(S31-S32)。そして、計算ノード3のジョブ管理部は、ジョブAのカレントIDと、ジョブBのカレントIDを比較する(S22)。この処理をジョブのスワップ判定と呼ぶ。
 ジョブ管理部は、カレントIDが大きいジョブAの実行を一時停止し(S23)、ジョブAの実行状態および途中までの実行結果を待避する(S24)。さらに、計算ノード3のジョブ管理部は、ジョブAをジョブB完了待ちの状態とする(S25)。そして、ジョブ管理部は、ジョブBの実行を開始する(S33)。そして、ジョブBの実行完了後(S34)、計算ノード3のジョブ管理部は、ジョブAの実行を再開する(S26)。
 以上述べたように、実施例2の情報システム1によれば、カレントIDの値をジョブの優先度指定と兼用することで、ログインノード2から計算ノード3に対して、簡易かつ、低コストで、ジョブの優先度を指定し、制御させることができる。
 実施例2では、カレントIDの値によって、ジョブの優先度を指定する処理例を説明したが、カレントIDによる指定は、ジョブの優先度に限定されるわけではなく、ジョブの実行を依頼するユーザ、あるいは、ログインノード2から計算ノード3に対する様々な順序の指定に使用可能である。
 <コンピュータが読み取り可能な記録媒体>
 コンピュータその他の機械、装置(以下、コンピュータ等)に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
 ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、CD-ROM、CD-R/W、DVD、ブルーレイディスク、DAT、8mmテープ、フラッシュメモリ等のメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスクやROM(リードオンリーメモリ)等がある。
  1  情報システム
  2  ログインノード
  3  計算ノード
  3A 計算ノード群
  4  ログイン管理ファイル
  4A ワークアカウント管理ファイル
  6  ログインタグ格納部
  9  グローバルファイルシステム
 60  ログインタグ
201  ログイン管理部
202  ログインタグ管理部
203  カレントID割当部
204  ジョブID割当部
205  ユーザアカウントID割出部
210  ジョブスケジューラ
200,300  ローカルファイルシステム
301  計算ノード管理部

Claims (8)

  1.  処理の実行を要求する要求元を識別するための第1ユーザ識別情報により第1処理の実行要求を受け付ける第1ノードと、前記第1ノードで実行要求を受け付けた第1処理の少なくとも一部に相当する第2処理を実行する1以上の第2ノードと、を含むコンピュータシステムにおける、前記第1ノードに用いられるコンピュータであって、
     前記第2ノードに登録済みの第2ユーザ識別情報を前記第1ユーザ識別情報に割り当てる識別情報割当手段と、
     前記第1ユーザ識別情報による第1処理の実行要求に対して、前記第2ユーザ識別情報を用いて、前記第2ノードでの第2処理の実行を制御する実行制御手段と、を有することを特徴とするコンピュータ。
  2.  処理の実行を要求する要求元を識別するための第1ユーザ識別情報により第1処理の実行要求を受け付ける第1ノードと、前記第1ノードで実行の要求が受け付けられた第1処理の少なくとも一部に相当する第2処理を実行する1以上の第2ノードと、を備えたコンピュータシステムであって、
     前記第1ノードは、
      前記第2ノードに登録済みの第2ユーザ識別情報を前記第1ユーザ識別情報に割り当てる識別情報割当手段と、
      前記第1ユーザ識別情報による第1処理の実行要求に対して、前記第2ユーザ識別情報を用いて、前記第2ノードでの第2処理の実行を制御する実行制御手段と、を有し、
    前記第2ノードは、前記第1ノードからの前記第2ユーザ識別情報を用いた実行要求にしたがって前記第2処理を実行する実行部を有することを特徴とするコンピュータシステム。
  3.  前記第1ノードは、前記第1ユーザ識別情報と前記第1ユーザ識別情報に割り当てられた前記第2ユーザ識別情報との対応関係を示す関係情報の記憶手段をさらに有することを特徴とする請求項2記載のコンピュータシステム。
  4.  前記第1ノードは、前記関係情報を基に、前記第1ノードにおいて第1ユーザ識別情報に係る情報が蓄積可能な第1ノード蓄積部と前記第2ノードにおいて前記第2ユーザ識別情報に係る情報を蓄積可能な第2ノード蓄積部との関係を特定する特定手段をさらに有することを特徴とする請求項2または3記載のコンピュータシステム。
  5.  前記第2ユーザ識別情報は、順序付け可能に複数設けられ、前記順序付けされた順に、前記第2ユーザ識別情報を用いた実行要求に優先度が付与されることを特徴とする請求項2から4のいずれか1項に記載のコンピュータシステム。
  6.  処理の実行を要求する要求元を識別するための第1ユーザ識別情報により第1処理の実行要求を受け付ける第1ノードと、前記実行要求を受け付けた第1処理の少なくとも一部に相当する第2処理を実行する1以上の第2ノードと、を含むコンピュータシステムにおける、前記第1ノードのコンピュータが実行する制御方法であり、前記コンピュータが
     前記第2ノードに登録済みの第2ユーザ識別情報を前記第1ユーザ識別情報に割り当てるステップと、
      前記第1ユーザ識別情報による第1処理の実行要求に対して、前記第2ユーザ識別情報を用いて、前記第2ノードでの第2処理の実行を制御するステップと、を実行することを特徴とする情報処理方法。
  7.   処理の実行を要求する要求元を識別するための第1ユーザ識別情報により第1処理の実行要求を受け付ける第1ノードのコンピュータと、前記第1ノードで実行の要求が受け付けられた第1処理の少なくとも一部に相当する第2処理を実行する1以上の第2ノードのコンピュータと、を備えたコンピュータシステムによる情報処理方法であって、
      前記第1ノードのコンピュータが、前記第2ノードに登録済みの第2ユーザ識別情報を前記第1ユーザ識別情報に割り当てるステップと、
      前記第1ノードのコンピュータが、前記第1ユーザ識別情報による第1処理の実行要求に対して、前記第2ユーザ識別情報を用いて、前記第2ノードでの第2処理の実行を制御するステップと、
     前記第2ノードのコンピュータが、前記第1ノードからの前記第2ユーザ識別情報を用いた実行要求にしたがって前記第2処理を実行するステップを有することを特徴とする情報処理方法。
  8.  処理の実行を要求する要求元を識別するための第1ユーザ識別情報により第1処理の実行要求を受け付ける第1ノードと、前記実行要求を受け付けた第1処理の少なくとも一部に相当する第2処理を実行する1以上の第2ノードと、を含むコンピュータシステムにおける、前記第1ノードのコンピュータに実行させるプログラムであり、
     前記第2ノードに登録済みの第2ユーザ識別情報を前記第1ユーザ識別情報に割り当てるステップと、
     前記第1ユーザ識別情報による第1処理の実行要求に対して、前記第2ユーザ識別情報を用いて、前記第2ノードでの第2処理の実行を制御するステップと、を前記コンピュータに実行させることを特徴とするプログラム。
PCT/JP2011/050780 2011-01-18 2011-01-18 コンピュータ、コンピュータシステム、方法、およびプログラム WO2012098650A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/050780 WO2012098650A1 (ja) 2011-01-18 2011-01-18 コンピュータ、コンピュータシステム、方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/050780 WO2012098650A1 (ja) 2011-01-18 2011-01-18 コンピュータ、コンピュータシステム、方法、およびプログラム

Publications (1)

Publication Number Publication Date
WO2012098650A1 true WO2012098650A1 (ja) 2012-07-26

Family

ID=46515302

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/050780 WO2012098650A1 (ja) 2011-01-18 2011-01-18 コンピュータ、コンピュータシステム、方法、およびプログラム

Country Status (1)

Country Link
WO (1) WO2012098650A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0471058A (ja) * 1990-07-11 1992-03-05 Nec Corp 計算機システム
JPH0934822A (ja) * 1995-07-20 1997-02-07 Fuji Xerox Co Ltd 認証情報管理装置
JPH11353278A (ja) * 1999-03-25 1999-12-24 Hitachi Ltd 情報処理装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0471058A (ja) * 1990-07-11 1992-03-05 Nec Corp 計算機システム
JPH0934822A (ja) * 1995-07-20 1997-02-07 Fuji Xerox Co Ltd 認証情報管理装置
JPH11353278A (ja) * 1999-03-25 1999-12-24 Hitachi Ltd 情報処理装置

Similar Documents

Publication Publication Date Title
US10657061B1 (en) Resource distribution using attributes of versioned hash rings
US10873623B2 (en) Dynamically modifying a cluster of computing nodes used for distributed execution of a program
US11936731B2 (en) Traffic priority based creation of a storage volume within a cluster of storage nodes
US5687372A (en) Customer information control system and method in a loosely coupled parallel processing environment
WO2012066640A1 (ja) 計算機システム、マイグレーション方法及び管理サーバ
JP2008140120A (ja) 計算資源管理プログラム、計算資源管理装置および分散処理システム
US20100251255A1 (en) Server device, computer system, recording medium and virtual computer moving method
JP4748950B2 (ja) 記憶領域管理方法及びシステム
JP2009217314A (ja) 情報処理装置、サーバ、データ処理方法、記憶媒体、プログラム
JP6003590B2 (ja) データセンタ,仮想システムの複写サービスの提供方法,データセンタの管理サーバ及び仮想システムの複写プログラム
EP2108228A1 (en) Method, apparatus, and computer program product for data upload in a computing system
JP2005228278A (ja) 記憶領域の管理方法、管理装置及び管理プログラム
TW202004514A (zh) 雲端服務之權限管理方法及其系統
JP2008204120A (ja) コンピュータシステム
JP4629342B2 (ja) ストレージ装置およびその制御方法
CN102413156A (zh) 一种分布式数据存储系统和方法
US20120265956A1 (en) Storage subsystem, data migration method and computer system
JP5054220B1 (ja) 仮想データセンタシステム
JP2019061359A (ja) プログラム及び情報処理装置
CN105739930A (zh) 一种存储架构及其初始化方法和数据存储方法及管理装置
US20220269571A1 (en) Virtual machine configuration update technique in a disaster recovery environment
CN107329798B (zh) 数据复制的方法、装置和虚拟化系统
CA2176905A1 (en) Customer information control system and method with api start and cancel transaction functions in a loosely coupled parallel processing environment
JP5294014B2 (ja) ファイル共有方法、計算機システム及びジョブスケジューラ
JP6244496B2 (ja) サーバストレージシステムの管理システム及び管理方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11856323

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11856323

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP