WO2016132524A1 - ストレージ管理システム、ストレージ管理方法及びストレージ装置 - Google Patents

ストレージ管理システム、ストレージ管理方法及びストレージ装置 Download PDF

Info

Publication number
WO2016132524A1
WO2016132524A1 PCT/JP2015/054741 JP2015054741W WO2016132524A1 WO 2016132524 A1 WO2016132524 A1 WO 2016132524A1 JP 2015054741 W JP2015054741 W JP 2015054741W WO 2016132524 A1 WO2016132524 A1 WO 2016132524A1
Authority
WO
WIPO (PCT)
Prior art keywords
storage
data
input
storage device
threads
Prior art date
Application number
PCT/JP2015/054741
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/054741 priority Critical patent/WO2016132524A1/ja
Publication of WO2016132524A1 publication Critical patent/WO2016132524A1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Definitions

  • the present invention relates to a storage management system, a storage management method, and a storage apparatus, and is suitable for application to a storage management system, a storage management method, and a storage apparatus that assign threads to each site according to the amount of data migration.
  • Patent Document 1 determines whether data migration from each site is possible according to the amount of data migrated from each site to the data center and the load on the data replication destination storage device that increases due to data migration. Technology is disclosed. As a result, it is possible to prevent a situation where the storage area of the storage apparatus overflows and to improve the reliability of the entire information processing system.
  • Patent Document 1 since it is determined whether or not data migration is possible based on the load with the data replication destination storage device that increases due to data migration, if it is determined that data migration from each site is not possible, There was a problem that data migration itself could not be performed.
  • the present invention has been made in consideration of the above points, a storage management system capable of appropriately controlling the processing load of each base according to the data amount of each base and executing efficient data processing, A storage management method and a storage apparatus are proposed.
  • the present invention comprises a plurality of first storage devices that accept data input / output requests, and a second storage device connected to the plurality of first storage devices,
  • the first storage device performs parallel processing on a storage unit that stores data and a plurality of threads that constitute a program, and is based on the input / output processing of the data according to the input / output request, and a predetermined policy A control unit that controls a migration process of the data to the second storage device, wherein the second storage device stores a data, and stores data of the plurality of first storage devices.
  • the plurality of threads for executing the input / output processing or the migration processing according to the amount of data at the time of the input / output processing and the migration processing are assigned to the plurality of first storages Characterized in that it comprises a control unit for distributing to each location, the storage management system is provided.
  • a storage comprising a plurality of first storage devices that accept data input / output requests and a second storage device connected to the plurality of first storage devices.
  • a storage management method in a management system wherein the control unit of the first storage device acquires a data amount of the input / output process or the migration process, and the control unit of the second storage device Distributing the plurality of threads for executing the input / output processing or the migration processing to each of the plurality of first storage devices according to the amount of data; and a control unit of the first storage device,
  • the input / output processing of the data according to the input / output request with the number of distributed threads, and the data based on a predetermined policy Characterized in that it comprises the step of executing the transition process to the serial second storage apparatus, a storage management method is provided.
  • a plurality of base devices including input / output devices that accept data input / output requests, and a storage device connected to the plurality of base devices, the storage storing data And the plurality of threads for executing the input / output process or the migration process to each of the plurality of site apparatuses according to the amount of data at the time of data input / output processing and migration process of the plurality of site apparatuses And a control unit that distributes the storage device.
  • FIG. It is a block diagram which shows the hardware constitutions of the storage management system which concerns on one Embodiment of this invention. It is a block diagram which shows the structure of the RAID system concerning the embodiment. 3 is a block diagram showing a software configuration of the storage management system according to the same embodiment.
  • FIG. It is a chart which shows the content of the inode management table concerning the embodiment. It is a conceptual diagram explaining the inode management table concerning the embodiment. It is a chart which shows the contents of the thread allocation management table concerning the embodiment. It is a chart which shows the contents of the thread number management table concerning the embodiment. It is a chart which shows the contents of the thread management table of each base concerning the embodiment.
  • 6 is a flowchart showing data read / write processing according to the embodiment; It is a flowchart which shows the data migration process concerning the embodiment. It is a flowchart which shows the thread management process concerning the embodiment. It is a flowchart which shows the thread
  • the file data migrated from the migration source storage device (hereinafter referred to as the migration source storage device as a file storage device) to the migration destination storage device is stored in the file storage device. It is replaced with meta information indicating the storage location of the migration destination storage device called a stub file.
  • the file storage device acquires the corresponding file data from the other storage device and transfers it to the client / host.
  • the file storage apparatus acquires the corresponding file data of the other storage apparatus based on the address information included in the stub file. This conceals that the storage location of the file data has been changed from the client / host, and the stub file behaves as if it is a real file. Such behavior is called recall processing.
  • the storage apparatus includes a plurality of processor cores (cores) in a plurality of CPUs (processor package; hereinafter, processor package may be simply referred to as a processor), and performs parallel processing. It uses a multi-core processor system that improves performance.
  • a multi-core processor system is a computer system that shares resources, which are hardware resources, among a plurality of cores mounted on a processor and processes a plurality of threads in parallel.
  • a thread is an execution unit of a process by a processor.
  • the above-described recall process and restore process thread will be referred to as a front-end thread
  • the migration process thread will be referred to as a back-end thread.
  • a plurality of threads are processed in parallel by a plurality of CPUs of the storage apparatus, but an upper limit is set for threads that can be processed by each storage apparatus so that the processing does not overflow. Therefore, when storage devices are installed at multiple locations where users actually perform business, such as branches and offices, if there is a bias in the number of threads processed between storage devices, restoration was originally possible. / Recall processing and migration processing could not be executed, and there was a problem that processing performance was lost.
  • the number of threads for restore / recall processing and migration processing must be calculated and set manually, and the amount of data for restore / recall processing and migration processing cannot be estimated during data transfer. In some cases, the transfer process could not be completed.
  • efficient data processing is performed by assigning a thread to be executed at each base according to the amount of data at each base. It is possible to execute. This makes it possible to automate the calculation and setting of the number of threads for restore / recall processing and migration processing, and to estimate the amount of data for restore / recall processing and migration processing at the time of data transfer.
  • the storage management system mainly uses a RAID (Redundant) that controls data writing to a file storage device 120 that provides files to the client / host 300 and a disk (denoted as DISK in the figure) 113.
  • a base 100A, a base 100B, and a base 100C having an (Arrays of Independent Disks) system 110 (hereinafter, the base 100A, the base 100B, and the base 100C may be collectively referred to as the base 100); and a plurality of archive devices 220;
  • a Core (data center) 200 including a RAID system 210 and a monitoring server 230 is configured.
  • the core (data center) 200 may be composed of a plurality of cores (data centers) 200.
  • the base 100 is a base where a user actually performs business such as a branch or a business office, and the Core (data center) 200 collectively manages servers and storage devices used in a company or the like. It is a data center that provides cloud services.
  • the base 100 and the core (data center) 200 are connected via a network 500.
  • the network 500 includes, for example, a SAN (Storage Area Network), and communication between apparatuses is performed according to, for example, a fiber channel protocol.
  • the network 500 may be, for example, a local area network (LAN), the Internet, a public line, or a dedicated line.
  • LAN local area network
  • IP Transmission Control Protocol / Internet Protocol
  • the base 100 includes the RAID system 110, the file storage device 120, the client / host 300, and the like.
  • the file storage device 120 and the RAID system 110 are configured as separate devices, but the present invention is not limited to this example, and the file storage device 120 and the RAID system 110 are integrated as a file storage device. It may be configured.
  • the file storage device 120 includes a memory 121, a CPU 122, a network interface card (NIC: Network InterFace Card) 123, a host bus adapter (HBA: Host Bus Adapter) 124, and the like.
  • NIC Network InterFace Card
  • HBA Host Bus Adapter
  • the CPU 122 functions as an arithmetic processing device, and controls the operation of the file storage device 120 in accordance with programs, arithmetic parameters, and the like stored in the memory 121.
  • the network interface card 123 is an interface for communicating with the archive device 220 via the network 500.
  • the host bus adapter 124 connects the RAID system 110 and the file storage device 120, and the file storage device 120 executes block unit access with the RAID system 210 via the host bus adapter 124.
  • the RAID system 110 includes a channel adapter (CHA: Channel Adapter) 111, a disk controller (DKC: Disk Controller) 112, a disk (DISK) 113 in the figure, and the like.
  • the channel adapter 111 has a function of receiving a data input / output request transmitted from the host bus adapter 124.
  • the disk controller 112 has a function of controlling input / output to the disk 113 based on the input / output request received by the channel adapter 111.
  • the RAID system 110 is provided with one disk 113.
  • the present invention is not limited to this example, and a plurality of disks 113 may be provided.
  • a plurality of hard disk drives including expensive hard disk drives such as SSD (Solid State Computer Disk) and SCSI (Small Computer System Interface) disks, or inexpensive hard disk drives such as SATA (Serial AT AT Attachment) disks. Hard Disk Drive).
  • the disk 113 may be described as the hard disk device 113 or the HDD 113.
  • the RAID system 110 will be described with reference to FIG. As shown in FIG. 2, the RAID system 110 includes a plurality of hard disk devices 113 (represented as HDDs in the figure), a plurality of controllers 114, a plurality of ports (represented as Ports in the figure) 118, and a plurality of interfaces (represented in the figure). Medium I / F) 117.
  • the controller 114 includes a processor 115 that controls input / output of data and a cache memory 116 that temporarily stores data.
  • the port 118 is a channel interface board, and functions as a so-called channel adapter (CHA) that connects the controller 114 and the file storage device 120.
  • the port 118 has a function of transferring a command received from the file storage apparatus 120 to the controller 114 via a local router (not shown).
  • the interface 117 is an interface board for a hard disk and has a function as a disk adapter (DKA).
  • the interface 117 executes data transfer of a command issued to the hard disk device 113 via a local router (not shown).
  • the controller 114, the interface 117, and the port 118 may be connected to each other by a switch (not shown) to distribute data such as commands.
  • one or a plurality of logical volumes are set on the storage area provided by the plurality of hard disk devices 113.
  • the plurality of hard disk devices 113 are managed as one RAID group, and one or a plurality of logical volumes are defined on a storage area provided by the RAID group.
  • logical volumes provided by a plurality of RAID groups are managed as one pool. Normally, when creating a logical volume, the storage area on the hard disk is allocated to the logical volume. If the host (user) uses the logical volume to which the storage area is allocated less frequently, the allocated storage area is valid. Not used. Therefore, when a data write request from a host (user) is received, a thin provisioning function for allocating a storage area on the hard disk is used for the first time.
  • a virtual volume (hereinafter referred to as a virtual volume) is presented to the client / host 300, and data is actually stored when the client / host 300 has write access to the virtual volume. Allocate physical storage area to virtual volume. As a result, the storage area in the file storage apparatus 120 can be efficiently used while presenting to the client / host 300 a volume having a capacity larger than the storage area in the file storage apparatus 120.
  • the client / host 300 includes a memory 301, a CPU 302, a network interface card (NIC: Network Interface Card) 303, a disk (DISK in the figure) 304, and the like.
  • NIC Network Interface Card
  • DISK Disk in the figure
  • the CPU 302 functions as an arithmetic processing unit, reads a program for controlling the client / host 300 such as an OS stored in the disk 304 onto the memory 301, and executes the program. Further, the network interface card 303 communicates with the file storage device 120 connected via the network, and executes access in units of files.
  • the core (data center) 200 includes the RAID system 210, the archive device 220, the monitoring server 230, and the like.
  • the archive device 220 and the RAID system 210 are configured as separate devices.
  • the present invention is not limited to this example, and the archive device 220 and the RAID system 210 are configured integrally as an archive device. Also good.
  • the archive device 220 includes a memory 221, a CPU 222, a network interface card (NIC: Network Interface Card) 223, a host bus adapter (HBA: Host Bus Adapter) 224, and the like.
  • NIC Network Interface Card
  • HBA Host Bus Adapter
  • the CPU 222 functions as an arithmetic processing device, and controls the operation of the archive device 220 according to programs, arithmetic parameters, and the like stored in the memory 201.
  • the network interface card 223 is an interface for communicating with the file storage apparatus 120 via the network 500.
  • the host bus adapter 224 connects the RAID system 210 and the archive device 220, and the archive device 220 executes block unit access with the RAID system 210 via the host bus adapter 224.
  • the RAID system 210 includes a channel adapter (CHA in the figure) 211, a disk controller (DKC in the figure) 212, a disk (DISK in the figure) 213, and the like.
  • the channel adapter 211 has a function of receiving a data input / output request transmitted from the host bus adapter 224.
  • the disk controller 212 has a function of controlling input / output to the disk 213 based on the input / output request received by the channel adapter 211. Since the configuration of the RAID system 210 is the same as the configuration of the RAID system 110 at the site 100, detailed description thereof is omitted.
  • the hardware configuration of the monitoring server 230 is the same as the hardware configuration of the archive device 220, a detailed description thereof will be omitted.
  • the monitoring server 230 and the archive device 220 are configured as separate devices.
  • the present invention is not limited to this example, and the monitoring server 230 and the archive device 220 are configured as an integrated device. May be.
  • a file sharing program 125 As shown in FIG. 3, a file sharing program 125, a data mover program 126, a thread management program 127, a reception program (read / write) 128, a file system 129, and a kernel / driver 130 are stored in the memory 121 of the file storage apparatus 120. Stored.
  • the file sharing program 125 is a program that provides a file sharing system with the client / host 300 using a communication protocol such as CIFS (Common Internet File System) and NFS (Network File System).
  • CIFS Common Internet File System
  • NFS Network File System
  • the data mover program 126 is a program for transmitting data to be transferred from the migration source file storage device 120 to the migration destination archive device 220 when the data is migrated. Further, the data mover program 126 has a function of acquiring data via the archive device 220 when a reference request for data already transferred from the client / host 300 to the archive device 220 is received (restore / recall processing).
  • the data mover program 126 counts the number of threads executed for each process when the data movement process or the acquisition process is executed, and provides the counted result to the thread management program 127.
  • the number of front-end threads executed when executing recall / restore processing is defined as the number of front-end threads
  • the number of back-end threads executed when executing data movement processing is defined as the number of back-end threads.
  • the thread management program 127 is a program that manages the number of threads executed by the file storage device 120.
  • the thread management program 127 transmits the reference file size or the update file size in response to a request from the monitoring server 230 of the Core (data center) 20, and the number of front-end threads transmitted from the monitoring server 230 and the back end. Set the number of threads.
  • the reception program (read / write) 128 is a program that receives data input / output requests from the client / host 300.
  • the file system 129 is a program that manages a logical structure constructed to realize a management unit called a file on a logical volume.
  • the file system managed by the file system 129 includes a super block, an inode management table, a data block, and the like.
  • the super block is an area that collectively holds information of the entire file system.
  • the information of the entire file system is, for example, the size of the file system or the free capacity of the file system.
  • the inode management table 1290 is a table for managing inodes associated with one directory or file.
  • the data block is a block in which actual file data, management data, and the like are stored.
  • a directory entry including only directory information is used. For example, when accessing a file defined as “home / user-01 / a.txt”, as shown in the inode management table 1290 in FIG. 4A, the data block is traced through the inode number associated with the directory. To access. That is, the data block “a.txt” can be accessed by following the inode number “2 ⁇ 10 ⁇ 15 ⁇ 100”.
  • the inode associated with the file entity “a.txt” information such as file ownership, access right, file size, and data storage location is stored.
  • This inode is stored in the inode management table 1290 as shown in FIG. 4B. That is, the inode associated with only the directory stores the inode number, the update date / time, the inode number of the parent directory and the child directory.
  • the inode associated with the file entity stores information such as the owner, access right, file size, and data block address in addition to the inode number, update date, parent directory, and child directory.
  • the storage location of each file is managed by the inode management table 1290, and it is possible to know which file has been migrated or stubbed.
  • the kernel / driver 130 of the file storage apparatus 120 is a program that performs general control of the file storage apparatus 120 and hardware-specific control. Specifically, the schedule control of a plurality of programs operating on the file storage apparatus 120, the interruption from the hardware, and the input / output of the block unit to the storage device are performed.
  • the memory 301 of the client / host 300 stores an application 305, a file system 306, a kernel / driver 307, and the like.
  • the application 305 is various application programs executed on the client / host 300. Since the file system 306 has the same function as the file system 129 of the file storage device 120 described above, detailed description thereof is omitted.
  • the kernel / driver 307 also has the same function as the kernel / driver 130 described above, and a detailed description thereof will be omitted.
  • the disk 113 of the RAID system 110 stores a logical volume (noted as OS LU in the figure) 119b for storing an OS such as a control program, and a logical volume (noted as LU in the figure) 119a for storing data.
  • An example of the control program stored in the OS LU 119b is a program that provides the client / host 300 with a thin provisioning function.
  • the program manages logical volumes defined on a RAID group composed of a plurality of hard disks as one pool. Then, the virtual volume is provided to the client / host 300, and when there is a write access from the client / host 300, a pool area is allocated to the virtual volume.
  • the archive device 220 of the Core (data center) 200 stores a data mover program 225, a file system 226, and a kernel / driver 227. Since the data mover program 225 has the same function as the data mover program 126 of the file storage apparatus 120, detailed description thereof is omitted. Further, the file system 226 has the same function as the file system 129 of the storage apparatus 120, and thus detailed description thereof is omitted. Further, the kernel / driver 227 has the same function as the kernel / driver 130 of the file storage device 120, and thus detailed description thereof is omitted.
  • RAID system 210 of the Core (data center) 200 has substantially the same function as the RAID system 110 of the base 100, detailed description thereof is omitted.
  • a monitoring program 235 and a kernel / driver 236 are stored in the memory 231 of the monitoring server 230.
  • the monitoring program 235 sets the number of front-end threads and the number of back-end threads allocated to each site based on the reference file size and the update file size provided from the thread management program 127 of the file storage device 120 of each site 100. .
  • the monitoring program 235 manages information for assigning a thread to each site such as the reference file size and the update file size provided from the file storage device 120 at each site by using the thread allocation management table 2350.
  • the monitoring program 235 manages the total number of threads included in the archive device 220 using the thread number management table 2360.
  • the thread allocation management table 2350 includes a device number column 2351, a front-end thread column 2352, a back-end thread column 2353, a reference file size column 2354, a reference file number column 2355, an update file size column 2356, an update.
  • the file number field 2357, the average reference file size field 2358, and the average update file size field 2359 are configured.
  • the device number column 2351 a number for identifying the file storage device 120 at each site 100 is stored.
  • the front end thread column 2352 stores the number of front end threads executed by the file storage apparatus 120 at each site 100.
  • the back-end thread column 2353 stores the number of back-end threads executed by the file storage apparatus 120 at each site 100.
  • the reference file size column 2354 stores the file size referred to by the file storage device 120 at each site 100.
  • the reference file number column 2355 stores the number of files referred to by the file storage apparatus 120 at each site 100.
  • the updated file size column 2356 stores the file size updated by the file storage device 120 at each site 100.
  • the updated file number column 2357 stores the number of files updated by the file storage device 120 at each site 100.
  • the average reference file size column 2358 stores an average value of file sizes referred to by the file storage apparatus 120 at each site 100.
  • the average updated file size column 2359 stores the average value of the file sizes updated by the file storage device 120 at each site 100.
  • the thread number management table 2360 stores the number of all threads of the archive device 220 in the thread number column 2361.
  • the monitoring program 235 refers to the thread allocation management table 2350, determines the number of threads to be allocated to the file storage apparatus 120 at each site 100 by thread allocation processing described later, and stores information on the number of threads for each site 100. Transmit to the file storage device 120.
  • the number of threads assigned to the file storage apparatus 120 at each site 100 determined by the monitoring program 235 is managed by the thread management table 1270 of the file storage apparatus 120.
  • the thread management table 1270 of each site includes a front end thread column 1271, a back end thread column 1272, a reference file size column 1273, a reference file number column 1274, an update file size column 1275, and an update file number column. 1276.
  • the front end thread column 1271 stores the number of front end threads set in the file storage device 120 at each site 100.
  • the back-end thread column 1272 stores the number of back-end threads set in the file storage apparatus 120 at each base 100.
  • the reference file size column 1273 stores the file size referenced in the file storage device 120 at each site 100.
  • the reference file number column 1274 stores the number of files referenced in the file storage device 120 at each site 100.
  • the updated file size column 1275 stores the file size updated in the file storage device 120 at each site 100.
  • the updated file number column 1276 stores the number of files updated in the file storage device 120 at each site 100.
  • the number of threads set in the front-end thread column 1271 and the back-end thread column 1272 is updated every time the thread is used as the file storage device 120 of each base 100 restores / recalls data or moves. .
  • the thread allocation management process in the storage management system stores the file size and file size at the time of data reference or update when data reference or update is performed in the file storage device 120 at each site 100, and Core (data center)
  • the monitoring server 230 of 200 allocates a thread to the file storage device 120 of each base 100 based on the information collected from the file storage device 120 of each base 100.
  • the file storage device 120 of each base 100 sets the number of threads.
  • the file storage device 120 at each site 100 updates the number of executed threads whenever an event such as data movement processing or synchronization / restoration processing occurs.
  • the above processing includes data read / write processing at the file storage device 120 at each base 100, data movement or synchronization / recall processing at the file storage device 120 at each base 100, and thread management processing at the file storage device 120 at each base 100. And thread allocation processing in the monitoring server 230 of the Core (data center) 200.
  • each process will be described in detail.
  • the processing subject of various processes is described as a “program”, but it goes without saying that the CPUs of the respective apparatuses actually execute the processes based on the programs.
  • the reception program 128 determines whether the access request from the client / host 300 is a data read or write (S101) in accordance with a user input or the like.
  • step S101 If it is determined in step S101 that the access request is a data write request, the reception program 128 determines whether the address information included in the write request is a stub file (S102).
  • the reception program 128 makes a recall request to the core (data center) 200 via the data mover program 126 (S103). Then, the reception program 128 stores the file acquired by the recall request in step S103 in the logical volume (LU 119a), and updates the file (S104).
  • step S102 if it is determined in step S102 that the address information is not a stub file, the reception program 128 updates the corresponding file stored in the logical volume (S106).
  • the reception program 128 adds the file size and the number of files updated in step S104 or step S106 to the values in the update file size column 1275 and the update file number column 1276 of the thread management table 1270 of the local site,
  • the thread management table 1270 is updated (S105), and the process ends.
  • step S101 If it is determined in step S101 that the access request is a data read request, the reception program 128 determines whether the data has been recalled (S107). If it is determined in step S107 that the corresponding data has been recalled, that is, if the corresponding file is stored in the logical volume (LU 119a), the file is acquired (S108).
  • step S107 if it is determined in step S107 that the corresponding data has not been recalled, that is, if the corresponding file is not stored in the logical volume (LU 119a), the reception program 128 passes through the data mover program 126. Then, a recall request is made to the core (data center) 200 (S110).
  • the reception program 128 adds the file size and the number of files referred to in step S108 or step S110 to the values in the reference file size column 1273 and the reference file number column 1274 of the thread management table 1270 of the local site.
  • the thread management table 1270 is updated (S109), and the process ends.
  • step S202 If it is determined in step S202 that an event has occurred, the data mover program 126 determines which event type it is (S203). On the other hand, if it is not determined in step S202 that an event has occurred, the data mover program 126 repeats the process of step S201.
  • Examples of events confirmed by the data mover program 126 in step S201 include events such as whether a certain time has elapsed, replication processing is requested, and synchronization processing is requested.
  • the passage of a certain time means a state in which an event such as a replication process or a synchronization process has not occurred for a certain period of time.
  • the replication process is a process executed in response to an administrator's input, and as described above, is a process of storing data stored in the file storage apparatus 120 in another storage apparatus.
  • the synchronization process is a process for synchronizing the replication source file and the replication destination file after the replication process is executed.
  • step S203 If it is determined in step S203 that the event type is “definite time elapsed”, the data mover program 126 checks the remaining capacity of the file system 129 of the file storage device 120 (S204). It is determined whether the remaining capacity of the file system has fallen below a predetermined threshold (S205).
  • step S205 If it is determined in step S205 that the remaining capacity of the file system is below a predetermined threshold, the data mover program 126 determines that the oldest access date is older until the remaining capacity of the file system exceeds the threshold.
  • a file is selected from (S206). Specifically, the data mover program 126 adds the capacity of the selected file to the remaining capacity of the file system 129, and determines whether the added value exceeds a predetermined threshold.
  • the data mover program 126 deletes the file data of the file selected in step S206, stubs the file (S207), and ends the process.
  • step S205 if it is determined in step S205 that the remaining capacity of the file system is not lower than the predetermined threshold, the process is terminated.
  • step S203 if it is determined that the event type is “migration request”, the data mover program 126 determines whether the number of back-end threads is equal to or less than the set upper limit (S208). If it is determined in step S208 that the number of back-end threads is less than or equal to the set upper limit, the data mover program 126 executes the processing from step S209 onward, and if it is determined that the number is not less than the upper limit. The process is terminated.
  • step S209 if the thread is released, the data mover program 126 increments the number of back-end threads (S209).
  • the data mover program 126 obtains the transfer destination address as the file data storage destination from the archive device 220 (S210), and sets the storage address of the file data to be migrated in the metadata (S211).
  • the data mover program 126 acquires the file, directory, and metadata included in the migration request from the file system 129 (S212). Then, the data mover program 126 transfers the data acquired in step S212 to the archive device 220 (S213). Then, the data mover program 126 decrements the number of backend threads (S214).
  • the data mover program 126 can decrement the number of backend threads each time the migration processing is executed, and execute the migration processing within a range not exceeding the allocated number of threads.
  • step S203 determines whether the event type is “synchronization request / recall request”. If it is determined in step S203 that the event type is “synchronization request / recall request”, the data mover program 126 determines whether the number of front-end threads is equal to or less than the set upper limit (S215). If it is determined in step S215 that the number of back-end threads is less than or equal to the set upper limit, the data mover program 126 executes the processing from step S216 onward, and if it is determined that the number is not less than the upper limit. The process is terminated.
  • step S215 if the thread is released, the data mover program 126 increments the number of front-end threads (S216).
  • the data mover program 126 determines whether the event type is a synchronization request or a recall request (S217).
  • step S217 If it is determined in step S217 that the event type is a synchronization request, the data mover program 126 acquires from the file system 219 the file, directory, and its metadata that have been updated after replication has been executed. (S218). Then, the data mover program 126 transfers the data acquired in step S218 to the archive device 220 (S219).
  • step S217 if it is determined in step S217 that the event type is a recall request, the data mover program 126 acquires the corresponding file from the core (data center) 200 (S220).
  • step S215 to step S221 the data mover program 126 decrements the number of front-end threads each time the synchronization processing or recall processing is executed, and performs the synchronization processing or recall processing within a range not exceeding the allocated number of threads. Can be executed.
  • Thread Management Processing With reference to FIG. 8, the thread management processing in the thread management program 127 of the file storage apparatus 120 at each site 100 will be described. As shown in FIG. 8, the thread management program 127 determines whether the request from the monitoring server 230 is a thread setting request for the own file storage device 120 (S301).
  • step S301 If it is determined in step S301 that the request from the monitoring server 230 is a thread setting request for the self apparatus, the thread management program 127 sets the requested number of front end threads in the file storage apparatus 120 (S302). ), The number of backup end threads is set (S303). As described above, the number of threads for executing the recall / restore process is determined by the number of front-end threads set in step S302. In addition, the number of threads for executing the migration process is determined by the number of back-end threads set in step S303.
  • the thread management program 127 sets the number of threads in the front end thread column 2171 and the number of threads in the back end thread column 1272 of the thread management table 1270 to the set numbers, respectively (S304).
  • step S301 If it is determined in step S301 that the request is not a thread setting request from the monitoring server 230, the thread management program 127 determines whether it is a transmission request for the reference / update file size and the number of reference / update files from the monitoring server 230. (S305).
  • step S305 If it is determined in step S305 that the request is a transmission request for the file size and the number of files, the thread management program 127 refers to the thread management table 1270 for the monitoring server 230 and refers / updates the file size and reference / update. The number of files is transmitted (S306). Then, the thread management program 127 updates the reference / update file size and the number of reference / update files in the thread management table 1270 with 0 (S307).
  • step S305 If it is determined in step S305 that the request is not a transmission request for the file size and the number of files, the thread management program 127 repeats the processes in and after step S301.
  • Thread Allocation Processing Thread allocation processing in the monitoring program 235 of the monitoring server 230 of the Core (data center) 200 will be described with reference to FIG. As shown in FIG. 9, the monitoring program 235 first sets and confirms the average reference file size and the update time interval of the average update file size (S401).
  • the monitoring program 235 determines whether or not the update time set in step S401 has elapsed (S402).
  • step S402 If it is determined in step S402 that the update time set in step S401 has elapsed, the monitoring program 235 executes the processing from step S403 onward, and if it is determined that the update time has not yet elapsed. Repeats the determination process of step S402.
  • the monitoring program 235 requests the file storage device 120 of each site 100 to transmit information on the reference file size, the update file size, the reference file number, and the update file number (S403).
  • the reference file size and the number of reference files are information required when the restore / recall time is estimated in the file storage device of each base 100, and the update file size and the number of update files are used when the migration time is estimated. This is the information required.
  • the monitoring program 235 determines the average reference file size and the average update file size from the information of the reference file size, the update file size, the reference file number, and the update file number acquired from the file storage device 120 of each base 100 in step S403. Is calculated (S404).
  • the information such as the reference file size acquired in step S403 and the information such as the average reference file size calculated in step S404 are stored in the thread allocation management table 2350 in association with the device number of the file storage device 120 at each base 100. .
  • the monitoring program 235 calculates the ratio between the total reference file size and the total update file size from the reference file size and the update file size acquired in step S403 (S405). In step S405, the monitoring program 235 weights the ratio between the total reference file size and the total update file size based on the thread priority ratio (S406).
  • the total number of threads of the archive device 220 is assigned to the number of threads executed on the front end and the number of threads executed on the back end, in the ratio of the total reference file size and the total update file size. Furthermore, weighting is performed according to the priority of the front-end thread and the back-end thread by the calculation in step S406.
  • Priority of the front end thread and the back end thread may be set in advance. Since the threads executed at the front end are processes executed in response to a user request, a larger number of threads may be assigned than the number of threads executed at the back end. For example, the weight of the number of front end threads and the number of back end threads may be set to 6: 4. By weighting in this way, immediate processing such as data input / output processing executed in response to a user request can be quickly processed.
  • the total number of threads of the archive device 220 is 400 and the ratio of the total reference file size to the total update file size is 1: 2, the number of front end threads distributed is 133 and the number of back end threads distributed 267. Further, when the weight of the number of front-end threads and the number of back-end threads is 6: 4, the number of front-end threads distributed is 160 and the number of back-end threads distributed is 240. As a result, the total number of threads can be distributed according to the processing load of the front-end processing and back-end processing at all bases, and further distributed according to priority. Processing according to actual processing capability and user request Therefore, efficient thread processing can be executed.
  • the monitoring program 235 calculates the number of threads of each site based on the ratio calculated in step S406, distributes the number of threads to each site (S407), and further distributes the distributed number of threads to the back end / front end. Distribute to threads (S408).
  • the monitoring program 235 refers to the thread allocation management table 2350, and determines the thread of each base based on the ratio of the average reference file size or the average update file size of the file storage apparatus 120 of each base 100. Distribute numbers.
  • the average file size at the three locations is 1: 2: 3, the number of 160 front-end threads is 26, 54, and 80.
  • 240 back-end threads are distributed among 40, 80, and 120.
  • the distribution number of the file storage device 120 in each base 100 is determined.
  • the present invention is not limited to this example.
  • the distribution numbers of the front-end thread and the back-end thread of the file storage device 120 at each site may be determined.
  • the monitoring program 235 transmits a thread setting request to the file storage device 120 of each base 100 so as to set the number of threads determined in step S407 and step S408 (S409).
  • the distribution numbers of the front-end threads and back-end threads transmitted in step S409 are registered in the front-end thread column 1271 and the back-end thread column 1272 of the thread management table 1270 at each site.
  • the monitoring program 235 updates the thread allocation management table 2350 (S410). Specifically, the monitoring program 235 associates the number of threads determined in step S407 and step S408 with the device number of the file storage device 120 of each base 100, and displays the front end thread column 2352 in the thread assignment management table 2350. The number of end threads is stored, and the number of back end threads is stored in the back end thread column 2353.
  • the monitoring program 235 of the monitoring server 230 is executed at the time of input / output processing executed in each of the file storage devices 120 of the plurality of bases 100 and Multiple items that execute input / output processing (front-end processing) or migration processing (migration processing) according to the ratio of the amount of data (reference file size, update file size, reference file count, and update file count information) during migration processing Are distributed to the file storage devices 120 of the plurality of bases 100.
  • front-end processing front-end processing
  • migration processing migration processing
  • a plurality of threads are assigned to input / output processing or migration processing, or input / output processing is performed.
  • a plurality of threads are assigned to input / output processing or migration processing according to the priority of migration processing.
  • the total number of threads can be distributed according to the processing load of the front-end processing and back-end processing at all bases, and further distributed according to priority. Processing according to actual processing capability and user request It is possible to execute efficient thread processing in consideration of capacity.

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】各拠点のデータ量に応じて各拠点の処理負荷を適切に制御し、効率的なデータ処理を実行する。 【解決手段】データの入出力要求を受け付ける複数の第1のストレージ装置と、前記複数の第1のストレージ装置と接続される第2のストレージ装置と、を備え、前記第1のストレージ装置は、データを記憶する記憶部と、プログラムを構成する複数のスレッドを並列処理させて、前記入出力要求に応じた前記データの入出力処理、及び、所定のポリシーに基づく前記データの前記第2のストレージ装置への移行処理を制御する制御部と、を備え、前記第2のストレージ装置は、データを記憶する記憶部と、前記複数の第1のストレージ装置の入出力処理時及び移行処理時のデータ量に応じて、前記入出力処理または前記移行処理を実行させる前記複数のスレッドを前記複数の第1のストレージ装置の各々に分配する制御部と、を備える。

Description

ストレージ管理システム、ストレージ管理方法及びストレージ装置
 本発明は、ストレージ管理システム、ストレージ管理方法及びストレージ装置に関し、データ移行量に応じて各拠点にスレッドを割り当てるストレージ管理システム、ストレージ管理方法及びストレージ装置に適用して好適なるものである。
 近年、企業の各拠点などにストレージシステムをそれぞれ構築しておき、各拠点のストレージシステムでそれぞれ生成されたファイルをデータセンタに集約して記憶する情報処理システムに関する技術が開示されている。拠点数の増加や取扱うファイルのデータ量の増大等に伴って、情報処理システムの規模が大きくなると、データセンタのストレージシステムの負荷が増大する。このため、データセンタの負荷を適切に制御して、情報処理システム全体の信頼性を向上させることが求められている。
 そこで、特許文献1には、各拠点からデータセンタに移行されるデータ量と、データ移行によって増加するデータレプリケーション先のストレージ装置との負荷に応じて、各拠点からのデータ移行の可否を判定する技術が開示されている。これにより、ストレージ装置の記憶領域がオーバーフローするような事態を防止して、情報処理システム全体の信頼性を向上させることを可能としている。
特表2014-515840号公報
 しかし、上記特許文献1では、データ移行によって増加するデータレプリケーション先のストレージ装置との負荷によりデータ移行の可否を判定しているため、各拠点からのデータ移行ができないと判断された場合には、データ移行自体ができなくなってしまうという問題があった。
 本発明は以上の点を考慮してなされたもので、各拠点のデータ量に応じて各拠点の処理負荷を適切に制御し、効率的なデータ処理を実行することが可能なストレージ管理システム、ストレージ管理方法及びストレージ装置を提案しようとするものである。
 かかる課題を解決するために本発明においては、データの入出力要求を受け付ける複数の第1のストレージ装置と、前記複数の第1のストレージ装置と接続される第2のストレージ装置と、を備え、前記第1のストレージ装置は、データを記憶する記憶部と、プログラムを構成する複数のスレッドを並列処理させて、前記入出力要求に応じた前記データの入出力処理、及び、所定のポリシーに基づく前記データの前記第2のストレージ装置への移行処理を制御する制御部と、を備え、前記第2のストレージ装置は、データを記憶する記憶部と、前記複数の第1のストレージ装置のデータの入出力処理時及び移行処理時のデータ量に応じて、前記入出力処理または前記移行処理を実行させる前記複数のスレッドを前記複数の第1のストレージ装置の各々に分配する制御部と、を備えることを特徴とする、ストレージ管理システムが提供される。
 かかる課題を解決するために本発明においては、データの入出力要求を受け付ける複数の第1のストレージ装置と、前記複数の第1のストレージ装置と接続される第2のストレージ装置と、を備えるストレージ管理システムにおけるストレージ管理方法であって、前記第1のストレージ装置の制御部が、前記入出力処理または前記移行処理のデータ量を取得するステップと、前記第2のストレージ装置の制御部が、前記データ量に応じて、前記入出力処理または前記移行処理を実行させる前記複数のスレッドを前記複数の第1のストレージ装置の各々に分配するステップと、前記第1のストレージ装置の制御部が、前記分配されたスレッド数で前記入出力要求に応じた前記データの入出力処理、及び、所定のポリシーに基づく前記データの前記第2のストレージ装置への移行処理を実行するステップとを含むことを特徴とする、ストレージ管理方法が提供される。
 かかる課題を解決するために本発明においては、データの入出力要求を受け付ける入出力装置を備える複数の拠点装置と、前記複数の拠点装置と接続されるストレージ装置であって、データを記憶する記憶部と、前記複数の拠点装置のデータの入出力処理時及び移行処理時のデータ量に応じて、前記入出力処理または前記移行処理を実行させる前記複数のスレッドを前記複数の拠点装置の各々に分配する制御部と、を備えることを特徴とする、ストレージ装置が提供される。
 本発明によれば、各拠点からのデータ移行量に応じて各拠点にスレッドを分配して効率的にデータ移行処理を実行することができる。
本発明の一実施形態に係るストレージ管理システムのハードウェア構成を示すブロック図である。 同実施形態にかかるRAIDシステムの構成を示すブロック図である。 同実施形態にかかるストレージ管理システムのソフトウェア構成を示すブロック図である。 同実施形態にかかるinode管理テーブルの内容を示す図表である。 同実施形態にかかるinode管理テーブルを説明する概念図である。 同実施形態にかかるスレッド割当て管理テーブルの内容を示す図表である。 同実施形態にかかるスレッド数管理テーブルの内容を示す図表である。 同実施形態にかかる各拠点のスレッド管理テーブルの内容を示す図表である。 同実施形態にかかるデータのリード/ライト処理を示すフローチャートである。 同実施形態にかかるデータ移行処理を示すフローチャートである。 同実施形態にかかるスレッド管理処理を示すフローチャートである。 同実施形態にかかるスレッド割当て処理を示すフローチャートである。
 以下図面について、本発明の一実施の形態を詳述する。
(1)本実施の形態の概要
 まず、本実施の形態の概要について説明する。従来から、ストレージ装置の機能の1つとして、クライアント/ホストが論理ボリュームに格納したファイルデータを、アーカイブ装置などの他のストレージ装置にマイグレーション(移行)するデータ管理機能が開示されている。ストレージ装置に格納されたファイルデータは、予め定められた所定のポリシー(例えば、参照頻度などに基づく条件式)に基づいて他のストレージ装置にマイグレーションされる。
 また、上記のマイグレーションにおいて、移行元のストレージ装置(以下、移行元のストレージ装置をファイルストレージ装置と称して説明する。)から移行先のストレージ装置へマイグレーションされたファイルデータは、ファイルストレージ装置において、スタブファイルと呼ばれる移行先のストレージ装置の格納場所などを示すメタ情報に置き換えられる。そして、ファイルストレージ装置は、クライアント/ホストから、他のストレージ装置にマイグレーションしたファイルデータを要求された場合に、他のストレージ装置から該当するファイルデータを取得してクライアント/ホストに転送する。
 このとき、ファイルストレージ装置は、スタブファイルに含まれるアドレス情報に基づいて、他のストレージ装置の対応するファイルデータを取得する。これにより、クライアント/ホストに対してファイルデータの格納場所が変更されたことを隠蔽し、スタブファイルがあたかも実体のあるファイルのように振る舞う。このような振る舞いは、リコール処理と呼ばれる。
 また、本実施の形態にかかるストレージ装置は、複数のCPU(プロセッサパッケージ、以下プロセッサパッケージを単にプロセッサと称して説明する場合もある。)内に複数のプロセッサコア(コア)を収めて、並列処理によって性能を向上させるマルチコアプロセッサシステムを利用している。マルチコアプロセッサシステムは、プロセッサに搭載された複数のコア間でハードウェア資源であるリソースを共有し、複数のスレッドを並列に処理するコンピュータシステムである。
 ここでスレッドとは、プロセッサによるプロセスの実行単位である。本実施の形態では、上記したリコール処理やリストア処理のスレッドをフロントエンドスレッドと称し、マイグレーション処理のスレッドをバックエンドスレッドと称して以下説明する。
 複数のスレッドはストレージ装置の複数のCPUで並列に処理されるが、処理がオーバーフローとならないように、各ストレージ装置で処理可能なスレッドには上限が設けられている。したがって、支店や事業所など、ユーザが実際に業務を行う複数の拠点にストレージ装置が設けられている場合、ストレージ装置間で処理されるスレッド数に偏りが生じると、本来処理可能であったリストア/リコール処理やマイグレーション処理を実行することができず、処理性能を損失していたという問題があった。
 また、従来はリストア/リコール処理やマイグレーション処理のスレッド数の算出や設定を手動で行わなければならず、データ転送時にはリストア/リコール処理やマイグレーション処理のデータ量を見積もることができないため、所定時間内に転送処理を終えられない場合があった。
 そこで、本実施の形態では、各拠点のデータを他のストレージ装置にバックアップするストレージ管理システムにおいて、各拠点のデータ量に応じて各拠点に実行させるスレッドを割り当てることにより、効率的なデータ処理を実行することを可能としている。これにより、従来はリストア/リコール処理やマイグレーション処理のスレッド数の算出や設定を自動化することができ、データ転送時にリストア/リコール処理やマイグレーション処理のデータ量を見積もることも可能となる。
(2)ストレージ管理システムのハードウェア構成
 次に、ストレージ管理システムのハードウェア構成について説明する。ストレージ管理システムは、図1に示すように、主に、クライアント/ホスト300にファイルを提供するファイルストレージ装置120と、ディスク(図中DISKと表記)113へのデータ書き込み等を制御するRAID(Redundant Arrays of Independent Disks)システム110を備える拠点100A、拠点100B及び拠点100C(以降、拠点100A、拠点100B及び拠点100Cを総称して拠点100として説明する場合もある。)と、複数のアーカイブ装置220とRAIDシステム210と監視サーバ230とを備えるCore(データセンタ)200とから構成される。Core(データセンタ)200は複数のCore(データセンタ)200から構成されていてもよい。
 また、本実施の形態では、拠点100は、支店や事業所など、ユーザが実際に業務を行う拠点であり、Core(データセンタ)200は、企業等で使用されるサーバやストレージ装置を一括管理する拠点や、クラウドサービスを提供するデータセンタである。
 拠点100とCore(データセンタ)200は、ネットワーク500を介して接続されている。ネットワーク500は、例えば、SAN(Storage Area Network)などから構成され、装置間の通信は、例えばファイバチャネルプロトコルに従って行われる。また、ネットワーク500は、例えば、LAN(Local Area Network)、インターネット、公衆回線または専用回線などであってもよい。ネットワーク500がLANの場合には、装置間の通信は、例えばTCP/IP(Transmission Control Protocol/Internet Protocol)プロトコルに従って行われる。
 拠点100は、上記したように、RAIDシステム110とファイルストレージ装置120とクライアント/ホスト300などから構成される。本実施の形態では、ファイルストレージ装置120とRAIDシステム110とを別体の装置として構成しているが、かかる例に限定されず、ファイルストレージ装置120とRAIDシステム110とを一体としてファイルストレージ装置として構成してもよい。
 ファイルストレージ装置120は、メモリ121、CPU122、ネットワークインタフェースカード(図中NIC:Network InterFace Card)123およびホストバスアダプタ(図中HBA:Host Bus Adapter)124などを備える。
 CPU122は、演算処理装置として機能し、メモリ121に記憶されているプログラムや演算パラメータ等にしたがって、ファイルストレージ装置120の動作を制御する。ネットワークインタフェースカード123は、ネットワーク500を介してアーカイブ装置220と通信するためのインタフェースである。また、ホストバスアダプタ124は、RAIDシステム110とファイルストレージ装置120とを接続し、ファイルストレージ装置120は、ホストバスアダプタ124を介して、RAIDシステム210とブロック単位のアクセスを実行する。
 RAIDシステム110は、チャネルアダプタ(図中CHA:Channel Adapter)111と、ディスクコントローラ(図中DKC:Disk Controller)112と、ディスク(図中DISK)113などを備える。チャネルアダプタ111は、ホストバスアダプタ124から送信されたデータの入出力要求を受信する機能を有する。また、ディスクコントローラ112は、チャネルアダプタ111によって受信された入出力要求に基づいて、ディスク113への入出力を制御する機能を有する。
 図1では、RAIDシステム110に1つのディスク113が備えられているが、かかる例に限定されず、複数のディスク113が備えられていてもよい。また、例えば、SSD(Solid State Disk)、SCSI(Small Computer System Interface)ディスク等の高価なハードディスクドライブ、または、SATA(Serial AT Attachment)ディスク等の安価なハードディスクドライブでなる複数のハードディスクドライブ(HDD:Hard Disk Drive)から構成されていてもよい。以降、ディスク113をハードディスク装置113またはHDD113として説明する場合もある。
 ここで、図2を参照して、RAIDシステム110について説明する。図2に示すように、RAIDシステム110は、複数のハードディスク装置113(図中HDDと表記)と、複数のコントローラ114と、複数のポート(図中Portと表記)118と、複数のインタフェース(図中I/Fと表記)117とから構成される。
 コントローラ114は、データの入出力を制御するプロセッサ115及びデータを一時的に格納するキャッシュメモリ116から構成される。また、ポート118は、チャネル用のインタフェースボードであって、コントローラ114とファイルストレージ装置120とを接続する、いわゆるチャネルアダプタ(CHA)として機能する。ポート118は、ローカルルータ(図示せず)を介してファイルストレージ装置120から受領したコマンドをコントローラ114に転送する機能を有する。
 また、インタフェース117は、ハードディスク用のインタフェースボードであって、ディスクアダプタ(DKA)としての機能を有する。インタフェース117は、ローカルルータ(図示せず)を介してハードディスク装置113へ発行するコマンドのデータ転送を実行する。また、コントローラ114、インタフェース117およびポート118は、スイッチ(図示せず)により相互に接続して、コマンド等のデータを振り分けるようにしてもよい。
 また、複数のハードディスク装置113により提供される記憶領域上に1または複数の論理ボリューム(LDEV)が設定される。複数のハードディスク装置113は、1つのRAIDグループとして管理され、RAIDグループにより提供される記憶領域上に1または複数の論理ボリュームが定義される。そして、複数のRAIDグループが提供する論理ボリュームが1つのプールとして管理される。通常、論理ボリュームを作成する際に、ハードディスク上の記憶領域を論理ボリュームに割り当てるが、記憶領域を割り当てた論理ボリュームに対するホスト(ユーザ)からの利用頻度が少ない場合には、割り当てた記憶領域が有効利用されない。そこで、ホスト(ユーザ)からのデータの書き込み要求を受け付けたときに、初めてハードディスク上の記憶領域を割り当てるシンプロビジョニング機能が利用される。
 シンプロビジョニングでは、仮想的なボリューム(以降、仮想ボリュームと称する。)をクライアント/ホスト300に提示し、クライアント/ホスト300から仮想ボリュームにライトアクセスがあった場合に、実際にデータを格納するための物理的な記憶領域を仮想ボリュームに割り当てる。これにより、ファイルストレージ装置120内の記憶領域以上の容量のボリュームをクライアント/ホスト300に提示しながら、ファイルストレージ装置120内の記憶領域を効率よく使用することができる。
 クライアント/ホスト300は、メモリ301、CPU302、ネットワークインタフェースカード(図中NIC:Network Interface Card)303、ディスク(図中DISK)304などを備える。
 CPU302は、演算処理装置として機能し、ディスク304に格納されているOSなどのクライアント/ホスト300を制御するプログラムをメモリ301上に読み込み、当該プログラムを実行する。また、ネットワークインタフェースカード303は、ネットワークを介して接続されているファイルストレージ装置120と通信したり、ファイル単位のアクセスを実行したりする。
 Core(データセンタ)200は、上記したように、RAIDシステム210とアーカイブ装置220と監視サーバ230などから構成される。本実施の形態では、アーカイブ装置220とRAIDシステム210とを別体の装置として構成しているが、かかる例に限定されず、アーカイブ装置220とRAIDシステム210とを一体としてアーカイブ装置として構成してもよい。
 アーカイブ装置220は、メモリ221、CPU222、ネットワークインタフェースカード(図中NIC:Network Interface Card)223およびホストバスアダプタ(図中HBA:Host Bus Adapter)224などを備える。
 CPU222は、演算処理装置として機能し、メモリ201に記憶されているプログラムや演算パラメータ等にしたがって、アーカイブ装置220の動作を制御する。ネットワークインタフェースカード223は、ネットワーク500を介してファイルストレージ装置120と通信するためのインタフェースである。また、ホストバスアダプタ224は、RAIDシステム210とアーカイブ装置220とを接続し、アーカイブ装置220は、ホストバスアダプタ224を介して、RAIDシステム210とブロック単位のアクセスを実行する。
 RAIDシステム210は、チャネルアダプタ(図中CHA)211と、ディスクコントローラ(図中DKC)212と、ディスク(図中DISK)213などを備える。チャネルアダプタ211は、ホストバスアダプタ224から送信されたデータの入出力要求を受信する機能を有する。また、ディスクコントローラ212は、チャネルアダプタ211によって受信された入出力要求に基づいて、ディスク213への入出力を制御する機能を有する。RAIDシステム210の構成は、拠点100のRAIDシステム110の構成と同様であるため、詳細な説明は省略する。
 監視サーバ230のハードウェア構成は、アーカイブ装置220のハードウェア構成と同様のため、詳細な説明は省略する。なお、本実施の形態では、監視サーバ230とアーカイブ装置220とを別体の装置として構成しているが、かかる例に限定されず、監視サーバ230とアーカイブ装置220とを一体の装置として構成してもよい。
(3)計算機システムのソフトウェア構成
 次に、ストレージ管理システムのソフトウェア構成について説明する。図3に示すように、ファイルストレージ装置120のメモリ121には、ファイル共有プログラム125、データムーバプログラム126、スレッド管理プログラム127、受付プログラム(read/write)128、ファイルシステム129及びカーネル/ドライバ130が格納されている。
 ファイル共有プログラム125は、CIFS(Common Internet File System)、NFS(Network File System)などの通信プロトコルを利用して、クライアント/ホスト300との間でファイル共有システムを提供するプログラムである。
 データムーバプログラム126は、データを移動する際に、移動元のファイルストレージ装置120から、移行対象となるデータを移動先のアーカイブ装置220に送信するプログラムである。また、データムーバプログラム126は、クライアント/ホスト300からアーカイブ装置220に既に移行されたデータの参照要求を受け付けた場合に、アーカイブ装置220を経由して、データを取得する機能(リストア/リコール処理)を有する。
 また、データムーバプログラム126は、データの移動処理や取得処理を実行した場合に、処理毎に実行したスレッド数をカウントして、カウントした結果をスレッド管理プログラム127に提供する。本実施の形態では、リコール/リストア処理を実行する際のフロントエンドスレッドの実行数をフロントエンドスレッド数として、データの移動処理を実行する際のバックエンドスレッドの実行数をバックエンドスレッド数としてそれぞれカウントする。
 スレッド管理プログラム127は、ファイルストレージ装置120で実行するスレッド数を管理するプログラムである。スレッド管理プログラム127は、Core(データセンタ)20の監視サーバ230の要求に応じて、参照ファイルサイズまたは更新ファイルサイズを送信したり、監視サーバ230から送信されるフロントエンドスレッドのスレッド数やバックエンドスレッドのスレッド数を設定したりする。
 受付プログラム(read/write)128は、クライアント/ホスト300からのデータの入出力要求を受け付けるプログラムである。
 ファイルシステム129は、論理ボリューム上にファイルという管理単位を実現するために構築された論理構造を管理するプログラムである。ファイルシステム129により管理されるファイルシステムは、スーパーブロック、inode管理テーブル、データブロックなどで構成されている。
 スーパーブロックは、ファイルシステム全体の情報を一括して保持している領域である。ファイルシステム全体の情報とは、例えば、ファイルシステムの大きさやファイルシステムの空き容量などである。
 inode管理テーブル1290は、1つのディレクトリやファイルに対応付けられたinodeを管理するテーブルである。データブロックは、実際のファイルデータや管理データなどが格納されるブロックである。
 ファイルが格納されているinodeにアクセスする場合には、ディレクトリ情報のみを含むディレクトリエントリを用いる。例えば、「home/user-01/a.txt」と定義されたファイルにアクセスする場合には、図4Aのinode管理テーブル1290に示すように、ディレクトリに対応付けられたinode番号をたどってデータブロックにアクセスする。すなわち、inode番号を「2→10→15→100」とたどることにより、「a.txt」なるデータブロックにアクセスすることができる。
 ファイルの実体「a.txt」に対応付けられたinodeには、ファイルの所有権、アクセス権、ファイルサイズ、およびデータの格納位置などの情報が格納されている。このinodeは、inode管理テーブル1290に、図4Bに示すように格納されている。すなわち、ディレクトリのみに対応付けられたinodeには、inode番号、更新日時、親ディレクトリおよび子ディレクトリのinode番号が格納される。そして、ファイルの実体に対応付けられたinodeには、inode番号、更新日時、親ディレクトリ、子ディレクトリの他に、所有者やアクセス権、ファイルサイズ、データブロックアドレスなどの情報が格納される。inode管理テーブル1290により、各ファイルの格納場所が管理され、何れのファイルがマイグレーション済みか、スタブ化済みかなどがわかる。
 図3に戻り、ファイルストレージ装置120のカーネル/ドライバ130は、ファイルストレージ装置120の全般的な制御およびハードウェア固有の制御を行うプログラムである。具体的には、ファイルストレージ装置120上で動作する複数のプログラムのスケジュール制御やハードウェアからの割り込みを制御したり、ストレージデバイスへのブロック単位の入出力などを行う。
 クライアント/ホスト300のメモリ301には、アプリケーション305、ファイルシステム306およびカーネル/ドライバ307などが格納されている。アプリケーション305は、クライアント/ホスト300上で実行される各種アプリケーションプログラムである。ファイルシステム306は、上記したファイルストレージ装置120のファイルシステム129と同様の機能を有するため、詳細な説明は省略する。また、カーネル/ドライバ307も、上記したカーネル/ドライバ130と同様の機能を有するため詳細な説明は省略する。
 RAIDシステム110のディスク113には、制御プログラムなどのOSを格納する論理ボリューム(図中OS LUと表記)119bと、データを格納する論理ボリューム(図中LUと表記)119aが格納されている。OS LU119bに格納されている制御プログラムは、例えばクライアント/ホスト300にシンプロビジョニング機能を提供するプログラムを例示できる。当該プログラムは、複数のハードディスクで構成されるRAIDグループ上に定義される論理ボリュームを1つのプールとして管理する。そして、クライアント/ホスト300に仮想ボリュームを提供し、クライアント/ホスト300からライトアクセスがあった場合に、プールの領域を仮想ボリュームに割り当てる機能を有する。
 また、Core(データセンタ)200のアーカイブ装置220には、データムーバプログラム225、ファイルシステム226およびカーネル/ドライバ227が格納されている。データムーバプログラム225は、ファイルストレージ装置120のデータムーバプログラム126と同様の機能を有するため詳細な説明は省略する。また、ファイルシステム226は、ストレージ装置120のファイルシステム129と同様の機能を有するため詳細な説明は省略する。また、カーネル/ドライバ227は、ファイルストレージ装置120のカーネル/ドライバ130と同様の機能を有するため詳細な説明は省略する。
 またCore(データセンタ)200のRAIDシステム210は、拠点100のRAIDシステム110とほぼ同様の機能を有するため、詳細な説明は省略する。
 監視サーバ230のメモリ231には、監視プログラム235及びカーネル/ドライバ236が格納されている。
 監視プログラム235は、各拠点100のファイルストレージ装置120のスレッド管理プログラム127から提供される参照ファイルサイズや更新ファイルサイズをもとに、各拠点に割り当てるフロントエンドスレッド数及びバクエンドスレッド数を設定する。監視プログラム235は、各拠点のファイルストレージ装置120から提供される参照ファイルサイズや更新ファイルサイズなどの各拠点にスレッドを割り当てるための情報を、スレッド割当て管理テーブル2350で管理する。また、監視プログラム235は、アーカイブ装置220が有する全スレッド数をスレッド数管理テーブル2360で管理する。
 図5Aに示すように、スレッド割当て管理テーブル2350は、装置番号欄2351、フロントエンドスレッド欄2352、バックエンドスレッド欄2353、参照ファイルサイズ欄2354、参照ファイル数欄2355、更新ファイルサイズ欄2356、更新ファイル数欄2357、平均参照ファイルサイズ欄2358及び平均更新ファイルサイズ欄2359から構成される。
 装置番号欄2351には、各拠点100のファイルストレージ装置120を識別する番号が格納される。フロントエンドスレッド欄2352は、各拠点100のファイルストレージ装置120が実行したフロントエンドスレッドの個数が格納される。バックエンドスレッド欄2353には、各拠点100のファイルストレージ装置120が実行したバックエンドスレッドの個数が格納される。参照ファイルサイズ欄2354には、各拠点100のファイルストレージ装置120が参照したファイルサイズが格納される。参照ファイル数欄2355には、各拠点100のファイルストレージ装置120が参照したファイル数が格納される。更新ファイルサイズ欄2356には、各拠点100のファイルストレージ装置120が更新したファイルサイズが格納される。更新ファイル数欄2357には、各拠点100のファイルストレージ装置120が更新したファイル数が格納される。平均参照ファイルサイズ欄2358には、各拠点100のファイルストレージ装置120が参照したファイルサイズの平均値が格納される。平均更新ファイルサイズ欄2359には、各拠点100のファイルストレージ装置120が更新したファイルサイズの平均値が格納される。
 また、図5Bに示すように、スレッド数管理テーブル2360は、スレッド数欄2361にアーカイブ装置220が有する全スレッドの個数が格納される。
 また、監視プログラム235は、スレッド割当て管理テーブル2350を参照して、後述するスレッド割当て処理により、各拠点100のファイルストレージ装置120に割り当てるスレッド数を決定し、当該スレッド数の情報を各拠点100のファイルストレージ装置120に送信する。監視プログラム235により決定された、各拠点100のファイルストレージ装置120に割り当てられるスレッド数は、ファイルストレージ装置120のスレッド管理テーブル1270で管理される。
 図5Cに示すように、各拠点のスレッド管理テーブル1270は、フロントエンドスレッド欄1271、バックエンドスレッド欄1272、参照ファイルサイズ欄1273、参照ファイル数欄1274、更新ファイルサイズ欄1275及び更新ファイル数欄1276から構成される。
 フロントエンドスレッド欄1271には、各拠点100のファイルストレージ装置120に設定されたフロントエンドスレッド数が格納される。バックエンドスレッド欄1272には、各拠点100のファイルストレージ装置120に設定されたバックエンドスレッド数が格納される。参照ファイルサイズ欄1273には、各拠点100のファイルストレージ装置120において参照されたファイルサイズが格納される。参照ファイル数欄1274には、各拠点100のファイルストレージ装置120において参照されたファイル数が格納される。更新ファイルサイズ欄1275には、各拠点100のファイルストレージ装置120において更新されたファイルサイズが格納される。更新ファイル数欄1276には、各拠点100のファイルストレージ装置120において更新されたファイル数が格納される。
 フロントエンドスレッド欄1271及びバックエンドスレッド欄1272に設定されたスレッド数は、各拠点100のファイルストレージ装置120がデータをリストア/リコールしたり、移動したりしてスレッドが使用される都度更新される。
(4)ストレージ管理システムにおけるストレージ割当て処理の詳細
(4-1)ストレージ割当て処理の概要
 次に、図6~図9を参照して、ストレージ管理システムにおけるスレッド割当て管理処理について説明する。ストレージ管理システムにおけるスレッド割当て管理処理は、各拠点100のファイルストレージ装置120でデータの参照や更新が行われると、データの参照や更新時のファイルサイズやファイルサイズが記憶され、Core(データセンタ)200の監視サーバ230は、各拠点100のファイルストレージ装置120から収集した情報をもとに各拠点100のファイルストレージ装置120にスレッドを割り当てる。
 そして、Core(データセンタ)200の監視サーバ230の要求に応じて、各拠点100のファイルストレージ装置120はスレッド数を設定する。そして、各拠点100のファイルストレージ装置120は、データの移動処理や同期/リストア処理などのイベントが発生する都度、実行したスレッド数を更新する。
 上記処理は、各拠点100のファイルストレージ装置120におけるデータのリード/ライト処理、各拠点100のファイルストレージ装置120におけるデータの移動または同期/リコール処理、各拠点100のファイルストレージ装置120におけるスレッド管理処理、及び、Core(データセンタ)200の監視サーバ230におけるスレッド割当て処理により実行される。以下、各処理を詳細に説明する。なお、以下においては、各種処理の処理主体を「プログラム」として説明するが、実際上、そのプログラムに基づいて各装置のCPUがその処理を実行することは言うまでもない。
(4-2)データのリード/ライト処理
 図6を参照して、各拠点100のファイルストレージ装置120の受付プログラム128におけるデータのリード/ライト処理について説明する。図6に示すように、受付プログラム128は、ユーザの入力等に応じて、クライアント/ホスト300からのアクセス要求が、データのリード(read)かライト(write)かを判定する(S101)。
 ステップS101において、アクセス要求がデータのライト要求であると判定された場合には、受付プログラム128は、ライト要求に含まれるアドレス情報がスタブファイルかを判定する(S102)。
 ステップS102において、アドレス情報がスタブファイルであると判定された場合には、受付プログラム128は、データムーバプログラム126を介してCore(データセンタ)200へリコール要求をする(S103)。そして、受付プログラム128は、ステップS103のリコール要求により取得したファイルを論理ボリューム(LU 119a)に格納して、当該ファイルを更新する(S104)。
 一方、ステップS102において、アドレス情報がスタブファイルではないと判定された場合には、受付プログラム128は、論理ボリュームに格納されている該当ファイルを更新する(S106)。
 そして、受付プログラム128は、ステップS104またはステップS106で更新したファイルのファイルサイズ及びファイル数を、自拠点のスレッド管理テーブル1270の更新ファイルサイズ欄1275及び更新ファイル数欄1276の値に加算して、スレッド管理テーブル1270を更新して(S105)、処理を終了する。
 ステップS101において、アクセス要求がデータのリード要求であると判定された場合には、受付プログラム128は、当該データがリコール済みかを判定する(S107)。ステップS107において、該当データがリコール済みであると判定された場合、すなわち、論理ボリューム(LU 119a)に該当ファイルが格納されている場合には、当該ファイルを取得する(S108)。
 一方、ステップS107において、該当データがリコール済みではないと判定された場合、すなわち、論理ボリューム(LU 119a)に該当ファイルが格納されていない場合には、受付プログラム128は、データムーバプログラム126を介してCore(データセンタ)200へリコール要求をする(S110)。
 そして、受付プログラム128は、ステップS108またはステップS110で参照したファイルのファイルサイズ及びファイル数を、自拠点のスレッド管理テーブル1270の参照ファイルサイズ欄1273及び参照ファイル数欄1274の値に加算して、スレッド管理テーブル1270を更新して(S109)、処理を終了する。
(4-3)データの移動または同期/リコール処理
 次に、図7を参照して、各拠点100のファイルストレージ装置120のデータムーバプログラム126によるデータ移行処理の詳細について説明する。図7に示すように、データムーバプログラム126は、イベントが発生したか否かを確認して(S201)、イベントが発生したか否かを判定する(S202)。
 ステップS202において、イベントが発生したと判定された場合は、データムーバプログラム126は、いずれのイベントの種別かを判定する(S203)。一方、ステップS202において、イベントが発生したと判定されなかった場合には、データムーバプログラム126は、ステップS201の処理を繰り返す。
 ステップS201においてデータムーバプログラム126が確認するイベントとは、例えば、一定時間が経過したか、レプリケーション処理が要求されたか、同期処理が要求されたかなどのイベントを例示できる。一定時間が経過したとは、レプリケーション処理や同期処理などのイベントが発生していない状態が一定時間継続している状態を意味する。レプリケーション処理とは、管理者の入力に応じて実行される処理であり、上記したように、ファイルストレージ装置120に格納されているデータを他のストレージ装置に格納する処理である。また、同期処理とは、レプリケーション処理が実行された後に、レプリケーション元のファイルとレプリケーション先のファイルとを同期させる処理である。
 そして、ステップS203において、イベントの種別が「一定時間経過」であると判定された場合には、データムーバプログラム126は、ファイルストレージ装置120のファイルシステム129の残容量をチェックして(S204)、ファイルシステムの残容量が所定の閾値を下回ったかを判定する(S205)。
 そして、ステップS205において、ファイルシステムの残容量が所定の閾値を下回っていると判定された場合には、データムーバプログラム126は、ファイルシステムの残容量が閾値を上回るまで、最終アクセス日付の古い方からファイルを選択する(S206)。具体的に、データムーバプログラム126は、ファイルシステム129の残容量に、選択したファイルの容量を加算して、加算した値が所定の閾値を上回るか否かを判断する。
 そして、データムーバプログラム126は、ステップS206において選択したファイルのファイルデータを削除し、当該ファイルをスタブ化して(S207)、処理を終了する。
 一方、ステップS205において、ファイルシステムの残容量が所定の閾値を下回っていないと判定された場合には、処理を終了する。
 また、ステップS203において、イベントの種別が「マイグレーション要求」であると判定された場合には、データムーバプログラム126は、バックエンドスレッド数が設定された上限以下かを判定する(S208)。ステップS208において、バックエンドスレッド数が設定された上限以下であると判定された場合には、データムーバプログラム126は、ステップS209以降の処理を実行し、上限以下ではないと判定された場合には、処理を終了する。
 ステップS209において、データムーバプログラム126は、スレッドが解放されていれば、バックエンドスレッド数をインクリメントする(S209)。
 そして、データムーバプログラム126は、アーカイブ装置220からファイルデータの格納先となる転送先のアドレスを入手して(S210)、マイグレーションするファイルデータの格納先のアドレスをメタデータに設定する(S211)。
 そして、データムーバプログラム126は、マイグレーション要求に含まれるファイル、ディレクトリ及びそのメタデータをファイルシステム129から取得する(S212)。そして、データムーバプログラム126は、ステップS212で取得したデータをアーカイブ装置220に転送する(S213)。そして、データムーバプログラム126は、バックエンドスレッド数をデクリメントする(S214)。
 上記ステップS208~ステップS214の処理により、データムーバプログラム126は、マイグレーション処理を実行する都度バックエンドスレッド数をデクリメントして、割り当てられたスレッド数を超えない範囲でマイグレーション処理を実行することができる。
 また、ステップS203において、イベントの種別が「同期要求/リコール要求」であると判定された場合には、データムーバプログラム126は、フロントエンドスレッド数が設定された上限以下かを判定する(S215)。ステップS215において、バックエンドスレッド数が設定された上限以下であると判定された場合には、データムーバプログラム126は、ステップS216以降の処理を実行し、上限以下ではないと判定された場合には、処理を終了する。
 ステップS215において、データムーバプログラム126は、スレッドが解放されていれば、フロントエンドスレッド数をインクリメントする(S216)。
 そして、データムーバプログラム126は、イベントの種別が同期要求かリコール要求かを判定する(S217)。
 ステップS217において、イベントの種別が同期要求であると判定された場合には、データムーバプログラム126は、レプリケーションが実行された後、更新が発生したファイル、ディレクトリ及びそのメタデータをファイルシステム219から取得する(S218)。そして、データムーバプログラム126は、ステップS218で取得したデータをアーカイブ装置220に転送する(S219)。
 一方、ステップS217において、イベントの種別がリコール要求であると判定された場合には、データムーバプログラム126は、Core(データセンタ)200から該当ファイルを取得する(S220)。
 そして、データムーバプログラム126は、フロントエンドスレッド数をデクリメントする(S221)。
 上記ステップS215~ステップS221の処理により、データムーバプログラム126は、同期処理またはリコール処理を実行する都度フロントエンドスレッド数をデクリメントして、割り当てられたスレッド数を超えない範囲で同期処理またはリコール処理を実行することができる。
(4-4)スレッド管理処理
 図8を参照して、各拠点100のファイルストレージ装置120のスレッド管理プログラム127におけるスレッド管理処理について説明する。図8に示すように、スレッド管理プログラム127は、監視サーバ230からの要求が自ファイルストレージ装置120に対するスレッド設定要求かを判定する(S301)。
 ステップS301において、監視サーバ230からの要求が自装置に対するスレッド設定要求であると判定された場合には、スレッド管理プログラム127は、ファイルストレージ装置120に要求されたフロントエンドスレッド数を設定し(S302)、バックアップエンドスレッド数を設定する(S303)。上記したように、ステップS302で設定されるフロントエンドスレッド数により、リコール/リストア処理を実行する際のスレッド数が決定される。また、ステップS303で設定されるバックエンドスレッド数により、マイグレーション処理を実行する際のスレッド数が決定される。
 そして、スレッド管理プログラム127は、スレッド管理テーブル1270のフロントエンドスレッド欄2171のスレッド数及びバックエンドスレッド欄1272のスレッド数をそれぞれ設定された数に設定する(S304)。
 ステップS301において、監視サーバ230からのスレッド設定要求ではないと判定された場合に、スレッド管理プログラム127は、監視サーバ230からの参照/更新ファイルサイズ及び参照/更新ファイル数の送信要求かを判定する(S305)。
 ステップS305において、ファイルサイズ及びファイル数の送信要求であると判定された場合には、スレッド管理プログラム127は、監視サーバ230にスレッド管理テーブル1270を参照して、参照/更新ファイルサイズ及び参照/更新ファイル数を送信する(S306)。そして、スレッド管理プログラム127は、スレッド管理テーブル1270の参照/更新ファイルサイズ、参照/更新ファイル数をそれぞれ0で更新する(S307)。
 ステップS305において、ファイルサイズおよびファイル数の送信要求ではないと判定された場合には、スレッド管理プログラム127は、ステップS301以降の処理を繰り返す。
(4-5)スレッド割当て処理
 次に、図9を参照して、Core(データセンタ)200の監視サーバ230の監視プログラム235におけるスレッド割当て処理について説明する。図9に示すように、監視プログラム235は、まず、平均参照ファイルサイズ及び平均更新ファイルサイズの更新時間間隔を設定して確認する(S401)。
 そして、監視プログラム235は、ステップS401で設定した更新時間が経過したかを判定する(S402)。
 ステップS402において、ステップS401で設定した更新時間が経過したと判定された場合には、監視プログラム235は、ステップS403以降の処理を実行し、未だ更新時間が経過していないと判定された場合にはステップS402の判定処理を繰り返す。
 ステップS403で、監視プログラム235は、各拠点100のファイルストレージ装置120に参照ファイルサイズ、更新ファイルサイズ、参照ファイル数及び更新ファイル数の情報を送信するよう要求する(S403)。ここで、参照ファイルサイズ及び参照ファイル個数は、各拠点100のファイルストレージ装置でリストア/リコール時間を推測する際に求められる情報であり、更新ファイルサイズ及び更新ファイル個数は、マイグレーション時間を推測する際に求められる情報である。
 そして、監視プログラム235は、ステップS403で各拠点100のファイルストレージ装置120から取得した、参照ファイルサイズ、更新ファイルサイズ、参照ファイル数及び更新ファイル数の情報から、平均参照ファイルサイズ及び平均更新ファイルサイズを算出する(S404)。ステップS403で取得した参照ファイルサイズ等の情報及びステップS404で算出した平均参照ファイルサイズ等の情報は、各拠点100のファイルストレージ装置120の装置番号と対応付けてスレッド割当て管理テーブル2350に格納される。
 そして、監視プログラム235は、ステップS403で取得した参照ファイルサイズ及び更新ファイルサイズから総参照ファイルサイズと総更新ファイルサイズとの比を算出する(S405)。そして、監視プログラム235は、ステップS405で総参照ファイルサイズと総更新ファイルサイズとの比にスレッド優先度比による重みづけを行う(S406)。
 ステップS405における計算によって、まず、アーカイブ装置220が有する全スレッド数を総参照ファイルサイズと総更新ファイルサイズとの比で、フロントエンドで実行するスレッド数とバックエンドで実行するスレッド数に割り当てる。さらに、ステップS406における計算によって、フロントエンドスレッドとバックエンドスレッドの優先度に応じて重み付けを行う。
 フロントエンドスレッドとバックエンドスレッドの優先度は、予め設定されていてもよい。フロントエンドで実行するスレッドはユーザの要求に応じて実行される処理であるため、バックエンドで実行するスレッドの割り当て数よりも多いスレッド数を割り当てるようにしてもよい。例えば、フロントエンドスレッドの個数とバックエンドスレッドの個数との重み付けを6:4としてもよい。このように重み付けすることにより、ユーザの要求に応じて実行するデータの入出力処理等の即時処理を迅速に処理することが可能となる。
 例えば、アーカイブ装置220が有する全スレッド数を400とし、総参照ファイルサイズと総更新ファイルサイズの比率が1:2であった場合、フロントエンドスレッドの分配数は133個、バックエンドスレッドの分配数267個となる。さらに、フロントエンドスレッドの個数とバックエンドスレッドの個数との重み付けを6:4とした場合、フロントエンドスレッドの分配数は160個、バックエンドスレッドの分配数240個となる。これにより、全スレッド数を全拠点のフロントエンド処理とバックエンド処理との処理負担で分配し、さらに優先度にも応じて分配することができ、実際の処理能力とユーザの要求に応じた処理とを鑑みて効率的なスレッド処理を実行することが可能となる。
 そして、監視プログラム235は、ステップS406で算出した比をもとに各拠点のスレッド数を算出して、各拠点にスレッド数を分配し(S407)、さらに分配したスレッド数をバックエンド/フロントエンドスレッドに分配する(S408)。ステップS407及びステップS408において、監視プログラム235は、スレッド割当て管理テーブル2350を参照して、各拠点100のファイルストレージ装置120の平均参照ファイルサイズまたは平均更新ファイルサイズの比をもとに各拠点のスレッド数を分配する。
 例えば、3つの拠点のファイルストレージ装置120にスレッドを分配する場合に、3つの拠点の平均ファイルサイズが1:2:3であれば、160個のフロントエンドスレッドは26個、54個、80個に分配され、240個のバックエンドスレッドは40個、80個、120個に分配される。
 なお、上記の算出では、フロントエンドスレッドとバックエンドスレッドの分配数を決定した後に、各拠点100のファイルストレージ装置120のスレッドの分配数を決定しているが、かかる例に限定されない。例えば、各拠点100のファイルストレージ装置120の分配数を決定した後に、各拠点のファイルストレージ装置120のフロントエンドスレッド及びバックエンドスレッドの分配数を決定するようにしてもよい。
 そして、監視プログラム235は、ステップS407及びステップS408で決定したスレッド数を設定するように、各拠点100のファイルストレージ装置120にスレッド設定要求を送信する(S409)。
 ステップS409で送信されたフロントエンドスレッド及びバックエンドスレッドの分配数は、各拠点のスレッド管理テーブル1270のフロントエンドスレッド欄1271及びバックエンドスレッド欄1272に登録される。
 そして、監視プログラム235は、スレッド割当て管理テーブル2350を更新する(S410)。具体的に、監視プログラム235は、ステップS407及びステップS408で決定したスレッド数を、各拠点100のファイルストレージ装置120の装置番号と対応付けて、スレッド割当て管理テーブル2350のフロントエンドスレッド欄2352にフロントエンドスレッド数を格納し、バックエンドスレッド欄2353にバックエンドスレッド数を格納する。
(5)本実施の形態の効果
 上記したように、本実施の形態によれば、監視サーバ230の監視プログラム235は、複数の拠点100のファイルストレージ装置120各々で実行される入出力処理時及び移行処理時のデータ量(参照ファイルサイズ、更新ファイルサイズ、参照ファイル数及び更新ファイル数の情報)の比率に応じて、入出力処理(フロントエンド処理)または移行処理(マイグレーション処理)を実行させる複数のスレッドを複数の拠点100のファイルストレージ装置120に分配する。これにより、各拠点からのデータ移行量に応じて各拠点にスレッドを分配して効率的にデータ移行処理を実行することができる。
 さらに、本実施の形態によれば、入出力処理時または移行処理時の参照データ量と更新データ量との比率に応じて、複数のスレッドを入出力処理または移行処理に割り当てたり、入出力処理または移行処理の優先度に応じて、複数のスレッドを入出力処理または移行処理に割り当てたりする。これにより、全スレッド数を全拠点のフロントエンド処理とバックエンド処理との処理負担で分配し、さらに優先度にも応じて分配することができ、実際の処理能力とユーザの要求に応じた処理能力とを考慮して効率的なスレッド処理を実行することが可能となる。
 100 拠点
 120 ファイルストレージ装置
 121 メモリ
 123 ネットワークインタフェースカード
 124 ホストバスアダプタ
 125 ファイル共有プログラム
 126 データムーバプログラム
 127 スレッド管理プログラム
 128 受付プログラム
 129 ファイルシステム
 130 ドライバ
 220 アーカイブ装置
 225 データムーバプログラム
 226 ファイルシステム
 227 ドライバ
 230 監視サーバ
 235 監視プログラム
 300 クライアント/ホスト
 500 ネットワーク
 

Claims (10)

  1.  データの入出力要求を受け付ける複数の第1のストレージ装置と、
     前記複数の第1のストレージ装置と接続される第2のストレージ装置と、
     を備え、
     前記第1のストレージ装置は、
     データを記憶する記憶部と、
     プログラムを構成する複数のスレッドを並列処理させて、前記入出力要求に応じた前記データの入出力処理、及び、所定のポリシーに基づく前記データの前記第2のストレージ装置への移行処理を制御する制御部と、を備え、
     前記第2のストレージ装置は、
     データを記憶する記憶部と、
     前記複数の第1のストレージ装置の入出力処理時及び移行処理時のデータ量に応じて、前記入出力処理または前記移行処理を実行させる前記複数のスレッドを前記複数の第1のストレージ装置の各々に分配する制御部と、を備える
     ことを特徴とする、ストレージ管理システム。
  2.  前記第2のストレージ装置の制御部は、
     前記複数の第1のストレージ装置の各々で処理するデータ量の比率に応じて、前記複数のスレッドを前記複数のストレージ装置の各々に分配する
     ことを特徴とする、請求項1に記載のストレージ管理システム。
  3.  前記第2のストレージ装置の制御部は、
     前記複数の第1のストレージ装置の前記入出力処理時または前記移行処理時の参照データ量と更新データ量との比率に応じて、前記複数のスレッドを前記入出力処理または前記移行処理に割り当てる
     ことを特徴とする、請求項2に記載のストレージ管理システム。
  4.  前記第2のストレージ装置の制御部は、
     前記複数の第1のストレージ装置に実行される前記入出力処理または前記移行処理の優先度に応じて、前記複数のスレッドを前記入出力処理または前記移行処理に割り当てる
     ことを特徴とする、請求項3に記載のストレージ管理システム。
  5.  前記第1のストレージ装置の制御部は、
     前記参照データ量、前記更新データ量、参照データ数及び更新データ数を取得し、
     前記第2のストレージ装置の制御部は、
     前記平均参照データ量または前記平均更新データ量を算出し、前記複数の第1のストレージ装置の各々の前記平均参照データ量または前記平均更新データ量の比率に応じて、前記複数のスレッドを前記複数の第1のストレージ装置の各々に割り当てる
     ことを特徴とする、請求項4に記載のストレージ管理システム。
  6.  前記第2のストレージ装置の制御部は、
     参照データ量、更新データ量、参照データ数及び更新データ数から平均参照データ量及び平均更新データ量を算出し、
     前記複数の第1のストレージ装置の各々の平均参照データ量と平均更新データ量との比率に応じて、前記複数の第1のストレージ装置の各々の前記入出力処理または前記移行処理に前記複数のスレッダを割り当てる
     ことを特徴とする、請求項5に記載のストレージ管理システム。
  7.  前記第1のストレージ装置の制御部は、
     前記入出力処理または前記移行処理を実行する毎に、前記分配されたスレッド数をデクリメントする
     ことを特徴とする、請求項6に記載のストレージ管理システム。
  8.  前記第1のストレージ装置の制御部は、
     前記入出力処理を実行する毎に、前記入出力処理を実行させるために割り当てられたスレッド数をデクリメントし、前記移行処理を実行する毎に、前記移行処理を実行させるために割り当てられたスレッド数をデクリメントする
     ことを特徴とする、請求項7に記載のストレージ管理システム。
  9.  データの入出力要求を受け付ける複数の第1のストレージ装置と、前記複数の第1のストレージ装置と接続される第2のストレージ装置と、を備えるストレージ管理システムにおけるストレージ管理方法であって、
     前記第1のストレージ装置の制御部が、前記入出力処理または前記移行処理のデータ量を取得するステップと、
     前記第2のストレージ装置の制御部が、前記データ量に応じて、前記入出力処理または前記移行処理を実行させる前記複数のスレッドを前記複数の第1のストレージ装置の各々に分配するステップと、
     前記第1のストレージ装置の制御部が、前記分配されたスレッド数で前記入出力要求に応じた前記データの入出力処理、及び、所定のポリシーに基づく前記データの前記第2のストレージ装置への移行処理を実行するステップと
     を含むことを特徴とする、ストレージ管理方法。
  10.  データの入出力要求を受け付ける入出力装置を備える複数の拠点装置と、前記複数の拠点装置と接続されるストレージ装置であって、
     データを記憶する記憶部と、
     前記複数の拠点装置のデータの入出力処理時及び移行処理時のデータ量に応じて、前記入出力処理または前記移行処理を実行させる前記複数のスレッドを前記複数の拠点装置の各々に分配する制御部と、を備える
     ことを特徴とする、ストレージ装置。
     
PCT/JP2015/054741 2015-02-20 2015-02-20 ストレージ管理システム、ストレージ管理方法及びストレージ装置 WO2016132524A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/054741 WO2016132524A1 (ja) 2015-02-20 2015-02-20 ストレージ管理システム、ストレージ管理方法及びストレージ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/054741 WO2016132524A1 (ja) 2015-02-20 2015-02-20 ストレージ管理システム、ストレージ管理方法及びストレージ装置

Publications (1)

Publication Number Publication Date
WO2016132524A1 true WO2016132524A1 (ja) 2016-08-25

Family

ID=56692075

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/054741 WO2016132524A1 (ja) 2015-02-20 2015-02-20 ストレージ管理システム、ストレージ管理方法及びストレージ装置

Country Status (1)

Country Link
WO (1) WO2016132524A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02140845A (ja) * 1988-11-21 1990-05-30 Nec Corp 自動照合方式
JPH06332782A (ja) * 1993-03-22 1994-12-02 Hitachi Ltd ファイルサーバシステム及びそのファイルアクセス制御方法
JP2006185413A (ja) * 2004-12-03 2006-07-13 Tokyo Institute Of Technology 自律ストレージ装置、自律ストレージシステム、分散ストレージシステム、負荷分散プログラム及び負荷分散方法
JP2010049573A (ja) * 2008-08-22 2010-03-04 Hitachi Ltd ストレージ管理装置、ストレージ管理方法およびストレージ管理プログラム
JP2014089747A (ja) * 2013-12-26 2014-05-15 Hitachi Ltd 情報処理システムにおける障害復旧方法、及び情報処理システム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02140845A (ja) * 1988-11-21 1990-05-30 Nec Corp 自動照合方式
JPH06332782A (ja) * 1993-03-22 1994-12-02 Hitachi Ltd ファイルサーバシステム及びそのファイルアクセス制御方法
JP2006185413A (ja) * 2004-12-03 2006-07-13 Tokyo Institute Of Technology 自律ストレージ装置、自律ストレージシステム、分散ストレージシステム、負荷分散プログラム及び負荷分散方法
JP2010049573A (ja) * 2008-08-22 2010-03-04 Hitachi Ltd ストレージ管理装置、ストレージ管理方法およびストレージ管理プログラム
JP2014089747A (ja) * 2013-12-26 2014-05-15 Hitachi Ltd 情報処理システムにおける障害復旧方法、及び情報処理システム

Similar Documents

Publication Publication Date Title
US9875163B1 (en) Method for replicating data in a backup storage system using a cost function
US9594514B1 (en) Managing host data placed in a container file system on a data storage array having multiple storage tiers
US11973520B2 (en) Techniques for determining compression tiers and using collected compression hints
US9098528B2 (en) File storage system and load distribution method
US8433848B1 (en) Analysis tool for a multi-tier storage environment
US8554918B1 (en) Data migration with load balancing and optimization
US8621178B1 (en) Techniques for data storage array virtualization
JP5981563B2 (ja) 情報記憶システム及び情報記憶システムの制御方法
US20120096059A1 (en) Storage apparatus and file system management method
EP2302500A2 (en) Application and tier configuration management in dynamic page realloction storage system
WO2012085968A1 (en) Storage apparatus and storage management method
US20120023233A1 (en) Method for executing migration between virtual servers and server system used for the same
US9323682B1 (en) Non-intrusive automated storage tiering using information of front end storage activities
JP7139435B2 (ja) データ・ストレージ・システムにおける仮想ストレージ・ドライブ管理
US20130218847A1 (en) File server apparatus, information system, and method for controlling file server apparatus
US20110289296A1 (en) Storage apparatus and control method thereof
US8423713B2 (en) Cluster type storage system and method of controlling the same
US11422704B2 (en) Adapting service level policies for external latencies
US20220206871A1 (en) Techniques for workload balancing using dynamic path state modifications
CN116261715A (zh) 用于工作负载平衡的技术
US11513849B2 (en) Weighted resource cost matrix scheduler
US9983817B2 (en) Adaptive, self learning consistency point triggers
US10552342B1 (en) Application level coordination for automated multi-tiering system in a federated environment
US11768744B2 (en) Alerting and managing data storage system port overload due to host path failures
Dell

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

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP