WO2017029826A1 - リソース構成システム、リソース構成方法及びリソース構成プログラム - Google Patents

リソース構成システム、リソース構成方法及びリソース構成プログラム Download PDF

Info

Publication number
WO2017029826A1
WO2017029826A1 PCT/JP2016/057978 JP2016057978W WO2017029826A1 WO 2017029826 A1 WO2017029826 A1 WO 2017029826A1 JP 2016057978 W JP2016057978 W JP 2016057978W WO 2017029826 A1 WO2017029826 A1 WO 2017029826A1
Authority
WO
WIPO (PCT)
Prior art keywords
resource
calculation
resource configuration
provisioning
processing
Prior art date
Application number
PCT/JP2016/057978
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 US15/742,765 priority Critical patent/US10628225B2/en
Priority to CN201680048125.9A priority patent/CN107924340A/zh
Priority to JP2017535249A priority patent/JP6438144B2/ja
Priority to EP16836818.1A priority patent/EP3340051A4/en
Publication of WO2017029826A1 publication Critical patent/WO2017029826A1/ja

Links

Images

Classifications

    • 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]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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
    • 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
    • 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]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Definitions

  • the present invention relates to a technology for configuring resources on the cloud.
  • the present invention relates to a technology for selecting a resource that meets user requirements and a provisioning method for the resource in a cloud service that can use various resources and provisioning methods, and reconfiguring the resource configuration as necessary.
  • cloud services that provision virtual resources of computer systems to users, such as IaaS (Infrastructure as a Service) type cloud services, have become widespread.
  • a user can use virtual resources such as a virtual server, a virtual network, a virtual router, a virtual storage, and a virtual load balancer on demand by contracting with a service provider.
  • a cloud service such as Amazon Web Services (registered trademark, http://aws.amazon.com/ec2).
  • Users can run their own operating system (middleware such as OS (Operating System), DB (Data Base), Web, E-mail, etc.) on virtual resources, without preparing their own physical hardware devices. You can build a server.
  • open source software for realizing IaaS is also popular.
  • OpenStack registered trademark
  • commercial cloud services such as Rackspace (registered trademark, Public Cloud Powered by OpenStack, http://www.rackspace.com/cloud/) exist.
  • virtual servers provided to users in cloud services in the city when classified by the provisioning method, servers with many-core CPUs such as Xen and KVM (Kernel-based Virtual-Machine) Virtual servers virtualized with hypervisors are the mainstream.
  • the hypervisor since the hypervisor has a drawback that the overhead of virtualization processing is large, there are container type virtual servers (containers) with little performance degradation and bare metal type physical servers (bare metal) that do not perform virtualization.
  • FPGA Field Programmable Gate Array
  • service providers have emerged that use a GPU (Graphical Processing Unit) that a general client PC has on a cloud server to provide a server with high image processing capabilities as a cloud server. For example, Amazon Web Service GPU instance server.
  • virtual storage provided to users includes block storage and object storage when classified by the provisioning method.
  • the mainstream format was to cut out virtual volumes from HDD-based dedicated storage (for example, EMC VNX) and provide them to users, but random IO (Input Output) performance is Service providers that offer SSDs and hybrid storage of SSDs and HDDs as virtual volumes are also emerging.
  • EMC VNX dedicated storage
  • random IO (Input Output) performance is Service providers that offer SSDs and hybrid storage of SSDs and HDDs as virtual volumes are also emerging.
  • Yahoo registered trademark
  • Nimble hybrid storage for cloud storage.
  • distributed storage such as Ceph and Swift is used.
  • Konoha of GMO cloud For example, Konoha of GMO cloud.
  • Patent Document 1 it is conceivable to use the technique of Patent Document 1 or Non-Patent Document 1.
  • Patent Document 1 is a technology that places a user's virtual resource on an appropriate physical device in a cloud service that provides the virtual resource.
  • Non-Patent Document 1 is a technology for proposing an appropriate provisioning method according to the user's functional requirements and performance requirements in a cloud service provided with bare metal, containers, and hypervisors.
  • a provisioning method is proposed, and virtual resources corresponding to the performance requirements and functional requirements of the user cannot be selected from virtual servers equipped with GPUs or FPGAs.
  • Patent Literature 1 and Non-Patent Literature 1 are technologies for providing virtual resources to a user. When a user's usage mode for virtual resources changes, the configuration of the virtual resources is reconfigured accordingly. It is not possible.
  • the present invention has been made in view of the above circumstances, and an object thereof is to provide a cloud service that realizes high processing performance specialized in specific processing, image processing, or parallel processing.
  • a resource configuration system of the present invention includes a resource selection device that selects a resource on the cloud, and a resource reconfiguration device that configures the resource or reconfigures the resource configuration.
  • the resource selection device requires receiving means for receiving a user's requirement for the resource, and the requirement requires specific processing, image processing, or parallel processing to be processed with a certain processing performance or more.
  • a selection means for selecting a calculation resource and a provisioning method from a plurality of calculation resources including at least an FPGA or a GPU and a plurality of provisioning methods, respectively.
  • the resource configuration method of the present invention is the resource selection method performed by a resource selection device that selects a resource on the cloud and a resource reconfiguration device that configures the resource or reconfigures the resource configuration.
  • the apparatus receives at least a FPGA or a GPU based on receiving a user requirement for the resource and whether the requirement requires specific processing, image processing, or parallel processing to be performed with a processing performance of a certain level or more. Selecting a computing resource and a provisioning method from a plurality of computing resources and a plurality of provisioning methods, respectively.
  • the gist of the resource configuration program of the present invention is to cause a computer to function as the resource configuration system according to claim 1.
  • FIG. 1 is a diagram illustrating an overall configuration of a resource configuration system according to the first embodiment.
  • This resource configuration system is arranged on a cloud system and selects a resource and a provisioning method that match a user's performance requirements and functional requirements, and an IaaS controller 3 that constructs a resource configuration based on the selection result , And is configured.
  • the IaaS controller 3 is configured using, for example, an existing OpenStack.
  • OpenStack is open source software for building a cloud computing infrastructure.
  • the IaaS controller 3 can communicate with a plurality of physical devices arranged on the cloud, and manages the virtual resources on the cloud via the virtualization software such as Volume ⁇ ⁇ Manager and the physical resources without going through the virtualization software.
  • an OpenStack API 31 that accepts a setting request from the resource selection device 1, a resource configuration building unit 32 (Heat, Nova, Cinder, etc.) that builds the resource configuration of the user based on the setting request,
  • OpenStack DB 33 for storing various resource information existing in the server and resource configuration information for each user.
  • This resource selection device 1 operates between the user terminal 5 and the IaaS controller 3.
  • a request reception unit 11 that receives a user's performance requirements and functional requirements input at the user terminal 5, a resource selection unit 12 that selects a resource and a provisioning method based on the received request, and the selection result
  • a selection result notifying unit 13 for notifying the user terminal 5, a setting requesting unit 14 for requesting resource setting to the IaaS controller 3 based on a user's approval instruction for the selection result, and information used when selecting a resource and a provisioning method are stored.
  • the information used at the time of selection is, for example, information on all resources and provisioning methods that can be set and used by the IaaS controller 3, requests from the user terminal 5, selection results of resources and provisioning methods based on the requests, and the like.
  • the resource selection device 1 can be realized by a computer having a calculation function such as a CPU and a storage function such as a memory. It is also possible to create a program for causing the computer to function and a storage medium for the program. Further, the resource selection device 1 may function as a device physically different from the IaaS controller 3 or may be a function of the IaaS controller 3.
  • a resource refers to either or both of a virtual resource and a physical resource.
  • OpenStack when used as the IaaS controller 3, generally a virtual resource using virtualization software is conceivable, but a physical resource may be selected as a selection target resource without using the virtualization software.
  • the provisioning method will be described.
  • the resource is a calculation resource, for example, bare metal provisioning, container provisioning, and hypervisor provisioning are used.
  • the resource is a storage resource, for example, block storage provisioning or object storage provisioning is used.
  • Bare metal is a physical server that does not perform virtualization. Same as conventional Dedicated Hosting. Therefore, bare metal provisioning means securing a physical server that does not perform virtualization. For example, in OpenStack, a component called Ironic performs bare metal provisioning. Since bare metal is a dedicated server, it has a high degree of freedom and high performance, but it takes a long time to provision and start up, and live migration cannot be performed.
  • a container is a virtual server using OS virtualization technology. Used in VPS (Virtual Private Server) such as OpenVZ. Therefore, container provisioning refers to securing a virtual server using OS virtualization technology.
  • Container provisioning virtualizes physical servers by isolating computer resources in units called containers. Container provisioning differs from the hypervisor described later in that it shares the OS kernel. Docker using LXC (LinuxCContainer) appeared in 2013, and its usage is increasing due to its ease of use. The container does not have the degree of freedom of the kernel, but since the securing and generation processing is just a process startup, the startup time is short and the performance degradation is small. OpenVZ can be live migrated, but Docker and LXC are not.
  • Hypervisor is a technology that virtualizes a physical server using hardware virtualization technology. Therefore, hypervisor provisioning means securing a virtual server using hardware virtualization technology. Since hypervisor provisioning operates on hardware emulated with hardware virtualization technology, the OS can be freely customized. Examples of main hypervisors include Xen, KVM, and VMware ESX. This virtual server has a high degree of freedom of the OS and can be live migrated. On the other hand, since this virtual server has a large emulation overhead, it has a disadvantage that it is inferior to bare metal or containers in terms of performance and startup time.
  • calculation resources will be described.
  • a CPU, GPU, or FPGA is used.
  • the CPU is a general computing resource installed in many servers and client PCs, and is designed with low latency in mind.
  • the CPU has a large cache, advanced control, and powerful arithmetic functions.
  • cloud servers often use many-core CPUs with more than 10 CPU cores.
  • GPU is a calculation unit for image processing and is designed with high throughput in mind.
  • the GPU has a small cache, simple control, energy efficient computing functions, and compute units are arranged to perform a large amount of parallel computation for high throughput.
  • Many GPUs are installed in client PCs, but they are also installed in servers that run applications for image processing.
  • FPGA is an integrated circuit whose configuration can be set or changed by a purchaser or designer after manufacture, and is one of programmable logic devices. FPGAs have advantages such as the ability to update functions after shipment, partial reconfiguration in terms of design, and lower engineering costs than ASIC design. FPGA is not suitable for general-purpose processing, but it can achieve higher processing performance than CPU and GPU by configuring logic for specific calculation. If it is the same processing suitable for FPGA, it has processing performance several times that of GPU and 10-100 times that of CPU. FPGAs were mainly used for scientific and academic purposes, but cloud servers are also being used to speed up search processing and NoSQL Engine processing. For example, it is used by Microsoft's Bing search and IBM's NoSQL engine.
  • HDD high-disk
  • SSD solid state drive
  • hybrid storage high-speed storage
  • HDD Hard Disk Drive
  • striping is done by parallelizing HDDs to improve IO (Input Output) performance.
  • IO Input Output
  • a typical 150001rpm (rotation per minute) HDD is about 150-200 IOPS with random write, but it becomes about 3000-4000 IOPS by arranging 20 HDDs.
  • power and space costs are required, and when an HDD is added or an HDD failure is replaced, the service must be stopped due to the storage chassis being stopped.
  • SSD Solid State Drive
  • IOPS Online Transaction Processing
  • Hybrid storage is a storage resource that takes advantage of the features of each HDD and SSD.
  • Nimble's Storage employs a method called CAS ((Cache Accelerated Sequential Layout).
  • CASL when writing, first write to SSD, compress to a format that can be accessed sequentially, write to HDD, and at the same time, part of it is saved in cache.
  • search from SSD and cache When reading, search from SSD and cache, finally search HDD and return response.
  • CASL achieves random IOPS that is at least as good as regular SSDs.
  • Research on hybrid storage has been active since the end of the 2000s, and there are many other research and products besides Nimble. For example, see “Extending SSD Lifetimes Disk-Based Write Caches” (G. Soundararajan, 3 others, FAST 2010: 8th USENIX Conference on File Storage Technologies, Feb. 2010.).
  • Distributed storage is a storage resource that uses an IA (Intel Architecture) server.
  • IA Intelligent Architecture
  • Large-capacity and scalable storage systems have been built by placing inexpensive IA servers in parallel.
  • SPOF Single Point Of Of Failure
  • SSDs can be used as drives, but SATA (Serial Advanced Technology Attachment) HDDs are usually used with emphasis on cost.
  • the software that configures the distributed storage can place multiple copies of one data on multiple nodes, and can automatically perform rearrangement at the time of addition and degeneration at the time of failure.
  • Examples of distributed storage used as a file system include GlusterFS, Ceph, GFS, and HDFS.
  • there is OpenStackftSwift as an object storage, for example, there is OpenStackftSwift.
  • the resources that can be selected by the resource selection device 1 and the provisioning method have been described.
  • the characteristics and performance of such resources and provisioning methods are compared and examined for each resource and each provisioning method.
  • a certain requirement criterion is defined hierarchically for the performance requirement and functional requirement required by the user, and the resource and the provisioning method are specified according to the determination result in each criterion, and the user requirement Select matching resources and provisioning methods. This makes it possible to place resources and provisioning methods according to user requirements in the right place and provide processing performance resources and provisioning methods that meet user requirements.
  • FIG. 2 is a diagram illustrating a processing flow for selecting a resource and a provisioning method.
  • the cloud provider proposes a resource and a provisioning method.
  • the user has little know-how regarding performance design and device selection.
  • the request reception unit 11 receives performance requirements and functional requirements specified by the user on the user terminal 5 (step S101).
  • PaaS Platinum ⁇ as a Service
  • PaaS is a platform that manages the execution of applications on the cloud. It is also possible to deploy an application via the PaaS. For example, Cloud Foundry is used.
  • the functional requirements are information on whether the OS is Linux or other than Linux, whether kernel customization is required, what kind of application runs, and the like.
  • the performance requirement is information related to throughput, latency, and the like.
  • the resource selection unit 12 selects a resource and a provisioning method that match the performance requirement and the functional requirement specified in Step S101 from the plurality of resources and the plurality of provisioning methods (Step S102). Specifically, in consideration of the features and performance of the resource and the provisioning method that can be selected by the resource selection device 1, necessary condition determination criteria based on the features and performance are hierarchically defined for user requirements. Then, the specified performance requirement and functional requirement are determined by each necessary condition determination criterion, and the resource and provisioning method corresponding to the determination result are selected.
  • provisioning methods include bare metal, containers, or hypervisors, and server equipment includes normal CPU-based servers, GPU-enhanced servers, and FPGAs optimized for specific computing processes. Select one of the selected servers.
  • the provisioning method is either block storage or object storage
  • the storage device is either HDD-based storage, SSD-based storage, HDD-SSD hybrid storage, or distributed storage such as Ceph. Select. A specific selection procedure example of resources and provisioning methods will be described later.
  • the selection result notifying unit 13 transmits the resource and the provisioning method selected in step S102 to the user terminal 5 (step S103). Receiving it, the user terminal 5 displays the received resource and the provisioning method on the screen as the proposed resource and the proposed provisioning method. The user of the user terminal 5 confirms the content of the proposal, and returns an approval instruction to the resource selection device 1 if there is no problem.
  • the setting request unit 14 specifies the resource approved by the user and the provisioning method, and requests the IaaS controller 3 for resource setting and generation (step S104). Thereafter, the IaaS controller 3 secures resources based on the request from the resource selection device 1.
  • step S102 a specific selection procedure of resources and provisioning methods performed in step S102 will be described.
  • a procedure for selecting a calculation resource will be described with reference to FIG.
  • step S102a it is determined whether or not the user's functional requirements and performance requirements require that a specific calculation process be processed with a certain processing performance.
  • step S102a If the determination result in step S102a is Yes, a server including an FPGA that accelerates the specific calculation process is selected, and bare metal is selected as a provisioning method for the server (step S102b).
  • Examples of speeding up in FPGA include speeding up memcached and speeding up Microsoft's Bing search. Provision of bare metal is necessary because the benefits of FPGA cannot be fully utilized when virtualized. The method for speeding up memcached is described in “Thin Servers with Smart Pipes: Designing SoC Accelerators for Memcached”, http://bit.ly/1BBNBEI, ISCA, 2013 ”.
  • step S102a determines whether the user's functional requirements and performance requirements require that image processing (or parallel processing) be processed with a certain level of processing performance or more. (Step S102c).
  • step S102c determines whether a server with enhanced GPU is selected, and a bare metal or container is selected as the provisioning method for the server (steps S102e and S102f). Which provisioning method to select is determined based on the level of processing performance required for the computing resource or the necessity of customization for the OS (step S102d). If the determination result in step S102d is Yes, bare metal is selected, and if it is No, a container is selected. Note that image processing includes applications that perform video editing, processing, analysis, and the like. Server GPUs are often not as strong as client PCs, but servers with powerful GPUs are emerging. When controlling the GPU, the hardware is abstracted and cannot be controlled in the virtual machine, so provisioning is performed with bare metal or a container.
  • containers are often limited to Linux, such as LXC and Docker, provisioning with bare metal is required for other than Linux.
  • container technology that Windows is compatible with the OS has recently appeared, and by using it, container provisioning is possible even when the OS is Windows.
  • step S102c determines whether a normal CPU-based server is selected, and a bare metal, hypervisor, or container is selected as a provisioning method for the server (steps S102i, S102j, S102k).
  • the provisioning method to be selected is determined based on the size of processing performance required for the computing resource (for example, high throughput, low delay) or the necessity of customization for the OS (steps S102g, S102h). ). If the determination result in step S102g is Yes, bare metal is selected. On the other hand, if the determination result is No and the determination result in Step S102h is Yes, a hypervisor is selected. If both of the determination results in step S102g and step S102h are No, a container is selected.
  • step S102c is performed before step S102a.
  • a storage resource necessary condition determination criteria based on characteristics and performance of the storage resource and the provisioning method are hierarchically determined, and a calculation resource and a provisioning method that match the specified performance requirement and functional requirement are selected.
  • block storage or object storage is selected as a provisioning method based on the functional requirements specified by the user.
  • Block storage manages data in units of blocks.
  • Object storage is managed in units of objects. Since object storage is generally inexpensive, if the object storage is specified by the user as a functional requirement, a distributed storage such as OpenStack Swift is selected.
  • block storage is designated as a functional requirement, the storage is selected according to the characteristics of the application program to be operated.
  • HDD-SSD hybrid storage For applications that require high IO, such as OLAP, select SSD or HDD-SSD hybrid storage according to performance requirements. On the other hand, for applications that do not require high IO such as file servers and archives, select HDD or distributed storage according to performance requirements. Generally, the price is higher in the order of SSD> HDD-SSD hybrid> HDD> distributed storage, and an inexpensive storage that satisfies the performance requirements is selected.
  • whether the resource selection device 1 requires that the user's performance requirement and functional requirement process specific calculation processing, image processing, or parallel processing with a certain level of processing performance or more Based on a plurality of calculation resources including at least FPGA and GPU, a plurality of storage resources, and a plurality of provisioning methods, a predetermined calculation resource, a predetermined storage resource, and a predetermined provisioning method are selected respectively.
  • a cloud service that realizes high processing performance specialized for parallel processing, and further, it is possible to reduce operation and labor such as server configuration design by the user.
  • the resource selection device 1 selects a storage resource according to the characteristics of the application program to be operated. Therefore, such as OLAP that requires high IO while HDD, SSD, etc. are mixed. Storage with high IO such as SSD can be presented to users who want to perform processing.
  • the resource selection device 1 includes an FPGA optimized for the calculation when it is desired to perform a specific calculation process at high speed while a CPU, a GPU, an FPGA, and the like are mixed. If you want to provision hardware with bare metal and want to perform image processing at high speed, provision hardware with GPU enhancement with bare metal or container, otherwise use a normal CPU server with bare metal, container, or hypervisor. Since provisioning is performed, the user can realize high processing performance on the computing resource.
  • FIG. 4 is a diagram showing an overall configuration of the resource configuration system according to the second embodiment.
  • This resource configuration system includes a resource reconfiguration device 7 that configures and reconfigures resources and provisioning methods, and an IaaS controller 3 that constructs or reconstructs a resource configuration based on the configuration or reconfiguration result. .
  • the resource reconfiguration device 7 includes a request reception unit 71 that receives a user performance requirement and a functional requirement input from the user terminal 5, and a resource reconfiguration unit 72 that configures or reconfigures a resource and a provisioning method based on the received request.
  • a reconfiguration result notifying unit 73 for notifying the user terminal 5 of the configuration or reconfiguration result, and a setting requesting unit 74 for requesting resource setting to the IaaS controller 3 based on a user approval instruction for the configuration or reconfiguration result;
  • a resource usage frequency collection unit 75 that collects user usage frequency with respect to the configured or reconfigured resource, and a data storage unit 76 that stores information used when configuring and reconfiguring the resource and the provisioning method. Is done.
  • the resource reconfiguration device 7 can be realized by a computer having a calculation function such as a CPU and a storage function such as a memory. It is also possible to create a program for causing the computer to function and a storage medium for the program. Furthermore, the resource reconfiguration device 7 may function as a device physically different from the resource selection device 1 or the IaaS controller 3, or may be a function of the resource selection device 1 or the IaaS controller 3.
  • This operation example will be described using two operation patterns.
  • the first is the operation that constitutes the calculation logic of the FPGA.
  • the second is an operation of reconfiguring the calculation logic of the FPGA during the user's resource operation.
  • FIG. 5 is a diagram showing a configuration processing flow of calculation logic for the FPGA server.
  • the request receiving unit 71 receives performance requirements and functional requirements specified by the user on the user terminal 5 (step S201).
  • the functional requirements are information regarding whether calculation logic that needs to be speeded up is necessary, what kind of application operates, and the like.
  • the performance requirement is information related to throughput, latency, and the like.
  • the resource reconfiguration unit 72 configures the calculation logic of the FPGA server based on the performance requirement and functional requirement specified in step S201, and further selects a provisioning method (step S202). Specifically, an FPGA server that is not being used is selected, and calculation logic is set according to the specified performance requirements and functional requirements. If a calculation logic that requires high speed is not specified, it may be configured according to the type of application.
  • the configuration process itself can be realized using a known technique. For example, the acceleration by FPGA in NoSQL is described in Data Engine for NoSQL-IBM Power Systems Edition White Paper. What is necessary is just to define in advance inside the resource reconfiguration apparatus 7 to set to the structure based on this description content.
  • the time required for the configuration or reconfiguration of the FPGA is generally about several tens of ms, and there is no problem even if the configuration or reconfiguration is performed according to the user requirements.
  • a specific configuration procedure example of the calculation logic for the FPGA server will be described later.
  • bare metal is selected as in step S102b of FIG.
  • the reconfiguration result notifying unit 73 transmits the calculation logic to the FPGA configured in step S202 and the selected provisioning method to the user terminal 5 (step S203).
  • the user terminal 5 displays the received calculation logic and provisioning method on the screen as the proposed resource and the proposed provisioning method.
  • the user of the user terminal 5 confirms the content of the proposal, and returns an approval instruction to the resource selection device 1 if there is no problem.
  • the calculation logic set in the FPGA may be designated by the user and returned.
  • the setting request unit 74 specifies the resource approved by the user and the provisioning method, and requests the IaaS controller 3 to set and generate the resource (step S204). Thereafter, the IaaS controller 3 secures resources based on the request from the resource selection device 1. As a result, the calculation logic and provisioning method configured and selected in step S202 are used in the unused FPGA server.
  • FIG. 6 is a diagram showing a configuration processing flow of calculation logic for the FPGA server.
  • step S202a it is determined whether or not the user's functional requirements and performance requirements specify a specific calculation logic.
  • step S202a If the determination result in step S202a is Yes, the FPGA server is configured using the specified specific calculation logic (step S202b). On the other hand, when the determination result of step S202a is No, it is determined whether or not the calculation logic corresponding to the application type specified by the user can be used on the resource configuration system (step S202c).
  • step S202c determines whether the FPGA server is configured using the calculation logic corresponding to the designated application type.
  • step S202e determines whether the calculation logic corresponding to the designated application type.
  • the specified configuration in the FPGA for example, it may be reflected using a development tool provided by Altera or Xilinx developing the FPGA.
  • FIG. 7 is a diagram showing a reconfiguration processing flow of calculation logic for the FPGA server. This second operation is performed, for example, after the first operation.
  • the resource usage frequency collection unit 75 periodically collects usage frequencies of various calculation processes used by the user in each FPGA server (step S301). For example, the number of graph analyzes is collected for each FPGA server, such as how many times the graph analysis is performed per hour, and how many times NoCR CRUD processing is performed per hour.
  • the resource reconfiguration unit 72 detects the specific calculation processing of each FPGA server based on the type of calculation logic set in the FPGA server, and the type of calculation processing that is detected in each FPGA server.
  • the number of times of various calculation processes in each FPGA server is periodically collated, and it is determined whether it is better to reconfigure the FPGA server based on the collation result (step S302). For example, on an FPGA server that is good at graph analysis, if graph analysis is performed 10 times per hour and NoSQL CRUD processing is performed 10,000 times per hour, it is reconfigured to an FPGA server that is good at NoSQL processing. It is better to do.
  • step S302 for example, when the number of calculations other than the good calculation exceeds a certain threshold, it is determined that the FPGA server is properly reconfigured.
  • An FPGA server that is good at graph analysis is an FPGA server on which calculation logic for graph analysis is set.
  • the reconfiguration result notifying unit 73 transmits a notification that the calculation logic should be changed to the user terminal 5 (step S303). For example, in the case of the above example, it is suggested to the user that it is more appropriate to change the calculation logic for graph analysis set in the corresponding FPGA server to the calculation logic for NoSQL. Receiving it, the user terminal 5 displays the received calculation logic change proposal on the screen. The user of the user terminal 5 confirms the proposal and returns an approval instruction to the resource selection device 1 if there is no problem. At this time, if there is a problem, the calculation logic to be set in the FPGA may be specified by the user and returned, or an instruction not to reconfigure may be returned.
  • the resource reconfiguration unit 72 selects the FPGA server used by the user, and based on the approval result by the user, the calculation logic of the FPGA server is increased so that the calculation logic with the increased number of calculations is accelerated. Change (step S304).
  • the calculation logic for graph analysis is changed to the calculation logic for NoSQL whose usage frequency has increased.
  • the time required for FPGA reconfiguration is generally about several tens of ms, and there is no problem even if the FPGA server is reconfigured during operation of the FPGA server.
  • This second operation pattern may be applied to the FPGA server that is provisioned by the resource selection device 1 used in the first embodiment and for which a specific calculation process is optimized in advance.
  • the resource reconfiguration device 7 changes the setting to the FPGA server optimized for the specific calculation logic and performs the bare metal provisioning according to the user's requirement, so that the user has high processing performance. realizable.
  • the resource reconfiguring device 7 collects the usage frequencies of various calculation processes used by the user on the FPGA server.
  • specific calculation processing increases due to changes in user usage
  • the configuration of the FPGA server is changed to match the increased calculation processing, so the user can achieve higher processing performance on the FPGA server, and more The need to prepare a plurality of FPGA servers with calculation logic in advance can be reduced.
  • Non-Patent Document 1 includes a mechanism for automatically verifying the performance of the server configuration proposed by the service provider side, and the user can easily perform the performance verification by using them.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

特定処理、画像処理、又は並列処理に特化した高い処理性能を実現するクラウドサービスを提供する。リソース選択装置1は、ユーザの性能要件及び機能要件が特定の計算処理、画像処理、又は並列処理を一定以上の処理性能で処理することを要求しているかに基づき、少なくともFPGAかGPUを含む複数のリソース及び複数のプロビジョニング方法からリソース及びプロビジョニング方法をそれぞれ選択する。

Description

リソース構成システム、リソース構成方法及びリソース構成プログラム
 本発明は、クラウド上のリソースを構成する技術に関する。特に、多様なリソース及びプロビジョニング方法が利用可能なクラウドサービスにおいて、ユーザの要件に合うリソース及びそのリソースのプロビジョニング方法を選択し、必要に応じてリソース構成を再構成する技術に関する。
 近年、IaaS(Infrastructure as a Service)型クラウドサービス等、ユーザに対してコンピュータシステムの仮想リソースをプロビジョニングするクラウドサービスが普及している。ユーザは、サービス事業者と契約することにより、仮想サーバ、仮想ネットワーク、仮想ルーター、仮想ストレージ、仮想ロードバランサー等の仮想リソースをオンデマンドで利用することができる。例えば、Amazon Web Services(登録商標、http://aws.amazon.com/ec2)等のクラウドサービスが存在する。ユーザは、OS(Operating System)、DB(Data Base)、Web、電子メール等のミドルウェアを仮想リソース上で動作させることにより、自分自身で物理的なハードウェア機器を用意することなく、自身専用のサーバを構築することができる。
 また、IaaSを実現するためのオープンソースソフトウェアも普及している。例えば、OpenStack(登録商標)と呼ばれるオープンソースソフトウェアを基盤とする商用クラウドサービスが提供されている。例えば、Rackspace(登録商標、Public Cloud Powered by OpenStack、http://www.rackspace.com/cloud/)等の商用クラウドサービスが存在している。
 このような状況下、市中のクラウドサービスにおいて、ユーザに提供される仮想サーバとしては、プロビジョニング方法で分類した場合、CPUがメニーコア(many core)のサーバをXenやKVM(Kernel based Virtual Machine)等のハイパーバイザーで仮想化した仮想サーバが主流である。一方、ハイパーバイザーは仮想化処理のオーバヘッドが大きいという欠点を持つため、性能劣化が小さいコンテナ型の仮想サーバ(コンテナ)や仮想化を行わないベアメタル型の物理サーバ(ベアメタル)がある。また、計算リソースで分類した場合、CPUを持つ一般的なサーバ以外に、特定の計算ロジックに最適化されたFPGA(Field Programmable Gate Array)サーバがある。例えば、Microsoft社のBing検索サーバである。さらに、一般のクライアントPCが持つGPU(Graphical Processing Unit)をクラウドサーバにも搭載し、画像処理能力が高いサーバをクラウドサーバとして提供するサービス事業者も出現している。例えば、Amazon Web ServiceのGPUインスタンスサーバである。
 また、ユーザに提供される仮想ストレージとしては、プロビジョニング方法で分類した場合、ブロックストレージやオブジェクトストレージがある。また、記憶リソースで分類した場合、これまでHDDベースの専用ストレージ(例えば、EMC社のVNX)から仮想ボリュームを切り出してユーザに提供する形態が主流であったが、ランダムIO(Input Output)性能がHDDに比べて高いSSD、SSDとHDDのハイブリッドストレージを仮想ボリュームとして提供するサービス事業者も出現している。例えば、Yahoo(登録商標)では、Nimble社のハイブリッドストレージをクラウドのストレージに利用している。さらに、低価格を好むユーザに対しては、CephやSwift等の分散ストレージが利用される。例えば、GMOクラウドのKonohaである。
 このように、クラウドサービスに利用される仮想リソース及びその仮想リソースのプロビジョニング方法は多様である。それゆえ、ユーザの利用用途に応じて適材適所の仮想サーバ等を選択することにより、IaaSの性能が向上し、ユーザの利便性が高まると考えられる。しかし、従来のクラウドサービスでは、同一機種の仮想リソース中から選定するため、個々のユーザの要件に合致した適材適所の仮想リソースを提供することは困難であった。そのため、ユーザは、自らの機能要件及び性能要件に合わせて適切なサーバ構成を自分自身で設計し、そのサーバ構成の性能検証を行う必要があり、多くの技術知識や労力が必要とされていた。
特開2015-103094号公報
Y. Yamato、"SERVER STRUCTURE PROPOSAL AND AUTOMATIC VERIFICATION TECHNOLOGY ON IAAS CLOUD OF PLURAL TYPE SERVICERS"、International Conference on Internet Studies, July 18-19, 2015, Tokyo, Japan
 そこで、特許文献1又は非特許文献1の技術を用いることが考えられる。
 特許文献1は、仮想リソースを提供するクラウドサービスにおいて、適切な物理機器にユーザの仮想リソースを配置する技術である。しかし、例えば一定の仮想CPU数を持つ仮想サーバをどの物理機器に対応付けるかをスケジューリングするだけであり、ベアメタルやコンテナ等のプロビジョニング方法を用いて強力なGPUユニットやFPGAを備えた仮想サーバをユーザに提供することはできない。
 また、非特許文献1は、ベアメタル、コンテナ、及びハイパーバイザーが提供されているクラウドサービスにおいて、ユーザの機能要件及び性能要件に従い、適切なプロビジョニング方法を提案する技術である。しかし、プロビジョニング方法を提案するだけであり、ユーザの性能要件及び機能要件に対応する仮想リソースをGPUやFPGAを備えた仮想サーバの中から選択することはできない。
 さらに、特許文献1及び非特許文献1は、ユーザに対して仮想リソースを提供するための技術であり、仮想リソースに対するユーザの利用形態が変化した場合、それに合わせて仮想リソースの構成を再構成することはできない。
 本発明は、上記事情を鑑みてなされたものであり、特定処理、画像処理、又は並列処理に特化した高い処理性能を実現するクラウドサービスを提供することを目的とする。
 以上の課題を解決するため、本発明のリソース構成システムは、クラウド上のリソースを選択するリソース選択装置と、リソースを構成し又はそのリソース構成を再構成するリソース再構成装置と、を備えたリソース構成システムにおいて、前記リソース選択装置は、前記リソースに対するユーザの要件を受信する受信手段と、前記要件が特定処理、画像処理、又は並列処理を一定以上の処理性能で処理することを要求しているかに基づき、少なくともFPGAかGPUを含む複数の計算リソース及び複数のプロビジョニング方法から計算リソース及びプロビジョニング方法をそれぞれ選択する選択手段と、を備えることを要旨とする。
 また、本発明のリソース構成方法は、クラウド上のリソースを選択するリソース選択装置と、リソースを構成し又はそのリソース構成を再構成するリソース再構成装置と、で行うリソース構成方法において、前記リソース選択装置は、前記リソースに対するユーザの要件を受信するステップと、前記要件が特定処理、画像処理、又は並列処理を一定以上の処理性能で処理することを要求しているかに基づき、少なくともFPGAかGPUを含む複数の計算リソース及び複数のプロビジョニング方法から計算リソース及びプロビジョニング方法をそれぞれ選択するステップと、を備えることを要旨とする。
 また、本発明のリソース構成プログラムは、請求項1に記載のリソース構成システムとしてコンピュータを機能させることを要旨とする。
 本発明によれば、特定処理、画像処理、又は並列処理に特化した高い処理性能を実現するクラウドサービスを提供することができる。
第1の実施の形態に係るリソース構成システムの全体構成を示す図である。 リソース及びプロビジョニング方法の選択処理フローを示す図である。 計算リソースの選択処理フローを示す図である。 第2の実施の形態に係るリソース構成システムの全体構成を示す図である。 FPGAサーバに対する計算ロジックの構成処理フローを示す図である。 FPGAサーバに対する計算ロジックの構成処理フローを示す図である。 FPGAサーバに対する計算ロジックの再構成処理フローを示す図である。
 以下、本発明を実施する一実施の形態について図面を用いて説明する。
 <第1の実施の形態>
 図1は、第1の実施の形態に係るリソース構成システムの全体構成を示す図である。このリソース構成システムは、クラウドシステム上に配置され、ユーザの性能要件及び機能要件に合致するリソース及びプロビジョニング方法を選択するリソース選択装置1と、その選択結果に基づきリソース構成を構築するIaaSコントローラ3と、を備えて構成される。
 まず、IaaSコントローラ3について説明する。このIaaSコントローラ3は、例えば既存のOpenStackを用いて構成する。OpenStackとは、クラウドコンピューティングの基盤を構築するためのオープンソースソフトウェアである。IaaSコントローラ3は、クラウド上に配置された複数の物理機器と通信可能であり、Volume Manager等の仮想化ソフトウェアを介してクラウド上の仮想リソース、及び仮想化ソフトウェアを介することなく物理リソースを管理する。本実施の形態では、リソース選択装置1からの設定要求を受け付けるOpenStack API31と、その設定要求に基づき該当ユーザのリソース構成を構築するリソース構成構築部32(Heat、Nova、Cinder等)と、クラウド上に存在する様々なリソース情報やユーザ毎のリソース構成情報を記憶するOpenStack DB33と、を備えて構成される。
 続いて、リソース選択装置1について説明する。このリソース選択装置1は、ユーザ端末5とIaaSコントローラ3との間で動作する。本実施の形態では、ユーザ端末5で入力されたユーザの性能要件及び機能要件を受け付ける要求受付部11と、受け付けた要求に基づきリソース及びプロビジョニング方法を選択するリソース選択部12と、その選択結果をユーザ端末5へ通知する選択結果通知部13と、その選択結果に対するユーザの承認指示に基づきリソース設定をIaaSコントローラ3へ要求する設定要求部14と、リソース及びプロビジョニング方法の選択時に用いる情報を記憶するデータ記憶部15と、を備えて構成される。選択時に用いる情報とは、例えば、IaaSコントローラ3で設定及び利用可能な全てのリソース及びプロビジョニング方法、ユーザ端末5からの要求、その要求に基づくリソース及びプロビジョニング方法の選択結果等に関する情報である。
 ここまで、リソース構成システムの全体構成について説明した。なお、リソース選択装置1は、CPU等の演算機能やメモリ等の記憶機能を備えたコンピュータで実現可能である。また、そのコンピュータを機能させるためのプログラムや該プログラムの記憶媒体を作成することも可能である。さらに、リソース選択装置1は、IaaSコントローラ3と物理的に異なる装置として機能させてもよいし、IaaSコントローラ3の一機能としてもよい。
 次に、IaaSコントローラ3で設定及び利用可能な全てのリソース及びプロビジョニング方法について説明する。つまり、ここでは、リソース選択装置1で選択可能なリソース及びプロビジョニング方法について説明する。なお、リソースとは、仮想リソースと物理リソースの双方又はいずれかを指す。例えばIaaSコントローラ3としてOpenStackを用いた場合、一般的には仮想化ソフトウェアによる仮想リソースが考えられるが、仮想化ソフトウェアを介することなく物理リソースを選択対象のリソースとしてもよい。
 まず、プロビジョニング方法について説明する。本実施の形態では、リソースが計算リソースの場合、例えば、ベアメタルプロビジョニング、コンテナプロビジョニング、ハイパーバイザープロビジョニングを用いる。一方、リソースが記憶リソースの場合、例えば、ブロックストレージプロビジョニング、オブジェクトストレージプロビジョニングを用いる。
 ベアメタルとは、仮想化を行わない物理サーバである。従来のDedicated Hostingと同じである。それゆえ、ベアメタルプロビジョニングとは、仮想化を行わない物理サーバを確保等することをいう。例えばOpenStackでは、Ironicというコンポーネントがベアメタルプロビジョンを行っている。ベアメタルは専用サーバであるため、自由度は高くて性能も高いが、プロビジョニングして起動するまでの時間は長く、ライブマイグレーションを行うことができない。
 コンテナとは、OS仮想化技術を用いた仮想サーバである。OpenVZ等、VPS(Virtual Private Server)で用いられている。それゆえ、コンテナプロビジョニングとは、OS仮想化技術を用いた仮想サーバを確保等することをいう。コンテナプロビジョニングは、コンテナと呼ばれる単位でコンピュータリソースを隔離することで物理サーバを仮想化する。コンテナプロビジョニングは、OSのカーネルを共有する点で後述するハイパーバイザーと異なる。2013年にLXC(Linux Container)を用いたDockerが登場し、その使い勝手の良さから利用が増えている。コンテナは、カーネルの自由度はないが、その確保及び生成処理はプロセスを立ち上げただけであるため、起動時間が短く、性能劣化も小さい。また、OpenVZはライブマイグレーションが可能であるが、DockerやLXCでは現時点では不可能である。
 ハイパーバイザーは、ハードウェア仮想化技術を用いて物理サーバを仮想化する技術である。それゆえ、ハイパーバイザープロビジョニングとは、ハードウェア仮想化技術を用いた仮想サーバを確保等することをいう。ハイパーバイザープロビジョニングは、ハードウェア仮想化技術でエミュレートされたハードウェア上で動作するため、自由にOSをカスタマイズすることができる。主なハイパーバイザーとして、例えば、Xen、KVM、VMware ESXがある。この仮想サーバは、OSの自由度が高く、ライブマイグレーションも可能である。一方、この仮想サーバは、エミュレーションオーバヘッドが大きいため、性能や起動時間でベアメタルやコンテナに劣る欠点がある。
 続いて、計算リソースについて説明する。本実施の形態では、例えば、CPU、GPU、FPGAを用いる。
 CPUは、多くのサーバやクライアントPCに搭載されている一般的な計算リソースであり、低遅延を意識した設計がされている。CPUは、大きなキャッシュ、高度な制御、強力な演算機能を備える。特にクラウドサーバでは、CPUのコア数が10個を超えるメニーコアのCPUが使われることが多い。
 GPUは、画像処理向けの計算ユニットであり、高スループットを意識した設計がされている。GPUは、小さなキャッシュ、単純な制御、エネルギー効率の良い演算機能を備え、高スループットのために大量の並列計算を行うよう計算ユニットが配置されている。GPUはクライアントPCに多く搭載されているが、画像処理用のアプリケーションを動かすサーバにも搭載されている。
 FPGAは、製造後に購入者や設計者が構成を設定又は変更できる集積回路であり、プログラマブルロジックデバイスの一つである。FPGAは、出荷後においても機能を更新でき、設計面で部分的に再構成でき、ASIC設計よりエンジニアリングコストが低い点等の利点がある。FPGAは汎用処理には向かないが、特定の計算にロジックを構成することにより、CPUやGPUに比べて高い処理性能を実現することができる。FPGAに向いた計算の同一処理であれば、GPUの数倍、CPUの10-100倍以上の処理性能を持つ。FPGAは、科学学術での利用が中心だったが、クラウドサーバでも検索処理やNoSQL Engineの処理の高速化に用いられるようになっている。例えば、MicrosoftのBing検索やIBM社のNoSQLエンジンで利用されている。
 引き続き、記憶リソースについて説明する。本実施の形態では、例えば、HDD、SSD、ハイブリッドストレージ、分散ストレージを用いる。
 HDD(Hard Disk Drive)は、多くのサーバやクライアントPCに搭載されている一般的な記憶リソースである。通常のHDDベースのストレージに関しては、IO(Input Output)の性能向上のため、HDDを並列化してストライピングを行う。例えば、一般的な15000 rpm(rotation per minute)のHDDはランダムWriteで150-200 IOPS程度であるが、20本並べることで3000-4000 IOPS程度となる。しかし、並列するHDDの増加に伴い、電力や場所のコストがかかり、HDD追加時やHDD故障交換時はストレージ筐体の停止に伴うサービス停止が必要となる。
 SSD(Solid State Drive)は、フラッシュメモリ等を使用した記憶リソースである。SSDは、ランダムIOの性能がHDDに比べて高く数千IOPS程度だが、HDDに比べてシーケンシャルIOの性能は低い。また、SSDは、単位容量当たりのコストが高く、耐久性も低い。そのため、全てSSDのストレージでクラウドユーザのボリュームを準備するのは高コストで困難である。現状、クラウドでのSSDの利用は、OLTP(Online Transaction Processing)等のIOPSが要求されるアプリケーションが中心であり、ファイルサーバ等にはあまり使われていない。
 ハイブリッドストレージは、HDDとSSDの各特性を踏まえ、それぞれの特長を生かした記憶リソースである。例えば、Nimble社のStorageは、CASL(Cache Accelerated Sequential Layout)と呼ばれる方式を採用している。CASLでは、書き込み時は、まずSSDに書き込み、圧縮してシーケンシャルアクセスできる形式に変換してHDDに書き込むと同時に、一部はキャッシュに保存する。読み込み時は、SSD及びキャッシュから検索し、最後にHDDを検索して応答を返す。これにより、CASLでは、通常のSSDと同程度以上のランダムIOPSを実現している。ハイブリッドストレージの研究は2000年代終わりから盛んであり、Nimble以外にも多くの研究、製品が挙げられる。例えば、“Extending SSD Lifetimes with Disk-Based Write Caches”(G. Soundararajan、外3名、FAST 2010: 8th USENIX Conference on File and Storage Technologies, Feb. 2010.)を参照されたい。
 分散ストレージは、IA(Intel Architecture)サーバを用いた記憶リソースである。安価なIAサーバを並置することで、大容量で拡張性のあるストレージシステムが構築されている。近年、IAサーバに内蔵できるドライブの容量、本数が増えており、これらIAサーバ群のドライブをソフトウェアで統一的に管理することで、単一ストレージのSPOF(Single Point Of Failure)やボトルネック、追加等のメンテナンス時のサービス停止を防止している。利用するドライブにSSDも利用できるが、通常はコストを重視してSATA(Serial Advanced Technology Attachment)のHDDが利用される。分散ストレージを構成するソフトウェアは、1つのデータを複数ノードに複製を多重に配置し、追加時の再配置や障害時の縮退を自動で行うことができる。ファイルシステムとして利用する分散ストレージとしては、例えば、GlusterFS、Ceph、GFS、HDFS等がある。また、オブジェクトストレージとして利用する分散ストレージとしては、例えば、OpenStack Swift等がある。
 ここまで、リソース選択装置1で選択可能なリソース及びプロビジョニング方法について説明した。本実施の形態では、このようなリソース及びプロビジョニング方法の特徴及び性能をリソース毎・プロビジョニング方法毎に互いに比較検討しておく。そして、ユーザが求める性能要件及び機能要件に対して一定の必要条件判定基準を階層的に定め、各基準での判定結果に応じてリソース及びプロビジョニング方法をそれぞれ特定しておき、ユーザの要求条件に合致するリソース及びプロビジョニング方法を選定する。これにより、ユーザの要件に応じたリソース及びプロビジョニング方法を適材適所に配置可能となり、ユーザの要件に見合った処理性能のリソース及びプロビジョニング方法を提供することができる。
 次に、リソース選択装置1の動作について説明する。図2は、リソース及びプロビジョニング方法の選択処理フローを示す図である。ここでは、リソース及びプロビジョニング方法をクラウド事業者側が提案するユースケースを想定している。その際、ユーザは性能設計及び機器選定に関するノウハウが少ないものとする。
 まず、要求受付部11は、ユーザによりユーザ端末5で指定された性能要件及び機能要件を受信する(ステップS101)。このとき、リソース選択装置1に対して直接指定するのに代えて、PaaS(Platform as a Service)を介して指定してもよい(図1参照)。PaaSとは、クラウド上のアプリケーションの実行管理を行うプラットフォームである。アプリケーションのデプロイを該PaaSを介して行うことも可能である。例えば、Cloud Foundry等を用いる。なお、機能要件とは、OSがLinuxかLinux以外か、カーネルのカスタマイズが必要か、どのようなアプリケーションが動作するか、等に関する情報である。また、性能要件とは、スループットやレイテンシー等に関する情報である。
 次に、リソース選択部12は、複数のリソース及び複数のプロビジョニング方法から、ステップS101で指定された性能要件及び機能要件に合致するリソース及びプロビジョニング方法を選択する(ステップS102)。具体的には、リソース選択装置1で選択可能なリソース及びプロビジョニング方法の特徴及び性能を考慮し、その特徴及び性能に基づく必要条件判定基準をユーザ要件に対して階層的に定めておく。そして、指定された性能要件及び機能要件を各必要条件判定基準で判定し、その判定結果に応じたリソース及びプロビジョニング方法を選択する。計算リソースについては、プロビジョニング方法として、ベアメタル、コンテナ、ハイパーバイザーのうちいずれか、サーバ機器として、通常のCPU主体のサーバ、GPUが強化されたサーバ、特定の計算処理に最適化されたFPGAを備えたサーバのうちいずれかを選択する。また、記憶リソースについては、プロビジョニング方法として、ブロックストレージ、オブジェクトストレージのうちいずれか、ストレージ機器として、HDDベースのストレージ、SSDベースのストレージ、HDD-SSDハイブリッドストレージ、Ceph等の分散ストレージのうちいずれかを選択する。リソース及びプロビジョニング方法の具体的な選択手順例については後述する。
 次に、選択結果通知部13は、ステップS102で選択されたリソース及びプロビジョニング方法をユーザ端末5へ送信する(ステップS103)。それを受けたユーザ端末5は、受信したリソース及びプロビジョニング方法を提案リソース及び提案プロビジョニング方法として画面に表示する。ユーザ端末5のユーザは、その提案内容を確認し、問題なければ承認指示をリソース選択装置1に返信する。
 最後に、設定要求部14は、ユーザにより承認されたリソース及びプロビジョニング方法を指定してIaaSコントローラ3にリソース設定及び生成を要求する(ステップS104)。その後、IaaSコントローラ3は、リソース選択装置1からの該要求に基づきリソースを確保する。
 続いて、ステップS102で行うリソース及びプロビジョニング方法の具体的な選択手順について説明する。ここでは、図3を参照しながら、計算リソースの選択手順について説明する。
 まず、ユーザの機能要件及び性能要件が、特定の計算処理を一定以上の処理性能で処理することを要件としているか否かを判定する(ステップS102a)。
 ステップS102aの判定結果がYesの場合、その特定の計算処理を高速化するFPGAを備えたサーバを選択し、そのサーバのプロビジョニング方法としてベアメタルを選択する(ステップS102b)。FPGAでの高速化の例として、memcachedを高速化する方法やMicrosoftのBing検索の高速化等の例がある。仮想化するとFPGAのメリットが十分に生かせないので、ベアメタルでプロビジョニングする。なお、memcachedを高速化の方法については、「“Thin Servers with Smart Pipes: Designing SoC Accelerators for Memcached”、http://bit.ly/1BBNBEI、ISCA、2013」に記載されている。
 一方、ステップS102aの判定結果がNoの場合、続いて、ユーザの機能要件及び性能要件が、画像処理(又は並列処理)を一定以上の処理性能で処理することを要件としているか否かを判定する(ステップS102c)。
 ステップS102cの判定結果がYesの場合、GPUが強化されたサーバを選択し、そのサーバのプロビジョニング方法としてベアメタル又はコンテナを選択する(ステップS102e,S102f)。いずれのプロビジョニング方法を選定するかについては、計算リソースに対して要求されている処理性能の大きさ又はOSに対するカスタマイズの要否に基づき判定する(ステップS102d)。ステップS102dの判定結果がYesの場合はベアメタルを選択し、Noの場合はコンテナを選択する。なお、画像処理には、映像編集、加工、分析等を行うアプリケーションがある。サーバのGPUはクライアントPCに比べて、そこまで強化されていないことが多かったが、強力なGPUを備えたサーバも出現している。GPUを制御する際は、仮想マシンではハードウェアが抽象化され制御できないため、ベアメタル又はコンテナでプロビジョニングする。但し、コンテナはLXCやDocker等、OSがLinuxに限定される場合が多いため、Linux以外の場合はベアメタルでプロビジョニングが必要となる。なお、WindowsがOSに対応したコンテナ技術も近年登場してきており、それを用いることにより、WindowsがOSでもコンテナプロビジョニングが可能となる。
 一方、ステップS102cの判定結果がNoの場合、通常のCPU主体のサーバを選択し、そのサーバのプロビジョニング方法としてベアメタル、ハイパーバイザー、又はコンテナを選択する(ステップS102i,S102j,S102k)。いずれのプロビジョニング方法を選定するかについては、計算リソースに対して要求されている処理性能の大きさ(例えば、高スループット、低遅延)又はOSに対するカスタマイズの要否に基づき判定する(ステップS102g,S102h)。ステップS102gの判定結果がYesの場合は、ベアメタルを選択する。一方、その判定結果がNo、かつ、ステップS102hの判定結果がYesの場合は、ハイパーバイザーを選択する。ステップS102g及びステップS102hの判定結果がいずれもNoの場合は、コンテナを選択する。
 ここまで、計算リソースを選択する場合について説明した。なお、図3に示した各ステップの順番は一例である。例えばステップS102cをステップS102aの前に行う等、各ステップの順番を入れ替えてもよい。
 記憶リソースの場合も同様に、記憶リソース及びプロビジョニング方法の特徴及び性能に基づく必要条件判定基準を階層的に定めておき、指定された性能要件及び機能要件に合致する計算リソース及びプロビジョニング方法を選択する。具体的には、ユーザにより指定された機能要件に基づき、プロビジョニング方法として、ブロックストレージ又はオブジェクトストレージを選択する。ブロックストレージは塊であるブロック単位でデータを管理する。オブジェクトストレージはオブジェクト単位で管理する。オブジェクトストレージは一般に安価であるため、ユーザによりオブジェクトストレージが機能要件に指定された場合は、OpenStack Swift等の分散ストレージを選択する。一方、ブロックストレージが機能要件に指定された場合は、動作させるアプリケーションプログラムの特性に応じてストレージを選択する。OLAP等のように高いIOが要求されるアプリケーションの場合は、性能要件に応じてSSD又はHDD-SSDハイブリッドストレージを選択する。一方、ファイルサーバやアーカイブ等、高いIOが要求されないアプリケーションの場合は、性能要件に応じてHDD又は分散ストレージを選択する。一般に価格はSSD>HDD-SSDハイブリッド>HDD>分散ストレージの順に高価であり、性能要件が満たせる安価なストレージが選択される。
 以上より、本実施の形態では、リソース選択装置1が、ユーザの性能要件及び機能要件が特定の計算処理、画像処理、又は並列処理を一定以上の処理性能で処理することを要求しているかに基づき、少なくともFPGAとGPUを含む複数の計算リソース、複数の記憶リソース及び複数のプロビジョニング方法から所定の計算リソース、所定の記憶リソース及び所定のプロビジョニング方法をそれぞれ選択するので、特定の計算処理、画像処理、又は並列処理に特化した高い処理性能を実現するクラウドサービスを提供することができ、さらにユーザによるサーバ構成設計等の稼働や労力を低減することができる。
 また、本実施の形態では、リソース選択装置1が、動作させるアプリケーションプログラムの特性に応じて記憶リソースを選択するので、HDD、SSD等が混在している中、高いIOが要求されるOLAP等の処理を行いたいユーザに対してSSD等の高いIOを持つストレージを提示することができる。
 また、本実施の形態では、リソース選択装置1が、CPU、GPU、FPGA等が混在している中、特定の計算処理を高速で行いたい場合は、その計算に最適化されたFPGAを備えたハードウェアをベアメタルプロビジョニングし、画像処理を高速で行いたい場合は、GPUが強化されたハードウェアをベアメタルもしくはコンテナでプロビジョニングし、それ以外の場合は通常のCPUサーバに、ベアメタル、コンテナ、ハイパーバイザーでプロビジョニングするので、ユーザは計算リソース上で高い処理性能を実現できる。
 <第2の実施の形態>
 第1の実施の形態では、リソース及びプロビジョニング方法の選択方法について説明した。一方、第2の実施の形態では、ユーザの要求に応じてリソースを選択及び構成し、さらにユーザによるリソースの利用方法の変化に応じて該リソース構成を再構成する方法について説明する。
 図4は、第2の実施の形態に係るリソース構成システムの全体構成を示す図である。このリソース構成システムは、リソース及びプロビジョニング方法を構成及び再構成するリソース再構成装置7と、その構成又は再構成結果に基づきリソース構成を構築又は再構築するIaaSコントローラ3と、を備えて構成される。
 続いて、リソース再構成装置7について説明する。このリソース再構成装置7は、ユーザ端末5で入力されたユーザの性能要件及び機能要件を受け付ける要求受付部71と、受け付けた要求に基づきリソース及びプロビジョニング方法を構成又は再構成するリソース再構成部72と、その構成又は再構成結果をユーザ端末5へ通知する再構成結果通知部73と、その構成又は再構成結果に対するユーザの承認指示に基づきリソース設定をIaaSコントローラ3へ要求する設定要求部74と、構成又は再構成されたリソースに対するユーザの利用頻度を収集するリソース利用頻度収集部75と、リソース及びプロビジョニング方法の構成時及び再構成時に用いる情報を記憶するデータ記憶部76と、を備えて構成される。
 なお、リソース再構成装置7は、CPU等の演算機能やメモリ等の記憶機能を備えたコンピュータで実現可能である。また、そのコンピュータを機能させるためのプログラムや該プログラムの記憶媒体を作成することも可能である。さらに、リソース再構成装置7は、リソース選択装置1又はIaaSコントローラ3と物理的に異なる装置として機能させてもよいし、リソース選択装置1又はIaaSコントローラ3の一機能としてもよい。
 次に、リソース再構成装置7の動作について説明する。ここでは、FPGA内部の計算ロジックを再構成する場合について説明する。これは、各目的の計算ロジックをそれぞれ備えた複数のFPGAを予め用意しておくことは高コストであることを考慮したものであり、ユーザの利用状況に応じてFPGAの計算ロジックを最適化するようにする。
 本動作例では、2つの動作パターンを用いて説明する。1つ目はFPGAの計算ロジックを構成する動作である。2つ目はユーザのリソース運用中にFPGAの計算ロジックを再構成する動作である。
 最初に、1つ目の動作パターンについて説明する。図5は、FPGAサーバに対する計算ロジックの構成処理フローを示す図である。
 まず、要求受付部71は、ユーザによりユーザ端末5で指定された性能要件及び機能要件を受信する(ステップS201)。なお、機能要件とは、高速化が必要な計算ロジックが必要か、どのようなアプリケーションが動作するか、等に関する情報である。また、性能要件とは、スループットやレイテンシー等に関する情報である。
 次に、リソース再構成部72は、ステップS201で指定された性能要件及び機能要件に基づきFPGAサーバの計算ロジックを構成し、さらにプロビジョニング方法を選択する(ステップS202)。具体的には、使用されていないFPGAサーバを選択し、指定された性能要件及び機能要件に応じた計算ロジックを設定する。高速化が必要な計算ロジックが指定されていない場合は、アプリケーションの種類に応じて構成するようにしてもよい。その構成処理自体については公知技術を用いて実現可能である。例えば、NoSQLでのFPGAによるアクセラレートについては、Data Engine for NoSQL - IBM Power Systems Edition White Paper等に記載されている。この記載内容に基づく構成に設定することを予めリソース再構成装置7の内部で定義しておけばよい。FPGAの構成又は再構成にかかる時間は一般的に数十ms程度で可能であり、ユーザ要件に応じて構成又は再構成しても問題はない。FPGAサーバに対する計算ロジックの具体的な構成手順例については後述する。なお、プロビジョニング方法については、ここではFPGAサーバを対象としているため、図3のステップS102bと同様にベアメタルを選択する。
 次に、再構成結果通知部73は、ステップS202で構成されたFPGAへの計算ロジック及び選択されたプロビジョニング方法をユーザ端末5へ送信する(ステップS203)。それを受けたユーザ端末5は、受信した計算ロジック及びプロビジョニング方法を提案リソース及び提案プロビジョニング方法として画面に表示する。ユーザ端末5のユーザは、その提案内容を確認し、問題なければ承認指示をリソース選択装置1に返信する。このとき、問題があれば、FPGAに設定する計算ロジックをユーザが指定して返信してもよい。
 最後に、設定要求部74は、ユーザにより承認されたリソース及びプロビジョニング方法を指定してIaaSコントローラ3にリソース設定・生成を要求する(ステップS204)。その後、IaaSコントローラ3は、リソース選択装置1からの該要求に基づきリソースを確保する。これにより、ステップS202で構成及び選択された計算ロジックとプロビジョニング方法が未使用のFPGAサーバで利用されることになる。
 続いて、ステップS202で行う計算ロジックの具体的な構成手順について説明する。図6は、FPGAサーバに対する計算ロジックの構成処理フローを示す図である。
 まず、ユーザの機能要件及び性能要件が、特定の計算処理用の計算ロジックを指定しているか否かを判定する(ステップS202a)。
 ステップS202aの判定結果がYesの場合、指定された特定の計算ロジックを用いてFPGAサーバを構成する(ステップS202b)。一方、ステップS202aの判定結果がNoの場合、ユーザにより指定されたアプリケーションタイプに対応する計算ロジックがリソース構成システム上で利用できるか否かを判定する(ステップS202c)。
 その後、ステップS202cの判定結果がYesの場合、指定されたアプリケーションタイプに対応する計算ロジックを用いてFPGAサーバを構成する(ステップS202d)。一方、ステップS202cの判定結果がNoの場合、ユーザに対して利用可能な1つ以上の計算ロジックを提示し、それに応じて指定された計算ロジックを用いてFPGAサーバを構成する(ステップS202e)。
 なお、指定する構成をFPGAに反映する方法としては、例えば、FPGAを開発しているアルテラ社やザイリンクス社が提供している開発ツールを用いて反映すればよい。
 ここまで、1つ目の動作パターンについて説明した。なお、この1つ目の動作パターンでは、FPGAに対して計算ロジックを新規に設定する場合について説明したが、後述するように既に設定されている計算ロジックを変更する場合でも図5及び図6の「構成」を「再構成」と読み替えることによりそのまま流用することができる。
 続いて、2つ目の動作パターンについて説明する。再度説明するが、この2つ目は、ユーザのリソース運用中にFPGAの計算ロジックを再構成する動作である。図7は、FPGAサーバに対する計算ロジックの再構成処理フローを示す図である。この2つ目の動作は、例えば1つ目の動作の後に行われる。
 まず、リソース利用頻度収集部75は、各FPGAサーバでユーザが利用している各種計算処理の利用頻度をそれぞれ定期的に収集する(ステップS301)。例えば、グラフ分析の回数が1時間に何回であるか、NoSQLのCRUD処理が1時間に何回であるか、等の回数をFPGAサーバ毎に収集する。
 次に、リソース再構成部72は、FPGAサーバに設定されている計算ロジックの種類に基づき各FPGAサーバの得意な計算処理を検出し、検出された各FPGAサーバでの得意な計算処理の種類と該各FPGAサーバにおける各種計算処理の回数とを定期的に照合し、その照合結果に基づきFPGAサーバを再構成した方がよいかを判定する(ステップS302)。例えば、グラフ分析が得意なFPGAサーバ上で、グラフ分析回数が1時間に10回行われ、NoSQLのCRUD処理が1時間に10000回行われている場合、NoSQL処理に得意なFPGAサーバへ再構成する方が適切である。それゆえ、ステップS302では、例えば、得意な計算以外の計算回数が一定の閾値を超えた場合に、FPGAサーバの再構成が適切であると判定する。なお、グラフ分析が得意なFPGAサーバとは、グラフ分析用の計算ロジックが設定されているFPGAサーバである。
 次に、再構成結果通知部73は、ステップS302でFPGAサーバの再構成が適切であると判定した場合、計算ロジックを変更すべき旨の通知をユーザ端末5へ送信する(ステップS303)。例えば、上記例の場合、該当のFPGAサーバ設定されているグラフ分析用の計算ロジックをNoSQL用の計算ロジックに変更した方が適切である旨及びその理由をユーザへ提案する。それを受けたユーザ端末5は、受信した計算ロジックの変更案を画面に表示する。ユーザ端末5のユーザは、その提案を確認し、問題なければ承認指示をリソース選択装置1に返信する。このとき、問題があれば、FPGAに設定する計算ロジックをユーザが指定して返信してもよいし、再構成を行わない指示を返信してもよい。
 最後に、リソース再構成部72は、ユーザが利用しているFPGAサーバを選択し、ユーザによる承認結果に基づき、計算回数が増えた計算ロジックが高速化されるように該FPGAサーバの計算ロジックを変更する(ステップS304)。上記例の場合、グラフ分析用の計算ロジックを利用頻度が増大したNoSQL用の計算ロジックに変更する。FPGAの再構成にかかる時間は一般的に数十ms程度で可能であり、FPGAサーバの動作中に再構成しても問題はない。
 これまで、FPGA内部の計算ロジックを構成及び再構成する場合について説明した。勿論、異なる計算ロジックを持つFPGAサーバ間、異なる種類の計算リソース間や記憶リソース間、異なるプロビジョニング方法同士についても、それら各間において、ユーザの変更後の性能要件及び機能要件、計算リソースに対するユーザの利用頻度に基づき変更することも可能である。
 ここまで、2つ目の動作パターンについて説明した。この2つ目の動作パターンは、第1の実施の形態で用いたリソース選択装置1よりプロビジョニングされ、事前に特定の計算処理が最適化されたFPGAサーバに対して適用してもよい。
 以上より、本実施の形態では、リソース再構成装置7が、ユーザの要件に応じて、特定の計算ロジックに最適化したFPGAサーバに設定を変更し、ベアメタルプロビジョニングするので、ユーザは高い処理性能を実現できる。
 また、本実施の形態では、リソース再構成装置7が、FPGAサーバ上でユーザがシステム運用をしている場合、そのFPGAサーバでユーザが利用している各種計算処理の利用頻度をそれぞれ収集し、ユーザの利用方法の変化により特定の計算処理が増大してきた場合、増大した計算処理に合わせてFPGAサーバの構成を変更するので、ユーザはFPGAサーバ上でより高い処理性能を実現でき、さらに各種の計算ロジックを備えた複数のFPGAサーバを予め準備する必要性を低減することができる。
 最後に、第1の実施の形態及び第2の実施の形態では、ユーザ要件に対して適切なリソース構成を提案する方法について説明したが、その一方でユーザは該提案内容で十分であるかを実際に確認する必要がある。そのような場合、提案されたリソース構成の性能を検証する性能検証装置を利用することも考えられる。例えば、非特許文献1は、サービス事業者側が提案したサーバ構成での性能を自動検証する仕組みを備えており、それらを利用することでユーザは容易に性能検証を実施可能となる。
 1…リソース選択装置
 11…要求受付部
 12…リソース選択部
 13…選択結果通知部
 14…設定要求部
 15…データ記憶部
 3…IaaSコントローラ
 31…OpenStack API
 32…リソース構成構築部
 33…OpenStack DB
 5…ユーザ端末
 7…リソース再構成装置
 71…要求受付部
 72…リソース再構成部
 73…再構成結果通知部
 74…設定要求部
 75…リソース利用頻度収集部
 76…データ記憶部
 S101~S104、S102a~S102k、S201~S204、S202a~S202e、S301~S304…ステップ

Claims (9)

  1.  クラウド上のリソースを選択するリソース選択装置と、リソースを構成し又はそのリソース構成を再構成するリソース再構成装置と、を備えたリソース構成システムにおいて、
     前記リソース選択装置は、
     前記リソースに対するユーザの要件を受信する受信手段と、
     前記要件が特定処理、画像処理、又は並列処理を一定以上の処理性能で処理することを要求しているかに基づき、少なくともFPGAかGPUを含む複数の計算リソース及び複数のプロビジョニング方法から計算リソース及びプロビジョニング方法をそれぞれ選択する選択手段と、
     を備えることを特徴とするリソース構成システム。
  2.  前記選択手段は、
     前記要件が前記特定処理を一定以上の処理性能で処理することを要求している場合、前記計算リソースとしてFPGAを選択し、当該計算リソースのプロビジョニング方法としてベアメタルを選択することを特徴とする請求項1に記載のリソース構成システム。
  3.  前記選択手段は、
     前記要件が前記画像処理又は前記並列処理を一定以上の処理性能で処理することを要求している場合、前記計算リソースとしてGPUを選択し、当該計算リソースのプロビジョニング方法として、計算リソースに対して要求されている処理性能の大きさ又はOSに対するカスタマイズの要否に基づきベアメタル又はコンテナを選択することを特徴とする請求項1に記載のリソース構成システム。
  4.  前記選択手段は、
     前記要件に基づきブロック単位又はオブジェクト単位のプロビジョニング方法を選択し、動作させるアプリケーションプログラムの特性に応じて記憶リソースを選択することを特徴とする請求項1に記載のリソース構成システム。
  5.  前記リソース再構成装置は、
     ユーザの要件に応じた計算ロジックをFPGAの計算リソースに設定し、当該計算ロジックを当該計算リソースで利用させる構成手段、
     を備えることを特徴とする請求項1に記載のリソース構成システム。
  6.  前記リソース再構成装置は、
     リソース構成後の計算リソースで前記ユーザが利用している各種計算処理の利用頻度をそれぞれ収集する収集手段と、
     前記利用頻度が増大した特定の計算処理に合わせて前記リソース構成後の計算リソースの構成を変更する再構成手段と、
     を備えることを特徴とする請求項1に記載のリソース構成システム。
  7.  クラウド上のリソースを選択するリソース選択装置と、リソースを構成し又はそのリソース構成を再構成するリソース再構成装置と、で行うリソース構成方法において、
     前記リソース選択装置は、
     前記リソースに対するユーザの要件を受信するステップと、
     前記要件が特定処理、画像処理、又は並列処理を一定以上の処理性能で処理することを要求しているかに基づき、少なくともFPGAかGPUを含む複数の計算リソース及び複数のプロビジョニング方法から計算リソース及びプロビジョニング方法をそれぞれ選択するステップと、
     を備えることを特徴とするリソース構成方法。
  8.  前記リソース再構成装置は、
     リソース構成後の計算リソースで前記ユーザが利用している各種計算処理の利用頻度をそれぞれ収集するステップと、
     前記利用頻度が増大した特定の計算処理に合わせて前記リソース構成後の計算リソースの構成を変更するステップと、
     を備えることを特徴とする請求項7に記載のリソース構成方法。
  9.  請求項1に記載のリソース構成システムとしてコンピュータを機能させることを特徴とするリソース構成プログラム。
PCT/JP2016/057978 2015-08-18 2016-03-14 リソース構成システム、リソース構成方法及びリソース構成プログラム WO2017029826A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US15/742,765 US10628225B2 (en) 2015-08-18 2016-03-14 Resource configuration system, resource configuration method and resource configuration program for selecting a computational resource and selecting a provisioning method
CN201680048125.9A CN107924340A (zh) 2015-08-18 2016-03-14 资源配置系统、资源配置方法以及资源配置程序
JP2017535249A JP6438144B2 (ja) 2015-08-18 2016-03-14 リソース構成システム、リソース構成方法及びリソース構成プログラム
EP16836818.1A EP3340051A4 (en) 2015-08-18 2016-03-14 Resource Configuration System, Resource Configuration Method, and Resource Configuration Program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015160784 2015-08-18
JP2015-160784 2015-08-18

Publications (1)

Publication Number Publication Date
WO2017029826A1 true WO2017029826A1 (ja) 2017-02-23

Family

ID=58051546

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/057978 WO2017029826A1 (ja) 2015-08-18 2016-03-14 リソース構成システム、リソース構成方法及びリソース構成プログラム

Country Status (5)

Country Link
US (1) US10628225B2 (ja)
EP (1) EP3340051A4 (ja)
JP (1) JP6438144B2 (ja)
CN (1) CN107924340A (ja)
WO (1) WO2017029826A1 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108958910A (zh) * 2018-05-21 2018-12-07 福建省数字福建云计算运营有限公司 一种基于异构环境下的任务调度方法及终端
JP2019121185A (ja) * 2018-01-05 2019-07-22 コニカミノルタ株式会社 Gpu割当プログラム、gpu割当方法、コンピュータ読取可能な記録媒体、および、gpu割当装置
WO2021151352A1 (zh) * 2020-10-23 2021-08-05 平安科技(深圳)有限公司 裸金属服务交付方法、装置、计算机设备和存储介质
JP2021521533A (ja) * 2018-04-18 2021-08-26 ザイリンクス インコーポレイテッドXilinx Incorporated 異種システムオンチップのためのソフトウェア定義マルチドメイン作成分離
WO2023105670A1 (ja) * 2021-12-08 2023-06-15 日本電信電話株式会社 リソース管理装置及びプログラム
WO2023105671A1 (ja) * 2021-12-08 2023-06-15 日本電信電話株式会社 計算機及びプログラム
JP7571414B2 (ja) 2020-08-06 2024-10-23 日本電気株式会社 コンテナ実行システム、端末装置、サーバ装置、コンテナ実行環境決定方法及びプログラム

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10484242B2 (en) * 2017-08-23 2019-11-19 Bank Of America Corporation Dynamic cloud stack configuration
US11140032B2 (en) * 2018-05-04 2021-10-05 Oracle International Corporation System and method for building idempotent configuration management modules for a cloud Infrastructure Service
CN108897601A (zh) * 2018-06-29 2018-11-27 郑州云海信息技术有限公司 一种基于虚拟化的fpga使用方法、系统及相关装置
US11416663B2 (en) * 2018-12-13 2022-08-16 Hamilton Sundstrand Corporation Optimized allocation of functions in hybrid motor controller implementations
US11120188B2 (en) * 2019-01-28 2021-09-14 King Fahd University Of Petroleum And Minerals FPGA virtualization
CN111309440B (zh) * 2020-02-16 2022-07-08 苏州浪潮智能科技有限公司 一种多类型gpu的管理调度的方法和设备
CN111858241B (zh) * 2020-07-10 2022-06-10 浪潮电子信息产业股份有限公司 一种fpga云平台的监控方法、装置、设备及存储介质
US11809912B2 (en) 2020-12-09 2023-11-07 Dell Products L.P. System and method for allocating resources to perform workloads
US11928515B2 (en) 2020-12-09 2024-03-12 Dell Products L.P. System and method for managing resource allocations in composed systems
US11934875B2 (en) 2020-12-09 2024-03-19 Dell Products L.P. Method and system for maintaining composed systems
US11809911B2 (en) 2020-12-09 2023-11-07 Dell Products L.P. Resuming workload execution in composed information handling system
US11704159B2 (en) 2020-12-09 2023-07-18 Dell Products L.P. System and method for unified infrastructure architecture
US11853782B2 (en) 2020-12-09 2023-12-26 Dell Products L.P. Method and system for composing systems using resource sets
US11604595B2 (en) 2020-12-09 2023-03-14 Dell Products L.P. Data mirroring and data migration between storage volumes using system control processors
US11675625B2 (en) 2020-12-09 2023-06-13 Dell Products L.P. Thin provisioning of resources using SCPS and a bidding system
US11675665B2 (en) 2020-12-09 2023-06-13 Dell Products L.P. System and method for backup generation using composed systems
US11693703B2 (en) 2020-12-09 2023-07-04 Dell Products L.P. Monitoring resource utilization via intercepting bare metal communications between resources
US11435814B2 (en) 2020-12-09 2022-09-06 Dell Produts L.P. System and method for identifying resources of a composed system
US11698821B2 (en) 2020-12-09 2023-07-11 Dell Products L.P. Composable information handling systems in an open network using access control managers
US11755433B2 (en) 2020-12-22 2023-09-12 EMC IP Holding Company LLC Method and system for health rank based virtual machine restoration using a conformal framework
US11687280B2 (en) 2021-01-28 2023-06-27 Dell Products L.P. Method and system for efficient servicing of storage access requests
US11768612B2 (en) 2021-01-28 2023-09-26 Dell Products L.P. System and method for distributed deduplication in a composed system
US11675916B2 (en) 2021-01-28 2023-06-13 Dell Products L.P. Method and system for limiting data accessibility in composed systems
US11797341B2 (en) 2021-01-28 2023-10-24 Dell Products L.P. System and method for performing remediation action during operation analysis
US12013768B2 (en) 2021-07-22 2024-06-18 Dell Products L.P. Method and system for automated healing of hardware resources in a composed information handling system
US12026557B2 (en) 2021-07-22 2024-07-02 Dell Products L.P. Method and system for a utilizing a proxy service to generate a composed information handling system
US11947697B2 (en) 2021-07-22 2024-04-02 Dell Products L.P. Method and system to place resources in a known state to be used in a composed information handling system
US12008412B2 (en) 2021-07-28 2024-06-11 Dell Products Resource selection for complex solutions
US11928506B2 (en) 2021-07-28 2024-03-12 Dell Products L.P. Managing composition service entities with complex networks
CN115499305B (zh) * 2022-07-29 2024-04-26 天翼云科技有限公司 一种分布式集群存储设备的部署方法、装置及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011248503A (ja) * 2010-05-25 2011-12-08 Nippon Telegr & Teleph Corp <Ntt> 情報サービスシステム
WO2014073024A1 (en) * 2012-11-09 2014-05-15 Hitachi, Ltd. Management computer, computer system, and instance management method
JP2015132887A (ja) * 2014-01-09 2015-07-23 富士通株式会社 要求分散プログラム、要求分散方法および情報処理装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6915518B1 (en) * 2000-07-24 2005-07-05 Xilinx, Inc. System and method for runtime reallocation of PLD resources
US20030069974A1 (en) * 2001-10-08 2003-04-10 Tommy Lu Method and apparatus for load balancing web servers and virtual web servers
US7437721B2 (en) * 2004-09-29 2008-10-14 Microsoft Corporation Isolating software deployment over a network from external malicious intrusion
US8799431B2 (en) * 2005-08-15 2014-08-05 Toutvirtual Inc. Virtual systems management
US9235442B2 (en) * 2010-10-05 2016-01-12 Accenture Global Services Limited System and method for cloud enterprise services
CN103312727A (zh) * 2012-03-06 2013-09-18 创业软件股份有限公司 一种区域医疗协同服务领域云计算部署方法
US8892945B2 (en) * 2012-04-02 2014-11-18 International Business Machines Corporation Efficient application management in a cloud with failures
US8775576B2 (en) * 2012-04-17 2014-07-08 Nimbix, Inc. Reconfigurable cloud computing
DE102012221355A1 (de) * 2012-11-22 2014-05-22 Siemens Aktiengesellschaft Verfahren zum Bereitstellen von Ressourcen in einer Cloud und Vorrichtung
US8677359B1 (en) * 2013-03-14 2014-03-18 Joyent, Inc. Compute-centric object stores and methods of use
US20140280964A1 (en) * 2013-03-15 2014-09-18 Gravitant, Inc. Systems, methods and computer readable mediums for implementing cloud service brokerage platform functionalities
CN103297504B (zh) * 2013-05-09 2016-05-11 浙江大学 一种云数据中心中物理裸机快速部署操作系统的方法
JP5988505B2 (ja) 2013-11-26 2016-09-07 日本電信電話株式会社 仮想リソース管理装置、選択方法及び選択プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011248503A (ja) * 2010-05-25 2011-12-08 Nippon Telegr & Teleph Corp <Ntt> 情報サービスシステム
WO2014073024A1 (en) * 2012-11-09 2014-05-15 Hitachi, Ltd. Management computer, computer system, and instance management method
JP2015132887A (ja) * 2014-01-09 2015-07-23 富士通株式会社 要求分散プログラム、要求分散方法および情報処理装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3340051A4 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019121185A (ja) * 2018-01-05 2019-07-22 コニカミノルタ株式会社 Gpu割当プログラム、gpu割当方法、コンピュータ読取可能な記録媒体、および、gpu割当装置
JP6992515B2 (ja) 2018-01-05 2022-01-13 コニカミノルタ株式会社 Gpu割当プログラム、gpu割当方法、コンピュータ読取可能な記録媒体、および、gpu割当装置
JP2021521533A (ja) * 2018-04-18 2021-08-26 ザイリンクス インコーポレイテッドXilinx Incorporated 異種システムオンチップのためのソフトウェア定義マルチドメイン作成分離
JP7250043B2 (ja) 2018-04-18 2023-03-31 ザイリンクス インコーポレイテッド 異種システムオンチップのためのソフトウェア定義マルチドメイン作成分離
CN108958910A (zh) * 2018-05-21 2018-12-07 福建省数字福建云计算运营有限公司 一种基于异构环境下的任务调度方法及终端
CN108958910B (zh) * 2018-05-21 2020-12-18 福建省数字福建云计算运营有限公司 一种基于异构环境下的任务调度方法及终端
JP7571414B2 (ja) 2020-08-06 2024-10-23 日本電気株式会社 コンテナ実行システム、端末装置、サーバ装置、コンテナ実行環境決定方法及びプログラム
WO2021151352A1 (zh) * 2020-10-23 2021-08-05 平安科技(深圳)有限公司 裸金属服务交付方法、装置、计算机设备和存储介质
WO2023105670A1 (ja) * 2021-12-08 2023-06-15 日本電信電話株式会社 リソース管理装置及びプログラム
WO2023105671A1 (ja) * 2021-12-08 2023-06-15 日本電信電話株式会社 計算機及びプログラム

Also Published As

Publication number Publication date
JPWO2017029826A1 (ja) 2018-05-10
US20180239642A1 (en) 2018-08-23
EP3340051A1 (en) 2018-06-27
EP3340051A4 (en) 2019-04-10
JP6438144B2 (ja) 2018-12-12
CN107924340A (zh) 2018-04-17
US10628225B2 (en) 2020-04-21

Similar Documents

Publication Publication Date Title
JP6438144B2 (ja) リソース構成システム、リソース構成方法及びリソース構成プログラム
EP3762826B1 (en) Live migration of virtual machines in distributed computing systems
CN109791500B (zh) 虚拟机实例和客户可编程逻辑之间的中间主机集成电路
US10146563B2 (en) Predictive layer pre-provisioning in container-based virtualization
US11573714B2 (en) Compressibility instrumented dynamic volume provisioning
US11182718B2 (en) Methods and systems to optimize server utilization for a virtual data center
US10324754B2 (en) Managing virtual machine patterns
US8825863B2 (en) Virtual machine placement within a server farm
US8904384B2 (en) Reducing data transfer overhead during live migration of a virtual machine
US20180157560A1 (en) Methods and apparatus for transparent database switching using master-replica high availability setup in relational databases
US10346065B2 (en) Method for performing hot-swap of a storage device in a virtualization environment
US20190229983A1 (en) Methods and systems that provision applications across multiple computer systems
US20150256432A1 (en) Managing resources in a networked computing environment
US10936330B2 (en) Instantaneous boot of virtual machine instances via remote direct memory access
EP3738035A1 (en) Fast instantiation of virtual machines in distributed computing systems
US9965334B1 (en) Systems and methods for virtual machine storage provisioning
US10585736B2 (en) Incremental dump with fast reboot
US11960917B2 (en) Live migration and redundancy for virtualized storage
Chen et al. Towards Fast Deploying the Coordinated Storage, Computing, and Networking Cloud Service: the Ezilla Toolkit

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017535249

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 15742765

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2016836818

Country of ref document: EP