Method and apparatus for cluster management
A network cost-aware scheduling method using ENCG data improves network quality and reduces spine switch load by strategically placing CNF containers, addressing inefficiencies in existing cluster management systems.
Patent Information
- Application Number
- PCT/CN2023/115765
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-08-30
- Publication Date
- 2025-11-20
AI Technical Summary
Current network architectures, such as Spine-and-Leaf networks, lack efficient methods for cluster management that optimize network cost awareness in scheduling containerized virtualized network functions (CNFs), leading to increased latency and load on spine switches and suboptimal network quality.
Implement a network cost-aware scheduling method that utilizes equal network cost group (ENCG) data to generate and update network cost matrices, allowing for the strategic placement of CNF containers to minimize network cost and improve internal communication quality by reducing spine switch load.
The proposed solution enhances network quality by minimizing latency and load on spine switches, optimizing network resource consumption, and simplifying cluster management interfaces.
Smart Images

Figure CN2023115765_20112025_PF_FP_ABST
Abstract
Description
METHOD AND APPARATUS FOR CLUSTER MANAGEMENTTECHNICAL FIELD
[0001] The non-limiting and exemplary embodiments of the present disclosure generally relate to the technical field of communications, and specifically to methods and apparatuses for cluster management.BACKGROUND
[0002] This section introduces aspects that may facilitate a better understanding of the disclosure. Accordingly, the statements of this section are to be read in this light and are not to be understood as admissions about what is in the prior art or what is not in the prior art.
[0003] Network Functions Virtualization (NFV) is a network architecture concept that uses the technologies of information technology (IT) virtualization to virtualize entire classes of network node functions into building blocks that may connect, or chain together, to create communication services.
[0004] Container Infrastructure Service Management (CISM) may be a logical function to manage container infrastructure objects and virtualized resources exposed by a container runtime environment. CISM may manage a Container Infrastructure Service (CIS) cluster. A CIS node may be a physical or virtual machine. The CIS node as virtual machine may be called as a virtual CIS node. The physical server who hosts a virtual CIS node may be called as a hypervisor. The CIS node as physical server may be called as physical CIS node.
[0005] Typical data center network architecture may usually comprise switches and routers in two-level hierarchy or three-level hierarchy. For example, Spine-and-Leaf network architecture is usually used in large scale data center nowadays, where physical servers connected to leaf switches while leaf switches are aggregated into spine switches. FIG. 1 shows an example of two-tiered Spine-and-Leaf network architecture according to an embodiment of the present disclosure. In this two-tier Spine-and-Leaf network architecture, every lower-tier switch (leaf layer) is connected to each of the top-tier switches (spine layer) in a full-mesh topology. The leaf layer may comprise access switches that connect to devices such as servers. The spine layer is the backbone of the network and is responsible for interconnecting all leaf switches. Every leaf switch may connect to every spine switch in the network architecture. The path may be randomly chosen so that the traffic load is evenly distributed among the top-tier switches.SUMMARY
[0006] This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
[0007] There may be some problems for a network (such as data center network) who holds NFV network.
[0008] For example, there is no solution for cluster management node such as CISM to schedule containerized virtualized network function (CNF) containers with network cost aware scheduling method.
[0009] FIG. 2 shows an example of different kinds of CNF internal traffic paths in Spine-and-Leaf architecture network according to an embodiment of the present disclosure. OVS denotes Open vSwitch. CNI denotes Container Network Interface.
[0010] As shown in FIG. 2, the Spine-and-Leaf architecture network may comprise one spine switch, one board leaf switch, two leaf switches, one worker and three computers. Each leaf switch may connect to the spine switch. Leaf 1 switch may connect to two computers. Leaf 2 switch may connect to one computer and one worker. Note that any other suitable the Spine-and-Leaf architecture network is possible. Any other suitable numbers of spine switches, leaf switches, workers and computers are possible.
[0011] In a hybrid CIS cluster, there may be 7 kinds of CNF internal traffic paths existed in Spine-and-Leaf network architecture as illustrated in FIG. 2:
[0012] Traffic through spine-switches is marked as 201 and 202;
[0013] Traffic through leaf-switches but not via spine-switches is marked as 203 and 204; and
[0014] Traffic through virtual switches only or inside CIS nodes is marked as 205, 206 and 207.
[0015] The network cost may comprise at least one of network distance, network latency or network resource consumption for the network communication between deployable units such as containers. The lower network cost may refer to at least one of a shorter network distance, a lower network latency or a lower network resource consumption and the better network quality will be achieved if the network cost is lower.
[0016] As illustrated in FIG. 2, the paths 203-207 have a shorter data path, a lower latency, and a less workload on the spine switch. The paths 201 and 202 have a longer data path, a longer latency, and a heavier workload on the spine switch. So the paths 201 and 202 have higher network cost than the paths 203-207.
[0017] When CNF containers are unluckily instantiated on CIS nodes connected to different leaf switches, CNF internal communication will go through the spine switch, as the marked traffic paths 201 and 202 illustrated in FIG. 2. But if containers from the same CNF can be instantiated on CIS nodes connected to the same leaf switch, the CNF internal communication will only go through the leaf switch, without going to the spine switch, as the marked traffic paths 203 and 204 illustrated in in FIG. 2. If containers from the same CNF can be instantiated on the same CIS node, the CNF internal communication will only go through the same CIS node, without going to the leaf switch and the spine switch, as the marked traffic paths 205, 206 and 207 illustrated in in FIG. 2. Obviously, the marked traffic paths 201 and 202 have higher latency, heavier load on the spine switch than the marked traffic paths 203 and 204. The marked traffic paths 203 and 204 have higher latency, heavier load on the leaf switch than the marked traffic paths 205, 206 and 207.
[0018] FIG. 3 shows an example of a situation when there are massive cross-spine-switch traffics according to an embodiment of the present disclosure. When more and more CNFs are instantiated without caring about network cost, it’s very likely that most of CNF internal traffic will go through the spine switches. It will finally result in heavy load on spine switches and lower network quality over CNF internal network.
[0019] FIG. 4 shows an example of a situation when there are less cross-spine switch traffic but more intra-leaf layer switch traffic according to an embodiment of the present disclosure. If CNF containers are scheduled with optimized network cost, the workload of the spine switches can be reduced and CNF internal communication network quality will be improved.
[0020] The network cost may be very important for the network cost aware scheduling method. But there is no efficient way to maintain the cluster’s network cost matrix. If using a 2-dimensional array to represent network cost matrix, it will have complexity. The bigger scale of the cluster, the harder to maintain this matrix.
[0021] To overcome or mitigate at least one of above mentioned problems or other problems, an improved cluster management solution may be desirable, e.g., a container network cost aware scheduling method and a hierarchical network cost management method may be provided to optimize CNF network quality.
[0022] In a first aspect of the disclosure, there is provided a method performed by a first node of a cluster. The method may comprise receiving equal network cost group (ENCG) data for the cluster from a cluster management node. The method may further comprise generating a first network cost matrix for the cluster based on the ENCG data for the cluster.
[0023] In an embodiment, the method may further comprise receiving updated ENCG data for the cluster from the cluster management node. The method may further comprise generating an updated first network cost matrix for the cluster based on the updated ENCG data for the cluster.
[0024] In an embodiment, the method may further comprise scheduling a first deployable unit to a second node of the cluster based on the first network cost matrix or the updated first network cost matrix.
[0025] In an embodiment, the method may further comprise obtaining network group information comprising at least two deployable units with internal traffic bigger than a threshold. When the first deployable unit is any one of the at least two deployable units, the first deployable unit may be scheduled to the second node of the cluster based on the first network cost matrix or the updated first network cost matrix.
[0026] In an embodiment, the scheduling a first deployable unit to a second node of the cluster based on the first network cost matrix or the updated first network cost matrix may comprise computing a total network cost between a candidate node of the cluster and all nodes of the cluster that have instantiated second deployable units based on the first network cost matrix or the updated first network cost matrix and determining a node from one or more candidate nodes of the cluster to instantiate the first deployable unit based on respective total network costs computed for the one or more candidate nodes.
[0027] In an embodiment, the total network cost between the determined node and the all nodes of the cluster that have instantiated second deployable units is lowest among the respective total network costs computed for the one or more candidate nodes.
[0028] In an embodiment, the candidate node of the cluster may be required to satisfy a predefined condition.
[0029] In an embodiment, the predefined condition may comprise at least one of resource requirement or an anti-affinity policy.
[0030] In an embodiment, a network cost may comprise at least one of a network distance, a network latency, or network resource consumption.
[0031] In an embodiment, the first deployable unit and / or the second deployable units may comprise at least one of a pod of Kubernetes, a container, or a virtual machine (VM) .
[0032] In an embodiment, the second node of the cluster may comprise a container infrastructure service (CIS) node of the cluster or a Network Function Virtualized Infrastructure (NFVI) node of the cluster.
[0033] In an embodiment, the cluster may comprise a CIS cluster or an NFVI cluster.
[0034] In an embodiment, the first node of the cluster may comprise a Container Infrastructure Service Manager node or a Virtualized Infrastructure Manager (VIM) node.
[0035] In an embodiment, the cluster management node may comprise a CIS cluster management node or an NFVI cluster management node.
[0036] In an embodiment, multiple nodes at a symmetric position may be grouped as an ENCG object.
[0037] In an embodiment, the method may further comprise, if there is at least one common ancestor ENCG object for a third node of the cluster and a fourth node of the cluster, determining an internal cost of a common ENCG object closest to both the third node and the fourth node as a network cost between the third node and the fourth node.
[0038] In an embodiment, the method may further comprise, if there is no common ancestor ENCG objects for the third node and the fourth node, determining a cost between a top ancestor ENCG object for the third node and a top ancestor ENCG object for the fourth node as the network cost between the third node and the fourth node.
[0039] In an embodiment, the ENCG data for the cluster may comprise at least one of first information regarding at least one ENCG hierarchy for the cluster or a second network cost matrix among at least one top ENCG object of the at least one ENCG hierarchy for the cluster.
[0040] In an embodiment, an ENCG object of the at least one ENCG hierarchy for the cluster may comprise at least one of an identifier of the ENCG object, an identifier of a node connected to the ENCG object, an identifier of an ENCG object connected to the ENCG object, an internal network cost of the ENCG object, or a network cost to another ENCG object of the at least one ENCG hierarchy for the cluster.
[0041] In an embodiment, the cluster may be deployed in a data center network.
[0042] In an embodiment, the data center network may comprise a Spine-and-Leaf network.
[0043] In a second aspect of the disclosure, there is provided a method performed by a cluster management node. The method may comprise obtaining equal network cost group (ENCG) data for a cluster. The method may further comprise sending the ENCG data for the cluster to a first node of the cluster.
[0044] In an embodiment, the method may further comprise obtaining updated ENCG data for the cluster. The method may comprise sending the updated ENCG data for the cluster to the first node of the cluster.
[0045] In an embodiment, the method may further comprise obtaining second information regarding at least one ENCG hierarchy for a network. The method may comprise obtaining a third network cost matrix among at least one top ENCG object of the at least one ENCG hierarchy for the network. The ENCG data for the cluster and / or the updated ENCG data for the cluster may be obtained based on the second information and the third network cost matrix.
[0046] In an embodiment, an ENCG object of the at least one ENCG hierarchy for the network may comprise at least one of an identifier of the ENCG object, an identifier of a node connected to the ENCG object, an identifier of an ENCG object connected to the ENCG object, an internal network cost of the ENCG object, or a network cost to another ENCG object of the at least one ENCG hierarchy for the cluster.
[0047] In an embodiment, the method may further comprise sending network group information comprising at least two deployable units with internal traffic bigger than a threshold to the first node of the cluster.
[0048] In an embodiment, a network cost may comprise at least one of a network distance, a network latency, or network resource consumption.
[0049] In an embodiment, the cluster may comprise a container infrastructure service (CIS) cluster.
[0050] In an embodiment, the first node of the cluster may comprise a Container Infrastructure Service Manager node or a Virtualized Infrastructure Manager (VIM) node.
[0051] In an embodiment, the cluster management node may comprise a CIS cluster management node or an NFVI cluster management node.
[0052] In an embodiment, multiple nodes at a symmetric position may be grouped as an ENCG object.
[0053] In an embodiment, the ENCG data for the cluster may comprise at least one of first information regarding at least one ENCG hierarchy for the cluster or a second network cost matrix among at least one top ENCG object of the at least one ENCG hierarchy for the cluster.
[0054] In an embodiment, an ENCG object of the at least one ENCG hierarchy for the cluster may comprise at least one of an identifier of the ENCG object, an identifier of a node connected to the ENCG object, an identifier of an ENCG object connected to the ENCG object, an internal network cost of the ENCG object, or a network cost to another ENCG object of the at least one ENCG hierarchy for the cluster.
[0055] In an embodiment, the cluster may be deployed in a data center network.
[0056] In an embodiment, the data center network may comprise a spine-and-leaf network.
[0057] In an embodiment, the method may further comprise obtaining change information of the cluster by an event subscription or a polling method.
[0058] In an embodiment, the method may further comprise sending a first request for unsubscribing an event of a deleted virtual machine to a virtual infrastructure manager. The method may further comprise receiving a first response from the virtual infrastructure manager.
[0059] In a third aspect of the disclosure, there is provided a first node of a cluster. The first node of the cluster comprises a processor and a memory coupled to the processor. Said memory contains instructions executable by said processor. Said first node of the cluster is operative to receive equal network cost group (ENCG) data for the cluster from a cluster management node. Said first node of the cluster is further operative to generate a first network cost matrix for the cluster based on the ENCG data for the cluster.
[0060] In a fourth aspect of the disclosure, there is provided a cluster management node. The cluster management node comprises a processor and a memory coupled to the processor. Said memory contains instructions executable by said processor. Said cluster management node is operative to obtain equal network cost group (ENCG) data for a cluster. Said cluster management node is further operative to send the ENCG data for the cluster to a first node of the cluster.
[0061] In a fifth aspect of the disclosure, there is provided a first node of a cluster. The first node of the cluster may comprise a first receiving module configured to receive equal network cost group (ENCG) data for the cluster from a cluster management node. The first node of the cluster may further comprise a first generating module configured to generate a first network cost matrix for the cluster based on the ENCG data for the cluster.
[0062] In an embodiment, the first node of the cluster may further comprise a second receiving module configured to receive updated ENCG data for the cluster from the cluster management node.
[0063] In an embodiment, the first node of the cluster may further comprise a second generating module configured to generate an updated first network cost matrix for the cluster based on the updated ENCG data for the cluster.
[0064] In an embodiment, the first node of the cluster may further comprise a scheduling module configured to schedule a first deployable unit to a second node of the cluster based on the first network cost matrix or the updated first network cost matrix.
[0065] In an embodiment, the first node of the cluster may further comprise an obtaining module configured to obtain network group information comprising at least two deployable units with internal traffic bigger than a threshold. When the first deployable unit is any one of the at least two deployable units, the first deployable unit may be scheduled to the second node of the cluster based on the first network cost matrix or the updated first network cost matrix.
[0066] In an embodiment, the first node of the cluster may further comprise a first determining module configured to, if there is at least one common ancestor ENCG object for a third node of the cluster and a fourth node of the cluster, determine an internal cost of a common ENCG object closest to both the third node and the fourth node as a network cost between the third node and the fourth node.
[0067] In an embodiment, the first node of the cluster may further comprise a second determining module configured to, if there is no common ancestor ENCG objects for the third node and the fourth node, determine a cost between a top ancestor ENCG object for the third node and a top ancestor ENCG object for the fourth node as the network cost between the third node and the fourth node.
[0068] In a sixth aspect of the disclosure, there is provided a cluster management node. The cluster management node may comprise a first obtaining module configured to obtain equal network cost group (ENCG) data for a cluster. The cluster management node may further comprise a first sending module configured to send the ENCG data for the cluster to a first node of the cluster.
[0069] In an embodiment, the cluster management node may further comprise a second obtaining module configured to obtain updated ENCG data for the cluster.
[0070] In an embodiment, the cluster management node may further comprise a second sending module configured to send the updated ENCG data for the cluster to the first node of the cluster.
[0071] In an embodiment, the cluster management node may further comprise a third obtaining module configured to obtain second information regarding at least one ENCG hierarchy for a network.
[0072] In an embodiment, the cluster management node may further comprise a fourth obtaining module configured to obtain a third network cost matrix among at least one top ENCG object of the at least one ENCG hierarchy for the network. The ENCG data for the cluster and / or the updated ENCG data for the cluster is obtained based on the second information and the third network cost matrix.
[0073] In an embodiment, the cluster management node may further comprise a fifth obtaining module configured to obtain change information of the cluster by an event subscription or a polling method.
[0074] In an embodiment, the cluster management node may further comprise a third sending module configured to send a first request for unsubscribing an event of a deleted virtual machine to a virtual infrastructure manager.
[0075] In an embodiment, the cluster management node may further comprise a receiving module configured to receive a first response from the virtual infrastructure manager.
[0076] In a seventh aspect of the disclosure, there is provided a computer program product comprising instructions which, when executed on at least one processor, cause the at least one processor to carry out any of the methods according to the first and second aspects of the disclosure.
[0077] In an eighth aspect of the disclosure, there is provided a computer-readable storage medium storing instructions which, when executed on at least one processor, cause the at least one processor to carry out any of the methods according to the first and second aspects of the disclosure.
[0078] Embodiments herein afford many advantages, of which a non-exhaustive list of examples follows. In some embodiments herein, with the network cost aware scheduling method, the (e.g. CNF) internal network quality can be improved. In some embodiments herein, the load of top tier (e.g. spine) switches can be reduced. In some embodiments herein, the proposed solution can schedule (e.g. CNF) containers to (e.g. CIS) nodes as closer as possible, to avoid or reduce internal communication going through top tier (e.g. spine) switches. In some embodiments herein, the proposed solution can benefit network cost maintenance and simplify the interface between the cluster management node (e.g. CCM) and the cluster node (e.g. CISM) . The embodiments herein are not limited to the features and advantages mentioned above. A person skilled in the art will recognize additional features and advantages upon reading the following detailed description.BRIEF DESCRIPTION OF THE DRAWINGS
[0079] The above and other aspects, features, and benefits of various embodiments of the present disclosure will become more fully apparent, by way of example, from the following detailed description with reference to the accompanying drawings, in which like reference numerals or letters are used to designate like or equivalent elements. The drawings are illustrated for facilitating better understanding of the embodiments of the disclosure and not necessarily drawn to scale, in which:
[0080] FIG. 1 shows an example of two-tiered Spine-and-Leaf network architecture according to an embodiment of the present disclosure;
[0081] FIG. 2 shows an example of different kinds of CNF internal traffic paths in Spine-and-Leaf architecture network according to an embodiment of the present disclosure;
[0082] FIG. 3 shows an example of a situation when there are massive cross-spine-switch traffics according to an embodiment of the present disclosure;
[0083] FIG. 4 shows an example of a situation when there are less cross-spine switch traffic but more intra-leaf layer switch traffic according to an embodiment of the present disclosure;
[0084] FIG. 5 shows a NFV-MANO architectural framework with support for containers according to an embodiment of the present disclosure;
[0085] FIG. 6 shows a flowchart of a method according to another embodiment of the present disclosure;
[0086] FIG. 7a shows an example of the equivalent network paths between symmetric physical servers according to an embodiment of the present disclosure;
[0087] FIG. 7b shows an example of data center network topology according to an embodiment of the present disclosure;
[0088] FIG. 8 shows an example of the ENCG hierarchy for the example data center topology in FIG. 7b according to an embodiment of the present disclosure;
[0089] FIG. 9 shows an example of a created CIS cluster in a data center network according to an embodiment of the present disclosure;
[0090] FIG. 10 shows an example of the ENCG hierarchy for the example cluster in FIG. 9 according to an embodiment of the present disclosure;
[0091] FIG. 11 shows a flowchart of a method according to another embodiment of the present disclosure;
[0092] FIG. 12 shows a flowchart of a method according to another embodiment of the present disclosure;
[0093] FIG. 13 shows a flowchart of a method according to another embodiment of the present disclosure;
[0094] FIG. 14 shows a flowchart of a method according to another embodiment of the present disclosure;
[0095] FIG. 15 shows a flowchart of a method according to another embodiment of the present disclosure;
[0096] FIG. 16 shows a flowchart of a method according to another embodiment of the present disclosure;
[0097] FIG. 17 shows a flowchart of a method according to another embodiment of the present disclosure;
[0098] FIG. 18 shows a flowchart of a method according to another embodiment of the present disclosure;
[0099] FIG. 19 shows a flowchart of a method according to another embodiment of the present disclosure;
[0100] FIG. 20 shows a flowchart of creating a CIS cluster according to an embodiment of the present disclosure;
[0101] FIG. 21 shows a flowchart of scaling out a CIS cluster according to an embodiment of the present disclosure;
[0102] FIG. 22 shows a flowchart of scaling in a CIS cluster according to an embodiment of the present disclosure;
[0103] FIG. 23 shows a flowchart of migrating or evacuating a virtual CIS node according to an embodiment of the present disclosure;
[0104] FIG. 24 shows a flowchart of instantiating CNF workloads according to an embodiment of the present disclosure;
[0105] FIG. 25 shows an example of an initial state of network topology of CIS cluster according to an embodiment of the present disclosure;
[0106] FIG. 26 shows an example of branch 1 pod 1 scheduling result according to an embodiment of the present disclosure;
[0107] FIG. 27 shows an example of branch 1 pod 2 scheduling result according to an embodiment of the present disclosure;
[0108] FIG. 28 shows an example of branch 1 pod 3 scheduling result according to an embodiment of the present disclosure;
[0109] FIG. 29 shows an example of branch 1 pod 4 scheduling result according to an embodiment of the present disclosure;
[0110] FIG. 30 shows an example of branch 2 scheduling result according to an embodiment of the present disclosure;
[0111] FIG. 31 shows an example of branch 3 scheduling result according to an embodiment of the present disclosure;
[0112] FIG. 32 shows an overview of a proposed solution according to an embodiment of the present disclosure;
[0113] FIG. 33 is a block diagram showing an apparatus suitable for practicing some embodiments of the disclosure;
[0114] FIG. 34 is a block diagram showing a first node of a cluster according to an embodiment of the disclosure;
[0115] FIG. 35 is a block diagram showing a cluster management node according to an embodiment of the disclosure;
[0116] FIG. 36 shows an example of a communication system according to an embodiment of the disclosure;
[0117] FIG. 37 shows a UE in accordance with some embodiments;
[0118] FIG. 38 shows a network node in accordance with some embodiments;
[0119] FIG. 39 is a block diagram of a host according to an embodiment of the disclosure;
[0120] FIG. 40 is a block diagram illustrating a virtualization environment in which functions implemented by some embodiments may be virtualized; and
[0121] FIG. 41 shows a communication diagram of a host communicating via a network node with a UE over a partially wireless connection according to an embodiment of the disclosure.DETAILED DESCRIPTION
[0122] The embodiments of the present disclosure are described in detail with reference to the accompanying drawings. It should be understood that these embodiments are discussed only for the purpose of enabling those skilled persons in the art to better understand and thus implement the present disclosure, rather than suggesting any limitations on the scope of the present disclosure. Reference throughout this specification to features, advantages, or similar language does not imply that all of the features and advantages that may be realized with the present disclosure should be or are in any single embodiment of the disclosure. Rather, language referring to the features and advantages is understood to mean that a specific feature, advantage, or characteristic described in connection with an embodiment is included in at least one embodiment of the present disclosure. Furthermore, the described features, advantages, and characteristics of the disclosure may be combined in any suitable manner in one or more embodiments. One skilled in the relevant art will recognize that the disclosure may be practiced without one or more of the specific features or advantages of a particular embodiment. In other instances, additional features and advantages may be recognized in certain embodiments that may not be present in all embodiments of the disclosure.
[0123] As used herein, the term “network” refers to a network following any suitable communication standards such as new radio (NR) , long term evolution (LTE) , LTE-Advanced, wideband code division multiple access (WCDMA) , high-speed packet access (HSPA) , Code Division Multiple Access (CDMA) , Time Division Multiple Address (TDMA) , Frequency Division Multiple Access (FDMA) , Orthogonal Frequency-Division Multiple Access (OFDMA) , Single carrier frequency division multiple access (SC-FDMA) and other wireless networks. A CDMA network may implement a radio technology such as Universal Terrestrial Radio Access (UTRA) , etc. UTRA includes WCDMA and other variants of CDMA. A TDMA network may implement a radio technology such as Global System for Mobile Communications (GSM) . An OFDMA network may implement a radio technology such as Evolved UTRA (E-UTRA) , Ultra Mobile Broadband (UMB) , IEEE 802.11 (Wi-Fi) , IEEE 802.16 (WiMAX) , IEEE 802.20, Flash-OFDMA, Ad-hoc network, wireless sensor network, etc. In the following description, the terms “network” and “system” can be used interchangeably. Furthermore, the communications between two devices in the network may be performed according to any suitable communication protocols, including, but not limited to, the communication protocols as defined by a standard organization such as 3GPP. For example, the communication protocols may comprise the first generation (1G) , 2G, 3G, 4G, 4.5G, 5G, 6G communication protocols, and / or any other protocols either currently known or to be developed in the future.
[0124] The term “network device” or “network node” or “network function (NF) ” refers to any suitable function which can be implemented in a network entity (physical or virtual) of a communication network. For example, the network function can be implemented either as a network element on a dedicated hardware, as a software instance running on a dedicated hardware, or as a virtualized function instantiated on an appropriate platform, e.g. on a cloud infrastructure. For example, the 5G system (5GS) may comprise a plurality of NFs such as AMF (Access and mobility Function) , SMF (Session Management Function) , AUSF (Authentication Service Function) , UDM (Unified Data Management) , PCF (Policy Control Function) , AF (Application Function) , NEF (Network Exposure Function) , UPF (User plane Function) and NRF (Network Repository Function) , RAN (radio access network) , SCP (service communication proxy) , NWDAF (network data analytics function) , NSSF (Network Slice Selection Function) , NSSAAF (Network Slice-Specific Authentication and Authorization Function) , etc. For example, the 4G system (such as LTE) may include MME (Mobile Management Entity) , HSS (home subscriber server) , Policy and Charging Rules Function (PCRF) , Packet Data Network Gateway (PGW) , PGW control plane (PGW-C) , Serving gateway (SGW) , SGW control plane (SGW-C) , E-UTRAN Node B (eNB) , etc. In other embodiments, the network function may comprise different types of NFs for example depending on a specific network.
[0125] Virtualizing means creating virtual versions of apparatuses or devices which may include virtualizing hardware platforms, storage devices and networking resources. As used herein, virtualization can be applied to a provider edge node and relates to an implementation in which at least a portion of the functionality is implemented as one or more virtual components (e.g., via one or more applications, components, functions, virtual machines or containers executing on one or more physical processing nodes in one or more networks) .
[0126] In some embodiments, some or all of the functions described herein may be implemented as virtual components executed by one or more virtual machines implemented in one or more virtual environments hosted by one or more of hardware nodes. Further, in embodiments in which the virtual node is not a radio access node or does not require radio connectivity (e.g., a core network node) , then the provider edge node or PE may be entirely virtualized.
[0127] The functions may be implemented by one or more applications (which may alternatively be called software instances, virtual appliances, network functions, virtual nodes, virtual network functions, etc. ) operative to implement some of the features, functions, and / or benefits of some of the embodiments disclosed herein. Applications are run in virtualization environment which provides hardware comprising processing circuitry and memory. Memory contains instructions executable by processing circuitry whereby application is operative to provide one or more of the features, benefits, and / or functions disclosed herein.
[0128] Virtualization environment, comprises general-purpose or special-purpose network hardware devices comprising a set of one or more processors or processing circuitry, which may be commercial off-the-shelf (COTS) processors, dedicated Application Specific Integrated Circuits (ASICs) , or any other type of processing circuitry including digital or analog hardware components or special purpose processors. Each hardware device may comprise memory which may be non-persistent memory for temporarily storing instructions or software executed by processing circuitry. Each hardware device may comprise one or more network interface controllers (NICs) , also known as network interface cards, which include physical network interface. Each hardware device may also include non-transitory, persistent, machine-readable storage media -having stored therein software and / or instructions executable by processing circuitry. Software may include any type of software including software for instantiating one or more virtualization layers (also referred to as hypervisors) , software to execute virtual machines as well as software allowing it to execute functions, features and / or benefits described in relation with some embodiments described herein.
[0129] Virtual machines, comprise virtual processing, virtual memory, virtual networking or interface and virtual storage, and may be run by a corresponding virtualization layer or hypervisor. Different embodiments of the instance of virtual appliance may be implemented on one or more of virtual machines, and the implementations may be made in different ways.
[0130] During operation, processing circuitry executes software to instantiate the hypervisor or virtualization layer, which may sometimes be referred to as a virtual machine monitor (VMM) . Virtualization layer may present a virtual operating platform that appears like networking hardware to virtual machine.
[0131] References in the specification to “one embodiment, ” “an embodiment, ” “an example embodiment, ” and the like indicate that the embodiment described may include a particular feature, structure, or characteristic, but it is not necessary that every embodiment includes the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to affect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
[0132] It shall be understood that although the terms “first” and “second” etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first element could be termed a second element, and similarly, a second element could be termed a first element, without departing from the scope of example embodiments. As used herein, the term “and / or” includes any and all combinations of one or more of the associated listed terms.
[0133] As used herein unless expressly stated to the contrary, the phrase “at least one of A and B”or “at least one of A or B” should be understood to mean any of the following “only A, only B, or both A and B. ” The phrase “A and / or B” should be understood to mean any of the following “only A, only B, or both A and B” .
[0134] As used herein unless expressly stated to the contrary, the phrase “aplurality of” followed by a conjunctive list of enumerated items (e.g., “A and B” , “A, B, and C” ) is intended to mean “multiple items, with each item selected from the list consisting of” the enumerated items. For example, “aplurality of A and B” is intended to mean any of the following: more than one A; more than one B; or at least one A and at least one B.
[0135] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of example embodiments. As used herein, the singular forms “a” , “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” , “comprising” , “has” , “having” , “includes” and / or “including” , when used herein, specify the presence of stated features, elements, and / or components etc., but do not preclude the presence or addition of one or more other features, elements, components and / or combinations thereof.
[0136] It is noted that these terms as used in this document are used only for ease of description and differentiation among nodes, devices or networks etc. With the development of the technology, other terms with the similar / same meanings may also be used.
[0137] In the following description and claims, unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skills in the art to which this disclosure belongs.
[0138] The NFV framework may comprise components such as:
[0139] - Virtualized network functions (VNFs) are software implementations of network functions that can be deployed on a network functions virtualization infrastructure (NFVI) .
[0140] - NFVI is the totality of all hardware and software components that build the environment where VNFs are deployed. The NFV infrastructure can span several locations. The network providing connectivity between these locations is considered as part of the NFV infrastructure.
[0141] - Network functions virtualization management and orchestration architectural framework (NFV-MANO) is the collection of all functional blocks, data repositories used by these blocks, and reference points and interfaces through which these functional blocks exchange information for the purpose of managing and orchestrating NFVI and VNFs.
[0142] Virtualized Infrastructure Manager (VIM) is a software component of NFVI. VIM is responsible for controlling and managing the NFV infrastructure (NFVI) compute, storage, and network resources, usually within one operator’s infrastructure domain.
[0143] ETSI (European Telecommunications Standards Institute) GS (group specification) NFV-IFA (Infrastructure and Architecture) 036 V4.3.1, the disclosure of which is incorporated by reference herein in their entirety, specifies requirements on Container Infrastructure Service (CIS) cluster management services and descriptors associated to CIS cluster management.
[0144] also known as K8s, is an open-source system for automating deployment, scaling, and management of containerized applications. Pods are the smallest deployable units of computing that can be created and managed in APod (as in a pod of whales or pea pod) is a group of one or more containers, with shared storage and network resources, and a specification for how to run the containers. A Pod's contents are always co-located and co-scheduled and run in a shared context.
[0145] In an embodiment, the pod will be used to represent the smallest deployable units in Kubernetes. In other embodiments, the container will be used to represent the smallest deployable units in CIS cluster.
[0146] Considering is the de-facto standard solutions for CISM, the cloud implementation may refer to implementation in in some embodiments.
[0147] ETSI GS NFV-Solutions (SOL) 018 v4.3.1, the disclosure of which is incorporated by reference herein in their entirety, provides a mapping of the NFV object model for Operating System (OS) container management and orchestration to managed objects of and HelmTM as specified by the Cloud Native Computing Foundation along with a specification of a mapping between a common set of input parameters (e.g. derived from Virtualized Network Function Descriptor (VNFD) / Network Service Descriptor (NSD) and / or NFV-MANO RESTful Application Programming Interfaces (APIs) ) and output parameters associated to the management and orchestration of the referred managed objects.
[0148] Note: Custom resources are extensions of the Kubernetes API; CRD (Custom Resource Definitions) declares custom resource; CRD objects are objects created with kind and data structure declared in relevant CRD. CRD are standard Kubernetes API, supported by HelmTM, and extendable in ETSI GS NFV-SOL 018 v4.3.1 (mentioned in chapter 4.2.2.3.1, HelmTM chart file structure) .
[0149] Although the subject matter described herein may be implemented in any appropriate type of system using any suitable components, the embodiments disclosed herein are described in relation to a communication system complied with the exemplary system architecture illustrated in FIGs. 1-2 and 5. For simplicity, the system architectures of FIGs. 1-2 and 5 only depict some exemplary elements. In practice, a communication system may further include any additional elements suitable to support communication between any two communication devices. The communication system may provide communication and various types of services to one or more customer devices to facilitate the customer devices’ access to and / or use of the services provided by, or via, the communication system.
[0150] FIG. 5 shows a NFV-MANO architectural framework with support for containers according to an embodiment of the present disclosure, which is same as Figure 5.2-3 of ETSI GS NFV 006 V4.4.1, the disclosure of which is incorporated by reference herein in their entirety.
[0151] The NFV-MANO architectural framework may comprise functional blocks and functions realizing management and orchestration capabilities.
[0152] The following functional blocks may be a part of the NFV-MANO architectural framework and may fulfil the functional requirements defined in ETSI GS NFV-IFA 010 V4.4.1, the disclosure of which is incorporated by reference herein in their entirety:
[0153] ● Network Functions Virtualization Orchestrator (NFVO) ;
[0154] ● Virtualized Network Function Manager (VNFM) ;
[0155] ● Virtualized Infrastructure Manager (VIM) ;
[0156] ● Wide area network Infrastructure Manager (WIM) .
[0157] Additional functional blocks and functions represented in the NFV architectural framework, which interact with the NFV-MANO functional blocks and functions are:
[0158] ● Element Management (EM) ;
[0159] ● Virtualized Network Function (VNF) ;
[0160] ● Operation Support System (OSS) and Business Support System functions (BSS) ;
[0161] ● NFV Infrastructure (NFVI) , including the CIS and Wide Area Network (WAN) .
[0162] The NFV-MANO architectural framework may comprise the following reference points:
[0163] ● Os-Ma-nfvo, a reference point between OSS / BSS and NFVO;
[0164] ● Or-Vnfm, a reference point between NFVO and VNFM;
[0165] ● Or-Vi, a reference point between NFVO and VIM;
[0166] ● Ve-Vnfm-em, a reference point between EM and VNFM;
[0167] ● Ve-Vnfm-vnf, a reference point between VNF and VNFM;
[0168] ● Vi-Vnfm, a reference point between VIM and VNFM;
[0169] ● Nf-Vi, a reference point between NFVI and VIM;
[0170] ● Or-Or, a reference point between NFVOs in different administrative domains;
[0171] ● Or-Wi, a reference point between an NFVO and a WIM.
[0172] The following functions shall be part of the NFV-MANO architectural framework and shall fulfil the functional requirements defined in ETSI GS NFV-IFA 010 V4.4.1:
[0173] ● Container Infrastructure Service Management (CISM) ;
[0174] ● Container Image Registry (CIR) ;
[0175] ● Container Infrastructure Service Cluster Management (CCM) .
[0176] A series of management service interfaces are exposed by the CISM, CIR and CCM functions, which are invoked by consumers within NFV-MANO and / or consumers outside NFV-MANO. The consumers within NFV-MANO include:
[0177] ● The NFVO consumes management service interfaces produced by the CISM.
[0178] ● The VNFM consumes management service interfaces produced by the CISM.
[0179] ● The NFVO consumes management service interfaces produced by the CIR.
[0180] ● The VNFM consumes management service interfaces produced by the CIR.
[0181] ● The NFVO consumes management service interfaces produced by the CCM.
[0182] The CCM and CISM function also consume management interfaces produced by other functional blocks or functions, which include:
[0183] ● The CCM consumes management interfaces produced by the NFVO.
[0184] ● The CCM consumes management interfaces produced by the VIM.
[0185] ● The CCM consumes management service interfaces produced by the CISM.
[0186] ● The CISM consumes management interfaces produced by the VIM.
[0187] The VIM does not manage the whole NFVI, such as the WAN is managed by the WIM, the CIS is managed by the CISM. For the sake of simplicity, FIG. 5 only shows the option where the WIM is in NFV-MANO, although the WIM can be external to NFV-MANO.
[0188] FIG. 6 shows a flowchart of a method according to an embodiment of the present disclosure, which may be performed by an apparatus implemented in or at or as a first node of a cluster or communicatively coupled to the first node of the cluster. As such, the apparatus may provide means or modules or circuits for accomplishing various parts of the method 600 as well as means or modules or circuits for accomplishing other processes in conjunction with other components.
[0189] At block 602, the first node of the cluster may receive equal network cost group (ENCG) data for the cluster from a cluster management node.
[0190] The cluster may be any suitable cluster and the present disclosure has no limit on it. For example, the cluster may be a group of two or more computers or nodes (e.g. physical or virtual machine) . For example, a Kubernetes cluster is a set of node machines for running containerized applications.
[0191] The cluster may contain a control plane and one or more compute machines, or nodes. The control plane may be responsible for maintaining the desired state of the cluster, such as which applications are running and which container images they use. Nodes may actually run the applications and workloads.
[0192] In an embodiment, the cluster may comprise a CIS cluster as described in ETSI GS NFV-IFA 036 V4.3.1. The CIS cluster may comprise a set of CIS instances. The CIS cluster may comprise one or multiple CISM instances managing the set of CIS instances. At minimum, the CIS cluster may contain one CISM instance and one CIS instance.
[0193] In an embodiment, the cluster may comprise an NFVI cluster. The NFVI cluster may comprise a set of NFVI instances. The NFVI cluster may comprise one or multiple NFVI management instances managing the set of NFVI instances. At minimum, the NFVI cluster may contain one NFVI instance and one NFVI management instance.
[0194] In an embodiment, the cluster may be deployed in a data center network. The data center network may be any suitable data center network either currently known or to be developed in the future.
[0195] In an embodiment, the data center network may comprise a Spine-and-Leaf network.
[0196] The first node of the cluster may be any node (such as management node) of the cluster and the present disclosure has no limit on it. For example, the first node of the cluster may be configured to use the worker machines of the cluster for the deployment and management of the containerized workloads.
[0197] In an embodiment, the first node of the cluster may comprise a Container Infrastructure Service Manager (CISM) node as described in ETSI GS NFV-IFA 036 V4.3.1. The function of CISM may comprise CIS instance management and Managed CIS Cluster Objects (MCCOs) management.
[0198] In an embodiment, the first node of the cluster may comprise a Virtualized Infrastructure Manager (VIM) node.
[0199] The cluster management node may be any management node and the present disclosure has no limit on it. For example, the function of the cluster management node may comprise at least one of cluster lifecycle management, cluster configuration management, cluster performance management, cluster fault management, cluster security management, etc.
[0200] In an embodiment, the cluster management node may comprise a CIS cluster management (CCM) node as described in ETSI GS NFV-IFA 036 V4.3.1 or an NFVI cluster management node.
[0201] ENCG concept is introduced for grouping nodes at symmetric position. An ENCG object may contain at least one node or at least one children ENCG object. For an ENCG object, it may have at least one of the following traits:
[0202] -the network costs between arbitrary 2 of nodes in the ENCG object are same,
[0203] -the network costs between arbitrary node from one of its children ENCG objects and arbitrary node from another one of its children ENCG objects are same, and
[0204] -the network costs between any node from this ENCG and any node from any other ENCG are same.
[0205] In an embodiment, multiple nodes at a symmetric position may be grouped as an ENCG object. For example, considering the reality that most operators will design their data center network architecture in hierarchical way (e.g., using Spine-and-Leaf network architecture) , then nodes at symmetric position will have same network cost to peer nodes at symmetric position.
[0206] The ENCG data for the cluster may comprise any suitable information related to ENCG for the cluster, such as ENCG hierarchy for the cluster, network cost data, etc.
[0207] In an embodiment, the ENCG data for the cluster may comprise at least one of first information regarding at least one ENCG hierarchy for the cluster or a second network cost matrix among at least one top ENCG object of the at least one ENCG hierarchy for the cluster.
[0208] The first information may comprise any suitable information which can be used by the first node of the cluster to know the ENCG hierarchy for the cluster. For example, the first information may comprise information regarding ENCG objects of the ENCG hierarchy for the cluster.
[0209] The top ENCG object of an ENCG hierarchy may be the ENCG object located on the top of the ENCG hierarchy.
[0210] The at least one ENCG hierarchy for the cluster may be defined in various ways and the present disclosure has no limit on it. For example, each of the at least one ENCG hierarchy for the cluster may have a tree structure.
[0211] FIG. 7a shows an example of the equivalent network paths between symmetric physical servers according to an embodiment of the present disclosure. The servers 2-4 at symmetric position will have the same network cost to the peer server 1, i.e., the network costs for paths 701-703 is same. The servers 5-6 at symmetric position will have the same network cost to the peer server 7, i.e., the network costs for paths 704-705 is same.
[0212] The network paths between 2 physical servers connected to the same leaf switch are almost same, physical server -> leaf switch -> physical server. Hereby the corresponding network costs for these network paths may be same.
[0213] The network paths between 2 of physical servers connected to different leaf switches are also almost same, physical server -> leaf switch -> spine switch -> leaf switch -> physical server. Hereby the corresponding network costs for these network paths may be same.
[0214] Based on such reality, nodes at symmetric position could be grouped. Then the full mesh connection among nodes can be turned into full mesh connection among groups. So, the complexity of data center network cost matrix management and (e.g. CIS) cluster network cost matrix management will be reduced tremendously. To better group nodes at symmetric position, the ENCG concept is introduced herein. The hierarchical network cost management method may comprise grouping nodes at symmetric position, creating ENCG hierarchy and network cost information, and generating a network cost matrix based on the ENCG hierarchy and network cost information.
[0215] FIG. 7b shows an example of data center network topology according to an embodiment of the present disclosure.
[0216] As shown in FIG. 7b, the data center network comprises one spine switch, three leaf switches and twelve computers. Each leaf switch connects to the spine switch and four computers. Note that any other suitable data center network topology is possible. Any other suitable numbers of spine switches, leaf switches and computers are possible.
[0217] FIG. 8 shows an example of the ENCG hierarchy for the example data center topology in FIG. 7b according to an embodiment of the present disclosure.
[0218] As shown in FIG. 8, the example data center topology in FIG. 7b may be represented by three ENCG hierarchies. Each of the three ENCG hierarchies may comprise a leaf switch as an ENCG object. Each leaf switch connects to four computers. The leaf 1 switch as an ENCG object comprises four members, i.e., computer-1, computer-2, computer-11, computer-12. The internal cost of the leaf 1 switch is 10. The leaf 2 switch as an ENCG object comprises four members, i.e., computer-3, computer-4, computer-13, computer-14. The internal cost of the leaf 2 switch is 10. The internal cost of the leaf 2 switch is 10. The leaf 3 switch as an ENCG object comprises four members, i.e., computer-5, computer-6, computer-15, computer-16. The internal cost of the leaf 3 switch is 10.
[0219] For the three ENCG hierarchies as shown in FIG. 8, the top ENCG objects are the leaf 1 switch, the leaf 2 switch, and the leaf 2 switch.
[0220] Note that any other suitable ENCG hierarchy for the example data center topology in FIG. 7b is also possible.
[0221] FIG. 9 shows an example of a created CIS cluster in a data center network according to an embodiment of the present disclosure.
[0222] As shown in FIG. 9, the data center network comprises one spine switch, three leaf switches and twelve computers. Each leaf switch is connected to the spine switch and four computers. Note that any other suitable data center network topology is possible. Any other suitable numbers of spine switches, leaf switches and computers are possible.
[0223] The (e.g. CIS) cluster comprises eight notes. Node-11 and node-12 are created in computer 1. Node-21 and node-22 are created in computer 2. Node-31 and node-32 are created in computer 3. Node-41 and node-42 are created in computer 4.
[0224] FIG. 10 shows an example of the ENCG hierarchy for the example cluster in FIG. 9 according to an embodiment of the present disclosure.
[0225] As shown in FIG. 10, the (e.g. CIS) cluster may be represented by two ENCG hierarchies. Each of the two ENCG hierarchies may comprise one leaf switch and two computers. The leaf 1 switch as an ENCG object connects to computer-1 and computer-2. The internal cost of the leaf 1 switch is 12. The leaf 2 switch as an ENCG object connects to computer-3 and computer-4. The internal cost of the leaf 2 switch is 12. The computer-1 as an ENCG object comprises two members, i.e., node-11 and node-12. The internal cost of the computer-1 is 2. The computer-2 as an ENCG object comprises two members, i.e., node-21 and node-22. The internal cost of the computer-2 is 2. The computer-3 as an ENCG object comprises two members, i.e., node-31 and node-32. The internal cost of the computer-3 is 2. The computer-4 as an ENCG object comprises two members, i.e., node-41 and node-42. The internal cost of the computer-4 is 2.
[0226] For the two ENCG hierarchies as shown in FIG. 10, the top ENCG objects are the leaf 1 switch and the leaf 2 switch.
[0227] Note that any other suitable ENCG hierarchy for the example cluster in FIG. 9 is also possible.
[0228] In an embodiment, an ENCG object of the at least one ENCG hierarchy for the cluster may comprise at least one of an identifier of the ENCG object, an identifier of a node connected to the ENCG object, an identifier of an ENCG object connected to the ENCG object, an internal network cost of the ENCG object, or a network cost to another ENCG object of the at least one ENCG hierarchy for the cluster.
[0229] The network cost of two nodes in the cluster of the network may be determined in various ways and the present disclosure has no limit on it. For example, some network costs may be configured or determined by an operator. Some network costs may be computed by a node.
[0230] In an embodiment, a network cost may comprise at least one of a network distance, a network latency, or network resource consumption. For example, the smaller the network distance between two nodes is, the smaller the network cost is. The smaller the network latency between two nodes is, the smaller the network cost is. The less consumption on network resources, the smaller the network cost is.
[0231] In an embodiment, the network cost inside cluster (e.g. CIS cluster or NFVI cluster) nodes may be ignored. Hereby the network cost between containers may equal to the network cost between their hosting cluster nodes. The network cost matrix of cluster may be the mandatory input in the network cost aware scheduling method.
[0232] Table 1 shows the ENCG cost matrix among top-level ENCG objects for data center in FIG. 7b. Table 1 contains the ENCG cost matrix among top-level ENCG objects, “leaf-1” , “leaf-2” and “leaf-3” for example for data center of FIG. 7b. The network cost value may be determined in various ways. For example, it can be evaluated by the cloud administrator.
[0233] Table 1
[0234] Table 2 shows the ENCG cost matrix among top-level ENCG objects for (e.g. CIS) cluster in FIG. 9. Table 2 contains the ENCG cost matrix among top-level ENCG objects, “leaf-1” and “leaf-2” for example for (e.g. CIS) cluster of FIG. 9.
[0235] Table 2
[0236] With reference to FIG. 6, at block 604, the first node of the cluster may generate a first network cost matrix for the cluster based on the ENCG data for the cluster.
[0237] The first node of the cluster may generate the first network cost matrix for the cluster based on the ENCG data for the cluster in various ways and the present disclosure has no limit on it.
[0238] The first network cost matrix for the cluster may be used for various purposes such as scheduling a deployable unit to a node of the cluster, migrating a deployable unit from a node of the cluster to another node of the cluster, load balancing of the cluster, etc.
[0239] FIG. 11 shows a flowchart of a method according to another embodiment of the present disclosure, which may be performed by an apparatus implemented in or at or as a first node of a cluster or communicatively coupled to the first node of the cluster. As such, the apparatus may provide means or modules or circuits for accomplishing various parts of the method 1100 as well as means or modules or circuits for accomplishing other processes in conjunction with other components. For some parts which have been described in the above embodiments, the description thereof is omitted here for brevity.
[0240] At block 1102, if there is at least one common ancestor ENCG object for a third node of the cluster and a fourth node of the cluster, the first node of the cluster may determine an internal cost of a common ENCG object closest to both the third node and the fourth node as a network cost between the third node and the fourth node.
[0241] For example, the first node of the cluster may obtain all ancestor ENCG objects for a third node of the cluster. The first node of the cluster may obtain all ancestor ENCG objects for a fourth node of the cluster. The first node of the cluster may intersect all ancestor ENCG objects for the third node of the cluster and all ancestor ENCG objects for the fourth node of the cluster. Then the first node of the cluster may check if there is at least one common ancestor ENCG object for the third node of the cluster and the fourth node of the cluster.
[0242] At block 1104, if there is no common ancestor ENCG objects for the third node and the fourth node, the first node of the cluster may determine a cost between a top ancestor ENCG object for the third node and a top ancestor ENCG object for the fourth node as the network cost between the third node and the fourth node.
[0243] For example, to manage the network cost matrix of data center, a data center administrator or a node of the data center may create data center’s ENCG hierarchy and ENCG cost matrix. After a cluster is created or changed, the cluster management node (such as CCM) may generate and send the cluster’s ENCG hierarchy and ENCG cost matrix to the first node (such as CISM) of the cluster.
[0244] For example, when a data center has the network topology in FIG. 7b, the administrator or a node may create the data center’s ENCG hierarchy as illustrated in FIG. 8, and the ENCG cost matrix as Table 1 may be configured in the cluster management node (such as CCM) .
[0245] For example, when a (e.g. CIS) cluster is created in the data center as illustrated in FIG. 7b, assuming that the cluster’s nodes are placed in FIG. 9. The cluster management node (such as CCM) may generate the ENCG hierarchy for the cluster as illustrated in FIG. 10, and generate the ENCG cost matrix for the cluster as Table 2, and send them to the first node such as CISM of the cluster.
[0246] For example, with above ENCG hierarchy in FIG. 9 and ENCG cost matrix in FIG. 10, the first node such as CISM of the cluster can generate the first network cost matrix for the cluster with below logic:
[0247] ■ Traverse all nodes and calculate network costs between 2 nodes (named as A and B) :
[0248] ○ Fetch all ancestor ENCG objects for node A. The closest ENCG object to target node A shall be put in the first of an ancestor ENCG objects list for node A;
[0249] ○ Similarly fetch all ancestor ENCG objects for node B; and
[0250] ○ Intersect node A’s ancestor ENCG objects and node B’s ancestor ENCG objects.
[0251] If there are common ancestor ENCG objects, the first ENCG object will be the closest ENCG object to both node A and node B. Then this ENCG object’s internal cost will be the network cost between node A and node B.
[0252] If there is no common ancestor ENCG objects, the first node such as CISM of the cluster can select the last ENCG object from ancestor ENCG objects list for node A and node B, (Naming them as ENCG_A, ENCG_B) . Then the network cost between ENCG_A and ENCG_B, which could be fetched from the ENCG cost matrix for top-layer ENCG objects, will be the network cost between node A and node B.
[0253] The detailed logic can be described with the following pseudo-code:
[0254] Table 3 shows the network cost matrix for the example cluster in FIG. 9.
[0255] Table 3
[0256] FIG. 12 shows a flowchart of a method according to another embodiment of the present disclosure, which may be performed by an apparatus implemented in or at or as a first node of a cluster or communicatively coupled to the first node of the cluster. As such, the apparatus may provide means or modules or circuits for accomplishing various parts of the method 1200 as well as means or modules or circuits for accomplishing other processes in conjunction with other components. For some parts which have been described in the above embodiments, the description thereof is omitted here for brevity.
[0257] At block 1202, the first node of the cluster may receive updated ENCG data for the cluster from the cluster management node.
[0258] At block 1204, the first node of the cluster may generate an updated first network cost matrix for the cluster based on the updated ENCG data for the cluster.
[0259] Blocks 1202 and 1204 are similar to blocks 602 and 604 of FIG. 6.
[0260] FIG. 13 shows a flowchart of a method according to another embodiment of the present disclosure, which may be performed by an apparatus implemented in or at or as a first node of a cluster or communicatively coupled to the first node of the cluster. As such, the apparatus may provide means or modules or circuits for accomplishing various parts of the method 1300 as well as means or modules or circuits for accomplishing other processes in conjunction with other components. For some parts which have been described in the above embodiments, the description thereof is omitted here for brevity.
[0261] At block 1302, the first node of the cluster may schedule a first deployable unit to a second node of the cluster based on the first network cost matrix or the updated first network cost matrix.
[0262] The first deployable unit may be any suitable unit which can be deployed to the node of the cluster. In an embodiment, the first deployable unit may comprise at least one of a pod of Kubernetes, a container, or a virtual machine (VM) . The container may be any suitable container for example as described in various ETSI specifications such as ETSI GS NFV-IFA 040 V4.4.1, ETSI GS NFV-IFA 036 V4.4.1, etc.
[0263] The second node of the cluster may be any suitable node such as bare-metal server or VM. In an embodiment, the second node of the cluster may comprise a container infrastructure service (CIS) node of the cluster or a Network Function Virtualized Infrastructure (NFVI) node of the cluster.
[0264] The first node of the cluster may schedule the first deployable unit to the second node of the cluster based on the first network cost matrix or the updated first network cost matrix in various ways e.g. to enable the total network cost is lowest.
[0265] In an embodiment, the first node of the cluster may schedule the first deployable unit to the second node of the cluster further based on any other criterion such as traffic between two deployable unit, load information of a node of the cluster, anti-affinity policy, affinity policy, etc.
[0266] In an embodiment, the first node of the cluster may compute a total network cost between a candidate node of the cluster and all nodes of the cluster that have instantiated second deployable units based on the first network cost matrix or the updated first network cost matrix and determine a node from one or more candidate nodes of the cluster to instantiate the first deployable unit based on respective total network costs computed for the one or more candidate nodes.
[0267] The second deployable units may be any suitable units which can be deployed to the nodes of the cluster. In an embodiment, the second deployable units may comprise at least one of a pod of Kubernetes, a container, or a virtual machine (VM) .
[0268] In an embodiment, the first deployable unit and / or the second deployable units may belong to a same network group and their internal traffic may be bigger than a threshold. In this case, the first node may schedule the second deployable units to one or more nodes of the cluster based on the first network cost matrix or the updated first network cost matrix.
[0269] In an embodiment, the total network cost between the determined node and the all nodes of the cluster that have instantiated second deployable units may be lowest among the respective total network costs computed for the one or more candidate nodes. In other words, the first node of the cluster may select a node for which the computed total network cost is lowest to instantiate the first deployable unit.
[0270] In an embodiment, the candidate node of the cluster may be required to satisfy a predefined condition.
[0271] The predefined condition may be any suitable condition for example depending on different resource requirement, affinity group policy, anti-affinity-group policy, or other scheduling policy.
[0272] In an embodiment, the predefined condition may comprise at least one of resource requirement or an anti-affinity policy (such as pod anti-affinity policy) .
[0273] In an embodiment, the candidate node may be required to satisfy resource requirement. For example, the candidate node may be required to have sufficient resource to instantiate the first deployable unit.
[0274] The candidate node may be required to satisfy affinity policy or anti-affinity policy. For example, when anti-affinity policy exists between deployable unit 1 and deployable unit 2, the deployable unit 1 and deployable unit 2 is required to not be instantiated on the same node of the cluster. When affinity policy exists between deployable unit 3 and deployable unit 4, the deployable unit 3 and deployable unit 4 is required to be instantiated on the same node of the cluster.
[0275] The candidate node may be required to satisfy pod anti-affinity policy. As defined by Kubernetes, the podAntiAffinity rule may take the form "this Pod should not run in an X if that X is already running one or more Pods that meet rule Y" , where X is a topology domain like node, rack, cloud provider zone or region, or similar and Y is the rule Kubernetes tries to satisfy. For example, the CNF owner may group containers with heavy internal traffic and pass the network-group information to CISM.
[0276] For example, when scheduling the first deployable unit, all available nodes of the cluster will be scored by a network cost aware scheduling algorithm. After all available nodes are scored, the node with least score will be selected to instantiate the first deployable unit.
[0277] Formula 1 shows an example of network cost aware scheduling method
[0278] k: container / pod in the same network-group
[0279] Wk: CIS node who hosts container / pod k
[0280] W: CIS node being scored
[0281] Network cost between Wk and W
[0282] Formula 2 shows another example of network cost aware scheduling method
[0283] k: container / pod in the same network-group
[0284] Wk: CIS node who hosts container / pod k
[0285] W: CIS node being scored
[0286] Network cost between Wk and W
[0287] mk denotes a weight for the mk may be determined by using any suitable methods.
[0288] In Formulas 1 and 2, the network cost matrix of the cluster may be the mandatory input. Note that in addition to Formulas 1 and 2, any other suitable Formulas using the network cost matrix of the cluster as input may be possible.
[0289] For example, to configure and manage the network cost matrix of the (e.g. CIS) cluster, the administrator or the cluster management node may configure data center’s ENCG data at day-0. And when a cluster is created or changed, the cluster management node may generate cluster’s ENCG data and send it to the first node of the cluster. The cluster’s ENCG data may include cluster’s ENCG hierarchy and / or cluster’s ENCG cost matrix.
[0290] FIG. 14 shows a flowchart of a method according to another embodiment of the present disclosure, which may be performed by an apparatus implemented in or at or as a first node of a cluster or communicatively coupled to the first node of the cluster. As such, the apparatus may provide means or modules or circuits for accomplishing various parts of the method 1400 as well as means or modules or circuits for accomplishing other processes in conjunction with other components. For some parts which have been described in the above embodiments, the description thereof is omitted here for brevity.
[0291] At block 1402, the first node of the cluster may obtain network group information comprising at least two deployable units with internal traffic bigger than a threshold.
[0292] The threshold may be any suitable value which can be determined in various ways e.g. by an administrator or the cluster management node.
[0293] The first node of the cluster may obtain the network group information in various ways for example from another network node, a cloud admin, a cluster owner, CNF manager / orchestrator (e.g. ETSI VNFM / NFVO) or determined by itself, etc.
[0294] For example, considering the possibility that not all (e.g. CNF) containers need to communicate with each other, to keep the flexibility of (e.g. CNF) containers placement, the network cost aware scheduling method may only be effective on (e.g. CNF) containers with heavy internal traffic. Hereby, it requires e.g. (e.g. CNF) owner or another network node to send (e.g. CNF) containers’ internal communication information to the first node of the cluster. The expected way is grouping containers with heavy internal traffic together and sending the network group information to the first node of the cluster.
[0295] In an embodiment, when the first deployable unit is any one of the at least two deployable units, the first deployable unit is scheduled to the second node of the cluster based on the first network cost matrix or the updated first network cost matrix.
[0296] FIG. 15 shows a flowchart of a method according to another embodiment of the present disclosure, which may be performed by an apparatus implemented in or at or as a cluster management node or communicatively coupled to the cluster management node. As such, the apparatus may provide means or modules or circuits for accomplishing various parts of the method 1500 as well as means or modules or circuits for accomplishing other processes in conjunction with other components. For some parts which have been described in the above embodiments, the description thereof is omitted here for brevity.
[0297] At block 1502, the cluster management node may obtain equal network cost group (ENCG) data for a cluster.
[0298] In an embodiment, the ENCG data for the cluster may comprise at least one of first information regarding at least one ENCG hierarchy for the cluster or a second network cost matrix among at least one top ENCG object of the at least one ENCG hierarchy for the cluster.
[0299] The cluster management node may obtain the ENCG data for the cluster in various ways. For example, the cluster management node may obtain the ENCG data for the cluster from another network node such as ENCG hierarchy management node or from an operator of the data center network. Alternatively, the cluster management node may maintain / obtain the topology information of the network and cluster information and then generate the ENCG data for the cluster based on the topology information of the network and the cluster information.
[0300] At block 1504, the cluster management node may send the ENCG data for the cluster to a first node of the cluster.
[0301] In an embodiment, a network cost may comprise at least one of a network distance, a network latency, or network resource consumption.
[0302] In an embodiment, the cluster may comprise a container infrastructure service (CIS) cluster or an NFVI cluster.
[0303] In an embodiment, the first node of the cluster may comprise a Container Infrastructure Service Manager node or a Virtualized Infrastructure Manager (VIM) node.
[0304] In an embodiment, the cluster management node may comprise a CIS cluster management node or an NFVI cluster management node.
[0305] In an embodiment, multiple nodes at a symmetric position may be grouped as an ENCG object.
[0306] In an embodiment, an ENCG object of the at least one ENCG hierarchy for the cluster may comprise at least one of an identifier of the ENCG object, an identifier of a node connected to the ENCG object, an identifier of an ENCG object connected to the ENCG object, an internal network cost of the ENCG object, or a network cost to another ENCG object of the at least one ENCG hierarchy for the cluster.
[0307] In an embodiment, the cluster may be deployed in a data center network.
[0308] In an embodiment, the data center network may comprise a Spine-and-Leaf network.
[0309] FIG. 16 shows a flowchart of a method according to another embodiment of the present disclosure, which may be performed by an apparatus implemented in or at or as a cluster management node or communicatively coupled to the cluster management node. As such, the apparatus may provide means or modules or circuits for accomplishing various parts of the method 1600 as well as means or modules or circuits for accomplishing other processes in conjunction with other components. For some parts which have been described in the above embodiments, the description thereof is omitted here for brevity.
[0310] At block 1602, the cluster management node may obtain updated ENCG data for the cluster.
[0311] In an embodiment, the updated ENCG data for the cluster may comprise at least one of updated first information regarding at least one ENCG hierarchy for the cluster or a updated second network cost matrix among at least one top ENCG object of the at least one ENCG hierarchy for the cluster.
[0312] The cluster management node may obtain the updated ENCG data for the cluster in various ways. For example, the cluster management node may obtain the updated ENCG data for the cluster from another network node such as ENCG hierarchy management node or from an operator of the data center network. Alternatively, the cluster management node may maintain / obtain the topology information of the network and cluster information and then generate the updated ENCG data for the cluster based on the topology information of the network and the cluster information.
[0313] At block 1604, the cluster management node may send the updated ENCG data for the cluster to the first node of the cluster.
[0314] FIG. 17 shows a flowchart of a method according to another embodiment of the present disclosure, which may be performed by an apparatus implemented in or at or as a cluster management node or communicatively coupled to the cluster management node. As such, the apparatus may provide means or modules or circuits for accomplishing various parts of the method 1700 as well as means or modules or circuits for accomplishing other processes in conjunction with other components. For some parts which have been described in the above embodiments, the description thereof is omitted here for brevity.
[0315] At block 1702, the cluster management node may obtain second information regarding at least one ENCG hierarchy for a network.
[0316] The network may be any suitable network such as data center network.
[0317] The cluster management node may obtain the second information in various ways. For example, the cluster management node may obtain the second information from another network node such as ENCG hierarchy management node or from an operator of the data center network. Alternatively, the cluster management node may maintain / obtain the topology information of the network and / or cluster information and then generate the second information based on the topology information of the network and / or the cluster information.
[0318] At block 1704, the cluster management node may obtain a third network cost matrix among at least one top ENCG object of the at least one ENCG hierarchy for the network.
[0319] The cluster management node may obtain the third network cost matrix in various ways. For example, the cluster management node may obtain the third network cost matrix from another network node such as ENCG hierarchy management node or from an operator of the data center network. Alternatively, the cluster management node may maintain / obtain the topology information of the network and / or cluster information and then generate the third network cost matrix based on the topology information of the network and / or the cluster information.
[0320] In an embodiment, the ENCG data for the cluster and / or the updated ENCG data for the cluster may be obtained based on the second information and the third network cost matrix.
[0321] In an embodiment, an ENCG object of the at least one ENCG hierarchy for the network may comprise at least one of an identifier of the ENCG object, an identifier of a node connected to the ENCG object, an identifier of an ENCG object connected to the ENCG object, an internal network cost of the ENCG object, or a network cost to another ENCG object of the at least one ENCG hierarchy for the cluster.
[0322] In an embodiment, the cluster management node may obtain updated second information and an updated third network cost matrix.
[0323] FIG. 18 shows a flowchart of a method according to another embodiment of the present disclosure, which may be performed by an apparatus implemented in or at or as a cluster management node or communicatively coupled to the cluster management node. As such, the apparatus may provide means or modules or circuits for accomplishing various parts of the method 1800 as well as means or modules or circuits for accomplishing other processes in conjunction with other components. For some parts which have been described in the above embodiments, the description thereof is omitted here for brevity.
[0324] At block 1802, the cluster management node may obtain change information of the cluster by an event subscription or a polling method.
[0325] For example. the cluster management node may send a request for subscribing an event of a virtual machine to a virtual infrastructure manager and receive a first response from the virtual infrastructure manager. The first response may comprise the subscription result for the first request.
[0326] The virtual infrastructure manager may be responsible for the management of virtualized resources that can be used for the cluster. For example, the virtual infrastructure manager may be VIM as described in ETSI GS NFV-IFA 036 V4.3.1.
[0327] For example, when an event of a virtual machine for the cluster is detected or occurs, the virtual infrastructure manager may send event information to the cluster management node. Then the cluster management node may determine whether the cluster’s ENCG hierarchy and / or the cluster’s ENCG cost matrix is required to be updated to the first node of the cluster.
[0328] FIG. 19 shows a flowchart of a method according to another embodiment of the present disclosure, which may be performed by an apparatus implemented in or at or as a cluster management node or communicatively coupled to the cluster management node. As such, the apparatus may provide means or modules or circuits for accomplishing various parts of the method 1900 as well as means or modules or circuits for accomplishing other processes in conjunction with other components. For some parts which have been described in the above embodiments, the description thereof is omitted here for brevity.
[0329] At block 1902, the cluster management node may send a first request for unsubscribing an event of a deleted virtual machine to a virtual infrastructure manager.
[0330] At block 1904, the cluster management node may receive a first response from the virtual infrastructure manager.
[0331] The first response may comprise an un-subscription result for the second request.
[0332] In an embodiment, when a virtual machine for the cluster is detected, the cluster management node may send a second request for unsubscribing an event of the deleted virtual machine to the virtual infrastructure manager.
[0333] FIG. 20 shows a flowchart of creating a CIS cluster according to an embodiment of the present disclosure.
[0334] 1) The Consumer triggers the creation of a CIS cluster towards the CCM. The Consumer can be either the OSS, the NFVO or another entity managing the infrastructure for a Service Provider. The Consumer provides the necessary information for the desired CIS cluster, e.g. resource requirements, affinity constraints via a CIS Cluster Descriptor (CCD) . Additional information such as initial number of CIS cluster nodes and placement constraints can be part of the parameters of the Create CIS Cluster Request command. The CCM further determines the resource management requests towards the VIM according to the above information from the CCD and request command.
[0335] Steps 2 to 12 describe the infrastructure resource management in case of a virtual CIS cluster, first network resources then compute resources and storage resources. There can be loops or collective operations.
[0336] The order of resource allocation can vary and some steps can be executed in parallel.
[0337] Before the CCM interacts with the VIM for resource management (in case of VMs) related to a CIS cluster, the CCM requests the NFVO to grant the process of resource management.
[0338] 2) The CCM requests the creation of network resources for the CIS cluster nodes networks from the VIM (e.g. by using Allocate Virtualized Network Resource operation as specified in ETSI GS NFV-IFA 005 V4.4.1) .
[0339] 3) The VIM creates the network resources and allocates them for the CIS cluster.
[0340] 4) The VIM responds with the creation of and provides the CCM with the resource information.
[0341] 5) The CCM requests the creation of compute resources (VMs) from the VIM to create CIS cluster nodes (e.g. by using Allocate Virtualized Compute Resource operation as specified in ETSI GS NFV-IFA 005 V4.4.1) .
[0342] 6) The VIM creates the compute resources (VMs) and allocates them for the CIS cluster.
[0343] 7) The VIM responds about the VM creation and provides the CCM with the resource information.
[0344] 8) The CCM sends a request for subscribing VM (s) event to VIM.
[0345] 9) The CCM receives a response comprising subscription (s) acknowledged.
[0346] 10) The CCM requests the creation of storage resources from the VIM (e.g. by using Allocate Virtualized Storage Resource operation as specified in ETSI GS NFV-IFA 005 V4.4.1) .
[0347] These storage resources are for use for the whole CIS cluster.
[0348] 11) The VIM creates the storage resources and allocates them for the CIS cluster.
[0349] 12) The VIM responds about the creation and provides the CCM with the storage resource information.
[0350] Steps 13 to 18 describe the infrastructure resource management in case of a bare-metal CIS cluster. There can be loops or collective operations.
[0351] The order of resource allocation can vary and some steps can be executed in parallel.
[0352] Before the CCM internally performs resource management (in case of bare-metal servers) related to a CIS cluster, the CCM requests the NFVO to grant the process of resource management.
[0353] 13) The CCM can have internally a pool of compute resources from which it allocates bare-metal servers or can use a separate entity to manage a server pool, to create the CIS cluster nodes.
[0354] 14) The CCM can get storage resource e.g. by allocating storage from a storage server.
[0355] 15) In some cases, separate network resources are necessary (which are not managed by the VIM) for the realization of the CIS cluster nodes networks enabling the connectivity of the bare-metal servers allocated for the CIS cluster. The CCM executes necessary CIS cluster node network configuration e.g. using SDN.
[0356] 16) In some cases of mixed environments (e.g. with VM-based VNFs hosted on the NFVI) additional network resources from the VIM provide the connectivity between the bare-metal CIS cluster and other clusters or infrastructure networks. The CCM requests these resources from the VIM.
[0357] 17) The VIM creates the network resources and allocates them for the CIS cluster.
[0358] This includes the necessary network resources to enable the CCM to connect to the CIS cluster.
[0359] 18) The VIM confirms the creation and provides the CCM with the resource information.
[0360] Steps 19 to 24 describe the instantiation of CISM and CIS instances on the previously allocated resources. The order of the steps can vary and some steps can be executed in parallel.
[0361] 19) The CCM instantiates CISM instance (s) on some CIS cluster nodes according to the information in the CIS cluster descriptors (CCD and CIS Cluster Node Descriptor (CCND) ) and in the parameters of the command. In case of VMs, this can be done e.g. by deploying an image, in case of bare-metal servers e.g. by installing a boot image.
[0362] A CISM instance can also share its software image with a CIS instance.
[0363] 20) The CCM starts the software of the CISM instance (s) and executes necessary configuration. The CCM may deploy a network-cost-aware scheduler in CISM.
[0364] This includes to establish necessary peering (e.g. communication configuration) between the CCM, CISM and CIS instances.
[0365] 21) The CCM requests the CISM (see CismCisInsMgt. 001) to instantiate the CIS instances on the remaining CIS cluster nodes according to the information from CCND and parameters of the command.
[0366] The instantiation steps (step 20 and step 21) include all necessary initial configuration for the corresponding CIS cluster nodes.
[0367] 22) The CISM performs the main steps for instantiation, configuration and networking of the CIS instance.
[0368] 23) The CISM responds with the CIS instance's instantiation.
[0369] 24) Finally, additional configuration can be performed, e.g. for the CIS cluster nodes network and for cluster external networks and interfaces of the CIS cluster. The CCM may create a label for each CIS node. CCM may send ENCG data to CISM, which includes CIS cluster’s ENCG hierarchy and CIS cluster’s ENCG cost matrix.
[0370] The final configuration step (step 24) includes all necessary activities regarding enabling the connectivity of the CIS cluster towards NFV-MANO entities.
[0371] 25) The CCM notifies the Consumer about the successful CIS cluster creation providing necessary information about the CIS cluster and the CISM instance, e.g. capabilities and a CIS cluster identification.
[0372] Steps 8 and 9 are newly added according to embodiments of the present disclosure. Steps 20 and 24 are amendments for steps 18 and 22 of Figure B. 2.5-1 of ETSI GS NFV-IFA 036 V4.3.1 according to embodiments of the present disclosure. The other steps may be same as the corresponding steps of Figure B. 2.5-1 of ETSI GS NFV-IFA 036 V4.3.1.
[0373] FIG. 21 shows a flowchart of scaling out a CIS cluster according to an embodiment of the present disclosure.
[0374] 1) The Consumer triggers scaling out of a CIS cluster. The Consumer can be the OSS, the NFVO or another entity managing the infrastructure for a Service Provider. The Consumer provides the necessary information for the desired new size of the CIS cluster, e.g. requirements of the desired additional resources.
[0375] The Consumer decides on the scaling out using performance data, expected load changes or other inputs.
[0376] 2) In the case the CIS cluster was not created as an NS, the CCM creates the desired additional CIS cluster resources as it is described in clause B. 2.5 of ETSI GS NFV-IFA 036 V4.3.1, steps 2 to 16.
[0377] In this case, this includes that the CCM requests the NFVO to grant the process of resource management.
[0378] 3) The CCM sends a request for subscribing newly created VM event (s) to VIM and receives a response comprising subscription (s) acknowledged.
[0379] 4) In the case the CIS cluster was created as an NS, the CCM uses an NS scale out operation with similar steps as in the CIS cluster creation described in clause B. 3.5 of ETSI GS NFV-IFA 036 V4.3.1, steps 2 to 4.
[0380] The steps 2 and 3 include the necessary resources for the connectivity of additional resources.
[0381] 5) The CCM sends a request for subscribing newly created VM event (s) to VIM and receives a response comprising subscription (s) acknowledged.
[0382] 6) The CCM completes the instantiation of additional CIS and / or CISM instances.
[0383] In the case the CIS cluster was not created as an NS, these actions are similar to steps 17 to 21 in clause B. 2.5 of ETSI GS NFV-IFA 036 V4.3.1, in case of a CIS cluster that was created as an NS, the steps are similar to steps 5 to 8 in clause B. 3.5 of ETSI GS NFV-IFA 036 V4.3.1.
[0384] This step includes operations on the additional CIS and / or CISM instances that are executed by the CISM, which is also aware of any MCCOs (e.g. representing daemon objects) applied in the CIS cluster and triggers necessary actions.
[0385] 7.1) The CCM may create a label for a new CIS node.
[0386] 7.2) The CCM may send updated ENCG data to CISM if necessary, which includes CIS cluster’s ENCG hierarchy and CIS cluster’s ENCG cost matrix.
[0387] 8) Finally, additional configuration can be performed, e.g. for the CIS cluster nodes network and for cluster external networks and interfaces of the CIS cluster.
[0388] 9) CCM notifies the Consumer about the successful CIS cluster scaling providing necessary information e.g. the new CIS cluster capacity.
[0389] 10) CCM also sends notification to other subscribers about the successful scaling of the CIS cluster providing similar information.
[0390] Steps 3, 5, 7.1 and 7.2 are newly added according to embodiments of the present disclosure. The other steps are same as the corresponding steps of Figure B. 6.5-1 of ETSI GS NFV-IFA 036 V4.3.1.
[0391] FIG. 22 shows a flowchart of scaling in a CIS cluster according to an embodiment of the present disclosure.
[0392] 1) The Consumer triggers scaling in of a CIS cluster. The Consumer can be the OSS, the NFVO or another entity managing the infrastructure for a Service Provider. The Consumer provides the necessary information for the desired deleted resources.
[0393] 2) In the case the CIS cluster was not created as an NS, the CCM sends a message for deleting the scaling resources to the VIM.
[0394] 3) The CCM sends a request for unsubscribing deleted VM event (s) to VIM and receives a response comprising un-subscription (s) acknowledged.
[0395] 4) In the case the CIS cluster was created as an NS, the CCM uses an NS scale in operation.
[0396] 5) The CCM sends a request for unsubscribing deleted VM event (s) to VIM and receives a response comprising un-subscription (s) acknowledged.
[0397] 6) The CCM completes un-instantiation of CIS and / or CISM instance (s) .
[0398] 7) The CCM may send updated ENCG data to CISM if necessary, which includes CIS cluster’s ENCG hierarchy and / or CIS cluster’s ENCG cost matrix.
[0399] 8) Finally, additional configuration can be performed, e.g. for the CIS cluster nodes network and for cluster external networks and interfaces of the CIS cluster.
[0400] 9) CCM notifies the Consumer about the successful CIS cluster scaling in.
[0401] 10) CCM also sends notification to other subscribers about the successful scaling in of the CIS cluster.
[0402] FIG. 23 shows a flowchart of migrating or evacuating a virtual CIS node according to an embodiment of the present disclosure.
[0403] 1) The VIM send a VM migrated / evacuated event to the CCM.
[0404] 2) The CCM sends an updated CIS node label to CISM.
[0405] 3) The CCM may send updated ENCG data to CISM if necessary, which includes CIS cluster’s ENCG hierarchy and CIS cluster’s ENCG cost matrix.
[0406] FIG. 24 shows a flowchart of instantiating CNF workloads according to an embodiment of the present disclosure.
[0407] 1) CNF user (VNFM / NFVO) sends a message for instantiating workloads to CISM with Kube-scheduler.
[0408] Steps 2-6 may be looped for each pod in workloads.
[0409] 2) CISM with Kube-scheduler calls existing filters e.g. Anti-affinity filter.
[0410] 3) CISM with Kube-scheduler sends a message to CISM with scheduler plugin to call PreScore () function to fetch instantiated pods with matched network-soft-affinity policy.
[0411] 4) CISM with Kube-scheduler sends a message to CISM with scheduler plugin to call Score () function to score all candidate nodes <total network cost>.
[0412] 5) CISM with Kube-scheduler sends a message to CISM with scheduler plugin to call NormalizeScore () function to normalize the total network costs of all candidate nodes.
[0413] 6) CISM with Kube-scheduler instantiates pod on the best node based on the normalized total network costs of all candidate nodes.
[0414] 7) CISM with Kube-scheduler sends a message indicating workloads instantiated to the CNF user.
[0415] FIG. 24 extends step 21 of Figure B. 7.5-1, and step 6 of Figure B. 5.5-1 in ETSI GS NFV-IFA 036 V4.3.1.
[0416] FIG. 25 shows an example of an initial state of network topology of CIS cluster according to an embodiment of the present disclosure.
[0417] As shown in FIG. 25, the network topology comprises one spine switch, two leaf switches and four computers. Each leaf switch is connected to the spine switch and two computers. Note that any other suitable data center network topology is possible. Any other suitable numbers of spine switches, leaf switches and computers are possible.
[0418] The CIS cluster comprises eight notes. Node-11 and node-12 are created in computer 1. Node-21 and node-22 are created in computer 2. Node-31 and node-32 are created in computer 3. Node-41 and node-42 are created in computer 4.
[0419] At day-0, the cloud administrator or a node may configure CCM with data center’s ENCG data, which includes data center’s ENCG hierarchy and data center’s ENCG cost matrix.
[0420] Each physical server (or computer) may be identified by an identifier (ID) or a hostname. Each leaf switch (or each pair of leaf switches) may be identified by an ID. If there are middle-layer switches between leaf switches and spine switches, each middle-layer switch (or each pair of middle-layer switches) may be identified by an ID.
[0421] For each leaf switch (or each pair of leaf switches) , an ENCG object may be created with at least one of following information:
[0422] ○ Leaf switch’s ID,
[0423] ○ The connected physical servers’ ID / hostname, or
[0424] ○ The internal network cost.
[0425] If there are middle-layer switches, ENCG object for each middle-layer switches may be created with at least one of following information:
[0426] ○ connected leaf switches’ ENCG objects, or
[0427] ○ The internal network cost.
[0428] The ENCG cost matrix among top-layer ENCG objects (created in above step) may be defined for example by the cloud administrator.
[0429] As the example data center in FIG. 25, the cloud administrator or other network node needs to configure the ENCG hierarchy (as FIG. 8) and ENCG cost matrix (as Table 1) in CCM:
[0430] ENCG “leaf-1” :
[0431] ○ Members: computer-1, computer-2, computer-11, computer-12,
[0432] ○ Internal cost: 10 (Evaluated by cloud admin) .
[0433] ENCG “leaf-2” :
[0434] ○ Members: computer-3, computer-4, computer-13, computer-14,
[0435] ○ Internal cost: 10.
[0436] ENCG “leaf-3” :
[0437] ○ Members: computer-5, computer-6, computer-15, computer-16,
[0438] ○ Internal cost: 10.
[0439] ENCG cost matrix among top-level ENCG objects “leaf-1” , “leaf-2” and “leaf-3” , (as Table 1) . The value in Table 1 may be evaluated by cloud administrator.
[0440] As described in step 24 of FIG. 20, when creating CIS cluster, CCM may send CIS cluster’s ENCG hierarchy and ENCG cost matrix to CISM with at least one of following steps:
[0441] ■ CCM may label all CIS nodes:
[0442] ○ Label bare-metal CIS nodes with the connected leaf switch’s ID,
[0443] ○ Label virtual CIS nodes with its hypervisor ID / hostname and hypervisor’s connected leaf switch’s ID.
[0444] ■ For bare-metal CIS nodes involved in same data center’s ENCG object, CCM may create ENCG objects in CISM with at least one of following information:
[0445] ○ Filter rule, e.g., filtered by label of leaf switch’s ID,
[0446] ○ The internal network cost, which can be fetched from corresponding data center’s ENCG object.
[0447] ■ For virtual CIS nodes hosted by same hypervisor, CCM may create ENCG objects with at least one of following information:
[0448] ○ Filter rules, e.g., filtered by label of hypervisor’s ID / hostname
[0449] ○ The internal network cost, which shall be pre-defined in CCM,
[0450] ○ Note: if there is only one virtual CIS node in each hypervisor, (e.g., anti-affinity rule is adopted for virtual CIS nodes) , this step could be skipped,
[0451] ○ Note: If virtual CIS nodes communication goes through leaf switch, (e.g., Single Root I / O Virtualization (SR-IOV) Virtual Function (VF) is used as virtual network interface card (NIC) of virtual CIS node) , this step could be skipped.
[0452] ■ For hypervisors involved in same data center’s ENCG object, CCM may create ENCG objects with least one of following information:
[0453] ○ The relevant hypervisors’ ENCG objects defined in CISM, if created in previous step
[0454] ○ Filter rules, e.g., filtered by label of hypervisor’s ID / hostname, if previous step is skipped, ○ The internal network cost, which can be fetched from corresponding data center’s ENCG object.
[0455] ■ If there are middle-layer switches, and there are physical CIS nodes connected to the leaf switches, CCM may create ENCG objects with least one of following information:
[0456] ○ The relevant leaf switches’ ENCG objects created in previous step,
[0457] ○ The internal network cost, which can be fetched from corresponding data center’s ENCG object.
[0458] ■ If there are middle-layer switches, and there are virtual CIS nodes connected to the leaf switches, CCM may create ENCG objects with least one of following information:
[0459] ○ Middle-layer switch’s ID,
[0460] ○ The relevant leaf switches’ ENCG objects created in previous step,
[0461] ○ The internal network cost, which can be fetched from corresponding data center’s ENCG object.
[0462] ■ CCM may create the ENCG cost matrix among top-layer ENCG objects, which could be fetched from data center’s top-layer ENCG cost matrix.
[0463] For the example CIS cluster as FIG. 25, CCM performs the following configurations on CISM via Kubernetes API:
[0464] ■ CCM may label all CIS nodes:
[0465] ○ Node-11: hypervisor=computer-1, leaf=leaf-1
[0466] ○ Node-12: hypervisor=computer-1, leaf=leaf-1
[0467] ○ Node-21: hypervisor=computer-2, leaf=leaf-1
[0468] ○ Node-22: hypervisor=computer-2, leaf=leaf-1
[0469] ○ Node-31: hypervisor=computer-3, leaf=leaf-2
[0470] ○ Node-32: hypervisor=computer-3, leaf=leaf-2
[0471] ○ Node-41: hypervisor=computer-4, leaf=leaf-2
[0472] ○ Node-42: hypervisor=computer-4, leaf=leaf-2
[0473] ■ CCM may declare CRD (Custom Resource Definition)`EqualNetworkCostGroup` . The detailed definition refers to attachment. Note: herein, ENCG object is implemented as `EqualNetworkCostGroup` object in Kubernetes.
[0474] ■ CCM may create `EqualNetworkCostGroup` object “computer-1” :
[0475] ○ Filter rule: with label “hypervisor=computer-1”
[0476] ○ Internal cost: 2
[0477] “2” refers network cost of compute’s virtual switch. It’s pre-configured in CCM by cloud administrator.
[0478] ■ CCM may create `EqualNetworkCostGroup` object “computer-2” :
[0479] ○ Filter rule: with label “hypervisor=computer-2”
[0480] ○ Internal cost: 2
[0481] ■ CCM may create `EqualNetworkCostGroup` object “computer-3” :
[0482] ○ Filter rule: with label “hypervisor=computer-3”
[0483] ○ Internal cost: 2
[0484] ■ CCM may create `EqualNetworkCostGroup` object “computer-4” :
[0485] ○ Filter rule: with label “hypervisor=computer-4”
[0486] ○ Internal cost: 2
[0487] ■ CCM may create `EqualNetworkCostGroup` object “leaf-1” :
[0488] ○ With ENCG members: “computer-1” , “computer-2”
[0489] ○ Internal cost: 12 (10 + 2)
[0490] “10” may be fetched from data center ENCG “leaf-1” internal cost.
[0491] “2” may refer network cost of compute’s virtual switch. It may be pre-configured in CCM by cloud administrator.
[0492] ○ Network cost to “leaf-2” : 22 (20 + 2)
[0493] “20” may be fetched from data center ENCG cost matrix, the one between “leaf-1” and “leaf-2”
[0494] “2” may refer network cost of compute’s virtual switch. The value may be pre-configured in CCM by cloud administrator.
[0495] ■ CCM may create `EqualNetworkCostGroup` object “leaf-2” :
[0496] ○ With ENCG members: “computer-3” , “computer-4”
[0497] ○ Internal cost: 12 (10 + 2)
[0498] ○ Network cost to “leaf-1” : 22 (20 + 2)
[0499] As described in step 7.2 of FIG. 21 and step 7 of FIG. 22, and step 2 and step 3 of FIG. 23, when scaling out / scaling in CIS cluster or when virtual CIS nodes are migrated or evacuated to different hypervisors, CCM may update CIS cluster’s ENCG hierarchy and / or CIS cluster’s ENCG cost matrix in CISM via Kubernetes API:
[0500] ■ CCM may label all the newly created CIS nodes.
[0501] ■ CCM may update the labels for the migrated / evacuated virtual CIS nodes.
[0502] ■ For newly created virtual CIS nodes or bare-metal CIS nodes, and for new hypervisor of evacuated / migrated virtual CIS nodes, CCM may update or create ENCG object if necessary.
[0503] ○ For nested higher layer ENCG object, repeat this step
[0504] ■ For deleted bare-metal CIS nodes or virtual CIS nodes, and for old hypervisor of evacuated / migrated virtual CIS nodes, if their connected ENCG object contains no member after removing those nodes, CCM may delete the corresponding ENCG objects.
[0505] ○ For nested higher layer ENCG object, repeat this step
[0506] ■ If any top-layer ENCG is deleted or any top-layer ENCG object is newly added, CCM may update top-layer ENCG objects’ cost matrix accordingly.
[0507] CISM may generate network cost matrix from ENCG hierarchy and ENCG cost matrix for the network cost aware scheduling method usage.
[0508] Taking CIS cluster illustrated in FIG. 9, with ENCG hierarchy illustrated in FIG. 10 and ENCG cost matrix as illustrated in Table 2, as an example, CISM can calculate network cost matrix as following:
[0509] ■ For nodes hosted by same hypervisor, taking “Node-11” and “Node-12” as example:
[0510] ○ Ancestor ENCG objects for “Node-11” are “computer-1” and “leaf-1” .
[0511] ○ Ancestor ENCG objects for “Node-12” are “computer-1” and “leaf-1” .
[0512] ○ The closest common ENCG object is “computer-1” :
[0513] Network cost between “Node-11” and “Node-12” is the internal cost of ENCG object “computer-1” , which is “2” .
[0514] ■ For nodes hosted by different hypervisors, but connected to same leaf switch, taking “Node-11” and “Node-21” as example:
[0515] ○ Ancestor ENCG objects for “Node-11” are “computer-1” and “leaf-1” .
[0516] ○ Ancestor ENCG objects for “Node-21” are “computer-2” and “leaf-1” .
[0517] ○ The closest common ENCG object is “leaf-1” :
[0518] Network cost between “Node-11” and “Node-21” is the internal cost of ENCG object “leaf-1” , which is “12” .
[0519] ■ For nodes hosted by different hypervisors, and connected to different leaf switches, taking “Node-11” and “Node-31” as example:
[0520] ○ Ancestor ENCG objects for “Node-11” are “computer-1” and “leaf-1” .
[0521] ○ Ancestor ENCG objects for “Node-31” are “computer-3” and “leaf-2” .
[0522] ○ There is no closest common ENCG object:
[0523] Network cost between “Node-11” and “Node-31” is the cost between ENCG object “leaf-1” and “leaf-2” , which is “22” .
[0524] Repeating above logic for all CIS nodes, CISM will generates network cost matrix for this CIS cluster as Table 3.
[0525] When instantiating CNF workloads, for each pod, kube-scheduler will call the network cost aware scheduler plugin in CISM, which will score all available CIS node with Formula 1, as illustrated in FIG. 24.
[0526] The following example illustrates how Formula 1 works. The example assumes that:
[0527] ■ For the CIS cluster as FIG. 9 (simplified in FIG. 25) , the 8 virtual CIS nodes are deployed on 4 VIM compute nodes:
[0528] ○ Network cost matrix is generated as Table 3.
[0529] ○ All CIS nodes have sufficient resources (e.g., Central Processing Unit (CPU) and memory) to instantiate the instantiating CNF pods.
[0530] ■ The instantiating CNF has 4 pods:
[0531] ○ There are heavy traffics among those pods
[0532] ○ To secure high availability, those pods shall be placed on different CIS nodes.
[0533] ■ Hereby, the CNF helm charts are configured as following:
[0534] ○ The anti-affinity policy is configured
[0535] ○ All pods are added into same network-group
[0536] The network-soft-affinity policy is configured in this network-group so that the Kubernetes network cost aware scheduler knows that there are heavy traffics among those pods.
[0537] In Kubernetes, kube-scheduler will instantiate pods one by one. When scheduling the first pod (P1) of this CNF, there is no pod with given anti-affinity policy instantiated, hereby all CIS nodes are available. Since there are no pod with given network-soft-affinity policy instantiated, according to Formula 1, all CIS nodes get score 0. Hereby, each CIS node has equal possibility to be selected. The following 3 branches deduce the different placements for pod P1.
[0538] Branch 1: CIS node "Node-11" is selected to instantiate P1 as shown in Table 4.
[0539] Table 4
[0540] FIG. 26 shows an example of branch 1 pod 1 scheduling result according to an embodiment of the present disclosure. Pod P1 will be scheduled to CIS node "Node-11" , as illustrated in FIG. 26.
[0541] When scheduling the second pod (P2) , there is one pod (P1) with given anti-affinity policy, hereby CIS node “Node-11” is unavailable. Since there is one pod (P1) with given network-soft-affinity policy instantiated, according to Formula 1, CIS node “Node-12” gets least score, as below Table 5.
[0542] Table 5
[0543] FIG. 27 shows an example of branch 1 pod 2 scheduling result according to an embodiment of the present disclosure. Pod P2 will be scheduled to CIS node "Node-12" , as illustrated in FIG. 27.
[0544] When schedule the third pod (P3) , there are 2 pods (P1 and P2) with given anti-affinity policy, hereby CIS nodes “Node-11” and “Node-12” are unavailable. Since there are 2 pods (P1 and P2) with given network-soft-affinity policy instantiated, according to Formula 1, CIS node “Node-21” gets the least score, as below Table 6.
[0545] Table 6
[0546] FIG. 28 shows an example of branch 1 pod 3 scheduling result according to an embodiment of the present disclosure. Pod 3 (P3) will be scheduled to CIS node "Node-21" , as illustrated in FIG. 28.
[0547] When scheduling the fourth pod (P4) , there are 3 pods (P1, P2 and P3) with given anti-affinity policy, hereby CIS nodes “Node-11” , “Node-12” and “Node-21” are unavailable. Since there are 3 pods (P1, P2 and P3) with given network-soft-affinity policy instantiated, according to Formula 1, CIS node “Node-22” gets the least score, as below Table 7.
[0548] Table 7
[0549] FIG. 29 shows an example of branch 1 pod 4 scheduling result according to an embodiment of the present disclosure. Pod 4 (P4) will be scheduled to CIS node "Node-22" , as illustrated in FIG. 29.
[0550] Branch 2: If CIS node "Node-21" is selected to instantiate P1, then "Node-22" will be selected for P2. "Node-11" and "Node-12" will be selected for P3 and P4 respectively. Table 8 shows the detail scores.
[0551] Table 8
[0552] FIG. 30 shows an example of branch 2 scheduling result according to an embodiment of the present disclosure.
[0553] Branch 3: If CIS node "Node-31" is selected to instantiate P1, then "Node-32" will be selected for P2. "Node-41" and "Node-42" will be selected for P3 and P4 respectively. Table 9 shows the detail scores.
[0554] Table 9
[0555] FIG. 31 shows an example of branch 3 scheduling result according to an embodiment of the present disclosure.
[0556] From the three scheduling branches in above example, it could be seen that all pods are scheduled on CIS nodes under same leaf switch. All three placement results avoid internal traffic going through the spine switch, improve internal network quality, and reduce spine switch load.
[0557] FIG. 32 shows an overview of a proposed solution according to an embodiment of the present disclosure.
[0558] At step 3201, a cloud administrator (admin) may configure data center’s ENCG data in CCM e.g. at the day-0 of data center establishment. The proposed solution introduces a hierarchical network cost management method to maintain data center’s network cost matrix efficiently. The network cost aware scheduler plugin is also deployed in a CISM of a CIS cluster.
[0559] At step 3202, when a CIS cluster is dynamically created as required, CCM may use the hierarchical network cost management method to generate CIS cluster’s ENCG data and send the ENCG data to CISM. CISM may turn the received hierarchical network-cost-data into a CIS cluster’s network cost matrix, which will be used by a network cost aware scheduler plugin when instantiating a CNF.
[0560] When a scale of CIS cluster or the network topology is changed, CCM may re-generate the ENCG data and send the updated hierarchical network-cost-data to CISM. CISM may re-generate the CIS cluster’s network cost matrix accordingly.
[0561] In an embodiment, the ENCG data may include CIS cluster’s ENCG hierarchy and ENCG cost matrix.
[0562] In an embodiment, the CIS cluster’s ENCG data are generated based on pre-configured data center’s ENCG data, and CIS cluster’s network topology.
[0563] At step 3203, before instantiating CNF, a CNF owner may prepare Helm chart. The Helm Chart may comprise at least one of network-group information (e.g., Pods with heavy internal traffic) , a scheduling policy (e.g., network-soft-affinity) , and other scheduling policies (e.g., podAntiAffinity) . The network-soft-affinity policy is configured in the network-group so that the Kubernetes network cost aware scheduler knows that there are heavy traffics among those pods. As defined by Kubernetes, the podAntiAffinity rule may take the form "this Pod should not run in an X if that X is already running one or more Pods that meet rule Y" , where X is a topology domain like node, rack, cloud provider zone or region, or similar and Y is the rule Kubernetes tries to satisfy. For example, the CNF owner may group containers with heavy internal traffic and pass the network-group information to CISM.
[0564] At step 3204, the CNF owner may send a message to instantiate CNF on CIS Cluster 1 to CISM.
[0565] At step 3205, the CISM may place CNF pods with the network-cost-aware scheduling method. For example, the newly introduced network cost aware scheduler in CISM may schedule every CNF container to a proper CIS node and make the internal traffic among CNF containers with least total cost. The more containers are scheduled on the same CIS node or CIS nodes under the same leaf switch, the less internal traffic will go through spine switches.
[0566] Embodiments herein afford many advantages, of which a non-exhaustive list of examples follows. In some embodiments herein, with the network cost aware scheduling method, the (e.g. CNF) internal network quality can be improved. In some embodiments herein, the load of top tier (e.g. spine) switches can be reduced. In some embodiments herein, the proposed solution can schedule (e.g. CNF) containers to (e.g. CIS) nodes as closer as possible, to avoid or reduce internal communication going through top tier (e.g. spine) switches. In some embodiments herein, the proposed solution can benefit network cost maintenance and simplify the interface between the cluster management node (e.g. CCM) and the cluster node (e.g. CISM) . The embodiments herein are not limited to the features and advantages mentioned above. A person skilled in the art will recognize additional features and advantages upon reading the following detailed description.
[0567] The following example explains how the network cost aware scheduling method and the hierarchical network cost management method improves the network quality, reduces load of spine switches, benefits network cost maintenance and simplifies CCM and CISM interface.
[0568] Assuming that:
[0569] ■ In a data center, there are 500 physical servers and 50 leaf switches. There are 10 physical servers connected to each leaf switch.
[0570] ■ A middle scale CIS cluster is created in this data center. The CIS cluster has 100 physical CIS nodes connected to 10 leaf switches, and there are 10 CIS nodes connected to each leaf switch.
[0571] ■ Each CIS nodes can instantiate 5 CNF containers.
[0572] ■ When scheduling CNF containers, only after a CIS node is fully occupied, another CIS node can be selected.
[0573] ■ A CNF with 100-containers is going to be instantiated on this CIS cluster. There are full mesh connections among all containers.
[0574] When deploying this CNF, totally 20 CIS nodes will be selected.
[0575] Without network cost aware scheduling method, the worst result will be 2 out of 10 CIS nodes under every leaf switch being selected to instantiate CNF containers. So, each container will have 5 peers with cross-leaf-switch traffic path and 90 peers with cross-spine-switch traffic path. In other words, totally 4,500 (90*100 / 2) internal traffic paths will go through spine switches and 4,750 (4500 + 5*100 / 2) internal traffic paths will go through leaf switches ( “4500” is the number of traffic paths will go through spine switches, as traffic goes through spine switch will also go through leaf switch) .
[0576] With the network cost aware scheduling method introduced herein, then 20 CIS nodes under 2 leaf switches will be selected to instantiate this CNF. So, each container will have 45 peers with cross-leaf-switch traffic path and 50 peers with cross-spine-switch traffic path. In other words, totally 2500 (50*100 / 2) internal traffic paths will go through spine switches and 4750 (2500 + 45*100 / 2) internal traffic paths will go through leaf switches.
[0577] As a result, the number of cross-spine-switch traffic paths will be reduced by 44.5%. Hereby the overall CNF internal network quality will be improved, and the workload of spine switches will be reduced.
[0578] The network cost matrix of CIS cluster is required in network cost aware scheduling method. As the connections of physical servers and CIS nodes are full mesh, there are totally 124,750 (500*499 / 2) connections in this data center and 4,950 (100*99 / 2) connections in the CIS cluster.
[0579] If simply using a 2-dimension array to maintain the network cost matrix, there are totally 124, 750 data needs to be configured and maintained by cloud administrator. And totally 4, 950 data needs to be transferred from CCM to CISM.
[0580] With the hierarchical network cost management method, only ENCG object and network costs among ENCG objects need to be provided and maintained.
[0581] For data center, totally 50 ENCG objects will be created. So, cloud administrator only needs to provide and maintain 1, 775 (50*10 + 50 + 50*49 / 2) data.
[0582] Each ENCG object contains 10 physical servers. This contributes 500 (50*10) data.
[0583] Each ENCG object contains an internal cost. This contributes 50 data.
[0584] Each ENCG object contains network cost to other ENCG objects. This contributes 1,225 (50*49 / 2) data.
[0585] For CIS cluster, 10 ENCG objects need to be transferred by CCM. In other words, CCM needs to transfer 155 (10*10 + 10 + 10*9 / 2) data to CISM.
[0586] Each ENCG object contains 10 physical servers. This contributes 100 (10*10) data.
[0587] Each ENCG object contains an internal cost. This contributes 10 data.
[0588] Each ENCG object contains network cost to other ENCG objects. This contributes 45 (10*9 / 2) data.
[0589] As a result, the complexity of network cost matrix management is tremendously reduced:
[0590] ■ Reduced by 98.6%for data configured by cloud admin
[0591] ■ Reduced by 97.8%for data transferred to CISM
[0592] FIG. 33 is a block diagram showing an apparatus suitable for practicing some embodiments of the disclosure. For example, any one of the first node of the cluster or the cluster management node described above may be implemented as or through the apparatus 3300.
[0593] The apparatus 3300 comprises at least one processor 3321, such as a digital processor (DP) , and at least one memory (MEM) 3322 coupled to the processor 3321. The apparatus 3300 may further comprise a transmitter TX and receiver RX 3323 coupled to the processor 3321. The MEM 3322 stores a program (PROG) 3324. The PROG 3324 may include instructions that, when executed on the associated processor 3321, enable the apparatus 3300 to operate in accordance with the embodiments of the present disclosure. A combination of the at least one processor 3321 and the at least one MEM 3322 may form processing means 3325 adapted to implement various embodiments of the present disclosure.
[0594] Various embodiments of the present disclosure may be implemented by computer program executable by one or more of the processor 3321, software, firmware, hardware or in a combination thereof.
[0595] The MEM 3322 may be of any type suitable to the local technical environment and may be implemented using any suitable data storage technology, such as semiconductor based memory devices, magnetic memory devices and systems, optical memory devices and systems, fixed memories and removable memories, as non-limiting examples.
[0596] The processor 3321 may be of any type suitable to the local technical environment, and may include one or more of general purpose computers, special purpose computers, microprocessors, digital signal processors (DSPs) and processors based on multicore processor architecture, as non-limiting examples.
[0597] In an embodiment where the apparatus is implemented as or at the first node of the cluster, the memory 3322 contains instructions executable by the processor 3321, whereby the first node of the cluster operates according to any step of the methods performed by the first node of the cluster as described above.
[0598] In an embodiment where the apparatus is implemented as or at the cluster management node, the memory 3322 contains instructions executable by the processor 3321, whereby the cluster management node operates according to any step of the methods performed by the cluster management node as described above.
[0599] FIG. 34 is a block diagram showing a first node of a cluster according to an embodiment of the disclosure. As shown, the first node of the cluster 3400 may comprise a first receiving module 3401 configured to receive equal network cost group (ENCG) data for the cluster from a cluster management node. The first node of the cluster 3400 may further comprise a first generating module 3402 configured to generate a first network cost matrix for the cluster based on the ENCG data for the cluster.
[0600] In an embodiment, the first node of the cluster 3400 may further comprise a second receiving module 3403 configured to receive updated ENCG data for the cluster from the cluster management node.
[0601] In an embodiment, the first node of the cluster 3400 may further comprise a second generating module 3404 configured to generate an updated first network cost matrix for the cluster based on the updated ENCG data for the cluster.
[0602] In an embodiment, the first node of the cluster 3400 may further comprise a scheduling module 3405 configured to schedule a first deployable unit to a second node of the cluster based on the first network cost matrix or the updated first network cost matrix.
[0603] In an embodiment, the first node of the cluster 3400 may further comprise an obtaining module 3406 configured to obtain network group information comprising at least two deployable units with internal traffic bigger than a threshold. When the first deployable unit is any one of the at least two deployable units, the first deployable unit may be scheduled to the second node of the cluster based on the first network cost matrix or the updated first network cost matrix.
[0604] In an embodiment, the first node of the cluster 3400 may further comprise a first determining module 3407 configured to, if there is at least one common ancestor ENCG object for a third node of the cluster and a fourth node of the cluster, determine an internal cost of a common ENCG object closest to both the third node and the fourth node as a network cost between the third node and the fourth node.
[0605] In an embodiment, the first node of the cluster 3400 may further comprise a second determining module 3408 configured to, if there is no common ancestor ENCG objects for the third node and the fourth node, determine a cost between a top ancestor ENCG object for the third node and a top ancestor ENCG object for the fourth node as the network cost between the third node and the fourth node.
[0606] FIG. 35 is a block diagram showing a cluster management node according to an embodiment of the disclosure. As shown, the cluster management node 3500 may comprise a first obtaining module 3501 configured to obtain equal network cost group (ENCG) data for a cluster. The cluster management node 3500 may further comprise a first sending module 3502 configured to send the ENCG data for the cluster to a first node of the cluster.
[0607] In an embodiment, the cluster management node 3500 may further comprise a second obtaining module 3503 configured to obtain updated ENCG data for the cluster.
[0608] In an embodiment, the cluster management node 3500 may further comprise a second sending module 3504 configured to send the updated ENCG data for the cluster to the first node of the cluster.
[0609] In an embodiment, the cluster management node 3500 may further comprise a third obtaining module 3505 configured to obtain second information regarding at least one ENCG hierarchy for a network.
[0610] In an embodiment, the cluster management node 3500 may further comprise a fourth obtaining module 3506 configured to obtain a third network cost matrix among at least one top ENCG object of the at least one ENCG hierarchy for the network. The ENCG data for the cluster and / or the updated ENCG data for the cluster is obtained based on the second information and the third network cost matrix.
[0611] In an embodiment, the cluster management node 3500 may further comprise a fifth obtaining module 3507 configured to obtain change information of the cluster by an event subscription or a polling method.
[0612] In an embodiment, the cluster management node 3500 may further comprise a third sending module 3508 configured to send a first request for unsubscribing an event of a deleted virtual machine to a virtual infrastructure manager.
[0613] In an embodiment, the cluster management node 3500 may further comprise a receiving module 3509 configured to receive a first response from the virtual infrastructure manager.
[0614] Further, the exemplary overall commutation system including the terminal device and the network node (such as the first node of the cluster or the cluster management node) will be introduced as below.
[0615] FIG. 36 shows an example of a communication system 9100 in accordance with some embodiments.
[0616] In the example, the communication system 9100 includes a telecommunication network 9102 that includes an access network 9104, such as a radio access network (RAN) , and a core network 9106, which includes one or more core network nodes 9108. The access network 9104 includes one or more access network nodes, such as network nodes 9110a and 9110b (one or more of which may be generally referred to as network nodes 9110) , or any other similar 3rd Generation Partnership Project (3GPP) access nodes or non-3GPP access points. Moreover, as will be appreciated by those of skill in the art, a network node is not necessarily limited to an implementation in which a radio portion and a baseband portion are supplied and integrated by a single vendor. Thus, it will be understood that network nodes include disaggregated implementations or portions thereof. For example, in some embodiments, the telecommunication network 9102 includes one or more Open-RAN (ORAN) network nodes. An ORAN network node is a node in the telecommunication network 9102 that supports an ORAN specification (e.g., a specification published by the O-RAN Alliance, or any similar organization) and may operate alone or together with other nodes to implement one or more functionalities of any node in the telecommunication network 9102, including one or more network nodes 9110 and / or core network nodes 9108.
[0617] Examples of an ORAN network node include an open radio unit (O-RU) , an open distributed unit (O-DU) , an open central unit (O-CU) , including an O-CU control plane (O-CU-CP) or an O-CU user plane (O-CU-UP) , a RAN intelligent controller (near-real time or non-real time) hosting software or software plug-ins, such as a near-real time control application or a non-real time control application, or any combination thereof (the adjective “open” designating support of an ORAN specification) . The network node may support a specification by, for example, supporting an interface defined by the ORAN specification, such as an A1, F1, W1, E1, E2, X2, Xn interface, an open fronthaul user plane interface, or an open fronthaul management plane interface. Moreover, an ORAN access node may be a logical node in a physical node. Furthermore, an ORAN network node may be implemented in a virtualization environment (described further below) in which one or more network functions are virtualized. For example, the virtualization environment may include an O-Cloud computing platform orchestrated by a Service Management and Orchestration Framework via an O-2 interface defined by the O-RAN Alliance or comparable technologies. The network nodes 9110 facilitate direct or indirect connection of user equipment (UE) , such as by connecting UEs 9112a, 9112b, 9112c, and 9112d (one or more of which may be generally referred to as UEs 9112) to the core network 9106 over one or more wireless connections.
[0618] Example wireless communications over a wireless connection include transmitting and / or receiving wireless signals using electromagnetic waves, radio waves, infrared waves, and / or other types of signals suitable for conveying information without the use of wires, cables, or other material conductors. Moreover, in different embodiments, the communication system 9100 may include any number of wired or wireless networks, network nodes, UEs, and / or any other components or systems that may facilitate or participate in the communication of data and / or signals whether via wired or wireless connections. The communication system 9100 may include and / or interface with any type of communication, telecommunication, data, cellular, radio network, and / or other similar type of system.
[0619] The UEs 9112 may be any of a wide variety of communication devices, including wireless devices arranged, configured, and / or operable to communicate wirelessly with the network nodes 9110 and other communication devices. Similarly, the network nodes 9110 are arranged, capable, configured, and / or operable to communicate directly or indirectly with the UEs 9112 and / or with other network nodes or equipment in the telecommunication network 9102 to enable and / or provide network access, such as wireless network access, and / or to perform other functions, such as administration in the telecommunication network 9102.
[0620] In the depicted example, the core network 9106 connects the network nodes 9110 to one or more hosts, such as host 9116. These connections may be direct or indirect via one or more intermediary networks or devices. In other examples, network nodes may be directly coupled to hosts. The core network 9106 includes one more core network nodes (e.g., core network node 9108) that are structured with hardware and software components. Features of these components may be substantially similar to those described with respect to the UEs, network nodes, and / or hosts, such that the descriptions thereof are generally applicable to the corresponding components of the core network node 9108. Example core network nodes include functions of one or more of a Mobile Switching Center (MSC) , Mobility Management Entity (MME) , Home Subscriber Server (HSS) , Access and Mobility Management Function (AMF) , Session Management Function (SMF) , Authentication Server Function (AUSF) , Subscription Identifier De-concealing function (SIDF) , Unified Data Management (UDM) , Security Edge Protection Proxy (SEPP) , Network Exposure Function (NEF) , and / or a User Plane Function (UPF) .
[0621] The host 9116 may be under the ownership or control of a service provider other than an operator or provider of the access network 9104 and / or the telecommunication network 9102, and may be operated by the service provider or on behalf of the service provider. The host 9116 may host a variety of applications to provide one or more service. Examples of such applications include live and pre-recorded audio / video content, data collection services such as retrieving and compiling data on various ambient conditions detected by a plurality of UEs, analytics functionality, social media, functions for controlling or otherwise interacting with remote devices, functions for an alarm and surveillance center, or any other such function performed by a server.
[0622] As a whole, the communication system 9100 of FIG. 36 enables connectivity between the UEs, network nodes, and hosts. In that sense, the communication system may be configured to operate according to predefined rules or procedures, such as specific standards that include, but are not limited to: Global System for Mobile Communications (GSM) ; Universal Mobile Telecommunications System (UMTS) ; Long Term Evolution (LTE) , and / or other suitable 2G, 3G, 4G, 5G standards, or any applicable future generation standard (e.g., 6G) ; wireless local area network (WLAN) standards, such as the Institute of Electrical and Electronics Engineers (IEEE) 802.11 standards (WiFi) ; and / or any other appropriate wireless communication standard, such as the Worldwide Interoperability for Microwave Access (WiMax) , Bluetooth, Z-Wave, Near Field Communication (NFC) ZigBee, LiFi, and / or any low-power wide-area network (LPWAN) standards such as LoRa and Sigfox.
[0623] In some examples, the telecommunication network 9102 is a cellular network that implements 3GPP standardized features. Accordingly, the telecommunications network 9102 may support network slicing to provide different logical networks to different devices that are connected to the telecommunication network 9102. For example, the telecommunications network 9102 may provide Ultra Reliable Low Latency Communication (URLLC) services to some UEs, while providing Enhanced Mobile Broadband (eMBB) services to other UEs, and / or Massive Machine Type Communication (mMTC) / Massive IoT services to yet further UEs.
[0624] In some examples, the UEs 9112 are configured to transmit and / or receive information without direct human interaction. For instance, a UE may be designed to transmit information to the access network 9104 on a predetermined schedule, when triggered by an internal or external event, or in response to requests from the access network 9104. Additionally, a UE may be configured for operating in single-or multi-RAT or multi-standard mode. For example, a UE may operate with any one or combination of Wi-Fi, NR (New Radio) and LTE, i.e. being configured for multi-radio dual connectivity (MR-DC) , such as E-UTRAN (Evolved-UMTS Terrestrial Radio Access Network) New Radio –Dual Connectivity (EN-DC) .
[0625] In the example, the hub 9114 communicates with the access network 9104 to facilitate indirect communication between one or more UEs (e.g., UE 9112c and / or 9112d) and network nodes (e.g., network node 9110b) . In some examples, the hub 9114 may be a controller, router, content source and analytics, or any of the other communication devices described herein regarding UEs. For example, the hub 9114 may be a broadband router enabling access to the core network 9106 for the UEs. As another example, the hub 9114 may be a controller that sends commands or instructions to one or more actuators in the UEs. Commands or instructions may be received from the UEs, network nodes 9110, or by executable code, script, process, or other instructions in the hub 9114. As another example, the hub 9114 may be a data collector that acts as temporary storage for UE data and, in some embodiments, may perform analysis or other processing of the data. As another example, the hub 9114 may be a content source. For example, for a UE that is a VR headset, display, loudspeaker or other media delivery device, the hub 9114 may retrieve VR assets, video, audio, or other media or data related to sensory information via a network node, which the hub 9114 then provides to the UE either directly, after performing local processing, and / or after adding additional local content. In still another example, the hub 9114 acts as a proxy server or orchestrator for the UEs, in particular if one or more of the UEs are low energy IoT devices.
[0626] The hub 9114 may have a constant / persistent or intermittent connection to the network node 9110b. The hub 9114 may also allow for a different communication scheme and / or schedule between the hub 9114 and UEs (e.g., UE 9112c and / or 9112d) , and between the hub 9114 and the core network 9106. In other examples, the hub 9114 is connected to the core network 9106 and / or one or more UEs via a wired connection. Moreover, the hub 9114 may be configured to connect to an M2M service provider over the access network 9104 and / or to another UE over a direct connection. In some scenarios, UEs may establish a wireless connection with the network nodes 9110 while still connected via the hub 9114 via a wired or wireless connection. In some embodiments, the hub 9114 may be a dedicated hub –that is, a hub whose primary function is to route communications to / from the UEs from / to the network node 9110b. In other embodiments, the hub 9114 may be a non-dedicated hub –that is, a device which is capable of operating to route communications between the UEs and network node 9110b, but which is additionally capable of operating as a communication start and / or end point for certain data channels.
[0627] FIG. 37 shows a UE 10200 in accordance with some embodiments. As used herein, a UE refers to a device capable, configured, arranged and / or operable to communicate wirelessly with network nodes and / or other UEs. Examples of a UE include, but are not limited to, a smart phone, mobile phone, cell phone, voice over IP (VoIP) phone, wireless local loop phone, desktop computer, personal digital assistant (PDA) , wireless cameras, gaming console or device, music storage device, playback appliance, wearable terminal device, wireless endpoint, mobile station, tablet, laptop, laptop-embedded equipment (LEE) , laptop-mounted equipment (LME) , smart device, wireless customer-premise equipment (CPE) , vehicle, vehicle-mounted or vehicle embedded / integrated wireless device, etc. Other examples include any UE identified by the 3rd Generation Partnership Project (3GPP) , including a narrow band internet of things (NB-IoT) UE, a machine type communication (MTC) UE, and / or an enhanced MTC (eMTC) UE.
[0628] A UE may support device-to-device (D2D) communication, for example by implementing a 3GPP standard for sidelink communication, Dedicated Short-Range Communication (DSRC) , vehicle-to-vehicle (V2V) , vehicle-to-infrastructure (V2I) , or vehicle-to-everything (V2X) . In other examples, a UE may not necessarily have a user in the sense of a human user who owns and / or operates the relevant device. Instead, a UE may represent a device that is intended for sale to, or operation by, a human user but which may not, or which may not initially, be associated with a specific human user (e.g., a smart sprinkler controller) . Alternatively, a UE may represent a device that is not intended for sale to, or operation by, an end user but which may be associated with or operated for the benefit of a user (e.g., a smart power meter) .
[0629] The UE 10200 includes processing circuitry 10202 that is operatively coupled via a bus 10204 to an input / output interface 10206, a power source 10208, a memory 10210, a communication interface 10212, and / or any other component, or any combination thereof. Certain UEs may utilize all or a subset of the components shown in FIG. 37. The level of integration between the components may vary from one UE to another UE. Further, certain UEs may contain multiple instances of a component, such as multiple processors, memories, transceivers, transmitters, receivers, etc.
[0630] The processing circuitry 10202 is configured to process instructions and data and may be configured to implement any sequential state machine operative to execute instructions stored as machine-readable computer programs in the memory 10210. The processing circuitry 10202 may be implemented as one or more hardware-implemented state machines (e.g., in discrete logic, field-programmable gate arrays (FPGAs) , application specific integrated circuits (ASICs) , etc. ) ; programmable logic together with appropriate firmware; one or more stored computer programs, general-purpose processors, such as a microprocessor or digital signal processor (DSP) , together with appropriate software; or any combination of the above. For example, the processing circuitry 10202 may include multiple central processing units (CPUs) .
[0631] In the example, the input / output interface 10206 may be configured to provide an interface or interfaces to an input device, output device, or one or more input and / or output devices. Examples of an output device include a speaker, a sound card, a video card, a display, a monitor, a printer, an actuator, an emitter, a smartcard, another output device, or any combination thereof. An input device may allow a user to capture information into the UE 10200. Examples of an input device include a touch-sensitive or presence-sensitive display, a camera (e.g., a digital camera, a digital video camera, a web camera, etc. ) , a microphone, a sensor, a mouse, a trackball, a directional pad, a trackpad, a scroll wheel, a smartcard, and the like. The presence-sensitive display may include a capacitive or resistive touch sensor to sense input from a user. A sensor may be, for instance, an accelerometer, a gyroscope, a tilt sensor, a force sensor, a magnetometer, an optical sensor, a proximity sensor, a biometric sensor, etc., or any combination thereof. An output device may use the same type of interface port as an input device. For example, a Universal Serial Bus (USB) port may be used to provide an input device and an output device.
[0632] In some embodiments, the power source 10208 is structured as a battery or battery pack. Other types of power sources, such as an external power source (e.g., an electricity outlet) , photovoltaic device, or power cell, may be used. The power source 10208 may further include power circuitry for delivering power from the power source 10208 itself, and / or an external power source, to the various parts of the UE 10200 via input circuitry or an interface such as an electrical power cable. Delivering power may be, for example, for charging of the power source 10208. Power circuitry may perform any formatting, converting, or other modification to the power from the power source 10208 to make the power suitable for the respective components of the UE 10200 to which power is supplied.
[0633] The memory 10210 may be or be configured to include memory such as random access memory (RAM) , read-only memory (ROM) , programmable read-only memory (PROM) , erasable programmable read-only memory (EPROM) , electrically erasable programmable read-only memory (EEPROM) , magnetic disks, optical disks, hard disks, removable cartridges, flash drives, and so forth. In one example, the memory 10210 includes one or more application programs 10214, such as an operating system, web browser application, a widget, gadget engine, or other application, and corresponding data 10216. The memory 10210 may store, for use by the UE 10200, any of a variety of various operating systems or combinations of operating systems.
[0634] The memory 10210 may be configured to include a number of physical drive units, such as redundant array of independent disks (RAID) , flash memory, USB flash drive, external hard disk drive, thumb drive, pen drive, key drive, high-density digital versatile disc (HD-DVD) optical disc drive, internal hard disk drive, Blu-Ray optical disc drive, holographic digital data storage (HDDS) optical disc drive, external mini-dual in-line memory module (DIMM) , synchronous dynamic random access memory (SDRAM) , external micro-DIMM SDRAM, smartcard memory such as tamper resistant module in the form of a universal integrated circuit card (UICC) including one or more subscriber identity modules (SIMs) , such as a USIM and / or ISIM, other memory, or any combination thereof. The UICC may for example be an embedded UICC (eUICC) , integrated UICC (iUICC) or a removable UICC commonly known as ‘SIM card. ’ The memory 10210 may allow the UE 10200 to access instructions, application programs and the like, stored on transitory or non-transitory memory media, to off-load data, or to upload data. An article of manufacture, such as one utilizing a communication system may be tangibly embodied as or in the memory 10210, which may be or comprise a device-readable storage medium.
[0635] The processing circuitry 10202 may be configured to communicate with an access network or other network using the communication interface 10212. The communication interface 10212 may comprise one or more communication subsystems and may include or be communicatively coupled to an antenna 10222. The communication interface 10212 may include one or more transceivers used to communicate, such as by communicating with one or more remote transceivers of another device capable of wireless communication (e.g., another UE or a network node in an access network) . Each transceiver may include a transmitter 10218 and / or a receiver 10220 appropriate to provide network communications (e.g., optical, electrical, frequency allocations, and so forth) . Moreover, the transmitter 10218 and receiver 10220 may be coupled to one or more antennas (e.g., antenna 10222) and may share circuit components, software or firmware, or alternatively be implemented separately.
[0636] In the illustrated embodiment, communication functions of the communication interface 10212 may include cellular communication, Wi-Fi communication, LPWAN communication, data communication, voice communication, multimedia communication, short-range communications such as Bluetooth, near-field communication, location-based communication such as the use of the global positioning system (GPS) to determine a location, another like communication function, or any combination thereof. Communications may be implemented in according to one or more communication protocols and / or standards, such as IEEE 802.11, Code Division Multiplexing Access (CDMA) , Wideband Code Division Multiple Access (WCDMA) , GSM, LTE, New Radio (NR) , UMTS, WiMax, Ethernet, transmission control protocol / internet protocol (TCP / IP) , synchronous optical networking (SONET) , Asynchronous Transfer Mode (ATM) , QUIC, Hypertext Transfer Protocol (HTTP) , and so forth.
[0637] Regardless of the type of sensor, a UE may provide an output of data captured by its sensors, through its communication interface 10212, via a wireless connection to a network node. Data captured by sensors of a UE can be communicated through a wireless connection to a network node via another UE. The output may be periodic (e.g., once every 15 minutes if it reports the sensed temperature) , random (e.g., to even out the load from reporting from several sensors) , in response to a triggering event (e.g., when moisture is detected an alert is sent) , in response to a request (e.g., a user initiated request) , or a continuous stream (e.g., a live video feed of a patient) .
[0638] As another example, a UE comprises an actuator, a motor, or a switch, related to a communication interface configured to receive wireless input from a network node via a wireless connection. In response to the received wireless input the states of the actuator, the motor, or the switch may change. For example, the UE may comprise a motor that adjusts the control surfaces or rotors of a drone in flight according to the received input or to a robotic arm performing a medical procedure according to the received input.
[0639] A UE, when in the form of an Internet of Things (IoT) device, may be a device for use in one or more application domains, these domains comprising, but not limited to, city wearable technology, extended industrial application and healthcare. Non-limiting examples of such an IoT device are a device which is or which is embedded in: a connected refrigerator or freezer, a TV, a connected lighting device, an electricity meter, a robot vacuum cleaner, a voice controlled smart speaker, a home security camera, a motion detector, a thermostat, a smoke detector, a door / window sensor, a flood / moisture sensor, an electrical door lock, a connected doorbell, an air conditioning system like a heat pump, an autonomous vehicle, a surveillance system, a weather monitoring device, a vehicle parking monitoring device, an electric vehicle charging station, a smart watch, a fitness tracker, a head-mounted display for Augmented Reality (AR) or Virtual Reality (VR) , a wearable for tactile augmentation or sensory enhancement, a water sprinkler, an animal-or item-tracking device, a sensor for monitoring a plant or animal, an industrial robot, an Unmanned Aerial Vehicle (UAV) , and any kind of medical device, like a heart rate monitor or a remote controlled surgical robot. A UE in the form of an IoT device comprises circuitry and / or software in dependence of the intended application of the IoT device in addition to other components as described in relation to the UE 10200 shown in FIG. 37.
[0640] As yet another specific example, in an IoT scenario, a UE may represent a machine or other device that performs monitoring and / or measurements, and transmits the results of such monitoring and / or measurements to another UE and / or a network node. The UE may in this case be an M2M device, which may in a 3GPP context be referred to as an MTC device. As one particular example, the UE may implement the 3GPP NB-IoT standard. In other scenarios, a UE may represent a vehicle, such as a car, a bus, a truck, a ship and an airplane, or other equipment that is capable of monitoring and / or reporting on its operational status or other functions associated with its operation.
[0641] In practice, any number of UEs may be used together with respect to a single use case. For example, a first UE might be or be integrated in a drone and provide the drone’s speed information (obtained through a speed sensor) to a second UE that is a remote controller operating the drone. When the user makes changes from the remote controller, the first UE may adjust the throttle on the drone (e.g. by controlling an actuator) to increase or decrease the drone’s speed. The first and / or the second UE can also include more than one of the functionalities described above. For example, a UE might comprise the sensor and the actuator, and handle communication of data for both the speed sensor and the actuators.
[0642] FIG. 38 shows a network node 11300 in accordance with some embodiments. As used herein, network node refers to equipment capable, configured, arranged and / or operable to communicate directly or indirectly with a UE and / or with other network nodes or equipment, in a telecommunication network. Examples of network nodes include, but are not limited to, access points (APs) (e.g., radio access points) , base stations (BSs) (e.g., radio base stations, Node Bs, evolved Node Bs (eNBs) and NR NodeBs (gNBs) ) , O-RAN nodes or components of an O-RAN node (e.g., O-RU, O-DU, O-CU) .
[0643] Base stations may be categorized based on the amount of coverage they provide (or, stated differently, their transmit power level) and so, depending on the provided amount of coverage, may be referred to as femto base stations, pico base stations, micro base stations, or macro base stations. A base station may be a relay node or a relay donor node controlling a relay. A network node may also include one or more (or all) parts of a distributed radio base station such as centralized digital units, distributed units (e.g., in an O-RAN access node) and / or remote radio units (RRUs) , sometimes referred to as Remote Radio Heads (RRHs) . Such remote radio units may or may not be integrated with an antenna as an antenna integrated radio. Parts of a distributed radio base station may also be referred to as nodes in a distributed antenna system (DAS) .
[0644] Other examples of network nodes include multiple transmission point (multi-TRP) 5G access nodes, multi-standard radio (MSR) equipment such as MSR BSs, network controllers such as radio network controllers (RNCs) or base station controllers (BSCs) , base transceiver stations (BTSs) , transmission points, transmission nodes, multi-cell / multicast coordination entities (MCEs) , Operation and Maintenance (O&M) nodes, Operations Support System (OSS) nodes, Self-Organizing Network (SON) nodes, positioning nodes (e.g., Evolved Serving Mobile Location Centers (E-SMLCs) ) , and / or Minimization of Drive Tests (MDTs) .
[0645] The network node 11300 includes a processing circuitry 11302, a memory 11304, a communication interface 11306, and a power source 11308. The network node 11300 may be composed of multiple physically separate components (e.g., a NodeB component and a RNC component, or a BTS component and a BSC component, etc. ) , which may each have their own respective components. In certain scenarios in which the network node 11300 comprises multiple separate components (e.g., BTS and BSC components) , one or more of the separate components may be shared among several network nodes. For example, a single RNC may control multiple NodeBs. In such a scenario, each unique NodeB and RNC pair, may in some instances be considered a single separate network node. In some embodiments, the network node 11300 may be configured to support multiple radio access technologies (RATs) . In such embodiments, some components may be duplicated (e.g., separate memory 11304 for different RATs) and some components may be reused (e.g., a same antenna 11310 may be shared by different RATs) . The network node 11300 may also include multiple sets of the various illustrated components for different wireless technologies integrated into network node 11300, for example GSM, WCDMA, LTE, NR, WiFi, Zigbee, Z-wave, LoRaWAN, Radio Frequency Identification (RFID) or Bluetooth wireless technologies. These wireless technologies may be integrated into the same or different chip or set of chips and other components within network node 11300.
[0646] The processing circuitry 11302 may comprise a combination of one or more of a microprocessor, controller, microcontroller, central processing unit, digital signal processor, application-specific integrated circuit, field programmable gate array, or any other suitable computing device, resource, or combination of hardware, software and / or encoded logic operable to provide, either alone or in conjunction with other network node 11300 components, such as the memory 11304, to provide network node 11300 functionality.
[0647] In some embodiments, the processing circuitry 11302 includes a system on a chip (SOC) . In some embodiments, the processing circuitry 11302 includes one or more of radio frequency (RF) transceiver circuitry 11312 and baseband processing circuitry 11314. In some embodiments, the radio frequency (RF) transceiver circuitry 11312 and the baseband processing circuitry 11314 may be on separate chips (or sets of chips) , boards, or units, such as radio units and digital units. In alternative embodiments, part or all of RF transceiver circuitry 11312 and baseband processing circuitry 11314 may be on the same chip or set of chips, boards, or units.
[0648] The memory 11304 may comprise any form of volatile or non-volatile computer-readable memory including, without limitation, persistent storage, solid-state memory, remotely mounted memory, magnetic media, optical media, random access memory (RAM) , read-only memory (ROM) , mass storage media (for example, a hard disk) , removable storage media (for example, a flash drive, a Compact Disk (CD) or a Digital Video Disk (DVD) ) , and / or any other volatile or non-volatile, non-transitory device-readable and / or computer-executable memory devices that store information, data, and / or instructions that may be used by the processing circuitry 11302. The memory 11304 may store any suitable instructions, data, or information, including a computer program, software, an application including one or more of logic, rules, code, tables, and / or other instructions capable of being executed by the processing circuitry 11302 and utilized by the network node 11300. The memory 11304 may be used to store any calculations made by the processing circuitry 11302 and / or any data received via the communication interface 11306. In some embodiments, the processing circuitry 11302 and memory 11304 is integrated.
[0649] The communication interface 11306 is used in wired or wireless communication of signaling and / or data between a network node, access network, and / or UE. As illustrated, the communication interface 11306 comprises port (s) / terminal (s) 11316 to send and receive data, for example to and from a network over a wired connection. The communication interface 11306 also includes radio front-end circuitry 11318 that may be coupled to, or in certain embodiments a part of, the antenna 11310. Radio front-end circuitry 11318 comprises filters 11320 and amplifiers 11322. The radio front-end circuitry 11318 may be connected to an antenna 11310 and processing circuitry 11302. The radio front-end circuitry may be configured to condition signals communicated between antenna 11310 and processing circuitry 11302. The radio front-end circuitry 11318 may receive digital data that is to be sent out to other network nodes or UEs via a wireless connection. The radio front-end circuitry 11318 may convert the digital data into a radio signal having the appropriate channel and bandwidth parameters using a combination of filters 11320 and / or amplifiers 11322. The radio signal may then be transmitted via the antenna 11310. Similarly, when receiving data, the antenna 11310 may collect radio signals which are then converted into digital data by the radio front-end circuitry 11318. The digital data may be passed to the processing circuitry 11302. In other embodiments, the communication interface may comprise different components and / or different combinations of components.
[0650] In certain alternative embodiments, the network node 11300 does not include separate radio front-end circuitry 11318, instead, the processing circuitry 11302 includes radio front-end circuitry and is connected to the antenna 11310. Similarly, in some embodiments, all or some of the RF transceiver circuitry 11312 is part of the communication interface 11306. In still other embodiments, the communication interface 11306 includes one or more ports or terminals 11316, the radio front-end circuitry 11318, and the RF transceiver circuitry 11312, as part of a radio unit (not shown) , and the communication interface 11306 communicates with the baseband processing circuitry 11314, which is part of a digital unit (not shown) .
[0651] The antenna 11310 may include one or more antennas, or antenna arrays, configured to send and / or receive wireless signals. The antenna 11310 may be coupled to the radio front-end circuitry 11318 and may be any type of antenna capable of transmitting and receiving data and / or signals wirelessly. In certain embodiments, the antenna 11310 is separate from the network node 11300 and connectable to the network node 11300 through an interface or port.
[0652] The antenna 11310, communication interface 11306, and / or the processing circuitry 11302 may be configured to perform any receiving operations and / or certain obtaining operations described herein as being performed by the network node. Any information, data and / or signals may be received from a UE, another network node and / or any other network equipment. Similarly, the antenna 11310, the communication interface 11306, and / or the processing circuitry 11302 may be configured to perform any transmitting operations described herein as being performed by the network node. Any information, data and / or signals may be transmitted to a UE, another network node and / or any other network equipment.
[0653] The power source 11308 provides power to the various components of network node 11300 in a form suitable for the respective components (e.g., at a voltage and current level needed for each respective component) . The power source 11308 may further comprise, or be coupled to, power management circuitry to supply the components of the network node 11300 with power for performing the functionality described herein. For example, the network node 11300 may be connectable to an external power source (e.g., the power grid, an electricity outlet) via an input circuitry or interface such as an electrical cable, whereby the external power source supplies power to power circuitry of the power source 11308. As a further example, the power source 11308 may comprise a source of power in the form of a battery or battery pack which is connected to, or integrated in, power circuitry. The battery may provide backup power should the external power source fail.
[0654] Embodiments of the network node 11300 may include additional components beyond those shown in FIG. 38 for providing certain aspects of the network node’s functionality, including any of the functionality described herein and / or any functionality necessary to support the subject matter described herein. For example, the network node 11300 may include user interface equipment to allow input of information into the network node 11300 and to allow output of information from the network node 11300. This may allow a user to perform diagnostic, maintenance, repair, and other administrative functions for the network node 11300.
[0655] FIG. 39 is a block diagram of a host 12400, which may be an embodiment of the host 9116 of FIG. 36, in accordance with various aspects described herein. As used herein, the host 12400 may be or comprise various combinations hardware and / or software, including a standalone server, a blade server, a cloud-implemented server, a distributed server, a virtual machine, container, or processing resources in a server farm. The host 12400 may provide one or more services to one or more UEs.
[0656] The host 12400 includes processing circuitry 12402 that is operatively coupled via a bus 12404 to an input / output interface 12406, a network interface 12408, a power source 12410, and a memory 12412. Other components may be included in other embodiments. Features of these components may be substantially similar to those described with respect to the terminal devices, such that the descriptions thereof are generally applicable to the corresponding components of host 12400.
[0657] The memory 12412 may include one or more computer programs including one or more host application programs 12414 and data 12416, which may include user data, e.g., data generated by a UE for the host 12400 or data generated by the host 12400 for a UE. Embodiments of the host 12400 may utilize only a subset or all of the components shown. The host application programs 12414 may be implemented in a container-based architecture and may provide support for video codecs (e.g., Versatile Video Coding (VVC) , High Efficiency Video Coding (HEVC) , Advanced Video Coding (AVC) , MPEG, VP9) and audio codecs (e.g., FLAC, Advanced Audio Coding (AAC) , MPEG, G. 711) , including transcoding for multiple different classes, types, or implementations of UEs (e.g., handsets, desktop computers, wearable display systems, heads-up display systems) . The host application programs 12414 may also provide for user authentication and licensing checks and may periodically report health, routes, and content availability to a central node, such as a device in or on the edge of a core network. Accordingly, the host 12400 may select and / or indicate a different host for over-the-top services for a UE. The host application programs 12414 may support various protocols, such as the HTTP Live Streaming (HLS) protocol, Real-Time Messaging Protocol (RTMP) , Real-Time Streaming Protocol (RTSP) , Dynamic Adaptive Streaming over HTTP (MPEG-DASH) , etc.
[0658] FIG. 40 is a block diagram illustrating a virtualization environment 13500 in which functions implemented by some embodiments may be virtualized. In the present context, virtualizing means creating virtual versions of apparatuses or devices which may include virtualizing hardware platforms, storage devices and networking resources. As used herein, virtualization can be applied to any device described herein, or components thereof, and relates to an implementation in which at least a portion of the functionality is implemented as one or more virtual components. Some or all of the functions described herein may be implemented as virtual components executed by one or more virtual machines (VMs) implemented in one or more virtual environments 13500 hosted by one or more of hardware nodes, such as a hardware computing device that operates as a network node, UE, core network node, or host. Further, in embodiments in which the virtual node does not require radio connectivity (e.g., a core network node or host) , then the node may be entirely virtualized. In some embodiments, the virtualization environment 13500 includes components defined by the O-RAN Alliance, such as an O-Cloud environment orchestrated by a Service Management and Orchestration Framework via an O-2 interface.
[0659] Applications 13502 (which may alternatively be called software instances, virtual appliances, network functions, virtual nodes, virtual network functions, etc. ) are run in the virtualization environment Q400 to implement some of the features, functions, and / or benefits of some of the embodiments disclosed herein.
[0660] Hardware 13504 includes processing circuitry, memory that stores software and / or instructions executable by hardware processing circuitry, and / or other hardware devices as described herein, such as a network interface, input / output interface, and so forth. Software may be executed by the processing circuitry to instantiate one or more virtualization layers 13506 (also referred to as hypervisors or virtual machine monitors (VMMs) ) , provide VMs 13508A and 13508B (one or more of which may be generally referred to as VMs 13508) , and / or perform any of the functions, features and / or benefits described in relation with some embodiments described herein. The virtualization layer 13506 may present a virtual operating platform that appears like networking hardware to the VMs 13508.
[0661] The VMs 13508 comprise virtual processing, virtual memory, virtual networking or interface and virtual storage, and may be run by a corresponding virtualization layer 13506. Different embodiments of the instance of a virtual appliance 13502 may be implemented on one or more of VMs 13508, and the implementations may be made in different ways. Virtualization of the hardware is in some contexts referred to as network function virtualization (NFV) . NFV may be used to consolidate many network equipment types onto industry standard high volume server hardware, physical switches, and physical storage, which can be located in data centers, and customer premise equipment.
[0662] In the context of NFV, a VM 13508 may be a software implementation of a physical machine that runs programs as if they were executing on a physical, non-virtualized machine. Each of the VMs 13508, and that part of hardware 13504 that executes that VM, be it hardware dedicated to that VM and / or hardware shared by that VM with others of the VMs, forms separate virtual network elements. Still in the context of NFV, a virtual network function is responsible for handling specific network functions that run in one or more VMs 13508 on top of the hardware 13504 and corresponds to the application 13502.
[0663] Hardware 13504 may be implemented in a standalone network node with generic or specific components. Hardware 13504 may implement some functions via virtualization. Alternatively, hardware 13504 may be part of a larger cluster of hardware (e.g. such as in a data center or CPE) where many hardware nodes work together and are managed via management and orchestration 13510, which, among others, oversees lifecycle management of applications 13502. In some embodiments, hardware 13504 is coupled to one or more radio units that each include one or more transmitters and one or more receivers that may be coupled to one or more antennas. Radio units may communicate directly with other hardware nodes via one or more appropriate network interfaces and may be used in combination with the virtual components to provide a virtual node with radio capabilities, such as a radio access node or a base station. In some embodiments, some signaling can be provided with the use of a control system 13512 which may alternatively be used for communication between hardware nodes and radio units.
[0664] FIG. 41 shows a communication diagram of a host 14602 communicating via a network node 14604 with a UE 14606 over a partially wireless connection in accordance with some embodiments. Example implementations, in accordance with various embodiments, of the UE (such as a UE 9112a of FIG. 36) , network node (such as network node 9110a of FIG. 36) , and host (such as host 9116 of FIG. 36 and / or host 12400 of FIG. 39) discussed in the preceding paragraphs will now be described with reference to FIG. 41.
[0665] Like host 12400, embodiments of host 14602 include hardware, such as a communication interface, processing circuitry, and memory. The host 14602 also includes software, which is stored in or accessible by the host 14602 and executable by the processing circuitry. The software includes a host application that may be operable to provide a service to a remote user, such as the UE 14606 connecting via an over-the-top (OTT) connection 14650 extending between the UE 14606 and host 14602. In providing the service to the remote user, a host application may provide user data which is transmitted using the OTT connection 14650.
[0666] The network node 14604 includes hardware enabling it to communicate with the host 14602 and UE 14606. The connection 14660 may be direct or pass through a core network (like core network 9106 of FIG. 36) and / or one or more other intermediate networks, such as one or more public, private, or hosted networks. For example, an intermediate network may be a backbone network or the Internet.
[0667] The UE 14606 includes hardware and software, which is stored in or accessible by UE 14606 and executable by the UE’s processing circuitry. The software includes a client application, such as a web browser or operator-specific “app” that may be operable to provide a service to a human or non-human user via UE 14606 with the support of the host 14602. In the host 14602, an executing host application may communicate with the executing client application via the OTT connection 14650 terminating at the UE 14606 and host 14602. In providing the service to the user, the UE's client application may receive request data from the host's host application and provide user data in response to the request data. The OTT connection 14650 may transfer both the request data and the user data. The UE's client application may interact with the user to generate the user data that it provides to the host application through the OTT connection 14650.
[0668] The OTT connection 14650 may extend via a connection 14660 between the host 14602 and the network node 14604 and via a wireless connection 14670 between the network node 14604 and the UE 14606 to provide the connection between the host 14602 and the UE 14606. The connection 14660 and wireless connection 14670, over which the OTT connection 14650 may be provided, have been drawn abstractly to illustrate the communication between the host 14602 and the UE 14606 via the network node 14604, without explicit reference to any intermediary devices and the precise routing of messages via these devices.
[0669] As an example of transmitting data via the OTT connection 14650, in step 14608, the host 14602 provides user data, which may be performed by executing a host application. In some embodiments, the user data is associated with a particular human user interacting with the UE 14606. In other embodiments, the user data is associated with a UE 14606 that shares data with the host 14602 without explicit human interaction. In step 14610, the host 14602 initiates a transmission carrying the user data towards the UE 14606. The host 14602 may initiate the transmission responsive to a request transmitted by the UE 14606. The request may be caused by human interaction with the UE 14606 or by operation of the client application executing on the UE 14606. The transmission may pass via the network node 14604, in accordance with the teachings of the embodiments described throughout this disclosure. Accordingly, in step 14612, the network node 14604 transmits to the UE 14606 the user data that was carried in the transmission that the host 14602 initiated, in accordance with the teachings of the embodiments described throughout this disclosure. In step 14614, the UE 14606 receives the user data carried in the transmission, which may be performed by a client application executed on the UE 14606 associated with the host application executed by the host 14602.
[0670] In some examples, the UE 14606 executes a client application which provides user data to the host 14602. The user data may be provided in reaction or response to the data received from the host 14602. Accordingly, in step 14616, the UE 14606 may provide user data, which may be performed by executing the client application. In providing the user data, the client application may further consider user input received from the user via an input / output interface of the UE 14606. Regardless of the specific manner in which the user data was provided, the UE 14606 initiates, in step 14618, transmission of the user data towards the host 14602 via the network node 14604. In step 14620, in accordance with the teachings of the embodiments described throughout this disclosure, the network node 14604 receives user data from the UE 14606 and initiates transmission of the received user data towards the host 14602. In step 14622, the host 14602 receives the user data carried in the transmission initiated by the UE 14606.
[0671] One or more of the various embodiments improve the performance of OTT services provided to the UE 14606 using the OTT connection 14650, in which the wireless connection 14670 forms the last segment. More precisely, in some embodiments herein, with the network cost aware scheduling method, the (e.g. CNF) internal network quality can be improved. In some embodiments herein, the load of top tier (e.g. spine) switches can be reduced. In some embodiments herein, the proposed solution can schedule (e.g. CNF) containers to (e.g. CIS) nodes as closer as possible, to avoid or reduce internal communication going through top tier (e.g. spine) switches. In some embodiments herein, the proposed solution can benefit network cost maintenance and simplify the interface between the cluster management node (e.g. CCM) and the cluster node (e.g. CISM) .
[0672] In an example scenario, factory status information may be collected and analyzed by the host 14602. As another example, the host 14602 may process audio and video data which may have been retrieved from a UE for use in creating maps. As another example, the host 14602 may collect and analyze real-time data to assist in controlling vehicle congestion (e.g., controlling traffic lights) . As another example, the host 14602 may store surveillance video uploaded by a UE. As another example, the host 14602 may store or control access to media content such as video, audio, VR or AR which it can broadcast, multicast or unicast to UEs. As other examples, the host 14602 may be used for energy pricing, remote control of non-time critical electrical load to balance power generation needs, location services, presentation services (such as compiling diagrams etc. from data collected from remote devices) , or any other function of collecting, retrieving, storing, analyzing and / or transmitting data.
[0673] In some examples, a measurement procedure may be provided for the purpose of monitoring data rate, latency and other factors on which the one or more embodiments improve. There may further be an optional network functionality for reconfiguring the OTT connection 14650 between the host 14602 and UE 14606, in response to variations in the measurement results. The measurement procedure and / or the network functionality for reconfiguring the OTT connection may be implemented in software and hardware of the host 14602 and / or UE 14606. In some embodiments, sensors (not shown) may be deployed in or in association with other devices through which the OTT connection 14650 passes; the sensors may participate in the measurement procedure by supplying values of the monitored quantities exemplified above, or supplying values of other physical quantities from which software may compute or estimate the monitored quantities. The reconfiguring of the OTT connection 14650 may include message format, retransmission settings, preferred routing etc.; the reconfiguring need not directly alter the operation of the network node 14604. Such procedures and functionalities may be known and practiced in the art. In certain embodiments, measurements may involve proprietary UE signaling that facilitates measurements of throughput, propagation times, latency and the like, by the host 14602. The measurements may be implemented in that software causes messages to be transmitted, in particular empty or ‘dummy’ messages, using the OTT connection 14650 while monitoring propagation times, errors, etc.
[0674] Although the computing devices described herein (e.g., UEs, network nodes, hosts) may include the illustrated combination of hardware components, other embodiments may comprise computing devices with different combinations of components. It is to be understood that these computing devices may comprise any suitable combination of hardware and / or software needed to perform the tasks, features, functions and methods disclosed herein. Determining, calculating, obtaining or similar operations described herein may be performed by processing circuitry, which may process information by, for example, converting the obtained information into other information, comparing the obtained information or converted information to information stored in the network node, and / or performing one or more operations based on the obtained information or converted information, and as a result of said processing making a determination. Moreover, while components are depicted as single boxes located within a larger box, or nested within multiple boxes, in practice, computing devices may comprise multiple different physical components that make up a single illustrated component, and functionality may be partitioned between separate components. For example, a communication interface may be configured to include any of the components described herein, and / or the functionality of the components may be partitioned between the processing circuitry and the communication interface. In another example, non-computationally intensive functions of any of such components may be implemented in software or firmware and computationally intensive functions may be implemented in hardware.
[0675] In certain embodiments, some or all of the functionality described herein may be provided by processing circuitry executing instructions stored on in memory, which in certain embodiments may be a computer program product in the form of a non-transitory computer-readable storage medium. In alternative embodiments, some or all of the functionality may be provided by the processing circuitry without executing instructions stored on a separate or discrete device-readable storage medium, such as in a hard-wired manner. In any of those particular embodiments, whether executing instructions stored on a non-transitory computer-readable storage medium or not, the processing circuitry can be configured to perform the described functionality. The benefits provided by such functionality are not limited to the processing circuitry alone or to other components of the computing device, but are enjoyed by the computing device as a whole, and / or by end users and a wireless network generally.
[0676] Embodiment 1. A host configured to operate in a communication system to provide an over-the-top (OTT) service, the host comprising:
[0677] processing circuitry configured to provide user data; and
[0678] a network interface configured to initiate transmission of the user data to a network node in a cellular network for transmission to a user equipment (UE) , the network node having a communication interface and processing circuitry, the processing circuitry of the network node configured to perform any of the operations performed by the network node as described above to transmit the user data from the host to the UE or manage / facilitate the transmission of the user data from the host to the UE.
[0679] Embodiment 2. The host of the previous embodiment, wherein:
[0680] the processing circuitry of the host is configured to execute a host application that provides the user data; and
[0681] the UE comprises processing circuitry configured to execute a client application associated with the host application to receive the transmission of user data from the host.
[0682] Embodiment 3. A method implemented in a host configured to operate in a communication system that further includes a network node and a user equipment (UE) , the method comprising:
[0683] providing user data for the UE; and
[0684] initiating a transmission carrying the user data to the UE via a cellular network comprising the network node, wherein the network node performs the operations performed by the network node as described above to transmit the user data from the host to the UE or manage / facilitate the transmission of the user data from the host to the UE.
[0685] Embodiment 4. The method of the previous embodiment, further comprising, at the network node, transmitting the user data provided by the host for the UE.
[0686] Embodiment 5. The method of any of the previous 2 embodiments, wherein the user data is provided at the host by executing a host application that interacts with a client application executing on the UE, the client application being associated with the host application.
[0687] Embodiment 6. A communication system configured to provide an over-the-top (OTT) service, the communication system comprising:
[0688] a host comprising:
[0689] processing circuitry configured to provide user data for a user equipment (UE) , the user data being associated with the over-the-top service; and
[0690] a network interface configured to initiate transmission of the user data toward a cellular network node for transmission to the UE, the network node having a communication interface and processing circuitry, the processing circuitry of the network node configured to perform any of the operations performed by the network node as described above transmit the user data from the host to the UE or manage / facilitate the transmission of the user data from the host to the UE.
[0691] Embodiment 7. The communication system of the previous embodiment, further comprising:
[0692] the network node; and / or
[0693] the user equipment.
[0694] Embodiment 8. The communication system of the previous 2 embodiments, wherein:
[0695] the processing circuitry of the host is configured to execute a host application, thereby providing the user data; and
[0696] the host application is configured to interact with a client application executing on the UE, the client application being associated with the host application.
[0697] Embodiment 9. A host configured to operate in a communication system to provide an over-the-top (OTT) service, the host comprising:
[0698] processing circuitry configured to initiate receipt of user data; and
[0699] a network interface configured to receive the user data from a network node in a cellular network, the network node having a communication interface and processing circuitry, the processing circuitry of the network node configured to perform any of the operations performed by the network node as described above to receive the user data from the UE for the host manage / facilitate the reception of the user data from the UE for the host.
[0700] Embodiment 10. The host of the previous 2 embodiments, wherein:
[0701] the processing circuitry of the host is configured to execute a host application, thereby providing the user data; and
[0702] the host application is configured to interact with a client application executing on the UE, the client application being associated with the host application.
[0703] Embodiment 11. The host of they of the previous 2 embodiments, wherein the initiating receipt of the user data comprises requesting the user data.
[0704] Embodiment 12. A method implemented by a host configured to operate in a communication system that further includes a network node and a user equipment (UE) , the method comprising:
[0705] at the host, initiating receipt of user data from the UE, the user data originating from a transmission which the network node has received from the UE, wherein the network node performs the operations performed by the network node as described above to receive the user data from the UE for the host manage / facilitate the reception of the user data from the UE for the host.
[0706] Embodiment 13. The method of the previous embodiment, further comprising at the network node, transmitting the received user data to the host.
[0707] Embodiment 14. A host configured to operate in a communication system to provide an over-the-top (OTT) service, the host comprising:
[0708] processing circuitry configured to provide user data; and
[0709] a network interface configured to initiate transmission of the user data to a cellular network for transmission to a user equipment (UE) , wherein the UE comprises a communication interface and processing circuitry, the communication interface and processing circuitry of the UE being configured to perform any of the operations performed by the UE as described above to receive the user data from the host.
[0710] Embodiment 15. The host of the previous embodiment, wherein the cellular network further includes a network node configured to communicate with the UE to transmit the user data to the UE from the host.
[0711] Embodiment 16. The host of the previous 2 embodiments, wherein:
[0712] the processing circuitry of the host is configured to execute a host application, thereby providing the user data; and
[0713] the host application is configured to interact with a client application executing on the UE, the client application being associated with the host application.
[0714] Embodiment 17. A method implemented by a host operating in a communication system that further includes a network node and a user equipment (UE) , the method comprising:
[0715] providing user data for the UE; and
[0716] initiating a transmission carrying the user data to the UE via a cellular network comprising the network node, wherein the UE performs any of the operations performed by the UE as described above to receive the user data from the host.
[0717] Embodiment 18. The method of the previous embodiment, further comprising:
[0718] at the host, executing a host application associated with a client application executing on the UE to receive the user data from the UE.
[0719] Embodiment 19. The method of the previous embodiment, further comprising:
[0720] at the host, transmitting input data to the client application executing on the UE, the input data being provided by executing the host application,
[0721] wherein the user data is provided by the client application in response to the input data from the host application.
[0722] Embodiment 20. A host configured to operate in a communication system to provide an over-the-top (OTT) service, the host comprising:
[0723] processing circuitry configured to utilize user data; and
[0724] a network interface configured to receipt of transmission of the user data to a cellular network for transmission to a user equipment (UE) ,
[0725] wherein the UE comprises a communication interface and processing circuitry, the communication interface and processing circuitry of the UE being configured to perform any of the operations performed by the UE as described above to transmit the user data to the host.
[0726] Embodiment 21. The host of the previous embodiment, wherein the cellular network further includes a network node configured to communicate with the UE to transmit the user data from the UE to the host.
[0727] Embodiment 22. The host of the previous 2 embodiments, wherein:
[0728] the processing circuitry of the host is configured to execute a host application, thereby providing the user data; and
[0729] the host application is configured to interact with a client application executing on the UE, the client application being associated with the host application.
[0730] Embodiment 23. A method implemented by a host configured to operate in a communication system that further includes a network node and a user equipment (UE) , the method comprising:
[0731] at the host, receiving user data transmitted to the host via the network node by the UE, wherein the UE performs any of the operations performed by the UE as described above to transmit the user data to the host.
[0732] Embodiment 24. The method of the previous embodiment, further comprising:
[0733] at the host, executing a host application associated with a client application executing on the UE to receive the user data from the UE.
[0734] Embodiment 25. The method of the previous embodiments, further comprising:
[0735] at the host, transmitting input data to the client application executing on the UE, the input data being provided by executing the host application,
[0736] wherein the user data is provided by the client application in response to the input data from the host application.
[0737] The term unit or module may have conventional meaning in the field of electronics, electrical devices and / or electronic devices and may include, for example, electrical and / or electronic circuitry, devices, modules, processors, memories, logic solid state and / or discrete devices, computer programs or instructions for carrying out respective tasks, procedures, computations, outputs, and / or displaying functions, and so on, as such as those that are described herein.
[0738] With function units, the first node of the cluster or the cluster management node may not need a fixed processor or memory, any computing resource and storage resource may be arranged from the first node of the cluster or the cluster management node in the communication system. The introduction of virtualization technology and network computing technology may improve the usage efficiency of the network resources and the flexibility of the network.
[0739] According to an aspect of the disclosure it is provided a computer program product being tangibly stored on a computer readable storage medium and including instructions which, when executed on at least one processor, cause the at least one processor to carry out any of the methods as described above.
[0740] According to an aspect of the disclosure it is provided a computer-readable storage medium storing instructions which when executed by at least one processor, cause the at least one processor to carry out any of the methods as described above.
[0741] In addition, the present disclosure may also provide a carrier containing the computer program as mentioned above, wherein the carrier is one of an electronic signal, optical signal, radio signal, or computer readable storage medium. The computer readable storage medium can be, for example, an optical compact disk or an electronic memory device like a random access memory (RAM) , a read only memory (ROM) , Flash memory, magnetic tape, compact disc read-only memory (CD-ROM) , Digital Video Disc (DVD) , Blue-ray disc and the like.
[0742] The techniques described herein may be implemented by various means so that an apparatus implementing one or more functions of a corresponding apparatus described with an embodiment comprises not only prior art means, but also means for implementing the one or more functions of the corresponding apparatus described with the embodiment and it may comprise separate means for each separate function or means that may be configured to perform one or more functions. For example, these techniques may be implemented in hardware (one or more apparatuses) , firmware (one or more apparatuses) , software (one or more modules) , or combinations thereof. For a firmware or software, implementation may be made through modules (e.g., procedures, functions, and so on) that perform the functions described herein.
[0743] Exemplary embodiments herein have been described above with reference to block diagrams and flowchart illustrations of methods and apparatuses. It will be understood that each block of the block diagrams and flowchart illustrations, and combinations of blocks in the block diagrams and flowchart illustrations, respectively, can be implemented by various means including computer program instructions. These computer program instructions may be loaded onto a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions which execute on the computer or other programmable data processing apparatus create means for implementing the functions specified in the flowchart block or blocks.
[0744] Further, while operations are depicted in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Likewise, while several specific implementation details are contained in the above discussions, these should not be construed as limitations on the scope of the subject matter described herein, but rather as descriptions of features that may be specific to particular embodiments. Certain features that are described in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment may also be implemented in multiple embodiments separately or in any suitable sub-combination.
[0745] While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any implementation or of what may be claimed, but rather as descriptions of features that may be specific to particular embodiments of particular implementations. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable sub-combination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a sub-combination or variation of a sub-combination.
[0746] It will be obvious to a person skilled in the art that, as the technology advances, the inventive concept can be implemented in various ways. The above described embodiments are given for describing rather than limiting the disclosure, and it is to be understood that modifications and variations may be resorted to without departing from the spirit and scope of the disclosure as those skilled in the art readily understand. Such modifications and variations are considered to be within the scope of the disclosure and the appended claims. The protection scope of the disclosure is defined by the accompanying claims.
Claims
1.A method (600) performed by a first node of a cluster, comprising:receiving (602) equal network cost group (ENCG) data for the cluster from a cluster management node; andgenerating (604) a first network cost matrix for the cluster based on the ENCG data for the cluster.2.The method according to claim 1, further comprising:receiving (1202) updated ENCG data for the cluster from the cluster management node; andgenerating (1204) an updated first network cost matrix for the cluster based on the updated ENCG data for the cluster.3.The method according to claim 1 or 2, further comprising:scheduling (1302) a first deployable unit to a second node of the cluster based on the first network cost matrix or the updated first network cost matrix.4.The method according to claim 3, further comprising:obtaining (1402) network group information comprising at least two deployable units with internal traffic bigger than a threshold,wherein when the first deployable unit is any one of the at least two deployable units, the first deployable unit is scheduled to the second node of the cluster based on the first network cost matrix or the updated first network cost matrix.5.The method according to claim 3 or 4, wherein the scheduling a first deployable unit to a second node of the cluster based on the first network cost matrix or the updated first network cost matrix comprises:computing a total network cost between a candidate node of the cluster and all nodes of the cluster that have instantiated second deployable units based on the first network cost matrix or the updated first network cost matrix; anddetermining a node from one or more candidate nodes of the cluster to instantiate the first deployable unit based on respective total network costs computed for the one or more candidate nodes.6.The method according to claim 5, wherein the total network cost between the determined node and the all nodes of the cluster that have instantiated second deployable units is lowest among the respective total network costs computed for the one or more candidate nodes.7.The method according to any of claims 5-6, wherein the candidate node of the cluster is required to satisfy a predefined condition.8.The method according to claim 7, wherein the predefined condition comprises at least one of:resource requirement, oran anti-affinity policy.9.The method according to any of claims 5-8, wherein the first deployable unit and / or the second deployable units comprise at least one of:a pod of Kubernetes,a container, ora virtual machine (VM) .10.The method according to any of claims 1-9, wherein a network cost comprises at least one of:a network distance,a network latency, ornetwork resource consumption.11.The method according to any of claims 3-10, wherein the second node of the cluster comprises a container infrastructure service (CIS) node of the cluster or a Network Function Virtualized Infrastructure (NFVI) node of the cluster.12.The method according to any of claims 1-11, wherein the cluster comprises a CIS cluster or an NFVI cluster.13.The method according to any of claims 1-12, wherein the first node of the cluster comprises a Container Infrastructure Service Manager node or a Virtualized Infrastructure Manager (VIM) node.14.The method according to any of claims 1-13, wherein the cluster management node comprises a CIS cluster management node or an NFVI cluster management node.15.The method according to any of claims 1-14, wherein multiple nodes at a symmetric position are grouped as an ENCG object.16.The method according to any of claims 1-15, further comprising:if there is at least one common ancestor ENCG object for a third node of the cluster and a fourth node of the cluster, determining (1102) an internal cost of a common ENCG object closest to both the third node and the fourth node as a network cost between the third node and the fourth node; andif there is no common ancestor ENCG objects for the third node and the fourth node, determining (1104) a cost between a top ancestor ENCG object for the third node and a top ancestor ENCG object for the fourth node as the network cost between the third node and the fourth node.17.The method according to any of claims 1-16, wherein the ENCG data for the cluster comprises at least one of:first information regarding at least one ENCG hierarchy for the cluster, ora second network cost matrix among at least one top ENCG object of the at least one ENCG hierarchy for the cluster.18.The method according to claim 17, wherein an ENCG object of the at least one ENCG hierarchy for the cluster comprises at least one of:an identifier of the ENCG object,an identifier of a node connected to the ENCG object,an identifier of an ENCG object connected to the ENCG object,an internal network cost of the ENCG object, ora network cost to another ENCG object of the at least one ENCG hierarchy for the cluster.19.The method according to any of claims 1-18, wherein the cluster is deployed in a data center network.20.The method according to claim 19, wherein the data center network comprises a spine-and-leaf network.21.A method (1500) performed by a cluster management node, comprising:obtaining (1502) equal network cost group (ENCG) data for a cluster; andsending (1504) the ENCG data for the cluster to a first node of the cluster.22.The method according to claim 21, further comprising:obtaining (1602) updated ENCG data for the cluster; andsending (1604) the updated ENCG data for the cluster to the first node of the cluster.23.The method according to claim 22, further comprising:obtaining (1702) second information regarding at least one ENCG hierarchy for a network; andobtaining (1704) a third network cost matrix among at least one top ENCG object of the at least one ENCG hierarchy for the network,wherein the ENCG data for the cluster and / or the updated ENCG data for the cluster is obtained based on the second information and the third network cost matrix.24.The method according to claim 23, wherein an ENCG object of the at least one ENCG hierarchy for the network comprises at least one of:an identifier of the ENCG object,an identifier of a node connected to the ENCG object,an identifier of an ENCG object connected to the ENCG object,an internal network cost of the ENCG object, ora network cost to another ENCG object of the at least one ENCG hierarchy for the cluster.25.The method according to any of claims 21-24, wherein a network cost comprises at least one of:a network distance,a network latency, ornetwork resource consumption.26.The method according to any of claims 21-25, wherein the cluster comprises a CIS cluster or an NFVI cluster.27.The method according to any of claims 21-26, wherein the first node of the cluster comprises a Container Infrastructure Service Manager node or a Virtualized Infrastructure Manager (VIM) node.28.The method according to any of claims 21-27, wherein the cluster management node comprises a CIS cluster management node or an NFVI cluster management node.29.The method according to any of claims 21-28, wherein multiple nodes at a symmetric position are grouped as an ENCG object.30.The method according to any of claims 21-29, wherein the ENCG data for the cluster comprises at least one of:first information regarding at least one ENCG hierarchy for the cluster; ora second network cost matrix among at least one top ENCG object of the at least one ENCG hierarchy for the cluster.31.The method according to claim 30, wherein an ENCG object of the at least one ENCG hierarchy for the cluster comprises at least one of:an identifier of the ENCG object,an identifier of a node connected to the ENCG object,an identifier of an ENCG object connected to the ENCG object,an internal network cost of the ENCG object, ora network cost to another ENCG object of the at least one ENCG hierarchy for the cluster.32.The method according to any of claims 21-31, wherein the cluster is deployed in a data center network.33.The method according to claim 32, wherein the data center network comprises a spine-and-leaf network.34.The method according to any of claims 21-33, further comprising:obtaining (1802) change information of the cluster by an event subscription or a polling method.35.The method according to any of claims 21-34, further comprising:sending (1902) a first request for unsubscribing an event of a deleted virtual machine to a virtual infrastructure manager; andreceiving (1904) a first response from the virtual infrastructure manager.36.A first node of a cluster (3300) , comprising:a processor (3321) ; anda memory (3322) coupled to the processor (3321) , said memory (3322) containing instructions executable by said processor (3321) , whereby said first node of the cluster (3300) is operative to:receive equal network cost group (ENCG) data for the cluster from a cluster management node; andgenerate a first network cost matrix for the cluster based on the ENCG data for the cluster.37.The first node of the cluster according to claim 36, wherein the first node of the cluster is further operative to perform the method of any one of claims 2 to 20.38.A cluster management node (3300) , comprising:a processor (3321) ; anda memory (3322) coupled to the processor (3321) , said memory (3322) containing instructions executable by said processor (3321) , whereby said cluster management node (3300) is operative to:obtain equal network cost group (ENCG) data for a cluster; andsend the ENCG data for the cluster to a first node of the cluster.39.The cluster management node according to claim 38, wherein the cluster management node is further operative to perform the method of any one of claims 22 to 35.40.A computer-readable storage medium storing instructions which when executed by at least one processor, cause the at least one processor to perform the method according to any one of claims 1 to 35.41.A computer program product comprising instructions which when executed by at least one processor, cause the at least one processor to perform the method according to any of claims 1 to 35.