WO2016160041A2 - Scalabale cloud storage solution - Google Patents

Scalabale cloud storage solution Download PDF

Info

Publication number
WO2016160041A2
WO2016160041A2 PCT/US2015/032933 US2015032933W WO2016160041A2 WO 2016160041 A2 WO2016160041 A2 WO 2016160041A2 US 2015032933 W US2015032933 W US 2015032933W WO 2016160041 A2 WO2016160041 A2 WO 2016160041A2
Authority
WO
WIPO (PCT)
Prior art keywords
node
vsa
storage
cloud system
compute
Prior art date
Application number
PCT/US2015/032933
Other languages
French (fr)
Other versions
WO2016160041A3 (en
Inventor
Jyoti RANJAN
Karthik PACHAIAPPAN KARUNANITHY
Sameer Vaidya
Original Assignee
Hewlett Packard Enterprise Development Lp
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 Hewlett Packard Enterprise Development Lp filed Critical Hewlett Packard Enterprise Development Lp
Publication of WO2016160041A2 publication Critical patent/WO2016160041A2/en
Publication of WO2016160041A3 publication Critical patent/WO2016160041A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Definitions

  • a cloud based storage solution may meet such requirements.
  • FIG. 1 is a block diagram of an example computing environment for providing a scalable storage solution
  • FIG. 2 is a block diagram of an example computing system for providing a scalable storage solution
  • FIG. 3 is a flowchart of an example method of for providing a scalable storage solution.
  • FIG. 4 is a block diagram of an example system for providing a scalable storage solution. Detailed Description
  • a cloud computing (or “cloud”) based storage solution may overcome constraints of a scale-up storage system.
  • cloud computing involves delivery of computing as a service rather than a product, whereby shared resources (software, storage resources, etc.) are provided to computing devices as a service.
  • the resources are shared over a network, which is typically the internet.
  • Virtualization allows creation of a virtual version of a resource, such as an operating system, a hardware platform, storage resource etc. which could be shared, for instance, among different clients.
  • Multiple virtual machines (VM) may be created on a host device or server.
  • the present disclosure describes a scalable cloud storage solution.
  • the compute capabilities of the new compute node may be determined.
  • a virtual storage application may be installed on the new compute node to generate a VSA node.
  • the virtual storage application virtualizes direct- attached storage in the VSA node into a virtual shared storage that is shareable with virtual storage provided by the cloud system.
  • the existing state of the cloud system is analyzed and, based on the analysis, the VSA node may be deployed to an existing VSA node cluster in the cloud system or the VSA node may be used to create a new VSA node cluster in the cloud system.
  • FIG. 1 is a block diagram of an example computing environment 100 for providing a scalable cloud storage solution.
  • computing environment 100 may be a cloud system (or "cloud”).
  • the cloud system may be a public cloud, a private cloud, or a hybrid cloud.
  • cloud system may be termed as a "public cloud” if cloud computing services are rendered over a public network such as the internet.
  • a "private cloud” is a proprietary network that supplies services to a specific set of users.
  • a “hybrid cloud” on the other hand, combines private and public cloud services.
  • Computing environment 100 may offer, provide or deploy various types of cloud services for a user or customer. These could include Infrastructure as a Service (laaS), Platform as a Service (PaaS), Software as a Service (SaaS), and so forth.
  • laaS Infrastructure as a Service
  • PaaS Platform as a Service
  • SaaS Software as a Service
  • computing environment 100 may include nodes 102, 104, 106, 108, and 1 10, and a server 1 12.
  • a "node” may be a computing device (i.e. includes at least one processor), a storage device, a network device, or any combination thereof.
  • computing nodes 102, 104, 106, 108, and 1 10 may each include a storage unit 1 14, 1 16, 1 18, 120, and 122, respectively.
  • the number of nodes 102, 104, 106, 108 and 1 10, and server 1 12 shown in FIG. 1 is for the purpose of illustration only and their number may vary in other implementations. Further, nodes 102, 104, 106, 108, and 1 10 may each include more than one storage unit.
  • Nodes 102, 104, 106, 108, and 1 10 may each be a computing device such as a server, a desktop computer, a notebook computer, a tablet computer, a mobile phone, a personal digital assistant (PDA), and the like.
  • Nodes 102, 104, 106, 108, and 1 10 may each be a network device such a router, a switch, and the like.
  • Nodes 102, 104, 106, 108, and 1 10 may each be a storage system such as a Direct Attached Storage (DAS) device, a Network Attached Storage (NAS) device, a server, a tape storage device, or any other storage device.
  • DAS Direct Attached Storage
  • NAS Network Attached Storage
  • Computer network 124 may be a wireless or wired network.
  • Computer network 124 may include, for example, a Local Area Network (LAN), a Wireless Local Area Network (WAN), a Metropolitan Area Network (MAN), a Storage Area Network (SAN), a Campus Area Network (CAN), or the like.
  • LAN Local Area Network
  • WAN Wireless Local Area Network
  • MAN Metropolitan Area Network
  • SAN Storage Area Network
  • CAN Campus Area Network
  • computer network 124 may be a public network (for example, the Internet) or a private network (for example, an intranet).
  • Storage units 1 14, 1 16, 1 18, 120, and 122 may each include a non- transitory machine-readable storage medium that may store machine executable instructions, data file, metadata related to a data file, etc.
  • a non-transitory machine-readable storage medium may include a hard disk, a storage disc (for example, a CD-ROM, a DVD, etc.), a disk array, a storage tape, a solid state drive, a Serial Advanced Technology Attachment (SATA) disk drive, a Fibre Channel (FC) disk drive, a Serial Attached SCSI (SAS) disk drive, a magnetic tape drive, and the like.
  • SATA Serial Advanced Technology Attachment
  • FC Fibre Channel
  • SAS Serial Attached SCSI
  • Storage units 1 14, 1 16, 1 18, 120, and 122 may each be a direct-attached storage i.e. storage that is directly attached to its respective node (i.e. nodes 102, 104, 106, 108, and 1 10, respectively).
  • storage units 1 14, 1 16, 1 18, 120, and 122 may each be an external storage (for example, a storage array) that may communicate with its respective node (i.e. nodes 102, 104, 106, 108, and 1 10, respectively) via a communication interface.
  • Storage units 1 14, 1 16, 1 18, 120, and 122 may communicate with a node (for example, nodes 102, 104, 106, 108, and 1 10) via one or more protocols such as, but not limited to, Fibre Connection (FICON), Internet Small Computer System Interface (iSCSI), HyperSCSI, and ATA over Ethernet.
  • FICON Fibre Connection
  • iSCSI Internet Small Computer System Interface
  • HyperSCSI HyperSCSI
  • ATA over Ethernet ATA over Ethernet
  • nodes 102, 104, 106, 108, and 1 10 may each include one or more virtual machines (VMs), which may be created through a "hypervisor".
  • a hypervisor may be defined as a computer program, firmware or hardware that may create and run one or more virtual machines.
  • a computer system on which a hypervisor is running a virtual machine may be defined as a host machine.
  • nodes 102, 104, 106, 108, and 1 10 may each act as a host machine.
  • Each virtual machine may be called a guest machine.
  • a virtual machine (VM) is a software implementation of a machine that executes programs like a physical machine. Virtualization allows creation of multiple virtual machines (VM) on a host physical computing device.
  • a service provider can use virtualization to create virtual machines on host physical machines (for example, a server computer) and offer these virtual machines to its customers.
  • the customers can use virtual machines for a variety tasks, for example, to run multiple operating systems at the same time, to test a new application on multiple platforms, etc.
  • the hypervisor presents the guest operating systems with a virtual operating platform and manages the execution of the guest operating systems. Multiple instances of a variety of operating systems may share the virtualized hardware resources of one or more host machines (for example, 102, 104, 106, 108, and 1 10).
  • nodes 102, 104, 106, 108, and 1 10 may each host a virtual storage application (VSA).
  • VSA virtual storage application
  • a virtual storage application may virtualize storage resources of a node (for example, a server).
  • a node comprising a virtual storage application may be called as a "VSA node".
  • a virtual storage application may create a virtual shared storage using direct- attached storage in a node hosting a hypervisor.
  • a virtual storage application(s) may create a virtual shared storage using direct-attached storage of one or more of the plurality of nodes (for example, 102, 104, 106, 108, and 1 10) to create a virtual array within and across the plurality of nodes.
  • the virtual shared storage may be shared across the plurality of nodes in a cloud system.
  • the virtual storage application may use a host network (for example, an Ethernet network), which may host the plurality of nodes in a cloud environment, as a storage backplane and as a mechanism to present storage via a suitable protocol (for example, iSCSI) to the plurality of nodes and virtual machines hosted on such nodes.
  • a virtual storage application may virtualize an external storage unit (for example, an external disk array) and make the resultant virtual storage available to one or more nodes in a cloud system.
  • a plurality of VSA nodes wherein each of a plurality of nodes may host a virtual storage application, may be grouped together to form a "VSA node cluster".
  • the plurality of nodes constituting a VSA node cluster may be homogenous or heterogeneous.
  • a VSA node cluster may provide a shared virtual storage across the plurality of constituent VSA nodes.
  • Each VSA node cluster may support a defined amount of storage space and number of volumes. Thus, in an instance one or more VSA node clusters may be grouped together to form a "VSA node cluster pool".
  • server 1 12 may include a determination module 126, an installation module 128, an analysis module 130, and a deployer module 132.
  • the term "module” may refer to a software component (machine executable instructions), a hardware component or a combination thereof.
  • a module may include, by way of example, components, such as software components, processes, tasks, co-routines, functions, attributes, procedures, drivers, firmware, data, databases, data structures, Application Specific Integrated Circuits (ASIC) and other computing devices.
  • the module may reside on a volatile or non-volatile storage medium and configured to interact with a processor of a computing device.
  • determination module 126 The functionalities performed by determination module 126, an installation module 128, an analysis module 130, and a deployer module 132 are described in reference to FIG. 2 below.
  • FIG. 2 is a block diagram of an example computing system 200 for providing a scalable cloud storage solution.
  • computing system 200 may be analogous to server 1 12 of FIG. 1 , in which like reference numerals correspond to the same or similar, though perhaps not identical, components.
  • like reference numerals correspond to the same or similar, though perhaps not identical, components.
  • components or reference numerals of FIG. 2 having a same or similarly described function in FIG. 1 are not being described in connection with FIG. 2. Said components or reference numerals may be considered alike.
  • Computing system 200 may be a server, a desktop computer, a notebook computer, a tablet computer, a mobile phone, a personal digital assistant (PDA), and the like.
  • PDA personal digital assistant
  • computing system 200 may include a determination module 126, an installation module 128, an analysis module 130, and a deployer module 132.
  • Determination module 126 may determine compute capabilities of a compute node in a cloud system (for example, 100).
  • determination module 126 may determine compute capabilities of a new compute node (for example, 102) that may be added to a cloud system (for example, 100).
  • the compute capabilities may include one or more of storage capacity, processing capacity, memory capacity, and networking capabilities of a compute node.
  • Installation module 128 may install a virtual storage application on a compute node to generate a VSA node.
  • installation module 128 may install a virtual storage application on a new compute node (for example, 102) that may be added to a cloud system (for example, 100) to generate a "new" VSA node.
  • the installation of the virtual storage application may be based on compute capabilities of the new compute node, which may be determined by determination module 126. Based on the compute capabilities of a new compute node, installation module 128 may determine a suitable configuration for the virtual storage application prior to installation.
  • the virtual storage application may virtualize direct-attached storage (for example, 1 14) in the VSA node into a virtual shared storage that may be shareable with virtual storage provided by the cloud system.
  • direct-attached storage for example, 1 14
  • the virtual storage application may create a virtual shared storage, using direct- attached storage of the new compute node, to create a virtual array within and across the plurality of nodes in the cloud system.
  • the virtual shared storage may be shared across the plurality of nodes in the cloud system.
  • Analysis module 130 may analyze existing state of a cloud system (for example, 100).
  • analysis module 130 may analyze current state of a cloud system (for example, 100) upon addition of a "new" VSA node thereto.
  • analyzing existing state of a cloud system may include determining compute capabilities of the cloud system.
  • the compute capabilities may includes one or more of storage capacity, processing capacity, memory capacity, and networking capabilities of the cloud system.
  • determining compute capabilities of the cloud system may include determining one or more of number of volumes being served from each of the VSA node clusters in the cloud system, maximum volume serving capacity of each of the VSA node clusters in the cloud system, volume serving capacity available with each of the VSA node clusters in the cloud system, level of performance expected from the requested storage volume, and average size of volumes being served by each of the VSA node clusters in the cloud system.
  • analyzing existing state of the cloud system may include determining number of VSA node clusters present in the cloud system. In a yet another example, analyzing existing state of the cloud system may include determining present or future storage requirement of the cloud system.
  • deployer module 132 may, in an instance, deploy the new VSA node to an existing VSA node cluster in the cloud system.
  • the virtual storage provided by the new VSA node may be shared with one or more VSA nodes present in the VSA node cluster.
  • the virtual storage provided by the new VSA node may be shared across all VSA nodes in the VSA node cluster. The increased shared virtual storage may be made available to virtual machines and other applications that are hosted on VSA nodes of the VSA node cluster.
  • deployer module 132 may use the VSA node to create a new VSA node cluster in the cloud system.
  • deployer module 132 may setup a new VSA node cluster that includes the new VSA node.
  • the storage capacity of the cloud system gets increased with the creation of a new VSA node cluster comprising the new VSA node.
  • the new VSA node is included in a VSA node cluster pool, the increased shared virtual storage may be made available to virtual machines and other applications that may be hosted on VSA nodes of the constituent VSA node clusters in the VSA node cluster pool.
  • FIG. 3 is a flowchart of an example method 300 of providing a scalable cloud storage solution.
  • the method 300 may be executed on a computing device such as server 1 12 of FIG. 1 and computing system 200 of FIG. 2. However, other computing devices may be used as well.
  • compute capabilities of the new compute node may be determined. In an example, determining compute capabilities of the new compute node may include determining one of storage capacity, processing capacity, memory capacity, and networking capabilities of the new compute node.
  • a virtual storage application may be installed on the new compute node to generate a VSA node.
  • the virtual storage application may virtualize direct-attached storage in the VSA node into a virtual shared storage that is shareable with virtual storage provided by the cloud system.
  • existing state of the cloud system may be analyzed.
  • determining existing state of the cloud system may include determining compute capabilities of the cloud system.
  • the compute capabilities of the cloud system may include one of storage capacity, processing capacity, memory capacity, and networking capabilities of the cloud system.
  • the VSA node may be deployed to an existing VSA node cluster in the cloud system. In another instance, the VSA node may be used to create a new VSA node cluster in the cloud system.
  • the virtual storage provided by the VSA node may be shared with virtual storage provided by the cloud system.
  • a user request may be received to provision a storage volume from the virtual storage provided by the cloud system.
  • an optimal VSA node cluster may determined, among VSA node clusters in the cloud system, to service the user request.
  • determining an optimal VSA node cluster may include determining one of number of volumes being served from each of the VSA node clusters, maximum volume serving capacity of each of the VSA node clusters, volume serving capacity available with each of the VSA node clusters, level of performance expected from the requested storage volume, and average size of volumes being served by each of the VSA node clusters. Further to determination of an optimal VSA node, a storage volume may be provisioned from the optimal VSA node cluster to the user.
  • FIG. 4 is a block diagram of an example system 400 for providing a scalable cloud storage solution.
  • System 400 includes a processor 402 and a machine-readable storage medium 404 communicatively coupled through a system bus.
  • system 400 may be analogous to server 1 12 of FIG. 1 and computing system 200 of FIG. 2.
  • Processor 402 may be any type of Central Processing Unit (CPU), microprocessor, or processing logic that interprets and executes machine-readable instructions stored in machine- readable storage medium 404.
  • Machine-readable storage medium 404 may be a random access memory (RAM) or another type of dynamic storage device that may store information and machine-readable instructions that may be executed by processor 402.
  • RAM random access memory
  • machine-readable storage medium 404 may be Synchronous DRAM (SDRAM), Double Data Rate (DDR), Rambus DRAM (RDRAM), Rambus RAM, etc. or storage memory media such as a floppy disk, a hard disk, a CD-ROM, a DVD, a pen drive, and the like.
  • machine-readable storage medium may be a non-transitory machine-readable medium.
  • Machine-readable storage medium 404 may store instructions 406, 408, 410, and 412.
  • instructions 406 may be executed by processor 402 to determine, upon addition of a new compute node to a cloud system, compute capabilities of the new compute node.
  • Instructions 408 may be executed by processor 402 to install, based on compute capabilities of the new compute node, a virtual storage application on the new compute node to generate a VSA node, wherein the virtual storage application virtualizes direct-attached storage in the VSA node into a virtual shared storage that is shareable with virtual storage provided by another VSA node in the cloud system.
  • Instructions 410 may be executed by processor 402 to analyze existing state of the cloud system.
  • Instructions 412 may be executed by processor 402 to deploy, based on the analysis, the VSA node to an existing VSA node cluster in the cloud system or using the VSA node to create a new VSA node cluster in the cloud system. 34]
  • FIG. 3 is shown as executing serially, however it is to be understood and appreciated that the present and other examples are not limited by the illustrated order.
  • the example systems of FIGS. 1 , 2 and 4, and method of FIG. 3 may be implemented in the form of a computer program product including computer-executable instructions, such as program code, which may be run on any suitable computing device in conjunction with a suitable operating system (for example, Microsoft Windows, Linux, UNIX, and the like).
  • a suitable operating system for example, Microsoft Windows, Linux, UNIX, and the like.
  • Embodiments within the scope of the present solution may also include program products comprising non-transitory computer-readable media for carrying or having computer-executable instructions or data structures stored thereon.
  • Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer.
  • Such computer-readable media can comprise RAM, ROM, EPROM, EEPROM, CD-ROM, magnetic disk storage or other storage devices, or any other medium which can be used to carry or store desired program code in the form of computer-executable instructions and which can be accessed by a general purpose or special purpose computer.
  • the computer readable instructions can also be accessed from memory and executed by a processor.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Some examples describe a scalable cloud storage solution. In an example, upon addition of a new compute node to a cloud system, compute capabilities of the new compute node may be determined. Based on compute capabilities of the new compute node, a virtual storage application may be installed on the new compute node to generate a VSA node, wherein the virtual storage application virtualizes direct-attached storage in the VSA node into a virtual shared storage that is shareable with virtual storage provided by the cloud system. The existing state of the cloud system may be analyzed. Based on the analysis, the VSA node may be deployed to an existing VSA node cluster in the cloud system or the VSA node may be used to create a new VSA node cluster in the cloud system.

Description

SCALABALE CLOUD STORAGE SOLUTION
Background
[001] Data storage requirement of organizations has increased over the years.
Enterprises, these days, need a storage environment that is easy to learn, is intuitive to manage and change, scales to meet business demands without creating IT bottlenecks or application downtime, and offers application data high availability within reasonable costs. A cloud based storage solution may meet such requirements.
Brief Description of the Drawings
[002] For a better understanding of the solution, embodiments will now be described, purely by way of example, with reference to the accompanying drawings, in which:
[003] FIG. 1 is a block diagram of an example computing environment for providing a scalable storage solution;
[004] FIG. 2 is a block diagram of an example computing system for providing a scalable storage solution;
[005] FIG. 3 is a flowchart of an example method of for providing a scalable storage solution; and
[006] FIG. 4 is a block diagram of an example system for providing a scalable storage solution. Detailed Description
[007] The demand for large-scale storage systems has increased enormously over the years. Enterprises are demanding storage systems that can store billions of file objects (with file sizes ranging from a few kilobytes to petabytes) with minimum of costs and complexity. Earlier storage systems, which are still used generally by small organizations, were local storage systems that were co-hosted with an application(s) on a server. In case additional storage capacity was needed, the local storage system was typically scaled-up by adding one or more disks to the existing system. It was soon realized that although this solved the requirement of additional storage initially, it eventually resulted in a lowering the performance of a storage system since it placed an additional load on the existing processing and bandwidth resources that were required to access data stored on the additional storage space.
[008] A cloud computing (or "cloud") based storage solution may overcome constraints of a scale-up storage system. Generally speaking, cloud computing involves delivery of computing as a service rather than a product, whereby shared resources (software, storage resources, etc.) are provided to computing devices as a service. The resources are shared over a network, which is typically the internet. One of the key reasons behind the success of cloud computing is a technology called virtualization. Virtualization allows creation of a virtual version of a resource, such as an operating system, a hardware platform, storage resource etc. which could be shared, for instance, among different clients. Multiple virtual machines (VM) may be created on a host device or server.
[009] However, current cloud storage solutions fail to take advantages of native direct attached storage of compute nodes that are present in a cloud. Further, they are typically hosted on a homogenous environment, which is contrary to the inherent nature of a heterogeneous cloud data center. Also, they are unable to scale-up with the growth of a cloud compute infrastructure.
[0010] To address these issues, the present disclosure describes a scalable cloud storage solution. In an example, upon addition of a new compute node to a cloud system, the compute capabilities of the new compute node may be determined. Based on compute capabilities of the new compute node, a virtual storage application may be installed on the new compute node to generate a VSA node. The virtual storage application virtualizes direct- attached storage in the VSA node into a virtual shared storage that is shareable with virtual storage provided by the cloud system. The existing state of the cloud system is analyzed and, based on the analysis, the VSA node may be deployed to an existing VSA node cluster in the cloud system or the VSA node may be used to create a new VSA node cluster in the cloud system.
[0011] FIG. 1 is a block diagram of an example computing environment 100 for providing a scalable cloud storage solution. In an example, computing environment 100 may be a cloud system (or "cloud"). The cloud system may be a public cloud, a private cloud, or a hybrid cloud. To explain briefly, cloud system may be termed as a "public cloud" if cloud computing services are rendered over a public network such as the internet. On the other hand, a "private cloud" is a proprietary network that supplies services to a specific set of users. A "hybrid cloud", on the other hand, combines private and public cloud services. Computing environment 100 may offer, provide or deploy various types of cloud services for a user or customer. These could include Infrastructure as a Service (laaS), Platform as a Service (PaaS), Software as a Service (SaaS), and so forth.
[0012] In an example, computing environment 100 may include nodes 102, 104, 106, 108, and 1 10, and a server 1 12. As used herein, a "node" may be a computing device (i.e. includes at least one processor), a storage device, a network device, or any combination thereof. In the example of FIG. 1 , computing nodes 102, 104, 106, 108, and 1 10 may each include a storage unit 1 14, 1 16, 1 18, 120, and 122, respectively. The number of nodes 102, 104, 106, 108 and 1 10, and server 1 12 shown in FIG. 1 is for the purpose of illustration only and their number may vary in other implementations. Further, nodes 102, 104, 106, 108, and 1 10 may each include more than one storage unit.
[0013] Nodes 102, 104, 106, 108, and 1 10 may each be a computing device such as a server, a desktop computer, a notebook computer, a tablet computer, a mobile phone, a personal digital assistant (PDA), and the like. Nodes 102, 104, 106, 108, and 1 10 may each be a network device such a router, a switch, and the like. Nodes 102, 104, 106, 108, and 1 10 may each be a storage system such as a Direct Attached Storage (DAS) device, a Network Attached Storage (NAS) device, a server, a tape storage device, or any other storage device.
[0014] Nodes 102, 104, 106, 108, and 1 10, may communicate with each other and server 1 12 via a computer network 124. Computer network 124 may be a wireless or wired network. Computer network 124 may include, for example, a Local Area Network (LAN), a Wireless Local Area Network (WAN), a Metropolitan Area Network (MAN), a Storage Area Network (SAN), a Campus Area Network (CAN), or the like. Further, computer network 124 may be a public network (for example, the Internet) or a private network (for example, an intranet).
[0015] Storage units 1 14, 1 16, 1 18, 120, and 122 may each include a non- transitory machine-readable storage medium that may store machine executable instructions, data file, metadata related to a data file, etc. Some non-limiting examples of a non-transitory machine-readable storage medium may include a hard disk, a storage disc (for example, a CD-ROM, a DVD, etc.), a disk array, a storage tape, a solid state drive, a Serial Advanced Technology Attachment (SATA) disk drive, a Fibre Channel (FC) disk drive, a Serial Attached SCSI (SAS) disk drive, a magnetic tape drive, and the like.
[0016] Storage units 1 14, 1 16, 1 18, 120, and 122 may each be a direct-attached storage i.e. storage that is directly attached to its respective node (i.e. nodes 102, 104, 106, 108, and 1 10, respectively). In an example, storage units 1 14, 1 16, 1 18, 120, and 122 may each be an external storage (for example, a storage array) that may communicate with its respective node (i.e. nodes 102, 104, 106, 108, and 1 10, respectively) via a communication interface. Storage units 1 14, 1 16, 1 18, 120, and 122 may communicate with a node (for example, nodes 102, 104, 106, 108, and 1 10) via one or more protocols such as, but not limited to, Fibre Connection (FICON), Internet Small Computer System Interface (iSCSI), HyperSCSI, and ATA over Ethernet.
[0017] In an example, nodes 102, 104, 106, 108, and 1 10 may each include one or more virtual machines (VMs), which may be created through a "hypervisor". A hypervisor may be defined as a computer program, firmware or hardware that may create and run one or more virtual machines. A computer system on which a hypervisor is running a virtual machine may be defined as a host machine. For instance, nodes 102, 104, 106, 108, and 1 10 may each act as a host machine. Each virtual machine may be called a guest machine. A virtual machine (VM) is a software implementation of a machine that executes programs like a physical machine. Virtualization allows creation of multiple virtual machines (VM) on a host physical computing device. In a cloud computing architecture, a service provider can use virtualization to create virtual machines on host physical machines (for example, a server computer) and offer these virtual machines to its customers. The customers can use virtual machines for a variety tasks, for example, to run multiple operating systems at the same time, to test a new application on multiple platforms, etc. The hypervisor presents the guest operating systems with a virtual operating platform and manages the execution of the guest operating systems. Multiple instances of a variety of operating systems may share the virtualized hardware resources of one or more host machines (for example, 102, 104, 106, 108, and 1 10).
[0018] In an example, nodes 102, 104, 106, 108, and 1 10 may each host a virtual storage application (VSA). A virtual storage application may virtualize storage resources of a node (for example, a server). A node comprising a virtual storage application may be called as a "VSA node". In an example, a virtual storage application may create a virtual shared storage using direct- attached storage in a node hosting a hypervisor. In the event there is a plurality of nodes, for example in a cloud environment, a virtual storage application(s) may create a virtual shared storage using direct-attached storage of one or more of the plurality of nodes (for example, 102, 104, 106, 108, and 1 10) to create a virtual array within and across the plurality of nodes. The virtual shared storage may be shared across the plurality of nodes in a cloud system. The virtual storage application may use a host network (for example, an Ethernet network), which may host the plurality of nodes in a cloud environment, as a storage backplane and as a mechanism to present storage via a suitable protocol (for example, iSCSI) to the plurality of nodes and virtual machines hosted on such nodes. In an example, a virtual storage application may virtualize an external storage unit (for example, an external disk array) and make the resultant virtual storage available to one or more nodes in a cloud system.
[0019] In an example, a plurality of VSA nodes, wherein each of a plurality of nodes may host a virtual storage application, may be grouped together to form a "VSA node cluster". The plurality of nodes constituting a VSA node cluster may be homogenous or heterogeneous. A VSA node cluster may provide a shared virtual storage across the plurality of constituent VSA nodes. There may be a plurality of VSA node clusters in a cloud system. Each VSA node cluster may support a defined amount of storage space and number of volumes. Thus, in an instance one or more VSA node clusters may be grouped together to form a "VSA node cluster pool". [0020] In an example, server 1 12 may include a determination module 126, an installation module 128, an analysis module 130, and a deployer module 132. The term "module" may refer to a software component (machine executable instructions), a hardware component or a combination thereof. A module may include, by way of example, components, such as software components, processes, tasks, co-routines, functions, attributes, procedures, drivers, firmware, data, databases, data structures, Application Specific Integrated Circuits (ASIC) and other computing devices. The module may reside on a volatile or non-volatile storage medium and configured to interact with a processor of a computing device.
[0021] The functionalities performed by determination module 126, an installation module 128, an analysis module 130, and a deployer module 132 are described in reference to FIG. 2 below.
[0022] FIG. 2 is a block diagram of an example computing system 200 for providing a scalable cloud storage solution. In an example, computing system 200 may be analogous to server 1 12 of FIG. 1 , in which like reference numerals correspond to the same or similar, though perhaps not identical, components. For the sake of brevity, components or reference numerals of FIG. 2 having a same or similarly described function in FIG. 1 are not being described in connection with FIG. 2. Said components or reference numerals may be considered alike.
[0023] Computing system 200 may be a server, a desktop computer, a notebook computer, a tablet computer, a mobile phone, a personal digital assistant (PDA), and the like.
[0024] In an example, computing system 200 may include a determination module 126, an installation module 128, an analysis module 130, and a deployer module 132. [0025] Determination module 126 may determine compute capabilities of a compute node in a cloud system (for example, 100). In an example, determination module 126 may determine compute capabilities of a new compute node (for example, 102) that may be added to a cloud system (for example, 100). The compute capabilities may include one or more of storage capacity, processing capacity, memory capacity, and networking capabilities of a compute node.
[0026] Installation module 128 may install a virtual storage application on a compute node to generate a VSA node. In an example, installation module 128 may install a virtual storage application on a new compute node (for example, 102) that may be added to a cloud system (for example, 100) to generate a "new" VSA node. In an instance, the installation of the virtual storage application may be based on compute capabilities of the new compute node, which may be determined by determination module 126. Based on the compute capabilities of a new compute node, installation module 128 may determine a suitable configuration for the virtual storage application prior to installation. Upon installation, in an instance, the virtual storage application may virtualize direct-attached storage (for example, 1 14) in the VSA node into a virtual shared storage that may be shareable with virtual storage provided by the cloud system. In other words, in the event there is a plurality of nodes, for example in a cloud environment, the virtual storage application may create a virtual shared storage, using direct- attached storage of the new compute node, to create a virtual array within and across the plurality of nodes in the cloud system. The virtual shared storage may be shared across the plurality of nodes in the cloud system.
[0027] Analysis module 130 may analyze existing state of a cloud system (for example, 100). In an example, analysis module 130 may analyze current state of a cloud system (for example, 100) upon addition of a "new" VSA node thereto. In an instance, analyzing existing state of a cloud system may include determining compute capabilities of the cloud system. The compute capabilities may includes one or more of storage capacity, processing capacity, memory capacity, and networking capabilities of the cloud system. In example, determining compute capabilities of the cloud system may include determining one or more of number of volumes being served from each of the VSA node clusters in the cloud system, maximum volume serving capacity of each of the VSA node clusters in the cloud system, volume serving capacity available with each of the VSA node clusters in the cloud system, level of performance expected from the requested storage volume, and average size of volumes being served by each of the VSA node clusters in the cloud system.
[0028] In another example, analyzing existing state of the cloud system may include determining number of VSA node clusters present in the cloud system. In a yet another example, analyzing existing state of the cloud system may include determining present or future storage requirement of the cloud system.
[0029] Further to the analysis carried out by analyzer module, deployer module 132 may, in an instance, deploy the new VSA node to an existing VSA node cluster in the cloud system. In such case, the virtual storage provided by the new VSA node may be shared with one or more VSA nodes present in the VSA node cluster. In an instance, the virtual storage provided by the new VSA node may be shared across all VSA nodes in the VSA node cluster. The increased shared virtual storage may be made available to virtual machines and other applications that are hosted on VSA nodes of the VSA node cluster.
[0030] In another example, deployer module 132 may use the VSA node to create a new VSA node cluster in the cloud system. In other words, based on the analysis performed by analyzer module, deployer module 132 may setup a new VSA node cluster that includes the new VSA node. In this case also, the storage capacity of the cloud system gets increased with the creation of a new VSA node cluster comprising the new VSA node. In an instance, if the new VSA node is included in a VSA node cluster pool, the increased shared virtual storage may be made available to virtual machines and other applications that may be hosted on VSA nodes of the constituent VSA node clusters in the VSA node cluster pool. 31] FIG. 3 is a flowchart of an example method 300 of providing a scalable cloud storage solution. The method 300, which is described below, may be executed on a computing device such as server 1 12 of FIG. 1 and computing system 200 of FIG. 2. However, other computing devices may be used as well. At block 302, upon addition of a new compute node to a cloud system, compute capabilities of the new compute node may be determined. In an example, determining compute capabilities of the new compute node may include determining one of storage capacity, processing capacity, memory capacity, and networking capabilities of the new compute node. At block 304, based on compute capabilities of the new compute node, a virtual storage application may be installed on the new compute node to generate a VSA node. In an example, the virtual storage application may virtualize direct-attached storage in the VSA node into a virtual shared storage that is shareable with virtual storage provided by the cloud system. At block 306, existing state of the cloud system may be analyzed. In an example, determining existing state of the cloud system may include determining compute capabilities of the cloud system. The compute capabilities of the cloud system may include one of storage capacity, processing capacity, memory capacity, and networking capabilities of the cloud system. At block 308, based on the analysis, the VSA node may be deployed to an existing VSA node cluster in the cloud system. In another instance, the VSA node may be used to create a new VSA node cluster in the cloud system. In either of the aforementioned scenarios, further to deployment of the VSA node, the virtual storage provided by the VSA node may be shared with virtual storage provided by the cloud system. [0032] In an example, further to deployment of the VSA node, a user request may be received to provision a storage volume from the virtual storage provided by the cloud system. In such case, an optimal VSA node cluster may determined, among VSA node clusters in the cloud system, to service the user request. In an example, determining an optimal VSA node cluster may include determining one of number of volumes being served from each of the VSA node clusters, maximum volume serving capacity of each of the VSA node clusters, volume serving capacity available with each of the VSA node clusters, level of performance expected from the requested storage volume, and average size of volumes being served by each of the VSA node clusters. Further to determination of an optimal VSA node, a storage volume may be provisioned from the optimal VSA node cluster to the user.
[0033] FIG. 4 is a block diagram of an example system 400 for providing a scalable cloud storage solution. System 400 includes a processor 402 and a machine-readable storage medium 404 communicatively coupled through a system bus. In an example, system 400 may be analogous to server 1 12 of FIG. 1 and computing system 200 of FIG. 2. Processor 402 may be any type of Central Processing Unit (CPU), microprocessor, or processing logic that interprets and executes machine-readable instructions stored in machine- readable storage medium 404. Machine-readable storage medium 404 may be a random access memory (RAM) or another type of dynamic storage device that may store information and machine-readable instructions that may be executed by processor 402. For example, machine-readable storage medium 404 may be Synchronous DRAM (SDRAM), Double Data Rate (DDR), Rambus DRAM (RDRAM), Rambus RAM, etc. or storage memory media such as a floppy disk, a hard disk, a CD-ROM, a DVD, a pen drive, and the like. In an example, machine-readable storage medium may be a non-transitory machine-readable medium. Machine-readable storage medium 404 may store instructions 406, 408, 410, and 412. In an example, instructions 406 may be executed by processor 402 to determine, upon addition of a new compute node to a cloud system, compute capabilities of the new compute node. Instructions 408 may be executed by processor 402 to install, based on compute capabilities of the new compute node, a virtual storage application on the new compute node to generate a VSA node, wherein the virtual storage application virtualizes direct-attached storage in the VSA node into a virtual shared storage that is shareable with virtual storage provided by another VSA node in the cloud system. Instructions 410 may be executed by processor 402 to analyze existing state of the cloud system. Instructions 412 may be executed by processor 402 to deploy, based on the analysis, the VSA node to an existing VSA node cluster in the cloud system or using the VSA node to create a new VSA node cluster in the cloud system. 34] For the purpose of simplicity of explanation, the example method of FIG. 3 is shown as executing serially, however it is to be understood and appreciated that the present and other examples are not limited by the illustrated order. The example systems of FIGS. 1 , 2 and 4, and method of FIG. 3 may be implemented in the form of a computer program product including computer-executable instructions, such as program code, which may be run on any suitable computing device in conjunction with a suitable operating system (for example, Microsoft Windows, Linux, UNIX, and the like). Embodiments within the scope of the present solution may also include program products comprising non-transitory computer-readable media for carrying or having computer-executable instructions or data structures stored thereon. Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer. By way of example, such computer-readable media can comprise RAM, ROM, EPROM, EEPROM, CD-ROM, magnetic disk storage or other storage devices, or any other medium which can be used to carry or store desired program code in the form of computer-executable instructions and which can be accessed by a general purpose or special purpose computer. The computer readable instructions can also be accessed from memory and executed by a processor. 35] It should be noted that the above-described examples of the present solution is for the purpose of illustration only. Although the solution has been described in conjunction with a specific embodiment thereof, numerous modifications may be possible without materially departing from the teachings and advantages of the subject matter described herein. Other substitutions, modifications and changes may be made without departing from the spirit of the present solution.

Claims

Claims:
1 . A method of providing a scalable cloud storage solution, comprising:
determining, upon addition of a new compute node to a cloud system, compute capabilities of the new compute node;
based on compute capabilities of the new compute node, installing a virtual storage application on the new compute node to generate a VSA node, wherein the virtual storage application virtualizes direct-attached storage in the VSA node into a virtual shared storage that is shareable with virtual storage provided by the cloud system;
analyzing existing state of the cloud system; and
based on the analysis, deploying the VSA node to an existing VSA node cluster in the cloud system or using the VSA node to create a new VSA node cluster in the cloud system.
2. The method of claim 1 , wherein the analyzing comprises determining compute capabilities of the cloud system.
3. The method of claim 2, wherein the compute capabilities of the cloud system includes one of storage capacity, processing capacity, memory capacity, and networking capabilities of the cloud system.
4. The method of claim 1 , further comprising:
receiving a user request to provision a storage volume from the virtual storage provided by the cloud system;
determining an optimal VSA node cluster, among VSA node clusters in the cloud system, to service the user request; and
provisioning the storage volume from the optimal VSA node cluster to the user.
5. The method of claim 4, wherein the determining includes determining one of number of volumes being served from each of the VSA node clusters, maximum volume serving capacity of each of the VSA node clusters, volume serving capacity available with each of the VSA node clusters, level of performance expected from the requested storage volume, and average size of volumes being served by each of the VSA node clusters.
6. A system for providing a scalable cloud storage solution, comprising:
a determination module to determine, upon addition of a new compute node to a cloud system, compute capabilities of the new compute node;
an installation module to install, based on compute capabilities of the new compute node, a virtual storage application on the new compute node to generate a VSA node, wherein the virtual storage application virtualizes direct- attached storage in the VSA node into a virtual shared storage that is shareable across virtual storage provided by a plurality of VSA nodes in the cloud system; an analysis module to analyze existing state of the cloud system; and a deployer module to deploy, based on the analysis, the VSA node to an existing VSA node cluster in the cloud system or using the VSA node to create a new VSA node cluster in the cloud system.
7. The system of claim 6, wherein to analyze existing state of the cloud system includes determining number of VSA node clusters present in the cloud system.
8. The system of claim 6, wherein the direct-attached storage includes an internal storage or an external storage.
9. The system of claim 6, wherein the compute node includes a virtual computer node.
10. The system of claim 6, wherein the compute capabilities of the new compute node includes one of storage capacity, processing capacity, memory capacity, and networking capabilities of the new compute node.
1 1 . A non-transitory machine-readable storage medium comprising instructions to provide a scalable cloud storage solution, the instructions executable by a processor to:
determine, upon addition of a new compute node to a cloud system, compute capabilities of the new compute node;
based on compute capabilities of the new compute node, install a virtual storage application on the new compute node to generate a VSA node, wherein the virtual storage application virtualizes direct-attached storage in the VSA node into a virtual shared storage that is shareable with virtual storage provided by another VSA node in the cloud system;
analyze existing state of the cloud system; and
based on the analysis, deploy the VSA node to an existing VSA node cluster in the cloud system or using the VSA node to create a new VSA node cluster in the cloud system.
12. The storage medium of claim 1 1 , wherein the instructions to analyze include instructions to determine storage requirement of the cloud system.
13. The storage medium of claim 1 1 , wherein the cloud system is one of a private cloud system, a public cloud system, or a hybrid cloud system.
14. The storage medium of claim 1 1 , further comprising instructions to determine, further to the deployment or creation, compute capabilities of VSA node clusters present in the cloud system.
15. The storage medium of claim 14, further comprising instructions to publish, further to the determination, the compute capabilities of VSA node clusters present in the cloud system.
PCT/US2015/032933 2015-03-30 2015-05-28 Scalabale cloud storage solution WO2016160041A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN1662/CHE/2015 2015-03-30
IN1662CH2015 2015-03-30

Publications (2)

Publication Number Publication Date
WO2016160041A2 true WO2016160041A2 (en) 2016-10-06
WO2016160041A3 WO2016160041A3 (en) 2017-05-04

Family

ID=57007048

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2015/032933 WO2016160041A2 (en) 2015-03-30 2015-05-28 Scalabale cloud storage solution

Country Status (1)

Country Link
WO (1) WO2016160041A2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112306373A (en) * 2019-07-31 2021-02-02 深信服科技股份有限公司 Cluster capacity expansion method and system, electronic equipment and storage medium
CN113949712A (en) * 2021-10-15 2022-01-18 科大讯飞股份有限公司 Cloud host cluster high-availability processing method and system, electronic equipment and storage medium

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012042509A1 (en) * 2010-10-01 2012-04-05 Peter Chacko A distributed virtual storage cloud architecture and a method thereof
US20120317280A1 (en) * 2011-06-08 2012-12-13 Thomas Love System for scaling a system of related windows-based servers of all types operating in a cloud system, including file management and presentation, in a completely secured and encrypted system
US8793379B2 (en) * 2011-11-01 2014-07-29 Lsi Corporation System or method to automatically provision a storage volume by having an app-aware based appliance in a storage cloud environment
EP3133775B1 (en) * 2011-12-29 2020-05-06 Huawei Technologies Co., Ltd. Cloud computing system and method for managing storage resources therein
KR101431333B1 (en) * 2012-10-30 2014-08-20 건국대학교 산학협력단 System and method of data federation module for sociality storage service on cloud computing

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112306373A (en) * 2019-07-31 2021-02-02 深信服科技股份有限公司 Cluster capacity expansion method and system, electronic equipment and storage medium
CN112306373B (en) * 2019-07-31 2024-05-31 深信服科技股份有限公司 Cluster capacity expansion method and system, electronic equipment and storage medium
CN113949712A (en) * 2021-10-15 2022-01-18 科大讯飞股份有限公司 Cloud host cluster high-availability processing method and system, electronic equipment and storage medium
CN113949712B (en) * 2021-10-15 2024-04-30 科大讯飞股份有限公司 Cloud host cluster high-availability processing method, system, electronic equipment and storage medium

Also Published As

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

Similar Documents

Publication Publication Date Title
US11044347B2 (en) Command communication via MPIO driver agnostic of underlying communication protocols
US10891162B2 (en) Methods and apparatus to improve external resource allocation for hyper-converged infrastructures based on costs analysis
US10237201B2 (en) Quality of service (QoS) based device for allocating compute workloads to hosts providing storage and network services in software-based data center
US10656983B2 (en) Methods and apparatus to generate a shadow setup based on a cloud environment and upgrade the shadow setup to identify upgrade-related errors
US9710304B2 (en) Methods and apparatus to select virtualization environments for migration
US10678581B2 (en) Methods and apparatus to select virtualization environments during deployment
US10628196B2 (en) Distributed iSCSI target for distributed hyper-converged storage
US8904159B2 (en) Methods and systems for enabling control to a hypervisor in a cloud computing environment
US20150205542A1 (en) Virtual machine migration in shared storage environment
US8495323B1 (en) Method and system of providing exclusive and secure access to virtual storage objects in a virtual machine cluster
US20180139100A1 (en) Storage-aware dynamic placement of virtual machines
US20180157444A1 (en) Virtual storage controller
US11461120B2 (en) Methods and apparatus for rack nesting in virtualized server systems
US20180210665A1 (en) Supporting mpio for logical volume backed virtual disks
US20200396306A1 (en) Apparatuses and methods for a distributed message service in a virtualized computing system
US10810030B2 (en) Identifying entities in a virtualization environment by converting heterogeneous string identifiers for interaction with a single API
US20180136958A1 (en) Storage-aware dynamic placement of virtual machines
US20180032361A1 (en) Virtual Machines Deployment in a Cloud
WO2016160041A2 (en) Scalabale cloud storage solution
US10831554B2 (en) Cohesive clustering in virtualized computing environment
US11157309B2 (en) Operating cluster computer system with coupling facility
US10747567B2 (en) Cluster check services for computing clusters
WO2016141309A1 (en) Methods and apparatus to select virtualization environments during deployment
US11216297B2 (en) Associating virtual network interfaces with a virtual machine during provisioning in a cloud system
US20180011661A1 (en) Data locality in a hyperconverged computing system

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

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15888041

Country of ref document: EP

Kind code of ref document: A2