This project contains the source code and results of the following research:
Jornadas de Cloud Computing & Big Data, 2018
Authors: F. López-Pires and B. Barán and C. Pereira and M. Velázquez and O. González
Ref.: JCC&BD-2018
Cloud computing datacenters currently provide millions of virtual machines in highly dynamic Infrastructure as a Service (IaaS) markets. As a first step on implementing algorithms previously proposed by the authors for the Virtual Machine Placement (VMP) in a real-world IaaS middleware, this work presents an experimental comparison of these algorithms against current algorithms considered for solving VMP problems in OpenStack. Several experiments considering scenario-based simulations for uncertainty modelling demonstrate that the proposed algorithms present promising results for its implementation towards real-world operations. Next steps are also summarized.
ITU Kaleidoscope, 2018
Authors: F. López-Pires and B. Barán
Ref.: ITU-2018
Emerging paradigms associated to Cloud Computing operations are considered to serve as a basis to integrate 5G components and protocols. In the context of resource management for Cloud Computing Datacenters, several research challenges could addressed considering state-of-the-art machine learning techniques. This paper presents identified opportunities on improving critical resource management decisions, analyzing the potential on applying machine learning to solve these relevant problems, mainly in two-phase optimization schemes for Virtual Machine Placement (VMP). Future research directions are also presented.
To develop and execute the following items are required:
- Maven 3 or greater
- Java 8 (JDK 1.8)
- Java IDE (i.e. eclipse, intellij, ...)
The framework could be compile with maven.
- Go to the project root and execute:
$ mvn clean package
- In the target directory is the compiled framework, to execute use the following command:
$ java -jar target/DynamicVMPFramework.jar inputs/ivmp.conf inputs/vmpr.conf inputs/scenarios.con
f outputs/
- parameter: Configuration file and scenarios
ivmp.conf:
- APPROACH = Algorithm approach
- CENTRALIZED
- DISTRIBUTED -> This approach will automatically launch the distributed approach and you don't need to specify the following inputs: VMPr, VMPr_TRIGGERING, VMPr_RECOVERING.
- iVMP = Algorithm for the incremental phase (iVMP).
- FF -> First Fit
- BF -> Best Fit
- WF -> Worst Fit
- FFD -> First Fit Decreasing
- BFD -> Best Fit Decreasing
vmpr.conf: 3. VMPr = Algorithm for the reconfiguration phase (VMPr).
- MEMETIC -> Memetic Algorithm
- ACO -> Ant Colony Optimization
- VMPr_TRIGGERING = VMPr triggering strategy
- PERIODICALLY
- PREDICTION-BASED
- VMPr_RECOVERING = VMPr recovering strategy
- CANCELLATION
- UPDATE-BASED
- PM_CONFIG = Load CPU Configuration
- LOW -> (<10%)
- MED -> (<30%)
- HIGH -> (<80%)
- FULL -> (<95%)
- SATURATED -> (<120%)
- DERIVE_COST = Cost per each derived VM
- PROTECTION_FACTOR_01 = Resource1 protection factor [0;1]
- PROTECTION_FACTOR_02 = Resource2 protection factor [0;1]
- PROTECTION_FACTOR_03 = Resource3 protection factor [0;1]
- PENALTY_FACTOR_01 = Resource1 penalty factor (greater than 1)
- PENALTY_FACTOR_02 = Resource1 penalty factor (greater than 1)
- PENALTY_FACTOR_03 = Resource1 penalty factor (greater than 1)
- INTERVAL_EXECUTION_MEMETIC = Periodic Time of MA Execution
- POPULATION_SIZE = Population size for MA
- NUMBER_GENERATIONS = Generations size for MA
- EXECUTION_DURATION = Time of Duration
- LINK_CAPACITY = Link Capacity for Migration
- MIGRATION_FACTOR_LOAD = Factor Load per Migration
- HISTORICAL_DATA_SIZE = Historical Data Sieze
- FORECAST_SIZE = Forecast Size
- SCALARIZATION_METHOD = Scalarization Method
- ED -> Euclidean Distance
- MD -> Manhattan Distance
- CD -> Chevyshev Distance
- WS -> Weighted Sum
- MAX_PHEROMONE = Max pheromone allowed in ACO
- PHEROMONE_CONSTANT = Pheromone constant for ACO, range [0,1], determines how fast pheromone evaporates. Pheromones evaporates quicker as pheromone constant grows
- N_ANTS = Number of ants used for ACO
- ACO_ITERATIONS = Number of iterations to be performed in ACO to return a solution
scenarios.conf: 27. SCENARIOS = List of Request
The framework generates the following file:
- *resutls: contains F1, F2, F3 values