WO2016110985A1 - 管理方法及び管理装置並びに記憶媒体 - Google Patents

管理方法及び管理装置並びに記憶媒体 Download PDF

Info

Publication number
WO2016110985A1
WO2016110985A1 PCT/JP2015/050412 JP2015050412W WO2016110985A1 WO 2016110985 A1 WO2016110985 A1 WO 2016110985A1 JP 2015050412 W JP2015050412 W JP 2015050412W WO 2016110985 A1 WO2016110985 A1 WO 2016110985A1
Authority
WO
WIPO (PCT)
Prior art keywords
file
server
load
server device
update data
Prior art date
Application number
PCT/JP2015/050412
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/JP2015/050412 priority Critical patent/WO2016110985A1/ja
Priority to US15/318,990 priority patent/US20170123731A1/en
Publication of WO2016110985A1 publication Critical patent/WO2016110985A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/154Networked environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/608Details relating to cache mapping

Definitions

  • the present invention relates to a management method, a management apparatus, and a storage medium, and is particularly suitable for application to a computer system to which a distributed shared file system function is applied.
  • files are distributed and arranged in storage devices respectively arranged in a plurality of I / O (Input / Output) servers or connected to a plurality of I / O servers, and these files are arranged in one file system.
  • I / O Input / Output
  • a distributed shared file system that can be used as a file system has become widespread (see Patent Document 1).
  • the distributed shared file system is characterized in that a file created by one client can be used by another client.
  • an I / O server to which the file is arranged is determined by round robin for each file. For this reason, when creating a file, the files are equally distributed to the respective I / O servers, and the load on the I / O servers is not biased.
  • the present invention has been made in consideration of the above points, and in a computer system to which a distributed shared file system is applied, effectively prevents a decrease in response performance of the entire system due to load imbalance among server devices. With the goal.
  • a file created by one or a plurality of clients is distributed and arranged in a plurality of server devices or storage devices respectively connected to a plurality of server devices.
  • a load information collection unit that collects information; a load determination unit that determines a load state of each of the server devices based on the collected load information; and a file that the client receives in response to an inquiry from the client
  • the server device to be read or written to is selected, and the selected server device is selected.
  • a write / read destination selection unit that notifies the client, and when the load of the server device on which the file is arranged when the file is updated is high, the write / read destination selection unit has a low load.
  • the server device is selected as a temporary storage destination of the update data of the file, the first step of notifying the selected server device to the Klein, and the load determination unit each periodically or irregularly
  • the server on which the load state of the server device is determined, the update data of the file arranged in any of the server devices is temporarily held in another server device, and the file is arranged
  • the update data is sent to the server on which the file is arranged with respect to the server apparatus that temporarily holds the update data.
  • a second step of giving an instruction to forward the device is sent to the server on which the file is arranged with respect to the server apparatus that temporarily holds the update data.
  • files created by one or a plurality of clients are distributed and arranged in a plurality of server devices or storage devices respectively connected to the plurality of server devices, and each of the files is used as one file system.
  • a management device that manages a computer system that can be used by each client
  • a load information collection unit that collects predetermined load information representing a load state of the server device from each server device, and each collected load information Based on the load determination unit for determining the load state of each of the server devices based on the inquiry from the client, the server device to which the client should read or write a file is selected, and the selected server
  • a write / read destination selection unit for notifying the client of the device, If the load on the server device on which the file is placed is high when the file is updated, the read / write destination selection unit selects another server device with a low load as a temporary holding destination for the update data of the file.
  • the selected server device is notified to the Klein, and the load determination unit determines the load state of each of the server devices regularly or irregularly, and is arranged in any of the server devices.
  • the server device temporarily holds the update data.
  • an instruction is given to transfer the update data to the server device in which the file is arranged.
  • a computer system in which a file created by one or a plurality of clients is distributed and arranged in a plurality of server devices in a storage medium, and each of the clients can use each of the files as one file system.
  • the client selects the server device to which the file should be read or written, and notifies the client of the selected server device .
  • the server device where the file is placed If the load is high, a third step of selecting another server device having a low load as a temporary storage destination of the update data of the file and notifying the selected server device to the Klein,
  • the load state of each of the server devices is irregularly determined, the update data of the file arranged in any of the server devices is temporarily held in another server device, and the file is arranged
  • the server device that temporarily holds the update data is instructed to transfer the update data to the server device on which the file is arranged.
  • a program for executing a process including steps is stored.
  • reference numeral 1 denotes a computer system according to this embodiment as a whole.
  • This computer system 1 is configured by connecting one or more clients 2, a plurality of I / O servers 3, and a management server 4 via a network 5.
  • the client 2 is a computer device used by a user to execute business, and includes information processing resources such as a CPU (Central Processing Unit) 10, a memory 11, and a disk device 12.
  • information processing resources such as a CPU (Central Processing Unit) 10, a memory 11, and a disk device 12.
  • the CPU 10 is a processor that controls the operation of the entire client 2.
  • the memory 11 is used mainly for storing various programs and also used as a work memory for the CPU 10.
  • the disk device 12 is composed of a hard disk device, for example, and is used for storing various programs and data for a long period of time.
  • the memory 11 of the client 2 stores a user program 13, an I / O processing unit 14, an I / O destination inquiry unit 15, and a data transmission unit 16.
  • the user program 13 is a program that executes various processes according to the business of the user who uses the client 2, and the I / O processing unit 14 performs I / O processing in response to an I / O request from the user program 13.
  • Is a program having a function of executing.
  • the I / O destination inquiry unit 15 is a program having a function of inquiring the management server 4 about the I / O server 3 to be the I / O destination of the file in response to a request from the I / O processing unit 14.
  • the data transmission unit 16 is a program having a function of issuing an I / O request to the I / O server 3 notified from the I / O destination inquiry unit 15.
  • the I / O server 3 is a server device that provides a storage area for reading and writing information to the client 2.
  • the I / O server 3 is a large-capacity nonvolatile storage device 20 and a controller 21 that controls data input / output with respect to the storage device 20. It consists of.
  • the storage device 20 includes, for example, a magnetic disk device such as a plurality of hard disk devices, a semiconductor memory device such as SSD (Solid State Drive), or a RAID (Redundant Array of Inexpensive Disks).
  • a magnetic disk device such as a plurality of hard disk devices
  • a semiconductor memory device such as SSD (Solid State Drive)
  • a RAID Redundant Array of Inexpensive Disks
  • the controller 21 includes a CPU 22, a memory 23, a cache memory 24, and the like.
  • the CPU 22 is a processor that controls operation of the entire I / O server 3.
  • the memory 23 is used not only for storing various programs but also as a work memory for the CPU 22.
  • the cache memory 24 is a semiconductor memory used for temporarily holding data input / output to / from the I / O server 3.
  • the memory 23 of the controller 21 stores a data reception unit 25, a cache management unit 26, and a load information transmission unit 27 as shown in FIG.
  • the data receiving unit 25 is a program having a function of receiving file data of a file to be written transmitted from the client 2 and temporarily storing it in the cache memory 24.
  • the cache management unit 26 is a program having a function of managing file data stored in the cache memory 24 and storing the file data in the storage device 20 at an appropriate timing.
  • the load information transmission unit 27 is a program having a function of transmitting, to the management server 4, load information to be described later indicating the load state of the own I / O server 3 in response to a request from the management server 4.
  • the management server 4 is a server device that manages the I / O of the client 2 with respect to the I / O server 3, and includes information processing resources such as a CPU 30, a memory 31, and a disk device 32. Since the CPU 30, the memory 31, and the disk device 32 have the same configuration and functions as the corresponding parts (the CPU 10, the memory 11, or the disk device 12) of the client 2, description thereof is omitted here.
  • the memory 31 of the management server 4 includes a load information collection unit 33, a load determination unit 34, an I / O server selection unit 35, a load management table 36, a file location management table 37, and a cache management table. 38 are stored. Details of these will be described later.
  • the computer system 1 is equipped with a distributed shared file system function capable of providing a distributed shared file system that can distribute the load of the I / O server 3.
  • the client 2 creates a new file (writes a new file) and reads or writes (updates) the I / O server 3.
  • the management server 4 is inquired about the I / O server 3 on which the file should be created, read or written (updated).
  • the management server 4 manages the load status of each I / O server 3, the location of each file, and the like. For example, the client 2 receives an inquiry about the I / O server 3 where a new file is to be placed. In such a case, one I / O server 3 is selected from the I / O servers 3 with a low load, and the client 2 is notified of the I / O server 3 as an I / O destination.
  • the management server 4 When the client 2 receives an I / O destination query when reading a file from the client 2, the management server 4 notifies the client 2 of the I / O server 3 in which the file is placed as the I / O destination. . Thus, the client 2 transmits an I / O request to the I / O server 3 notified from the management server 4, thereby storing a new file in the I / O server 3, or the I / O server. 3 reads out the file data of the desired file.
  • the management server 4 (hereinafter referred to as the I / O server on which the file to be written (updated) is arranged. (Referred to as the present I / O server) 3 is determined.
  • the management server 4 determines that the load on the I / O server 3 is low, the management server 4 notifies the client 2 of the I / O server 3 as the write destination (I / O destination) of the update data of the file.
  • the client 2 transmits an I / O request to the I / O server 3 notified from the management server 4, thereby writing update data in the I / O server 3.
  • the management server 4 determines that the load of the main I / O server 3 of the file is high, the management server 4 temporarily holds the update data of the other I / O server 3 with low load (hereinafter, This is called a cache) and is selected as an I / O destination to be notified, and the selected I / O server is notified to the client 2.
  • the client 2 transmits an I / O request and update data to the I / O server 3 notified from the management server 4.
  • the update data is temporarily stored (cached) in the cache memory 24 of the I / O server 3.
  • the client 2 is the one in which the update data is temporarily written in the I / O server 3 so that the I / O server 3 does not write the update data in the storage device 20 (FIG. 1). Notify that there is. Further, when the update data is completely written to the I / O server 3, the client 2 notifies the management server 4 to that effect.
  • the management server 4 receives the I / O of the file from another client 2.
  • the I / O server 3 (this I / O server 3 and / or the update data of the file is cached as the actual storage destination of the file data)
  • the I / O server 3 is notified to the client 2 as the I / O destination.
  • the management server 4 notifies the client 2 of the I / O server 3 that caches update data as the I / O destination.
  • the client 2 that has received the notification performs I / O for writing update data of the file and I / O for reading the file to the I / O server 3 notified from the management server 4.
  • the management server 4 constantly monitors the load state of each I / O server 3, and when the load of the I / O server 3 that has been high until then decreases, the I / O server 3 is cached in another I / O server 3, the cached update data is transferred to this I / O server 3. Give instructions to return.
  • the I / O server 3 to which such an instruction is given transfers the update data of the file cached at that time to the I / O server 3.
  • the management server 4 counts the number of times update data of each file has been cached in an I / O server 3 other than the I / O server 3 (hereinafter referred to as the number of transfers).
  • the management server 4 is a case where the number of transfers exceeds a predetermined threshold (hereinafter referred to as a transfer count threshold), and the ratio of the update data to the file size of the file is determined in advance. If the threshold value (for example, 50 [%], hereinafter referred to as the cache size ratio threshold value) is exceeded, the I / O server 3 caches the updated data from the I / O server 3 at that time. An instruction is given to the I / O server 3 to move to the O server 3.
  • a predetermined threshold hereinafter referred to as a transfer count threshold
  • the I / O server 3 to which such an instruction is given transfers all the file data of the file to the I / O server 3 that caches the update data of the file, and also transfers the file data of the file. All data are deleted from the storage device 20 (FIG. 1) and the cache memory 24 (FIG. 1).
  • the memory 31 of the management server 4 includes the load information collection unit 33, the load determination unit 34, and the like as described above with reference to FIG.
  • An I / O server selection unit 35, a load management table 36, a file location management table 37, and a cache management table 38 are stored.
  • the load information collection unit 33 is a program having a function of collecting predetermined information (hereinafter referred to as load information) indicating the load state from each I / O server 3 existing in the computer system 1.
  • load information predetermined information
  • the load information collection unit 33 uses the ratio of file data that is not yet stored in the storage device 20 out of all file data held in the cache memory 24 as load information of the I / O server 3. (Hereinafter referred to as the cache dirty rate), the file data fragmentation rate in the cache memory 24 (hereinafter referred to as the cache fragment rate), and the number of write / read system calls per second (hereinafter referred to as the cache fragment rate).
  • the file fragment rate is included in the load information even if the number of system calls per second is small, the I / O server 3 having a high file fragmentation rate in the cache memory 24 updates the file. This is because the time load increases.
  • the load determination unit 34 is a program having a function of determining the load state of each I / O server 3 based on the load information collected from each I / O server 3 by the load information collection unit 33. In practice, the load determining unit 34 determines whether any one of the above-described cache dirty rate, cache fragment rate, and system call number is a first threshold value (hereinafter referred to as a predetermined threshold value) that is predetermined for each of the cache dirty rate, cache fragment rate, and system call number.
  • a predetermined threshold value a first threshold value
  • the cache dirty rate threshold When these are equal to or greater than the cache dirty rate threshold, the cache fragment rate threshold, and the first system call number threshold, respectively, or when the number of system calls is a second threshold (hereinafter, This is equal to or greater than the second system call number threshold, and the average I / O size is a first threshold value that is predetermined for the average I / O size (hereinafter, this is referred to as the average I / O size threshold). If this is the case, it is determined that the I / O server 3 is heavily loaded. O server 3 determines that the low load.
  • the load determination unit 34 periodically checks whether update data of a file arranged in the I / O server 3 in a low-load state is cached in another I / O server 3, and such a file is If it exists, the function of controlling the corresponding I / O server 3 to return the file to the I / O server 3 or move the file to the I / O server 3 that caches the update data is provided. Also equipped. Details of this function will be described later.
  • the I / O server selection unit 35 responds to an I / O request from the client 2 based on the determination result of the load state for each I / O server 3 by the load determination unit 34. This is a program having a function of selecting the / O server 3.
  • the I / O server selection unit 35 selects one I / O server 3 as an I / O destination from the low load I / O servers 3 by the round robin method.
  • the I / O server selection unit 35 selects the I / O server as an I / O destination when the file is updated and the I / O server 3 is in a low load state. Further, the I / O server selection unit 35 is in the time of updating a file, the I / O server 3 is in a high load state, and part or all of the file data of the file is an I other than the I / O server 3.
  • the I / O server 3 is selected as an I / O destination.
  • the I / O server selection unit 35 is in the time of updating the file, the I / O server 3 is in a high load state, and the file data of the file is still other I / O servers other than the I / O server 3.
  • the server 3 is not cached, one I / O server 3 is selected as an I / O destination from the low load I / O servers 3 by the round robin method.
  • the load management table 36 is a table used for managing the load information of each I / O server 3 collected by the load information collection unit 33. As shown in FIG. 36A, a cache dirty rate column 36B, a cache fragmentation rate column 36C, a system call number column 36D, an average I / O size column 36E, and a high load flag column 36F.
  • the identifier (server ID) of each I / O server 3 existing in the computer system 1 is stored.
  • the cache dirty rate column 36B, the cache fragmentation rate column 36C, the system call number column 36D, and the average I / O size column 36E include a cache dirty rate, a cache fragmentation rate, and a system call in the corresponding I / O server 3, respectively. Corresponding information of the number and average I / O size is stored.
  • the corresponding I / O server determined by the load determination unit 34 (FIG. 2) based on the cache dirty rate, the cache fragmentation rate, the number of system calls, and the average I / O size is displayed. 3 is stored (hereinafter referred to as a high load flag).
  • the high load flag is set to “1” when it is determined that the corresponding I / O server 3 has a high load, and “0” when the I / O server 3 is determined not to have a high load. "Is set.
  • the I / O server 3 called “I / O server 1” has a cache dirty rate, a cache fragmentation rate, the number of system calls, and an average I / O size of “0.3 (30%)”. ”,“ 0.3 (30%) ”,“ 500 / sec ”, and“ 1 MB ”, indicating that the load is high (the high load flag is“ 1 ”).
  • the file location management table 37 is a table used for managing to which I / O server 3 each file is arranged. As shown in FIG. 4, the file column 37A, the present I / O server column 37B, a cache I / O server column 37C, and a transfer count column 37D.
  • the file column 37A stores the file names of all the files existing in the computer system 1, and the I / O server column 37B stores the server ID of the corresponding I / O server 3 of the corresponding file. Stored.
  • the cache I / O server column 37C when the update data of the corresponding file is cached in the I / O server 3 other than the I / O server 3, the I / O that caches the update data is stored.
  • the server ID of the server 3 is stored.
  • the number of transfers (transfer count) in which the update data of the corresponding file is cached in the I / O server 3 other than the I / O server 3 is stored in the transfer count column 37D.
  • the main I / O server 3 of the file “file X” is “I / O server 1”, but the update data is the I / O server “I / O server 3”. 3 indicates that the number of transfers is “1”.
  • the cache management table 38 is used to manage which block update data of the file is cached when the update data of the file is cached in the I / O server 3 other than the I / O server 3. As shown in FIG. 5, the table is used and includes a file column 38A and a cached block column 38B.
  • the file names of all the files existing in the computer system 1 are stored as in the file column 37A (FIG. 4) of the file location management table 37 (FIG. 4).
  • the cached block column 38B stores all block numbers of blocks corresponding to the update data in the file when the update data of the corresponding file is cached in another I / O server 3.
  • the update data of the block “2, 3, 4” is cached in any I / O server 3 for the file “file X”, and any file “file Y” is It is shown that the update data is not cached in the I / O server 3 as well.
  • FIG. 6 shows a processing procedure of load information collection and load judgment processing periodically executed in the management server 4.
  • the management server 4 periodically starts load information collection and load determination processing shown in FIG. 6, and first requests that the load information collection unit 33 (FIG. 2) transmit load information to each I / O server 3. (SP1).
  • the load information collection unit 33 waits for load information to be transmitted from all the I / O servers 3 existing in the computer system 1 (SP2), and eventually the load information is received from all the I / O servers 3.
  • the load determination unit 34 (FIG. 2) is called.
  • the load determination unit 34 determines the load state of each I / O server 3 and updates the load management table 36 (FIG. 3) as necessary based on the determination result.
  • a load state determination process is executed (SP3). Specifically, when the load determination unit 34 determines that the I / O server 3 is in a high load state, the high load flag stored in the corresponding high load flag column 36F (FIG. 3) of the load management table 36. When the load flag is set to “1” and it is determined that the I / O server 3 is not in a high load state, the high load flag is set to “0”.
  • the load determination unit 34 uses the update data of the file as the main I of the file.
  • a data return / file move process is executed to return to the / O server 3 or move the file to the I / O server 3 that caches the update data (SP4).
  • the management server 4 thereafter ends this load information collection and load determination processing.
  • FIG. 7 is a specific process of the load state determination process executed by the load determination unit 34 of the management server 4 in step SP3 of the load information collection and load determination process described above with reference to FIG. Show the contents.
  • the load determination unit 34 proceeds to step SP3 of the load information collection and load determination process, the load determination unit 34 starts the load state determination process shown in FIG. One row of processing is selected (SP10).
  • the load determination unit 34 determines the cache dirty rate, the cache fragmentation rate, and the number of system calls per second corresponding to the row selected in step SP10 (hereinafter referred to as the selected row). Then, it is determined whether or not the average I / O size satisfies a condition for determining that the I / O server 3 has a high load (SP11).
  • the load determination unit 34 has a cache dirty rate equal to or higher than the above-mentioned cache dirty rate threshold, a cache fragment rate equal to or higher than the above-described cache fragment rate threshold, or a system call.
  • the number is greater than or equal to the first system call count threshold described above, or the number of system calls is greater than or equal to the second system call count threshold and the average I / O size is the above average I / O size threshold. It is determined whether this is the case.
  • the load determination unit 34 When the load determination unit 34 obtains a positive result in this determination, it sets the high load flag stored in the high load flag column 36F of the selected row in the load management table 36 to “1” (SP12). In contrast, when the load determination unit 34 obtains a negative result in the determination at step SP11, the load determination unit 34 sets the high load flag to “0” (SP13).
  • the load determination unit 34 determines whether or not the processing of step SP11 to step SP13 has been executed for all rows of the load management table 36 (SP14). When the load determination unit 34 obtains a negative result in this determination, the load determination unit 34 returns to step SP10, and then sequentially switches the row selected in step SP10 (selected row) to another unprocessed row while step SP10 to step SP14. Repeat the process.
  • step SP14 when the load determination unit 34 eventually obtains a positive result in step SP14 by completing the execution of the processing of step SP11 to step SP13 for all the rows of the load management table 36, the load determination processing ends.
  • FIG. 8 shows specific processing of the data return / file movement processing executed by the load determination unit 34 in step SP4 of the load information collection and load determination processing described above with reference to FIG. Show the contents.
  • the load return unit 34 starts the data return / file move process shown in FIG. 8, and is first registered in the load management table 36 (FIG. 3). It is determined whether or not there is an I / O server 3 with the high load flag set to “0” in the I / O server 3 (SP20). If the load determination unit 34 obtains a positive result in this determination, it selects one I / O server 3 with the high load flag set to “0” (SP21).
  • the load determination unit 34 selects the I / O server 3 (hereinafter referred to as “this”) whose server ID of the I / O server 3 is selected in step SP21 from among the files registered in the file location management table 37 (FIG. 4). It is determined whether there is a file that matches the server ID of the selected I / O server 3 (SP22).
  • the load determination unit 34 selects one file in which the I / O server 3 matches the selected I / O server 3 (SP23), and the file selected in step SP23 in the file location management table 37 (hereinafter referred to as the file location management table 37). It is determined whether or not the number of transfers stored in the transfer count column 37D (FIG. 4) of the row corresponding to this is called the selected file is greater than the above-described transfer count threshold (SP24).
  • the load determination unit 34 When the load determination unit 34 obtains a negative result in this determination, the load determination unit 34 instructs the I / O server 3 that has cached the update data of the selected file to return the update data to the I / O server 3. (SP26).
  • the I / O server 3 that has received this instruction transmits update data of the cached selected file to the I / O server 3 together with the I / O request (write request).
  • the update data of the selected file cached in the I / O server 3 other than the I / O server 3 is stored in the cache memory 24 (FIG. 1) of the I / O server 3, whereby the selected file is stored. Updated.
  • the load determination unit 34 determines whether the ratio of the data size of the update data to the file size of the entire selected file exceeds the above-described cache size ratio threshold value. Judgment is made (SP25).
  • step SP26 If the load determination unit 34 obtains a negative result in this determination, the process proceeds to step SP26. If the load determination unit 34 obtains a positive result, the load determination unit 34 caches the update data of the selected file to the I / O server 3 of the selected file. An instruction to move the selected file is given to the I / O server 3 that is in operation (SP27).
  • the I / O server 3 of the selected file that has received this instruction sends an I / O request (write request) for all file data of the selected file to the I / O server 3 that caches update data. After that, all the file data of the selected file stored in the storage device 20 (FIG. 1) or the like is deleted.
  • the load determination unit 34 caches the server ID stored in the main I / O server column 37B (FIG. 4) of the line corresponding to the selected file in the file location management table 37, and the update data of the selected file until then. It is rewritten to the server ID of the I / O server 3 that has been used (SP28).
  • the load determination unit 34 deletes (clears) the server ID stored in the cache I / O server column 37C (FIG. 4) of the line corresponding to the selected file in the file location management table 37 (SP29), and The number of transfers stored in the row transfer count column 37D (FIG. 4) is updated to “0” (SP30).
  • step SP22 the load determination unit 34 returns to step SP22, and thereafter repeats the processing after step SP22 while sequentially switching the file (selected file) selected at step SP23 to another unprocessed corresponding file.
  • step SP30 the processing from step SP23 to step SP30 is executed for all files for which the present I / O server 3 is the selected I / O server 3.
  • step SP20 when the load determination unit 34 eventually obtains a negative result at step SP22 by completing the execution of the processing of step SP23 to step SP30 for all the files for which the present I / O server 3 is the selected I / O server 3, step SP20 Then, the process after step SP20 is repeated while sequentially switching the I / O server selected at step SP21 to another unprocessed I / O server. As a result, the processing from step SP21 to step SP30 is executed for all the I / O servers 3 for which the high load flag is set to “0”.
  • step SP20 When the load determination unit 34 eventually obtains a negative result in step SP20 by completing the execution of steps SP20 to SP30 for all the I / O servers 3 for which the high load flag is set to “0”, The data return / file move process is terminated.
  • FIG. 9 shows a processing procedure of I / O processing executed in the client 2.
  • This I / O processing is started when the I / O processing unit 14 (FIG. 2) of the client 2 receives an I / O request from the user program 13 (FIG. 2).
  • the / O processing unit 14 calls the I / O destination inquiry unit 15 (SP40).
  • the I / O destination inquiry unit 15 When called by the I / O processing unit 14, the I / O destination inquiry unit 15 sends an I / O request for inquiring the I / O server 3 to be an I / O destination to the I / O server selection unit 35 of the management server 4. (FIG. 2) (SP41), and then waits for notification of the I / O destination from the management server 4 (SP42).
  • the I / O destination inquiry unit 15 then calls the data transmission unit 16 (FIG. 2) when the I / O destination is notified from the management server 4 (SP43).
  • the data transmission unit 16 called by the I / O destination inquiry unit 15 transmits the I / O request to the I / O destination I / O server 3 notified from the management server 4 and also the I / O request.
  • Is a write (update) request, update data is transmitted to the I / O server 3 (SP44).
  • the I / O destination inquiry unit 15 transmits an I / O completion notification to the I / O server selection unit 35 of the management server 4. (SP45), this I / O processing is terminated.
  • the I / O server selection unit 35 that has received this I / O completion notification caches the line corresponding to the file written to the I / O server 3 at that time in the cache management table 38 (FIG. 5).
  • the information in the completed block field 38B (FIG. 5) is updated as necessary.
  • FIGS. 10A and 10B show the I / O request of the management server 4 that has received the I / O request transmitted from the client 2 in step SP41 of the I / O processing described above with reference to FIG.
  • the processing procedure of the I / O server selection process executed by the O server selection unit 35 (FIG. 2) is shown.
  • the I / O server selection unit 35 starts this I / O server selection processing. First, the I / O that the client 2 is about to execute is started. It is determined whether the file is read or written (updated) (SP50).
  • the I / O server selection unit 35 accepts an I / O destination inquiry from the client 2 and the file name of the file to be created at that time transmitted along with the inquiry (SP51).
  • the I / O server selection unit 35 selects one I / O server 3 from the I / O servers 3 whose high load flag is set to “0” in the load management table 36 by the round robin method. Then, the selected I / O server 3 is notified to the I / O destination inquiry unit 15 (FIG. 2) of the client 2 (SP52). Thus, the client 2 that has received this notification transmits an I / O request for requesting creation of a new file to the I / O server 3 specified in the notification.
  • the I / O server selection unit 35 newly registers the new file in the file location management table 37 (FIG. 4) (SP53). Specifically, the I / O server selection unit 35 secures a new line in the file location management table 37, and the file of the file to be newly created received in step SP41 in the file column 37A (FIG. 4) of that line. In addition to storing the name, the server ID of the I / O server 3 notified to the client 2 as the I / O destination in step SP42 is stored in the main I / O server column 37B (FIG. 4) of that row. The I / O server selection unit 35 thereafter ends this I / O server selection process.
  • the I / O server selection unit 35 obtains a positive result in the determination at step SP50, the I / O destination inquiry from the client 2 and a file to be transmitted along with the inquiry (hereinafter, referred to as “target”)
  • target a file to be transmitted along with the inquiry
  • the file name of this target file), the offset amount from the beginning of the read / write location of the target file, and the size of the target file to be read / written (hereinafter referred to as the I / O size) are accepted (SP54). ).
  • the I / O server selection unit 35 reads the high load flag of the target I / O server 3 of the target file from the load management table 36 (FIG. 3), and whether the high load flag is set to “1”. It is determined whether or not (SP55).
  • the I / O server selection unit 35 notifies the client 2 of the I / O server 3 of the target file as the I / O destination of the target file (SP56), and then selects this I / O server. The process ends.
  • the I / O server selection unit 35 calculates a block to be an I / O target in the target file based on the offset amount and the I / O size of the target file received in step SP54 (SP57). .
  • the block number SBN of the start block of the block that is the target of I / O in the target file is expressed by the following equation, where the offset amount received in step SP44 is OFS and the block size is BLS
  • the block number of the end block of the I / O target block is the I / O size of the target file received in step SP54.
  • Is the IOS Can be obtained as the value of the integer part of the calculation result (similarly, when it is not divisible, the decimal part is rounded up to 1).
  • the I / O server selection unit 35 determines whether or not the I / O that the client 2 is about to execute is file reading (SP58). If the I / O server selection unit 35 obtains a positive result in this determination, a part or all of the I / O target block calculated by the calculation of step SP57 is the target of the cache management table 38 (FIG. 5). It is determined whether it is included in the cached block stored in the cached block column 38B (FIG. 5) of the line corresponding to the file (SP59).
  • the I / O server selection unit 35 obtains a negative result in this determination, the I / O server whose server ID is stored in the main I / O server column 37B of the row corresponding to the target file in the file location management table 37 is stored. The server 3 is notified to the client 2 as an I / O destination (SP60).
  • the I / O server selection unit 35 obtains a positive result in the determination at step SP59, all of the I / O target blocks calculated by the calculation at step SP57 correspond to the target files in the cache management table 38. It is determined whether or not it is included in the cached block stored in the cached block column 38B of the line to be executed (SP61).
  • the I / O server selection unit 35 obtains a positive result in this determination, the I / O server whose server ID is stored in the cache I / O server column 37C of the line corresponding to the target file in the file location management table 37 is displayed.
  • the server 3 is notified to the client 2 as an I / O destination (SP62).
  • the server ID is stored in the I / O server column 37B of the line corresponding to the target file in the file location management table 37.
  • the cache I / O server column 37C of the line corresponding to the target file in the file location management table 37 is assumed to be the I / O destination of the block in which the data is held in the main I / O server 3. Is notified to the client 2 as the I / O destination of the block in which the update data is held in the I / O server 3 (SP63).
  • step SP60 step SP62, or step SP63 ends, the I / O server selection unit 35 transfers the transfer stored in the transfer count column 37D (FIG. 4) of the row corresponding to the target file in the file location management table 37.
  • the value of the number of times is increased by “1” (SP68), and then this I / O server selection process is terminated.
  • any I / O server is entered in the cache I / O server column 37C of the line corresponding to the target file in the file location management table 37. It is determined whether or not the server ID 3 is stored (SP64).
  • the I / O server selection unit 35 notifies the client 2 of the I / O server 3 whose server ID is stored in the cache I / O server column 37C as the I / O destination (SP65).
  • obtaining a negative result in the determination at step SP64 means that there is no I / O server 3 other than the present I / O server 3 that caches the update data of the target file.
  • the I / O server selection unit 35 selects one I / O server 3 by the round robin method from the I / O servers 3 in which the high load flag of the load management table 36 is set to “0”. Then, the client 2 is notified of the I / O server 3 as an I / O destination (SP66).
  • the I / O server selection unit 35 registers the I / O server 3 notified to the client 2 as the I / O destination in step SP66 in the file location management table 37 as the I / O server 3 of the update data cache destination ( SP67). Specifically, the I / O server selection unit 35 sets the server ID of the I / O server 3 notified to the client 2 as the I / O destination in step SP66 to the cache I of the line corresponding to the target file in the file location management table 37. Stored in the / O server column 37C.
  • step SP65 or step SP67 ends, the I / O server selection unit 35 sets the value of the transfer count stored in the transfer count column 37D of the row corresponding to the target file in the file location management table 37 to “1”. After that, the I / O server selection process is terminated.
  • the update data is transferred to the I / O server 3 or the remaining file data of the file is cached at that time. Since the file data is moved to the I / O server 3, the file data can be prevented from being held in a distributed manner in different I / O servers 3. Thereby, according to this computer system 1, the fragmentation of a file in which file data is distributed and held in a plurality of I / O servers 3 is prevented, and the response performance at the time of parallel file I / O is improved. A decrease can be prevented.
  • the update data is stored when the number of transfers is larger than the transfer count threshold and the data size of the update data exceeds the cache size ratio threshold. Since the update data is moved from the I / O server 3 to the cached I / O server 3 at that time, the load of the I / O server 3 that tends to be high load is transferred to the other I / O server 3. Accordingly, it is possible to further prevent a decrease in response performance of the entire system due to a load imbalance between the I / O servers 3.
  • the I / O server 3 when the cache dirty rate, the cache fragment rate, and the number of system calls are equal to or greater than the corresponding cache dirty rate threshold, the cache fragment rate threshold, or the first system call number threshold, the I / O server 3 is determined to be heavily loaded.
  • the present invention is not limited to this, and the load on the I / O server 3 may be determined based on other information.
  • the I / O that holds the update data of the selected file only when the load determination unit 34 of the management server 4 obtains a positive result in both step SP24 and step SP25 of FIG.
  • the case where an instruction is given to the I / O server 2 where the selected file is arranged to move to the O server 3 has been described.
  • the present invention is not limited to this, and at least one of step SP24 and step SP25 is positive.
  • an instruction may be given to the I / O server 2 to which the selected file is placed so that the selected file is moved to the I / O server 3 holding the update data.
  • the present invention can be widely applied to computer systems having various configurations in which the distributed shared file system function is introduced.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

分散共有ファイルシステムが導入された計算機システムにおいて、サーバ装置間における負荷の偏りに起因するシステム全体の応答性能の低下を防止するために、分散共有ファイルシステムが導入された計算機システムを管理する管理サーバが、ファイルの更新時に当該ファイルが配置されたI/Oサーバの負荷が高い場合に、負荷が低い他のI/Oサーバを当該ファイルの更新データの一時的な保存先として選定し、選定したI/Oサーバを更新データの書込み先としてクライアントに通知し、その後、そのファイルが配置されたI/Oサーバの負荷が低下した段階で、更新データを保持するI/Oサーバに対して、当該更新データを当該ファイルが配置されたI/Oサーバに転送するよう指示を与えるようにした。

Description

管理方法及び管理装置並びに記憶媒体
 本発明は管理方法及び管理装置並びに記憶媒体に関し、特に、分散共有ファイルシステム機能が適用された計算機システムに適用して好適なものである。
 近年、複数のI/O(Input/Output)サーバ内にそれぞれ配設され又は複数のI/Oサーバにそれぞれ接続された記憶装置にファイルを分散して配置し、これらのファイルを1つのファイルシステムとして利用できるようにした分散共有ファイルシステムが普及している(特許文献1参照)。分散共有ファイルシステムは、あるクライアントで作成したファイルを別のクライアントで利用できるという特徴がある。
国際公開第2013/065151号
 かかる分散共有ファイルシステムが適用された計算機システムでは、ファイル単位でのラウンドロビンによりそのファイルの配置先のI/Oサーバが決定される。このためファイル作成の際には、各I/Oサーバにファイルが均等に振り分けられてI/Oサーバの負荷に偏りが生じることはない。
 しかしながら、ファイルの更新時には、特定のI/Oサーバが保持するファイルにアクセスが集中することがあり、このような場合にそのI/Oサーバの負荷が増加し、そのI/Oサーバがボトルネックとなってシステム全体としての応答性能が低下する問題があった。
 本発明は以上の点を考慮してなされたもので、分散共有ファイルシステムが適用された計算機システムにおいて、サーバ装置間における負荷の偏りに起因するシステム全体の応答性能の低下を有効に防止することを目的とする。
 かかる課題を解決するため本発明においては、1又は複数のクライアントにより作成されたファイルを複数のサーバ装置内又は複数のサーバ装置とそれぞれ接続された記憶装置に分散して配置し、各前記ファイルを1つのファイルシステムとして各前記クライアントが利用可能な計算機システムを管理する管理装置において実行される管理方法であって、前記管理装置は、各前記サーバ装置から当該サーバ装置の負荷状態を表す所定の負荷情報をそれぞれ収集する負荷情報収集部と、収集した各前記負荷情報に基づいて、各前記サーバ装置の負荷状態をそれぞれ判定する負荷判定部と、前記クライアントからの問合せに応じて、当該クライアントがファイルの読出し又は書込み先とすべき前記サーバ装置を選定し、選定したサーバ装置を当該クライアントに通知する書込み/読出し先選定部とを有し、前記書込み/読出し先選定部が、前記ファイルの更新時に当該ファイルが配置された前記サーバ装置の負荷が高い場合には、負荷が低い他の前記サーバ装置を当該ファイルの更新データの一時的な保持先として選定し、選定した前記サーバ装置を前記クラインに通知する第1のステップと、前記負荷判定部が、定期的又は不定期に各前記サーバ装置の負荷状態を判定し、いずれかの前記サーバ装置に配置された前記ファイルの前記更新データが他の前記サーバ装置に一時的に保持されており、かつ当該ファイルが配置された前記サーバ装置の負荷が低いときには、前記更新データを一時的に保持する前記サーバ装置に対して、当該更新データを当該ファイルが配置された前記サーバ装置に転送するよう指示を与える第2のステップとを設けるようにした。
 また本発明においては、1又は複数のクライアントにより作成されたファイルを複数のサーバ装置内又は複数のサーバ装置とそれぞれ接続された記憶装置に分散して配置し、各前記ファイルを1つのファイルシステムとして各前記クライアントが利用可能な計算機システムを管理する管理装置において、各前記サーバ装置から当該サーバ装置の負荷状態を表す所定の負荷情報をそれぞれ収集する負荷情報収集部と、収集した各前記負荷情報に基づいて、各前記サーバ装置の負荷状態をそれぞれ判定する負荷判定部と、前記クライアントからの問合せに応じて、当該クライアントがファイルの読出し又は書込み先とすべき前記サーバ装置を選定し、選定したサーバ装置を当該クライアントに通知する書込み/読出し先選定部とを設け、前記書込み/読出し先選定部が、前記ファイルの更新時に当該ファイルが配置された前記サーバ装置の負荷が高い場合には、負荷が低い他の前記サーバ装置を当該ファイルの更新データの一時的な保持先として選定し、選定した前記サーバ装置を前記クラインに通知し、前記負荷判定部が、定期的又は不定期に各前記サーバ装置の負荷状態を判定し、いずれかの前記サーバ装置に配置された前記ファイルの前記更新データが他の前記サーバ装置に一時的に保持されており、かつ当該ファイルが配置された前記サーバ装置の負荷が低いときには、前記更新データを一時的に保持する前記サーバ装置に対して、当該更新データを当該ファイルが配置された前記サーバ装置に転送するよう指示を与えるようにした。
 さらに本発明においては、記憶媒体において、1又は複数のクライアントにより作成されたファイルを複数のサーバ装置に分散して配置し、各前記クライアントが各前記ファイルを1つのファイルシステムとして利用可能な計算機システムを管理する管理装置に、各前記サーバ装置から当該サーバ装置の負荷状態を表す所定の負荷情報をそれぞれ収集する第1のステップと、収集した各前記負荷情報に基づいて、各前記サーバ装置の負荷状態をそれぞれ判定する第2のステップと、前記クライアントからの問合せに応じて、当該クライアントがファイルの読出し又は書込み先とすべき前記サーバ装置を選定し、選定したサーバ装置を当該クライアントに通知する一方、前記ファイルの更新時に当該ファイルが配置された前記サーバ装置の負荷が高い場合には、負荷が低い他の前記サーバ装置を当該ファイルの更新データの一時的な保持先として選定し、選定した前記サーバ装置を前記クラインに通知する第3のステップと、定期的又は不定期に各前記サーバ装置の負荷状態を判定し、いずれかの前記サーバ装置に配置された前記ファイルの前記更新データが他の前記サーバ装置に一時的に保持されており、かつ当該ファイルが配置された前記サーバ装置の負荷が低いときには、前記更新データを一時的に保持する前記サーバ装置に対して、当該更新データを当該ファイルが配置された前記サーバ装置に転送するよう指示を与える第4のステップとを有する処理を実行させるプログラムを格納するようにした。
 本管理方法及び管理装置及び記憶媒体によれば、サーバ装置の負荷が高い場合に、そのサーバ装置のファイル更新に伴うさらなる負荷の増加を回避させることができる。
 本発明によれば、分散共有ファイルシステムが導入された計算機システムにおいて、サーバ装置間の負荷の偏りに起因するシステム全体の応答性能の低下を有効に防止することができる。
本実施の形態による計算機システムの全体構成を示すブロック図である。 本実施の形態による計算機システムのソフトウェア構成を示すブロック図である。 負荷管理テーブルの構成例を示す概念図である。 ファイル位置管理テーブルの構成例を示す概念図である。 キャッシュ管理テーブルの構成例を示す概念図である。 負荷情報収集及び負荷判定処理の処理手順を示すフローチャートである。 負荷状態判定処理の処理手順を示すフローチャートである。 データ戻し/ファイル移動処理の処理手順を示すフローチャートである。 I/O処理の処理手順を示すフローチャートである。 I/Oサーバ選択処理の処理手順を示すフローチャートである。 I/Oサーバ選択処理の処理手順を示すフローチャートである。
 以下図面について、本発明の一実施の形態を詳述する。
(1)本実施の形態による計算機システムの構成
 図1において、1は全体として本実施の形態による計算機システムを示す。この計算機システム1は、1又は複数のクライアント2、複数のI/Oサーバ3及び管理サーバ4がネットワーク5を介して接続されることにより構成されている。
 クライアント2は、ユーザが業務を実行するために利用するコンピュータ装置であり、CPU(Central Processing Unit)10、メモリ11及びディスク装置12などの情報処理資源を備えて構成される。
 CPU10は、クライアント2全体の動作制御を司るプロセッサである。メモリ11は、主として各種プログラムを記憶するために利用されるほか、CPU10のワークメモリとしても利用される。ディスク装置12は、例えばハードディスク装置などから構成され、各種プログラムやデータを長期間保存するために利用される。
 クライアント2のメモリ11には、図2に示すように、ユーザプログラム13、I/O処理部14、I/O先問合せ部15及びデータ送信部16が格納される。ユーザプログラム13は、そのクライアント2を利用するユーザの業務に応じた各種処理を実行するプログラムであり、I/O処理部14は、ユーザプログラム13からのI/O要求に応じてI/O処理を実行する機能を有するプログラムである。I/O先問合せ部15は、I/O処理部14からの要求に応じて、ファイルのI/O先とすべきI/Oサーバ3を管理サーバ4に問い合わせる機能を有するプログラムである。さらにデータ送信部16は、I/O先問合せ部15から通知されたI/Oサーバ3に対してI/O要求を発行する機能を有するプログラムである。
 I/Oサーバ3は、情報を読み書きするための記憶領域をクライアント2に提供するサーバ装置であり、大容量の不揮発性の記憶装置20と、記憶装置20に対するデータの入出力を制御するコントローラ21とから構成される。
 記憶装置20は、例えば複数のハードディスク装置等の磁気ディスク装置や、SSD(Solid State Drive)等の半導体メモリ装置、又は、RAID(Redundant Array of Inexpensive Disks)などから構成される。
 またコントローラ21は、CPU22、メモリ23及びキャッシュメモリ24などを備えて構成される。CPU22は、I/Oサーバ3全体の動作制御を司るプロセッサである。またメモリ23は、各種プログラムを記憶するために利用されるほか、CPU22のワークメモリとしても利用される。キャッシュメモリ24は、I/Oサーバ3に入出力されるデータを一時的に保持するために利用される半導体メモリである。
 コントローラ21のメモリ23には、図2に示すように、データ受信部25、キャッシュ管理部26及び負荷情報送信部27が格納される。データ受信部25は、クライアント2から送信される書込み対象のファイルのファイルデータを受信してキャッシュメモリ24に一時的に格納する機能を有するプログラムである。またキャッシュ管理部26は、キャッシュメモリ24に格納されているファイルデータを管理し、適当なタイミングで当該ファイルデータを記憶装置20に格納する機能を有するプログラムである。さらに負荷情報送信部27は、管理サーバ4からの要求に応じて、自I/Oサーバ3の負荷状態を表す後述の負荷情報を管理サーバ4に送信する機能を有するプログラムである。
 管理サーバ4は、I/Oサーバ3に対するクライアント2のI/Oを管理するサーバ装置であり、CPU30、メモリ31及びディスク装置32などの情報処理資源を備えて構成される。CPU30、メモリ31及びディスク装置32は、クライアント2の対応部位(CPU10、メモリ11又はディスク装置12)と同様の構成及び機能を有するものであるため、ここでの説明は省略する。
 管理サーバ4のメモリ31には、図2に示すように、負荷情報収集部33、負荷判定部34及びI/Oサーバ選択部35と、負荷管理テーブル36、ファイル位置管理テーブル37及びキャッシュ管理テーブル38とが格納される。これらの詳細については、後述する。
(2)本実施の形態による分散共有ファイルシステム機能
 次に、本計算機システム1に適用された分散共有ファイルシステム機能について説明する。本計算機システム1には、I/Oサーバ3の負荷を分散させ得る分散共有ファイルシステムを提供可能な分散共有ファイルシステム機能が搭載されている。
 実際上、本実施の形態の計算機システム1の場合、クライアント2は、I/Oサーバ3に対して新規ファイルの作成(新規ファイルの書込み)や、読出し又は書込み(更新)を行う際には、そのファイルの作成や読出し又は書込み(更新)を行うべきI/Oサーバ3を管理サーバ4に問い合わせる。
 管理サーバ4は、各I/Oサーバ3の負荷状態や、各ファイルの配置場所などを管理しており、例えば、クライアント2から新規ファイルを配置すべきI/Oサーバ3の問合わせが与えられた場合には、負荷の低いI/Oサーバ3の中から1台のI/Oサーバ3を選択し、そのI/Oサーバ3をI/O先としてクライアント2に通知する。
 また管理サーバ4は、クライアント2からファイル読出し時のI/O先の問合せが与えられた場合には、そのファイルが配置されているI/Oサーバ3をI/O先としてクライアント2に通知する。かくして、クライアント2は、管理サーバ4から通知されたI/Oサーバ3に対してI/O要求を送信し、これによりそのI/Oサーバ3に新規ファイルを格納し、又はそのI/Oサーバ3から所望するファイルのファイルデータを読み出す。
 また管理サーバ4は、クライアント2からファイル書込み(更新)時のI/O先の問い合わせが与えられた場合には、書込み(更新)対象のファイルが配置されたI/Oサーバ(以下、これを本I/Oサーバと呼ぶ)3の負荷状態を判定する。
 そして管理サーバ4は、本I/Oサーバ3の負荷が低いと判定したときには、当該本I/Oサーバ3をそのファイルの更新データの書込み先(I/O先)としてクライアント2に通知する。かくして、クライアント2は、管理サーバ4から通知されたI/Oサーバ3に対してI/O要求を送信し、これによりそのI/Oサーバ3に更新データを書き込む。
 これに対して、管理サーバ4は、そのファイルの本I/Oサーバ3の負荷が高いと判定したときには、負荷の低い他のI/Oサーバ3をその更新データを一時的に保持(以下、これをキャッシュと呼ぶ)させるI/O先として選択し、選択したI/Oサーバをクライアント2に通知する。かくして、このときクライアント2は、管理サーバ4から通知されたI/Oサーバ3に対してI/O要求と、更新データとを送信する。この結果、かかる更新データがそのI/Oサーバ3のキャッシュメモリ24に一時的に保存(キャッシュ)されることになる。
 この際、クライアント2は、そのI/Oサーバ3がその更新データを記憶装置20(図1)に書き込まないように、当該更新データが一時的にそのI/Oサーバ3に書き込まれたものであることを通知する。またクライアント2は、かかる更新データのかかるI/Oサーバ3への書き込みが完了すると、その旨を管理サーバ4に通知する。
 一方、管理サーバ4は、上述のようにあるファイルの更新データが本I/Oサーバ3以外の他のI/Oサーバ3にキャッシュされている状態において、他のクライアント2からそのファイルのI/O要求が与えられ、そのI/Oがそのファイルの読出しである場合には、ファイルデータの実際の保存先のI/Oサーバ3(本I/Oサーバ3及び又はそのファイルの更新データをキャッシュしているI/Oサーバ3)をI/O先としてそのクライアント2に通知する。また管理サーバ4は、かかるI/Oがそのファイルの更新である場合には、更新データをキャッシュしているI/Oサーバ3をI/O先としてそのクライアント2に通知する。かくして、その通知を受け取ったクライアント2は、管理サーバ4から通知されたI/Oサーバ3に対して、そのファイルの更新データの書込みや、ファイルの読出しのI/Oを行う。
 他方、管理サーバ4は、各I/Oサーバ3の負荷状態を常時監視しており、それまで高負荷であったI/Oサーバ3の負荷が低下した場合であって、そのI/Oサーバ3に配置されたファイルの更新データが他のI/Oサーバ3にキャッシュされているときには、当該他のI/Oサーバ3に対して、キャッシュしている更新データを本I/Oサーバ3に戻すように指示を与える。かくして、かかる指示が与えられたI/Oサーバ3は、そのときキャッシュしているそのファイルの更新データを本I/Oサーバ3に転送する。
 ただし、管理サーバ4は、各ファイルの更新データが本I/Oサーバ3以外のI/Oサーバ3にキャッシュされた回数(以下、これを振替回数と呼ぶ)をカウントしている。そして管理サーバ4は、その振替回数が予め定められた閾値(以下、これを振替回数閾値と呼ぶ)を超えている場合であって、そのファイルのファイルサイズに対するその更新データの割合が予め定められた閾値(例えば50〔%〕であり、以下、これをキャッシュサイズ割合閾値と呼ぶ)を超えているときには、そのファイルを本I/Oサーバ3からその更新データをそのときキャッシュしているI/Oサーバ3に移動するよう当該本I/Oサーバ3に指示を与える。
 かくして、かかる指示が与えられた本I/Oサーバ3は、そのファイルのすべてのファイルデータを当該ファイルの更新データをキャッシュしているI/Oサーバ3に転送すると共に、そのファイルのファイルデータを記憶装置20(図1)やキャッシュメモリ24(図1)からすべて削除する。
 以上のような本実施の形態による分散共有ファイルシステム機能を実現するための手段として、管理サーバ4のメモリ31には、図2について上述したように、負荷情報収集部33、負荷判定部34及びI/Oサーバ選択部35と、負荷管理テーブル36、ファイル位置管理テーブル37及びキャッシュ管理テーブル38とが格納されている。
 負荷情報収集部33は、計算機システム1内に存在する各I/Oサーバ3からその負荷状態を表す所定情報(以下、これを負荷情報と呼ぶ)を収集する機能を有するプログラムである。本実施の形態の場合、負荷情報収集部33は、I/Oサーバ3の負荷情報として、キャッシュメモリ24に保持された全ファイルデータのうち、未だ記憶装置20に格納されていないファイルデータの割合(以下、これをキャッシュダーティ率と呼ぶ)と、キャッシュメモリ24におけるファイルデータの断片化率(以下、これをキャッシュ断片率と呼ぶ)と、1秒当たりの書込み/読出しのシステムコールの数(以下、これを単にシステムコール数と呼ぶ)と、平均的なI/Oのデータサイズ(以下、これを平均I/Oサイズと呼ぶ)とを各I/Oサーバ3から定期的又は不定期にそれぞれ収集する。なおファイル断片率を負荷情報に含ませたのは、1秒当たりのシステムコール数が少ない場合であっても、キャッシュメモリ24におけるファイルの断片化率が高いI/Oサーバ3では、ファイルの更新時の負荷が高くなるからである。
 負荷判定部34は、負荷情報収集部33が各I/Oサーバ3からそれぞれ収集した負荷情報に基づいて、各I/Oサーバ3の負荷状態を判定する機能を有するプログラムである。実際上、負荷判定部34は、上述のキャッシュダーティ率、キャッシュ断片率及びシステムコール数のいずれかがこれらキャッシュダーティ率、キャッシュ断片率及びシステムコール数についてそれぞれ予め定められた第1の閾値(以下、これらをそれぞれキャッシュダーティ率閾値、キャッシュ断片率閾値及び第1のシステムコール数閾値と呼ぶ)以上である場合や、システムコール数が当該システムコール数について予め定められた第2の閾値(以下、これを第2のシステムコール数閾値と呼ぶ)以上であり、かつ平均I/Oサイズが当該平均I/Oサイズについて予め定められた第1の閾値(以下、これを平均I/Oサイズ閾値と呼ぶ)以上である場合には、そのI/Oサーバ3が高負荷であると判定し、これ以外の場合には、そのI/Oサーバ3が低負荷であると判定する。
 また負荷判定部34は、低負荷状態のI/Oサーバ3に配置されたファイルの更新データが他のI/Oサーバ3にキャッシュされていないかを定期的に確認し、そのようなファイルが存在する場合には、そのファイルをそのI/Oサーバ3に戻し又は当該ファイルをその更新データをキャッシュしているI/Oサーバ3に移動させよう対応するI/Oサーバ3を制御する機能をも備える。この機能の詳細については、後述する。
 I/Oサーバ選択部35は、クライアント2からのI/O要求に応じて、負荷判定部34によるI/Oサーバ3ごとの負荷状態の判定結果に基づいて、I/O先とすべきI/Oサーバ3を選定する機能を有するプログラムである。
 実際上、I/Oサーバ選択部35は、新規ファイルの作成時には、低負荷状態のI/Oサーバ3の中からラウンドロビン法により1つのI/Oサーバ3をI/O先として選定する。またI/Oサーバ選択部35は、ファイルの更新時であって本I/Oサーバ3が低負荷状態のときには、その本I/OサーバをI/O先として選定する。さらにI/Oサーバ選択部35は、ファイルの更新時であって本I/Oサーバ3が高負荷状態にあり、そのファイルのファイルデータの一部又は全部が本I/Oサーバ3以外のI/Oサーバ3にキャッシュされているときには、そのI/Oサーバ3をI/O先として選定する。さらにI/Oサーバ選択部35は、ファイルの更新時であって本I/Oサーバ3が高負荷状態にあり、そのファイルのファイルデータが未だ本I/Oサーバ3以外の他のI/Oサーバ3にキャッシュされていないときには、低負荷状態のI/Oサーバ3の中からラウンドロビン法により1つのI/Oサーバ3をI/O先として選定する。
 一方、負荷管理テーブル36は、負荷情報収集部33が取集した各I/Oサーバ3の負荷情報を管理するために利用されるテーブルであり、図3に示すように、I/Oサーバ欄36A、キャッシュダーティ率欄36B、キャッシュ断片化率欄36C、システムコール数欄36D、平均I/Oサイズ欄36E及び高負荷フラグ欄36Fを備えて構成される。
 そしてI/Oサーバ欄36Aには、計算機システム1内に存在する各I/Oサーバ3の識別子(サーバID)がそれぞれ格納される。またキャッシュダーティ率欄36B、キャッシュ断片化率欄36C、システムコール数欄36D及び平均I/Oサイズ欄36Eには、それぞれ対応するI/Oサーバ3におけるキャッシュダーティ率、キャッシュ断片化率、システムコール数及び平均I/Oサイズのうちの対応する情報が格納される。
 さらに高負荷フラグ欄36Fには、かかるキャッシュダーティ率、キャッシュ断片化率、システムコール数及び平均I/Oサイズに基づいて負荷判定部34(図2)により判定された、対応するI/Oサーバ3の負荷状態を表すフラグ(以下、これを高負荷フラグと呼ぶ)が格納される。高負荷フラグは、対応するI/Oサーバ3が高負荷であると判定された場合には「1」に設定され、当該I/Oサーバ3が高負荷でないと判定された場合には「0」に設定される。
 従って、図3の例の場合、「I/Oサーバ1」というI/Oサーバ3は、キャッシュダーティ率、キャッシュ断片化率、システムコール数及び平均I/Oサイズがそれぞれ「0.3(30%)」、「0.3(30%)」、「500/sec」、「1MB」であり、高負荷であると判定された(高負荷フラグが「1」)ことが示されている。
 ファイル位置管理テーブル37は、各ファイルがどのI/Oサーバ3に配置されているかを管理するために利用されるテーブルであり、図4に示すように、ファイル欄37A、本I/Oサーバ欄37B、キャッシュI/Oサーバ欄37C及び振替回数欄37Dを備えて構成される。
 そしてファイル欄37Aには、本計算機システム1内に存在するすべてのファイルのファイル名がそれぞれ格納され、本I/Oサーバ欄37Bには、対応するファイルの本I/Oサーバ3のサーバIDが格納される。
 またキャッシュI/Oサーバ欄37Cには、対応するファイルの更新データが本I/Oサーバ3以外のI/Oサーバ3にキャッシュされている場合に、その更新データをキャッシュしているI/Oサーバ3のサーバIDが格納される。さらに振替回数欄37Dには、対応するファイルの更新データが本I/Oサーバ3以外のI/Oサーバ3にキャッシュされた回数(振替回数)が格納される。
 従って、図4の例の場合、「ファイルX」というファイルの本I/Oサーバ3は「I/Oサーバ1」であるが、その更新データが「I/Oサーバ3」というI/Oサーバ3にキャッシュされており、その振替回数が「1」回であることが示されている。
 キャッシュ管理テーブル38は、ファイルの更新データが本I/Oサーバ3以外のI/Oサーバ3にキャッシュされている場合に、当該ファイルのどのブロックの更新データがキャッシュされているかを管理するために利用されるテーブルであり、図5に示すように、ファイル欄38A及びキャッシュ済みブロック欄38Bを備えて構成される。
 そしてファイル欄38Aには、ファイル位置管理テーブル37(図4)のファイル欄37A(図4)と同様に、本計算機システム1内に存在するすべてのファイルのファイル名がそれぞれ格納される。またキャッシュ済みブロック欄38Bには、対応するファイルの更新データが他のI/Oサーバ3にキャッシュされている場合に、そのファイルにおけるその更新データに対応するブロックのブロック番号がすべて格納される。
 従って、図5の例の場合、「ファイルX」というファイルは「2,3,4」というブロックの更新データがいずれかのI/Oサーバ3にキャッシュされ、「ファイルY」というファイルはいずれのI/Oサーバ3にも更新データがキャッシュされていないことが示されている。
(3)本分散共有ファイルシステム機能に関連する各種処理
 次に、かかる本実施の形態による分散共有ファイルシステム機能に関連して管理サーバ4やクライアント2において実行される各種処理について説明する。なお以下においては、各種処理の処理主体を「プログラム」として説明するが、実際上はそのプログラムに基づいて、管理サーバ4又はクライアント2のCPU30,10がその処理を実行することは言うまでもない。
(3-1)負荷情報収集及び負荷判定処理
 図6は、管理サーバ4において定期的に実行される負荷情報収集及び負荷判定処理の処理手順を示す。管理サーバ4では、定期的にこの図6に示す負荷情報収集及び負荷判定処理が開始され、まず負荷情報収集部33(図2)が各I/Oサーバ3に負荷情報を送信するように要求する(SP1)。
 続いて負荷情報収集部33は、本計算機システム1内に存在するすべてのI/Oサーバ3から負荷情報が送信されるのを待ち受け(SP2)、やがてすべてのI/Oサーバ3から負荷情報が送信されると、負荷判定部34(図2)を呼び出す。
 負荷判定部34は、負荷情報収集部33から呼び出されると、各I/Oサーバ3の負荷状態をそれぞれ判定し、判定結果に基づいて負荷管理テーブル36(図3)を必要に応じて更新する負荷状態判定処理を実行する(SP3)。具体的に、負荷判定部34は、I/Oサーバ3が高負荷状態にあると判定した場合には、負荷管理テーブル36の対応する高負荷フラグ欄36F(図3)に格納されている高負荷フラグを「1」に設定し、I/Oサーバ3が高負荷状態にないと判定した場合には、かかる高負荷フラグを「0」に設定する。
 次いで、負荷判定部34は、本I/Oサーバ3以外の他のI/Oサーバ3に更新データがキャッシュされているファイルが存在する場合に、そのファイルのその更新データをそのファイルの本I/Oサーバ3に戻し又はそのファイルをその更新データをキャッシュしているI/Oサーバ3に移動させるデータ戻し/ファイル移動処理を実行する(SP4)。
 そして管理サーバ4では、この後、この負荷情報収集及び負荷判定処理が終了する。
(3-2)負荷状態判定処理
 図7は、図6について上述した負荷情報収集及び負荷判定処理のステップSP3において管理サーバ4の負荷判定部34により実行される負荷状態判定処理の具体的な処理内容を示す。
 負荷判定部34は、かかる負荷情報収集及び負荷判定処理のステップSP3に進むと、この図7に示す負荷状態判定処理を開始し、まず、負荷管理テーブル36(図3)の各行の中から未処理の1つの行を選択する(SP10)。
 続いて、負荷判定部34は、ステップSP10で選択した行(以下、これを選択行と呼ぶ)に対応するI/Oサーバ3のキャッシュダーティ率、キャッシュ断片化率、1秒当たりのシステムコール数及び平均I/Oサイズが、そのI/Oサーバ3が高負荷と判定するための条件を満たすか否かを判断する(SP11)。
 具体的に、負荷判定部34は、選択行に対応するI/Oサーバ3について、キャッシュダーティ率が上述のキャッシュダーティ率閾値以上、キャッシュ断片率が上述のキャッシュ断片率閾値以上、若しくは、システムコール数が上述の第1のシステムコール数閾値以上であるか、又は、システムコール数が上述の第2のシステムコール数閾値以上であり、かつ平均I/Oサイズが上述の平均I/Oサイズ閾値以上であるか否かを判断する。
 そして負荷判定部34は、この判断で肯定結果を得ると、負荷管理テーブル36における選択行の高負荷フラグ欄36Fに格納されている高負荷フラグを「1」に設定する(SP12)。これに対して、負荷判定部34は、ステップSP11の判断で否定結果を得ると、かかる高負荷フラグを「0」に設定する(SP13)。
 次いで、負荷判定部34は、負荷管理テーブル36のすべての行についてステップSP11~ステップSP13の処理を実行し終えたか否かを判断する(SP14)。そして負荷判定部34は、この判断で否定結果を得るとステップSP10に戻り、この後、ステップSP10で選択する行(選択行)を未処理の他の行に順次切り替えながら、ステップSP10~ステップSP14の処理を繰り返す。
 そして負荷判定部34は、やがて負荷管理テーブル36のすべての行についてステップSP11~ステップSP13の処理を実行し終えることによりステップSP14で肯定結果を得ると、この負荷状態判定処理を終了する。
(3-3)データ戻し/ファイル移動処理
 図8は、図6について上述した負荷情報収集及び負荷判定処理のステップSP4において負荷判定部34により実行されるデータ戻し/ファイル移動処理の具体的な処理内容を示す。
 負荷判定部34は、かかる負荷情報収集及び負荷判定処理のステップSP4に進むと、この図8に示すデータ戻し/ファイル移動処理を開始し、まず、負荷管理テーブル36(図3)に登録されたI/Oサーバ3の中に高負荷フラグが「0」に設定されたI/Oサーバ3が存在するか否かを判断する(SP20)。そして負荷判定部34は、この判断で肯定結果を得ると高負荷フラグが「0」に設定されたI/Oサーバ3を1つ選択する(SP21)。
 続いて、負荷判定部34は、ファイル位置管理テーブル37(図4)に登録されたファイルのうち、本I/Oサーバ3のサーバIDがステップSP21で選択したI/Oサーバ3(以下、これを選択I/Oサーバ3と呼ぶ)のサーバIDと一致するファイルが存在するか否かを判断する(SP22)。
 この判断で肯定結果を得ることは、選択I/Oサーバ3は、現在は低負荷状態となっているが、以前は高負荷状態にあり、その際に選択I/Oサーバ3に配置されているファイルの更新データが他のI/Oサーバ3にキャッシュされ、その更新データが未だ当該他のI/Oサーバ3にキャッシュされていることを意味する。
 かくして、このとき負荷判定部34は、本I/Oサーバ3が選択I/Oサーバ3と一致するファイルを1つ選択し(SP23)、ファイル位置管理テーブル37におけるステップSP23で選択したファイル(以下、これを選択ファイルと呼ぶ)と対応する行の振替回数欄37D(図4)に格納された振替回数が上述の振替回数閾値よりも多いか否かを判断する(SP24)。
 そして負荷判定部34は、この判断で否定結果を得ると、選択ファイルの更新データをキャッシュしているI/Oサーバ3に対して、当該更新データを本I/Oサーバ3に戻すよう指示を与える(SP26)。
 かくして、この指示を受信したI/Oサーバ3は、キャッシュしている選択ファイルの更新データをI/O要求(書込み要求)と共に本I/Oサーバ3に送信する。これにより、本I/Oサーバ3以外のI/Oサーバ3にキャッシュされていた選択ファイルの更新データが本I/Oサーバ3のキャッシュメモリ24(図1)に格納され、これにより選択ファイルが更新される。
 これに対して負荷判定部34は、ステップSP24の判断で肯定結果を得ると、選択ファイル全体のファイルサイズに対するかかる更新データのデータサイズの割合が上述のキャッシュサイズ割合閾値を超えているか否かを判断する(SP25)。
 そして負荷判定部34は、この判断で否定結果を得るとステップSP26に進み、これに対して肯定結果を得ると、選択ファイルの本I/Oサーバ3に対して、選択ファイルの更新データをキャッシュしているI/Oサーバ3に当該選択ファイルを移動させるよう指示を与える(SP27)。
 かくして、この指示を受信した選択ファイルの本I/Oサーバ3は、更新データをキャッシュしているI/Oサーバ3に対して、選択ファイルのすべてのファイルデータをI/O要求(書込み要求)と共に転送し、この後、記憶装置20(図1)等に格納されていたその選択ファイルのファイルデータをすべて削除する。
 次いで、負荷判定部34は、ファイル位置管理テーブル37における選択ファイルに対応する行の本I/Oサーバ欄37B(図4)に格納されているサーバIDを、それまで選択ファイルの更新データをキャッシュしていたI/Oサーバ3のサーバIDに書き換える(SP28)。
 さらに負荷判定部34は、ファイル位置管理テーブル37における選択ファイルと対応する行のキャッシュI/Oサーバ欄37C(図4)に格納されているサーバIDを削除(クリア)すると共に(SP29)、その行の振替回数欄37D(図4)に格納されている振替回数を「0」に更新する(SP30)。
 さらに負荷判定部34は、ステップSP22に戻り、この後、ステップSP23で選択するファイル(選択ファイル)を未処理の他の該当ファイルに順次切り替えながらステップSP22以降の処理を繰り返す。これにより本I/Oサーバ3が選択I/Oサーバ3であるすべてのファイルについてステップSP23~ステップSP30の処理が実行されることになる。
 そして負荷判定部34は、やがて本I/Oサーバ3が選択I/Oサーバ3であるすべてのファイルについてステップSP23~ステップSP30の処理を実行し終えることによりステップSP22で否定結果を得るとステップSP20に戻り、この後ステップSP21で選択するI/Oサーバを未処理の他のI/Oサーバに順次切り替えながら、ステップSP20以降の処理を繰り返す。これにより高負荷フラグが「0」に設定されたすべてのI/Oサーバ3についてステップSP21~ステップSP30の処理が実行されることになる。
 そして負荷判定部34は、やがて高負荷フラグが「0」に設定されたすべてのI/Oサーバ3についてステップSP20~ステップSP30の処理を実行し終えることによりステップSP20で否定結果を得ると、このデータ戻し/ファイル移動処理を終了する。
(3-4)I/O処理
 一方、図9は、クライアント2において実行されるI/O処理の処理手順を示す。このI/O処理は、クライアント2のI/O処理部14(図2)がユーザプログラム13(図2)からI/O要求を受け取ると開始され、まず、かかるI/O要求を受け取ったI/O処理部14がI/O先問合せ部15を呼び出す(SP40)。
 I/O先問合せ部15は、I/O処理部14により呼び出されると、I/O先とすべきI/Oサーバ3を問い合わせるI/O要求を管理サーバ4のI/Oサーバ選択部35(図2)に送信し(SP41)、この後、かかるI/O先が管理サーバ4から通知されるのを待ち受ける(SP42)。
 そしてI/O先問合せ部15は、やがてかかるI/O先が管理サーバ4から通知されると、データ送信部16(図2)を呼び出す(SP43)。かくしてI/O先問合せ部15により呼び出されたデータ送信部16は、管理サーバ4から通知されたI/O先のI/Oサーバ3にI/O要求を送信すると共に、当該I/O要求が書込み(更新)要求の場合には、かかるI/Oサーバ3に更新データを送信する(SP44)。
 この後、かかるI/O要求が書込み(更新)要求であった場合には、I/O先問合せ部15がI/O完了通知を管理サーバ4のI/Oサーバ選択部35に送信した後(SP45)、このI/O処理を終了する。かくして、このI/O完了通知を受信したI/Oサーバ選択部35は、キャッシュ管理テーブル38(図5)の行のうち、そのときI/Oサーバ3に書き込んだファイルに対応する行のキャッシュ済みブロック欄38B(図5)の情報を必要に応じて更新する。
(3-5)I/Oサーバ選択処理
 図10A及び図10Bは、図9について上述したI/O処理のステップSP41においてクライアント2から送信されたI/O要求を受信した管理サーバ4のI/Oサーバ選択部35(図2)により実行されるI/Oサーバ選択処理の処理手順を示す。
 I/Oサーバ選択部35は、管理サーバ4がクライアント2からのI/O要求を受信するとこのI/Oサーバ選択処理を開始し、まず、そのときクライアント2が実行しようとしているI/Oがファイルの読出し又は書込み(更新)であるか否かを判断する(SP50)。
 この判断で否定結果を得ることは、そのときクライアント2が実行しようとしているI/Oが新規ファイルの作成であることを意味する。かくして、このときI/Oサーバ選択部35は、クライアント2からのI/O先の問合わせと、当該問合せと共に送信されるそのとき作成しようとするファイルのファイル名とを受け付ける(SP51)。
 続いて、I/Oサーバ選択部35は、負荷管理テーブル36において高負荷フラグが「0」に設定されているI/Oサーバ3の中から1つのI/Oサーバ3をラウンドロビン法により選択し、選択したI/Oサーバ3をクライアント2のI/O先問合せ部15(図2)に通知する(SP52)。かくして、この通知を受信したクライアント2は、当該通知において指定されたI/Oサーバ3に対して、新規ファイルの作成を要求するI/O要求を送信する。
 次いで、I/Oサーバ選択部35は、かかる新規ファイルをファイル位置管理テーブル37(図4)に新規に登録する(SP53)。具体的に、I/Oサーバ選択部35は、ファイル位置管理テーブル37の新たな行を確保し、その行のファイル欄37A(図4)にステップSP41で受け付けた新規作成しようとするファイルのファイル名を格納すると共に、その行の本I/Oサーバ欄37B(図4)にステップSP42でクライアント2にI/O先として通知したI/Oサーバ3のサーバIDを格納する。そしてI/Oサーバ選択部35は、この後、このI/Oサーバ選択処理を終了する。
 これに対して、I/Oサーバ選択部35は、ステップSP50の判断で肯定結果を得ると、クライアント2からのI/O先の問合せと、当該問合せと共に送信される対象とするファイル(以下、これを対象ファイルと呼ぶ)のファイル名、当該対象ファイルの読書き箇所のファイル先頭からのオフセット量、読書きする当該対象ファイルのサイズ(以下、これをI/Oサイズと呼ぶ)を受け付ける(SP54)。
 続いて、I/Oサーバ選択部35は、対象ファイルの本I/Oサーバ3の高負荷フラグを負荷管理テーブル36(図3)から読み出し、その高負荷フラグが「1」に設定されているか否かを判断する(SP55)。
 この判断で否定結果を得ることは、現在、対象ファイルの本I/Oサーバ3が低負荷状態にあることを意味する。かくして、このときI/Oサーバ選択部35は、対象ファイルの本I/Oサーバ3を当該対象ファイルのI/O先としてクライアント2に通知し(SP56)、この後、このI/Oサーバ選択処理を終了する。
 これに対して、ステップSP55の判断で肯定結果を得ることは、現在、対象ファイルの本I/Oサーバ3が高負荷状態にあることを意味する。かくして、このときI/Oサーバ選択部35は、ステップSP54で受け付けた対象ファイルのオフセット量及びI/Oサイズに基づいて、対象ファイルのうちのI/O対象となるブロックを計算する(SP57)。
 なお、対象ファイルのうちI/O対象となるブロックの開始ブロックのブロック番号SBNは、ステップSP44で受け付けたオフセット量をOFS、ブロックサイズをBLSとして、次式
Figure JPOXMLDOC01-appb-M000001
の算出結果として得ることができ(ただし割り切れない場合には小数点以下を1に切り上げる)、I/O対象となるブロックの終了ブロックのブロック番号は、ステップSP54で受け付けた対象ファイルのI/OサイズをIOSとして、次式
Figure JPOXMLDOC01-appb-M000002
の算出結果の整数部分の値として得ることができる(同様に、割り切れない場合には、小数点以下を1に切り上げる)。
 次いで、I/Oサーバ選択部35は、そのときクライアント2が実行しようとしているI/Oがファイルの読出しであるか否かを判断する(SP58)。そしてI/Oサーバ選択部35は、この判断で肯定結果を得ると、ステップSP57の計算により算出されたI/O対象のブロックの一部又は全部が、キャッシュ管理テーブル38(図5)の対象ファイルに対応する行のキャッシュ済みブロック欄38B(図5)に格納されているキャッシュ済みブロックに含まれているか否かを判断する(SP59)。
 I/Oサーバ選択部35は、この判断で否定結果を得ると、ファイル位置管理テーブル37の対象ファイルに対応する行の本I/Oサーバ欄37BにサーバIDが格納されている本I/Oサーバ3をI/O先としてクライアント2に通知する(SP60)。
 これに対して、I/Oサーバ選択部35は、ステップSP59の判断で肯定結果を得ると、ステップSP57の計算で算出したI/O対象のブロックの全部がキャッシュ管理テーブル38の対象ファイルに対応する行のキャッシュ済みブロック欄38Bに格納されているキャッシュ済みブロックに含まれるか否かを判断する(SP61)。
 そしてI/Oサーバ選択部35は、この判断で肯定結果を得ると、ファイル位置管理テーブル37の対象ファイルに対応する行のキャッシュI/Oサーバ欄37CにサーバIDが格納されているI/Oサーバ3をI/O先としてクライアント2に通知する(SP62)。
 これに対してI/Oサーバ選択部35は、ステップSP61の判断で否定結果を得ると、ファイル位置管理テーブル37の対象ファイルに対応する行の本I/Oサーバ欄37BにサーバIDが格納されている本I/Oサーバ3を当該本I/Oサーバ3にデータが保持されたブロックのI/O先とし、ファイル位置管理テーブル37の対象ファイルに対応する行のキャッシュI/Oサーバ欄37CにサーバIDが格納されているI/Oサーバ3を当該I/Oサーバ3に更新データが保持されたブロックのI/O先としてクライアント2に通知する(SP63)。
 そしてI/Oサーバ選択部35は、ステップSP60、ステップSP62又はステップSP63の処理が終了すると、ファイル位置管理テーブル37の対象ファイルに対応する行の振替回数欄37D(図4)に格納された振替回数の値を「1」増加させ(SP68)、この後、このI/Oサーバ選択処理を終了する。
 一方、I/Oサーバ選択部35は、ステップSP58の判断で否定結果を得ると、ファイル位置管理テーブル37の対象ファイルに対応する行のキャッシュI/Oサーバ欄37CにいずれかのI/Oサーバ3のサーバIDが格納されているか否かを判断する(SP64)。
 この判断で肯定結果を得ることは、対象ファイルの更新データをキャッシュしている本I/Oサーバ3以外のI/Oサーバ3が存在することを意味する。かくして、このときI/Oサーバ選択部35は、そのキャッシュI/Oサーバ欄37CにサーバIDが格納されたI/Oサーバ3をI/O先としてクライアント2に通知する(SP65)。
 これに対して、ステップSP64の判断で否定結果を得ることは、対象ファイルの更新データをキャッシュしている本I/Oサーバ3以外のI/Oサーバ3が存在しないことを意味する。かくして、このときI/Oサーバ選択部35は、負荷管理テーブル36の高負荷フラグが「0」に設定されたI/Oサーバ3の中からラウンドロビン法により1つのI/Oサーバ3を選択し、そのI/Oサーバ3をI/O先としてクライアント2に通知する(SP66)。
 またI/Oサーバ選択部35は、ステップSP66でI/O先としてクライアント2に通知したI/Oサーバ3を更新データのキャッシュ先のI/Oサーバ3としてファイル位置管理テーブル37に登録する(SP67)。具体的に、I/Oサーバ選択部35は、ステップSP66でI/O先としてクライアント2に通知したI/Oサーバ3のサーバIDをファイル位置管理テーブル37の対象ファイルと対応する行のキャッシュI/Oサーバ欄37Cに格納する。
 そしてI/Oサーバ選択部35は、ステップSP65又はステップSP67の処理が終了すると、ファイル位置管理テーブル37の対象ファイルに対応する行の振替回数欄37Dに格納された振替回数の値を「1」増加させ(SP68)、この後、このI/Oサーバ選択処理を終了する。
(4)本実施の形態の効果
 以上のように本実施の形態の計算機システム1では、ファイルの更新時に、そのファイルの本I/Oサーバ3の負荷状態を判定し、当該本I/Oサーバ3が高負荷状態にあるときには、その更新データを低負荷状態にある他のI/Oサーバ3にキャッシュさせる。
 従って、本計算機システム1によれば、I/Oサーバ3の負荷が高い場合に、そのI/Oサーバ3の負荷がファイル更新に伴ってさらに増加するのを回避することができる。かくするにつき、分散共有ファイルシステムが適用された計算機システム1において、I/Oサーバ3間の負荷の偏りに起因するシステム全体の応答性能の低下を防止することができる。
 また本計算機システム1では、この後、本I/Oサーバ3の負荷が低下した段階で、更新データを本I/Oサーバ3に転送させ又はファイルの残りのファイルデータをそのとき更新データをキャッシュしているI/Oサーバ3に移動させるため、ファイルデータが異なるI/Oサーバ3に分散して保持され続けるのを防止することができる。これにより本計算機システム1によれば、ファイルデータが複数のI/Oサーバ3に分散して保持されるというファイルの断片化を防止して、並列的なファイルのI/O時における応答性能の低下を防止することができる。
 さらに本計算機システム1では、図8について上述したデータ戻し/ファイル移動処理において、振替回数が振替回数閾値よりも多く、更新データのデータサイズがキャッシュサイズ割合閾値を超えている場合に更新データを本I/Oサーバ3からそのとき更新データをキャッシュしているI/Oサーバ3に移動させるようにしているため、高負荷となりやすい本I/Oサーバ3の負荷を他のI/Oサーバ3に分散させることができ、より一層とI/Oサーバ3間の負荷の偏りに起因するシステム全体の応答性能の低下を防止することができる。
(5)他の実施の形態
 なお上述の実施の形態においては、クライアント2からのファイルを保存するための記憶装置20を各I/Oサーバ3の内部に設けるようにした場合について述べたが、本発明はこれに限らず、かかる記憶装置20をI/Oサーバの外部に設け、これらの記憶装置をそれぞれ各I/Oサーバにそれぞれ接続するようにしても良い。
 また上述の実施の形態においては、キャッシュダーティ率、キャッシュ断片率及びシステムコール数のいずれかが対応するキャッシュダーティ率閾値、キャッシュ断片率閾値又は第1のシステムコール数閾値以上である場合や、システムコール数が第2のシステムコール数閾値以上であり、かつ平均I/Oサイズが平均I/Oサイズ閾値以上である場合に、そのI/Oサーバ3が高負荷であると判定するようにした場合について述べたが、本発明はこれに限らず、これ以外の情報に基づいてI/Oサーバ3の負荷を判定するようにしても良い。
 さらに上述の実施の形態においては、管理サーバ4の負荷判定部34が、図8のステップSP24及びステップSP25の双方において肯定結果を得た場合にのみ、選択ファイルをその更新データを保持するI/Oサーバ3に移動するよう選択ファイルの配置先のI/Oサーバ2に指示を与えるようにした場合について述べたが、本発明はこれに限らず、ステップSP24及びステップSP25の少なくとも一方で肯定結果を得た場合に選択ファイルをその更新データを保持するI/Oサーバ3に移動するよう選択ファイルの配置先のI/Oサーバ2に指示を与えるようにしても良い。
 本発明は、分散共有ファイルシステム機能が導入された種々の構成の計算機システムに広く適用することができる。
 1……計算機システム、2……クライアント、3……I/Oサーバ、4……管理サーバ、10,22,30……CPU、11,23,31……メモリ、14……I/O処理部、15……I/O先問合せ部、20……記憶装置、21……コントローラ、24……キャッシュメモリ、25……データ受信部、26……キャッシュ管理部、27……負荷情報送信部、33……負荷情報収集部、34……負荷判定部、35……I/Oサーバ選択部、36……負荷管理テーブル、37……ファイル位置管理テーブル、38……キャッシュ管理テーブル。

Claims (11)

  1.  1又は複数のクライアントにより作成されたファイルを複数のサーバ装置内又は複数のサーバ装置とそれぞれ接続された記憶装置に分散して配置し、各前記ファイルを1つのファイルシステムとして各前記クライアントが利用可能な計算機システムを管理する管理装置において実行される管理方法であって、
     前記管理装置は、
     各前記サーバ装置から当該サーバ装置の負荷状態を表す所定の負荷情報をそれぞれ収集する負荷情報収集部と、
     収集した各前記負荷情報に基づいて、各前記サーバ装置の負荷状態をそれぞれ判定する負荷判定部と、
     前記クライアントからの問合せに応じて、当該クライアントがファイルの読出し又は書込み先とすべき前記サーバ装置を選定し、選定したサーバ装置を当該クライアントに通知する書込み/読出し先選定部と
     を有し、
     前記書込み/読出し先選定部が、前記ファイルの更新時に当該ファイルが配置された前記サーバ装置の負荷が高い場合には、負荷が低い他の前記サーバ装置を当該ファイルの更新データの一時的な保持先として選定し、選定した前記サーバ装置を前記クラインに通知する第1のステップと、
     前記負荷判定部が、定期的又は不定期に各前記サーバ装置の負荷状態を判定し、いずれかの前記サーバ装置に配置された前記ファイルの前記更新データが他の前記サーバ装置に一時的に保持されており、かつ当該ファイルが配置された前記サーバ装置の負荷が低いときには、前記更新データを一時的に保持する前記サーバ装置に対して、当該更新データを当該ファイルが配置された前記サーバ装置に転送するよう指示を与える第2のステップと
     を備えることを特徴とする管理方法。
  2.  各前記サーバ装置は、
     対応する前記記憶装置に読み書きする前記ファイルのファイルデータを一時的に保持するキャッシュメモリを備え、
     前記負荷判定部は、
     前記負荷情報として、前記キャッシュメモリに保持されたすべての前記ファイルデータのうち、前記記憶装置に格納されていない前記ファイルデータの割合であるキャッシュダーティ率と、前記キャッシュメモリにおける前記ファイルデータの断片化率であるキャッシュ断片率と、1秒当たりの書込み/読出しのシステムコール数と、平均的なI/Oのデータサイズである平均I/Oサイズとを各前記サーバ装置からそれぞれ収集する
     ことを特徴とする請求項1に記載の管理方法。
  3.  前記負荷判定部は、
     前記キャッシュダーティ率、前記キャッシュ断片率及び前記システムコール数のいずれかが当該キャッシュダーティ率、当該キャッシュ断片率及び当該システムコール数についてそれぞれ予め定められた第1の閾値以上である場合、又は、前記システムコール数が当該システムコール数について予め定められた第2の閾値以上であり、かつ前記平均I/Oサイズが当該平均I/Oサイズについて予め定められた第1の閾値以上である場合には、前記サーバ装置の負荷が高いと判定し、他の場合には当該サーバ装置の負荷が低いと判定する
     ことを特徴とする請求項2に記載の管理方法。
  4.  前記第2のステップにおいて、前記負荷判定部は、
     いずれかの前記サーバ装置に配置された前記ファイルの前記更新データが他の前記サーバ装置に一時的に保持されており、かつ当該ファイルが配置された前記サーバ装置の負荷が低い場合であっても、当該ファイルが、当該ファイルが配置された前記サーバ装置以外の前記サーバ装置に一時的に保持された回数が予め定められた第3の閾値よりも多いときには、当該ファイルが配置された前記サーバ装置に対して、当該ファイルを、当該ファイルの前記更新データを一時的に保持する前記サーバ装置に移動させるよう指示を与える
     ことを特徴とする請求項1に記載の管理方法。
  5.  前記第2のステップにおいて、前記負荷判定部は、
     いずれかの前記サーバ装置に配置された前記ファイルの前記更新データが他の前記サーバ装置に一時的に保持されており、かつ当該ファイルが配置された前記サーバ装置の負荷が低い場合であっても、当該ファイル全体のファイルサイズに対する当該他のサーバ装置に一時的に保持された前記更新データのデータサイズの割合が予め定められた第4の閾値を超えているときには、当該ファイルが配置された前記サーバ装置に対して、当該ファイルを、当該ファイルの前記更新データを一時的に保持する前記サーバ装置に移動させるよう指示を与える
     ことを特徴とする請求項1に記載の管理方法。
  6.  1又は複数のクライアントにより作成されたファイルを複数のサーバ装置内又は複数のサーバ装置とそれぞれ接続された記憶装置に分散して配置し、各前記ファイルを1つのファイルシステムとして各前記クライアントが利用可能な計算機システムを管理する管理装置において、
     各前記サーバ装置から当該サーバ装置の負荷状態を表す所定の負荷情報をそれぞれ収集する負荷情報収集部と、
     収集した各前記負荷情報に基づいて、各前記サーバ装置の負荷状態をそれぞれ判定する負荷判定部と、
     前記クライアントからの問合せに応じて、当該クライアントがファイルの読出し又は書込み先とすべき前記サーバ装置を選定し、選定したサーバ装置を当該クライアントに通知する書込み/読出し先選定部と
     を備え、
     前記書込み/読出し先選定部は、
     前記ファイルの更新時に当該ファイルが配置された前記サーバ装置の負荷が高い場合には、負荷が低い他の前記サーバ装置を当該ファイルの更新データの一時的な保持先として選定し、選定した前記サーバ装置を前記クラインに通知し、
     前記負荷判定部は、
     定期的又は不定期に各前記サーバ装置の負荷状態を判定し、いずれかの前記サーバ装置に配置された前記ファイルの前記更新データが他の前記サーバ装置に一時的に保持されており、かつ当該ファイルが配置された前記サーバ装置の負荷が低いときには、前記更新データを一時的に保持する前記サーバ装置に対して、当該更新データを当該ファイルが配置された前記サーバ装置に転送するよう指示を与える
     ことを特徴とする管理装置。
  7.  各前記サーバ装置は、
     対応する前記記憶装置に読み書きする前記ファイルのファイルデータを一時的に保持するキャッシュメモリを備え、
     前記負荷判定部は、
     前記負荷情報として、前記キャッシュメモリに保持されたすべての前記ファイルデータのうち、前記記憶装置に格納されていない前記ファイルデータの割合であるキャッシュダーティ率と、前記キャッシュメモリにおける前記ファイルデータの断片化率であるキャッシュ断片率と、1秒当たりの書込み/読出しのシステムコール数と、平均的なI/Oのデータサイズである平均I/Oサイズとを各前記サーバ装置からそれぞれ収集する
     ことを特徴とする請求項6に記載の管理装置。
  8.  前記負荷判定部は、
     前記キャッシュダーティ率、前記キャッシュ断片率及び前記システムコール数のいずれかが当該キャッシュダーティ率、当該キャッシュ断片率及び当該システムコール数についてそれぞれ予め定められた第1の閾値以上である場合、又は、前記システムコール数が当該システムコール数について予め定められた第2の閾値以上であり、かつ前記平均I/Oサイズが当該平均I/Oサイズについて予め定められた第1の閾値以上である場合には、前記サーバ装置の負荷が高いと判定し、他の場合には当該サーバ装置の負荷が低いと判定する
     ことを特徴とする請求項7に記載の管理装置。
  9.  前記負荷判定部は、
     いずれかの前記サーバ装置に配置された前記ファイルの前記更新データが他の前記サーバ装置に一時的に保持されており、かつ当該ファイルが配置された前記サーバ装置の負荷が低い場合であっても、当該ファイルが、当該ファイルが配置された前記サーバ装置以外の前記サーバ装置に一時的に保持された回数が予め定められた第3の閾値よりも多いときには、当該ファイルが配置された前記サーバ装置に対して、当該ファイルを、当該ファイルの前記更新データを一時的に保持する前記サーバ装置に移動させるよう指示を与える
     ことを特徴とする請求項6に記載の管理装置。
  10.  前記負荷判定部は、
     いずれかの前記サーバ装置に配置された前記ファイルの前記更新データが他の前記サーバ装置に一時的に保持されており、かつ当該ファイルが配置された前記サーバ装置の負荷が低い場合であっても、当該ファイル全体のファイルサイズに対する当該他のサーバ装置に一時的に保持された前記更新データのデータサイズの割合が予め定められた第4の閾値を超えているときには、当該ファイルが配置された前記サーバ装置に対して、当該ファイルを、当該ファイルの前記更新データを一時的に保持する前記サーバ装置に移動させるよう指示を与える
     ことを特徴とする請求項6に記載の管理装置。
  11.  1又は複数のクライアントにより作成されたファイルを複数のサーバ装置に分散して配置し、各前記クライアントが各前記ファイルを1つのファイルシステムとして利用可能な計算機システムを管理する管理装置に、
     各前記サーバ装置から当該サーバ装置の負荷状態を表す所定の負荷情報をそれぞれ収集する第1のステップと、
     収集した各前記負荷情報に基づいて、各前記サーバ装置の負荷状態をそれぞれ判定する第2のステップと、
     前記クライアントからの問合せに応じて、当該クライアントがファイルの読出し又は書込み先とすべき前記サーバ装置を選定し、選定したサーバ装置を当該クライアントに通知する一方、前記ファイルの更新時に当該ファイルが配置された前記サーバ装置の負荷が高い場合には、負荷が低い他の前記サーバ装置を当該ファイルの更新データの一時的な保持先として選定し、選定した前記サーバ装置を前記クラインに通知する第3のステップと、
     定期的又は不定期に各前記サーバ装置の負荷状態を判定し、いずれかの前記サーバ装置に配置された前記ファイルの前記更新データが他の前記サーバ装置に一時的に保持されており、かつ当該ファイルが配置された前記サーバ装置の負荷が低いときには、前記更新データを一時的に保持する前記サーバ装置に対して、当該更新データを当該ファイルが配置された前記サーバ装置に転送するよう指示を与える第4のステップと
     を備える処理を実行させるプログラムが格納されたことを特徴とする記憶媒体。
PCT/JP2015/050412 2015-01-08 2015-01-08 管理方法及び管理装置並びに記憶媒体 WO2016110985A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2015/050412 WO2016110985A1 (ja) 2015-01-08 2015-01-08 管理方法及び管理装置並びに記憶媒体
US15/318,990 US20170123731A1 (en) 2015-01-08 2015-01-08 Management method and management apparatus, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/050412 WO2016110985A1 (ja) 2015-01-08 2015-01-08 管理方法及び管理装置並びに記憶媒体

Publications (1)

Publication Number Publication Date
WO2016110985A1 true WO2016110985A1 (ja) 2016-07-14

Family

ID=56355706

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/050412 WO2016110985A1 (ja) 2015-01-08 2015-01-08 管理方法及び管理装置並びに記憶媒体

Country Status (2)

Country Link
US (1) US20170123731A1 (ja)
WO (1) WO2016110985A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017162257A (ja) * 2016-03-10 2017-09-14 富士通株式会社 負荷監視プログラム、負荷監視方法、情報処理装置、および情報処理システム
US10032115B2 (en) * 2016-05-03 2018-07-24 International Business Machines Corporation Estimating file level input/output operations per second (IOPS)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000207370A (ja) * 1999-01-20 2000-07-28 Matsushita Electric Ind Co Ltd 分散ファイル管理装置及び分散ファイル管理システム
WO2011074699A1 (ja) * 2009-12-18 2011-06-23 日本電気株式会社 分散処理管理サーバ、分散システム、分散処理管理プログラム及び分散処理管理方法
US20110153954A1 (en) * 2009-05-15 2011-06-23 Hitachi, Ltd. Storage subsystem
JP2012059130A (ja) * 2010-09-10 2012-03-22 Hitachi Ltd 計算機システム、データ検索方法及びデータベース管理計算機
JP2013114671A (ja) * 2011-11-30 2013-06-10 Hitachi Ltd 負荷分散システム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000207370A (ja) * 1999-01-20 2000-07-28 Matsushita Electric Ind Co Ltd 分散ファイル管理装置及び分散ファイル管理システム
US20110153954A1 (en) * 2009-05-15 2011-06-23 Hitachi, Ltd. Storage subsystem
WO2011074699A1 (ja) * 2009-12-18 2011-06-23 日本電気株式会社 分散処理管理サーバ、分散システム、分散処理管理プログラム及び分散処理管理方法
JP2012059130A (ja) * 2010-09-10 2012-03-22 Hitachi Ltd 計算機システム、データ検索方法及びデータベース管理計算機
JP2013114671A (ja) * 2011-11-30 2013-06-10 Hitachi Ltd 負荷分散システム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SHUN'ICHI TORII ET AL.: "Parallel RDB Server with High Scalability", IEICE TECHNICAL REPORT, vol. 94, no. 223, 8 September 1994 (1994-09-08), pages 41 - 48 *

Also Published As

Publication number Publication date
US20170123731A1 (en) 2017-05-04

Similar Documents

Publication Publication Date Title
JP4933284B2 (ja) ストレージ装置及び負荷分散方法
US7693873B2 (en) System, method and program to synchronize files in distributed computer system
US7844775B2 (en) Distribution of data in a distributed shared storage system
US8275902B2 (en) Method and system for heuristic throttling for distributed file systems
CN102523279B (zh) 一种分布式文件系统及其热点文件存取方法
CN104902009A (zh) 一种基于可擦除编码和链式备份的分布式存储系统
JP6263596B2 (ja) 分散キャッシュメモリにおける適応分割用のシステム及び方法
US8661055B2 (en) File server system and storage control method
WO2013030893A1 (en) Computer system and data access control method
TW201022953A (en) Partition management in a partitioned, scalable, and available structured storage
US8423517B2 (en) System and method for determining the age of objects in the presence of unreliable clocks
WO2016110985A1 (ja) 管理方法及び管理装置並びに記憶媒体
WO2013098888A1 (en) Storage apparatus and method for controlling same
US20180275922A1 (en) Solid State Disk with Consistent Latency
CN108369575A (zh) 电子存储系统
US10387043B2 (en) Writing target file including determination of whether to apply duplication elimination
US11188258B2 (en) Distributed storage system
EP3449372B1 (en) Fault-tolerant enterprise object storage system for small objects
CN111404828B (zh) 实现全局流控的方法及装置
JP5504936B2 (ja) ストレージ装置およびデータ格納制御方法
JP6530572B2 (ja) 情報処理システム及び方法
JP4224279B2 (ja) ファイル管理プログラム
JP5617712B2 (ja) コンテンツ配信サーバ、コンテンツ配信システム、コンテンツ配信プログラム及びコンテンツ配信方法
JP5413599B2 (ja) データ配信システム,負荷分散方法及び蓄積サーバ
CN105264498B (zh) 用于通用串行总线系统的高速缓存管理的系统和方法

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: 15876862

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15318990

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15876862

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP