10th International Conference on Information Systems and Technology Management – CONTECSI
June, 12 to 14, 2013 - São Paulo, Brazil
THE USE OF TIME SERIES AS A PREDICTION TOOL FOR PROVISIONING IN
CLOUD COMPUTING ENVIRONMENTS
Tatiana Fernanda Mousquer dos Santos (Universidade Federal de Santa Maria, Rio Grande do Sul,
Brasil) – [email protected]
Carlos Oberdan Rolim (Universidade Federal do Rio Grande do Sul, Rio Grande do Sul, Brasil) –
[email protected]
Raul Ceretta Nunes (Universidade Federal de Santa Maria, Rio Grande do Sul, Brasil) –
[email protected]
Adriano Mendonça Souza (Universidade Federal de Santa Maria, Rio Grande do Sul, Brasil) –
[email protected]
Cloud Computing systems needs to ensure the distribution of resources for processing services
within acceptable levels of Quality of Service - QoS. One problem that exists in this context is how
to use available computational resources avoiding bottlenecks and wastage. This paper aims to
determine if there is a statistical method able to predict the amount of resources that should be used
for new virtual servers. Thus, we used a time series model named ARIMA (autoregressive moving
average) as underlying technique for provisioning of new virtual machines in Cloud Computing
environments. The results evidence the feasibility of use of such models in this context.
Sistemas baseados em computação em nuvem necessitam assegurar a distribuição de recursos para
processamento dos serviços dentro de níveis aceitáveis da qualidade de serviços – QoS. Um
problema que existe neste contexto é como utilizar os recursos computacionais de forma a evitar
gargalos e desperdício destes recursos. O presente artigo tem como objetivo verificar, se há um
método estatístico capaz de apontar de forma preditiva a quantidade de recursos que deverão ser
utilizados por novos servidores virtuais. Para isso foi definida a utilização de séries temporais e
resultados demonstraram que o modelo de série temporal ARIMA (auto-regressivo de médias
móveis), é viável como técnica base para um mecanismo de provisionamento de novas máquinas
virtuais em ambientes de nuvem computacional.
Palavras-Chave: séries temporais, ARIMA, Cloud.
2060
10th International Conference on Information Systems and Technology Management – CONTECSI
June, 12 to 14, 2013 - São Paulo, Brazil
1.
Introdução
A partir do avanço da sociedade, surgiram novas tecnologias. Serviços como email, acesso à Internet e vendas on-line, tornaram-se essenciais na vida diária das
pessoas. A Computação em Nuvem, do inglês Cloud Computing é uma tecnologia já
disseminada em todo o mundo e permite a entrega de tais serviços, a qualquer lugar e
hora, bastando apenas que o usuário possua conexão à Internet.
A Computação em Nuvem é um termo para descrever um ambiente de
computação baseado em uma grande rede de servidores, na maior parte das vezes tais
servidores são virtuais, porém também podem ser físicos (Taurion, 2009). Ainda de
acordo com (Armbrust, 2009), a computação em nuvem é um conjunto de serviços de
rede ativados, proporcionando escalabilidade, qualidade de serviço, infra-estrutura
barata de computação sob demanda e que pode ser acessada de uma forma simples e
pervasiva.
Nessa nova forma de arquitetura, os recursos de Tecnologia da Informação (TI)
são fornecidos como um serviço, possibilitando assim que os usuários os acessem sem
possuir o conhecimento sobre a tecnologia (hardware/software) utilizada.
Tanto usuários como empresas acessam os serviços sob demanda, sem ter a
necessidade de saber a localização destes. Assim, estes movem suas informações e
aplicações para a nuvem, acessando-as de forma simples, sem a necessidade de
investimento ou instalação de uma estrutura física local, pois todo o processamento é
efetuado remotamente por um conjunto de servidores virtuais que são escalonados
conforme a necessidade da aplicação.
Um problema que existe nesse tipo de arquitetura está relacionado justamente a
essa necessidade de escalonamento de novos servidores virtuais. Conforme (Chirigati,
2009), as aplicações desenvolvidas para uma nuvem precisam ser escaláveis, de forma
que os recursos utilizados possam ser ampliados ou reduzidos de acordo com a
demanda. Se forem alocados poucos servidores às aplicações, elas irão apresentar
gargalos, se forem alocados demais, recursos computacionais que poderiam ser
utilizados de forma mais efetiva por outras aplicações serão desperdiçados. Além disso,
existe ainda a necessidade que essa alocação de recursos seja efetuada de forma próativa, visando assim, garantir a qualidade de serviço para as aplicações.
Neste contexto, este artigo visa responder a seguinte questão: Existe um método
estatístico que seja capaz de apontar de forma preditiva os recursos computacionais que
serão utilizados para a alocação de novos servidores virtuais?
Dessa forma, este artigo analisa o modelo baseado em séries temporais chamado
de ARIMA, que é um modelo auto-regressivo de médias móveis, visando investigar a
possibilidade de utilizá-lo como técnica básica para um mecanismo de provisionamento
de ambientes de nuvem computacional. O ARIMA foi aplicado em dados históricos que
caracterizam o ambiente para então se verificar a capacidade deste modelo em fornecer
corretamente as configurações de memória, disco e processamento de novos servidores
que serão alocados deverão possuir. Com isso, situações atípicas que necessitem de
grande capacidade de recursos computacionais, como por exemplo, ataques de negação
de serviços a servidores web ou de bancos de dados, podem ter seus reflexos
amenizados uma vez que se alocará recursos que consigam suprir a demanda nos
momentos de ataques.
2061
10th International Conference on Information Systems and Technology Management – CONTECSI
June, 12 to 14, 2013 - São Paulo, Brazil
A principal contribuição desse artigo está justamente na análise e definição de
uma técnica baseada em séries temporais como base para um mecanismo de
escalonamento de máquinas virtuais em ambientes de nuvem computacional.
O trabalho está organizado da seguinte forma: na seção 2 são apresentados os
trabalhos relacionados; na seção 3 são apresentados alguns conceitos envolvendo séries
temporais; na seção 4 são apresentados alguns tipo de ataques DoS; na seção 5 é
abordado o modelo proposto para a predição de recursos computacionais; já na seção 6
são demonstrados os resultados obtidos a partir do modelo ARIMA encontrado; e por
fim na seção 7 são apresentadas as conclusões e trabalhos futuros.
2.
Trabalhos relacionados
A computação em nuvem é um paradigma, que surgiu a partir da necessidade de
se reduzir custos e de se ter maior escalabilidade na infraestrutura. Ainda de acordo
com (Nist, 2012), computação em nuvem é um modelo que possibilita acesso, de modo
conveniente e sob demanda, a um conjunto de recursos computacionais configuráveis
que podem ser rapidamente adquiridos e liberados com mínimo esforço gerencial ou
interação com o provedor de serviços.
Ambientes de computação em nuvem levam a uma maior integração de
recursos de armazenamento escalável, possuindo alto poder de processamento. Sendo
que estas características são de extrema importância, uma vez, que a enorme quantidade
de informações geradas pelas empresas e usuários, torna necessária a procura de
soluções que visam oferecer serviços de informação que tratem um grande volume de
dados com um menor custo e com um SLA aceitável. Já que muitas transações
comerciais acontecem de forma on-line e a parada parcial ou total destes serviços pode
levar uma empresa a ter prejuízos incalculáveis.
Segundo a literatura, a computação em nuvem é composta por camadas
diferentes chamadas de SaaS, PaaS e IaaS, as quais são representadas na Figura 1 e
descritas mais abaixo:
Figura 1 – Camadas da Computação em Nuvem
SaaS (Software as a Service) – é a camada de mais alto nível, em que as
aplicações são oferecidas aos usuários através de serviços ofertados por provedores de
internet, sendo acessíveis em qualquer horário e local através de aplicações como o
browser. Exemplos de implementações SaaS são os serviços prestados pela Google
(Google Docs, Google Agenda, Google Mail).
2062
10th International Conference on Information Systems and Technology Management – CONTECSI
June, 12 to 14, 2013 - São Paulo, Brazil
PaaS (Plataform as a Service) – é a camada intermediária, sendo que é a
capacidade disponibilizada pelo provedor para que o usuários desenvolva suas
aplicações que serão hospedadas e executadas em nuvem. Atualmente serviços como
Google AppEngine e Microsoft Azure são exemplos de PasS.
IaaS (Infraestructure as a Service) - encontra-se em um nível mais baixo. Nesta
camada o provedor fornece aos usuários uma infraestrutura de processamento e
armazenamento, sendo que o cliente não tem acesso à estrutura física do serviço, mas
através de ferramentas de virtualização consegue ter controle sobre os sistemas
operacionais, aplicações e armazenamento. Exemplo da utilização deste serviço é
Amazon EC2, Google Cloud Storage.
A camada IaaS é de extrema importância, pois esta serve de base para a
prestação de serviços pelas outras camadas. Assim a capacidade de existir SLAs
confiáveis de acordo com requisitos de QoS estabelecidos em um nível mais baixo na
nuvem, é de total importância e possui forte dependência dessa camada. Por este motivo
o presente trabalho possui como objetivo investigar um método estatístico que seja
capaz de ser utilizado como técnica básica para um mecanismo de provisionamento de
servidores virtuais na camada IaaS.
Como se pode imaginar, o provisionamento de recursos é uma das mais
importantes características da computação em nuvem, e um dos maiores desafios
também. De acordo com (Taurion, 2009:09) a Computação em Nuvem, aparece como
uma alternativa, pois aloca recursos computacionais à medida que eles sejam
demandados. A qualidade do serviço prestado na nuvem é um dos aspectos mais
importantes, essa qualidade depende da capacidade da nuvem se auto gerenciar para
assim disponibilizar aos seus usuários recursos necessários de acordo com a demanda,
autores como (Armbrust, 2009) dizem que esta característica chama-se elasticidade, que
é um termo que vem sendo bastante utilizado devido à popularização da computação
em nuvem. O objetivo da elasticidade é criar um ambiente que se adapte às diferentes
cargas de trabalho que são impostas ao sistema. Pois normalmente uma máquina real
possui recursos alocados de maneira estática, sendo que qualquer variação na alocação,
como adição ou remoção, implica na perda de desempenho deste ambiente.
A partir da utilização de virtualização a alocação se torna mais flexível,
principalmente quando o recurso em questão é o processador. A alocação estática de
recursos possui problemas como a falta ou ainda o desperdício de recursos. Sendo que
ao se projetar um ambiente para satisfazer demandas que ocorrem no cotidiano sem
prever momentos de pico de utilização destes recursos, faz com que ocorra a falta de
recursos deste ambiente. Já quando se faz o provisionamento de recursos em um
ambiente, para suportar uma maior carga, mas quando isso ocorre de forma esporádica,
aí ocorre o desperdício de recursos. Sendo que desperdício ou falta de recursos
Uma das principais dificuldades ao se otimizar a alocação de recursos é manter
o ambiente com um desempenho aceitável. Sistemas baseados em computação em
nuvem, necessitam determinar a distribuição necessária para processamento dos
serviços, e assim atingir níveis aceitáveis da qualidade dos serviços, chamados QoS
(Quality of Service). Porém existem algumas variáveis que podem por em risco a QoS
de serviço. Ataques de Denial-of-Service (DoS) e suas variantes (como Distributed
Denial of Service) são exemplos de iniciativa que visam estressar o consumo de
recursos nos servidores de forma que estes parem de atender requisições,
consequentemente os serviços atendidos ficam comprometidos.
2063
10th International Conference on Information Systems and Technology Management – CONTECSI
June, 12 to 14, 2013 - São Paulo, Brazil
Neste contexto algumas iniciativas foram desenvolvidas por alguns autores.
Pode-se apresentar o trabalho de (Sladescau, 20012) que apresenta sobrecarregar um
ambiente em nuvem e fazer com que os indicadores de QoS permaneçam em níveis
aceitáveis. Ainda pode ser citado o trabalho de (Khan, 2012), que é utiliza Modelos
Ocultos de Markov para fazer correlações temporais em cluster de servidores e com
isso fazer a predição de variações nos padrões de carga do ambiente.
Em (Sladescau, 2012), os autores propõem um framework chamado de Event
Aware Prediction (EAP) o qual a proposta é lidar com rajadas de sobrecarga de um
ambiente de nuvem de forma a manter os indicadores de QoS em níveis aceitáveis. Tal
framework utiliza uma estratégia baseada em histórico de eventos passados para
predizer cargas associadas com eventos similares no futuro. O trabalho é interessante,
pois além do framework proposto é efetuada uma análise de diversos modelos
matemáticos com foco em predição. Entretanto, os autores se limitam somente a
questões preditivas de eventos e não e fornecer indicativos de configurações
quantitativas que os servidores que serão escalonados precisam possuir para lidar com a
sobrecarga do ambiente.
Já o trabalho de (Khan, 2012) apresenta um método baseado em Modelos
Ocultos de Markov (HMM, do inglês Hidden Markov Modeling) para caracterizar
correlações temporais em clusters de servidores e predizer variações nos padrões de
carga do ambiente. Apesar de demonstrar interessantes resultados relacionados à
predição a partir da aplicação do método proposto não é abordada a questão de recursos
computacionais que deveriam ser alocados para lidar com essas mudanças de carga do
ambiente.
O trabalho de (Araújo, 2011) que apresenta uma abordagem para lidar com
questões relacionadas ao rejuvenescimento de recursos em ambientes de nuvem
computacionais relacionados à degradação do estado interno dos softwares devido ao
seu uso operacional. O trabalho apresenta a aplicação de diferentes tipos de séries
temporais, porém o seu foco está em questões de rejuvenescimento de recursos e não na
detecção de violação de SLAs e predição de recursos computacionais que deverão ser
alocados.
Como se percebe, nenhuma dessas iniciativas é capaz de proporcionar de forma
preditiva indicativos de ataques que estariam ocorrendo, violando assim os Acordos de
Nível de Serviço (ou SLAs, do inglês Sevice Level Agreement), e nem mesmo
conseguem fornecer quais as configurações necessárias aos novos servidores virtuais
para suprirem as demandas.
Com isso existe uma lacuna no estado da arte apontando para uma necessidade
de uma técnica que seja capaz de ser utilizada como base para um mecanismo para
escalonamento de servidores virtuais em um ambiente de nuvem computacional. Assim,
conforme mencionado na seção anterior o presente trabalho aborda uma solução viável
para alocar recursos computacionais adequadamente e para isso foi utilizada séries
temporais.
3.
Séries Temporais
Uma série temporal é definida como um conjunto de observações de uma
variável ordenadas no tempo (Morretin & Toloi, 1987). A maioria dos problemas
encontrados é de não estacionariedade, pois muitas variáveis alteram o seu
2064
10th International Conference on Information Systems and Technology Management – CONTECSI
June, 12 to 14, 2013 - São Paulo, Brazil
comportamento através do tempo, ou seja, ocorre muita variabilidade, alterações
bruscas e assim não há uma variância constante e isso faz com que a série observada
não seja estável ou estacionária ao longo do tempo. Uma série temporal x é
representada da seguinte forma:
A análise de séries temporais consiste na aplicação de modelos matemáticos e
estatísticos nos dados das mesmas, com o objetivo de quantificar e compreender o
fenômeno da variação temporal. Essa análise é feita com dois objetivos: (i) Analisar o
passado, tentando retirar conhecimento útil do mesmo; (ii) Predizer o futuro, tentando
através da análise dos dados, construir um modelo que permita antever a evolução
futura da série temporal (Oliveira, 2007:02).
Uma metodologia bastante utilizada na análise de uma série temporal é Box e
Jenkins, esta consiste em ajustar modelos auto-regressivos (AR) integrados de médias
móveis (MA). Conforme (Tápia, 2000), a utilização de séries temporais pelo método
Box e Jenkins é representada pelo conjunto de processos estocásticos ARIMA (do
inglês Autoregressive Integrated Moving Average) representado pelas letras (p, d, q),
em que p é a parte autoregressiva, d representa o número de diferenças efetuadas na
série para que se possa tornar estacionária e q representa as médias móveis.
A construção do modelo usando séries temporais segue um ciclo iterativo da
metodologia de Box e Jenkins, é composto pelas quatro etapas, conforme (Gujarati,
2000): (i) Identificação: descobrir os valores apropriados para os parâmetros. Para
determinar suas ordens e valores, a função de autocorrelação (FAC) e a função de
autocorrelação parcial (FACP) auxiliam nessa tarefa; (ii) Estimação: estimar os
parâmetros dos termos autorregressivos; (iii) Verificação de diagnóstico: nessa etapa
procura-se atestar se o modelo identificado e estimado é adequado, ou seja, se ele
descreve adequadamente a série de dados. A forma de verificação comumente utilizada
é a realização da análise dos resíduos do modelo; (iv) Previsão: consiste em realizar a
previsão, mas é importante verificar a potencialidade de previsão do modelo.
Ao se modelar uma série temporal se pressupõe a utilização de uma série
estacionária, de modo que no período de estimação de seus parâmetros sejam
representativos de toda a série que será estimada. Assim há duas características para os
modelos, uma é quando a série já se encontra estacionária, representada pelo modelo
ARMA, e a outra é quando se faz necessário estacionarizar a série, para após aplicar a
modelagem, este se denomina ARIMA, ambos os modelos são designados
genericamente por ARIMA (p, d, q). A seguir serão apresentados os modelos ARMA e
ARIMA.
3.1
Modelos ARMA (p, q)
As aplicações destes modelos seguem as características de que a série comportese estacionária, ou seja, sem a influência das componentes: tendência, sazonalidade,
ciclo e variáveis aleatórias. O modelo ARMA (p, q), se dá pela equação abaixo.
Zt =ξ +φ1Zt−1 +φ2Zt−2 +φpZt−p +εt −θ1εt−1 −θ2 εt−2 −θq εt−q
2065
10th International Conference on Information Systems and Technology Management – CONTECSI
June, 12 to 14, 2013 - São Paulo, Brazil
Onde: φ1, φ 2 , ...φ q são parâmetros autorregressivos e θ1 θ 2 θ p , são parâmetros de
médias móveis, ε t considera-se um processo puramente aleatório com média zero e
variância constante σ e2 . ξ é um parâmetro relacionado ao nível ou á média da série.
Podendo-se reescrever a equação acima como:
~
φ p ( B) Z t = ε t θ ( B)
^
Onde:
φ p (Β) = 1 − φ1Β − ... − φ p Β
p
^
θ q (Β) = 1 − θ1Β − ... − θ q Β q
Segundo (Box & Jenkins, 1970), um processo ARMA (p, q) estacionário tem
por caracterização um decaimento exponencial após a defasagem q, enquanto a PACF
tem o mesmo comportamento após a defasagem p (Tabela 1):
Modelo
AR(p)
MA(q)
ARMA (p, q)
FAC
Decaimento exponencial
Truncada na defasagem q
Decai exponencialmente se j > q
FACP
Truncada na defasagem p
Decaimento exponencial
Decai exponencialmente se j > q
Tabela 1- Identificação dos modelos AR(p) e MA(q) - [Bueno, 2008].
Assim, quando há característica de estacionariedade, isso garante que um
parâmetro estimado no modelo seja representativo para toda a série, o que possibilita a
realização de previsão de forma mais assertiva.
3.2
Modelos ARIMA (p, d, q)
Ao se utilizar séries temporais, se busca um conjunto de observações, as quais
devem mostrar um comportamento estável ao longo do tempo, sendo assim busca-se
encontrar um conjunto de observações com característica estacionária. Desta maneira, a
metodologia proposta por Box & Jenkins, aplica-se a casos em que a série apresenta
características não estacionárias, sendo necessário tomar uma ou mais diferenças para
estacioná-la sendo nomeada (d), a ordem de integração.
A construção da modelagem ARIMA, parte do pressuposto de que as séries
temporais envolvidas na análise são geradas por um processo estocástico estacionário,
sendo representada a partir de um modelo matemático. Dessa forma se Zt não é
estacionária, mas Z t = ∆ Ζ t = Ζ t − Ζ t −1 é estacionária, então Zt é dita integrada de
ordem (1). Caso seja necessário efetuar duas diferenças para tornar a série estacionária,
então Zt é denominada de ordem (2), assim Ζ t = ∆2 Ζ t = ∆ ( ∆Ζ t ) = ∆ ( Ζ t − Ζ t −1 ) se torna
estacionária.
2066
10th International Conference on Information Systems and Technology Management – CONTECSI
June, 12 to 14, 2013 - São Paulo, Brazil
O objetivo principal de uma série temporal é a possibilidade de utilizar técnicas
de predição a fim de encontrar bons modelos preditivos. Isso se dá pelo fato de que as
séries temporais se baseiam na idéia de que observações passadas de um conjunto de
dados possuem informações sobre o padrão do comportamento destes dados no futuro.
4.
Ataque DoS
A segurança de rede está se tornando um grande desafio. Gerenciamento de
segurança e fiscalização em grandes redes tornou-se uma tarefa desafiadora (Morin,
2009) visando assegurar a disponibilidade, confidencialidade e integridade dos sistemas
de informação (Depren, 2005).
Nessa área, um dos desafios encontrados por administradores de redes e
sistemas é ataques de Negação de Serviços (DoS do inglês Denial-of-Service) e sua
variante distribuída que é ainda mais impactante pois pode envolver até mesmo
milhares de computadores atacando um único alvo chamada de Negação de Serviços
Distribuída (DDoS do inglês Denial-of-Service). Devido às suas características de
atuação serem semelhantes no que se refere à finalidade de esgotar os recursos de um
servidor e como o foco aqui não está em questões de como tais ataques são efetuados,
este artigo trata ambos, DoS e DDoS, como ataque de Negação de Serviço.
Em ataques de Negação de Serviços ao invés de se tentar uma invasão a um
servidor são efetuadas diversas requisições simultâneas, por um único computador ou
por um conjunto deles, de forma que os recursos disponíveis sejam exauridos e não se
consiga mais respondê-las. De forma simples, o servidor fica sobrecarregado e passa a
negar a prestação do serviço.
Ataques com essas características geralmente são efetuados como forma de
protesto, tentativas de fraudes ou até mesmo como demonstração de “poder” entre
grupos de ativistas on-line e seu foco geralmente são servidores que atendem serviços
web ou de banco de dados.
Para a sua execução uma forma bastante conhecida é chamada de SYN Flooding,
onde um atacante malicioso implementa de forma errônea o protocolo TCP visando
explorar o aperto de mão em três etapas (Three-Way Handshake).
SYN
SY
N
+
ACK
2067
K
AC
10th International Conference on Information Systems and Technology Management – CONTECSI
June, 12 to 14, 2013 - São Paulo, Brazil
Figura 2 – Aperto de mãos em três vias (Three-Way Handshake)
Na forma normal de funcionamento do aperto de mãos em três vias (Figura 2), o
cliente solicita uma conexão através de um SYN (synchronize) ao servidor. Este
confirma a requisição enviando um SYN+ACK (acknowledge) de volta ao cliente. Para
estabelecer a conexão, o cliente então deve responder com um ACK. Acontece que em
ataques desse tipo o atacante não envia esse último ACK e imediatamente inicia
requisição de uma nova conexão que também não será completada através do envio do
ACK final (Figura 3). O servidor ficará esperando pelos ACKs que jamais serão
entregues. Como recursos do sistema são alocados para atender as novas requisições
que supostamente estão sendo efetuadas, logo não haverá mais recursos disponíveis e o
sistema passa a negar seus serviços.
Figura 3 – SYN Flooding
Outra forma de ataque que se enquandra na categoria de Negação de Serviço é
chamado de UPD Packet Storm. Nele, ao invés de se utilizar o protocolo TCP são
enviados diversos pacotes UDP (User Datagram Protocol) com endereços de origem
forjados (spoof) para portas randômicas de um servidor. Como resultado, o servidor irá
primeiramente verificar se existe um serviço rodando em tal porta, como provavelmente
não existirá, será enviado um pacote ICMP Destination Unreachable para o endereço
origem. Como o endereço de origem do pacote UDP foi forjado o pacote ICMP não
chega de volta ao atacante, que mantêm sua identidade oculta. Se forem mandados
vários pacotes UDP o servidor precisará responder a todos com um ICMP e se não
houver recursos suficientes disponíveis, isso fará com que ele fique indisponível para
outros clientes que desejariam utilizar seus serviços.
Esses são somente alguns tipos de ataques de Negação de Serviço que servem
para ilustras que simples regras de firewall ou uso de sistemas de detecção de intrusão
(IDS do inglês Intrusion Detection System) não são suficientes para lidar com estes
tipos de ataques. Uma estrutura de Nuvem é capaz de absorver essa demanda de
recursos computacionais. Entretanto, é necessária a existência de um mecanismo que
2068
10th International Conference on Information Systems and Technology Management – CONTECSI
June, 12 to 14, 2013 - São Paulo, Brazil
seja capaz de verificar a ocorrência de violação de SLA (que pode indicar um ataque
em andamento) e então alocar recursos suficientes para minimizar seus impactos.
5.
Modelo escolhido
Como exposto anteriormente, ataques de Negação de Serviços visam
sobrecarregar o servidor, usando todos os recursos disponíveis, de forma que este passe
a negar a prestação de serviços. Uma estrutura de serviços em Nuvem é capaz de
diminuir o impacto desse tipo de ataque através do escalonamento de novos servidores
virtuais a medida que a demanda aumenta. Assim, é necessária uma técnica que seja
capaz de ser utilizada como base para um mecanismo para escalonamento de servidores
virtuais em momentos de sobrecarga.
Pelo fato da maioria de ataques de Negação de Serviços serem endereçados a
servidores web, os dados utilizados no presente trabalho, foram retirados de servidores
que prestam serviços de hospedagem de sites. Para um servidor ser capaz de atender
requisições de páginas web os recursos utilizados são: memória, disco e processador.
Ou seja, no escopo deste artigo a técnica escolhida deverá manipular variáveis que
indiquem o uso de cada um destes recursos, identificar se está ocorrendo uma
sobrecarga no sistema e então indicar valores que deverão ser usados para escalonar
novos servidores que consigam suportar a demanda exigida. Ressalta-se que não foram
utilizados dados referentes ao consumo de banda, pois tal análise será efetuada em
trabalhos futuros.
Os dados foram obtidos de um cluster de servidores de uma empresa de
hospedagem de sites. Foram desenvolvidos scripts que coletavam dados referente ao
consumo de memória, de disco e de processador em intervalos de 30 segundos. Os
dados foram coletados durante um período de 30 dias de forma que ao final desse
período foi montado um dataset contendo os seguintes campos:
- Consumo de memória (MEM): volume de memória dinâmica volátil - RAM,
consumida pelo número de requisições solicitadas ao sistema em um dado momento.
- Consumo de disco (DSC): corresponde ao consumo em megabytes das
requisições efetuadas em cima do espaço de armazenagem do sistema.
- Load do processador (LOAD): indica a soma de todos os processos em um
sistema que ficam em execução, ou que estão aguardando na fila, para serem
executados.
Para ser capaz de manipular esses dados é necessária a definição de um modelo
que seja capaz de lidar com o monitoramento e predição de recursos (memória, disco,
processador). De acordo com (Box & Jenkins, 1994), o modelo ARIMA (p, d, q)
apresentado anteriormente é adequado para a previsão de séries temporais cujo processo
estocástico não é estacionário, como é o caso dos dados em questão. Logo, a série
original, passará por algumas diferenciações a fim de torná-la estacionária.
Modelos Box & Jenkins, consistem em modelos matemáticos que observam o
comportamento da série, ou seja, verifica a autocorrelação dos dados passados e assim
realizar previsões futuras. Ainda de acordo com (Souza, 2001), o modelo ARIMA
apresenta os critérios necessários (i) Ser um modelo parcimonioso; (ii) P valor
significativo (p<0,05); (iii) Existência de ruído branco; (iv) Observações do critério
AIC.
2069
10th International Conference on Information Systems and Technology Management – CONTECSI
June, 12 to 14, 2013 - São Paulo, Brazil
Pelo comportamento das séries atenderem todos os requisitos mencionados
pelos autores (Box & Jenkins, 1994) e (Souza, 2001) foi utilizado o modelo ARIMA.
Uma vez as séries originais não sendo estacionárias, houve a necessidade de se fazer
uma diferenciação de ordem (d). Através da utilização do modelo ARIMA, pode-se
verificar uma previsão de recursos computacionais que serão utilizados para alocação
de novos servidores virtuais, desta maneira não ocorrerão gargalos e nem desperdícios
na utilização de recursos do sistema. Isso significa que recursos como memória, disco e
processador serão provisionados a partir da previsão do modelo ARIMA.
Assim, a série temporal foi modelada conforme Figura 4, buscando-se definir
qual a melhor configuração de parâmetros do modelo que fosse capaz predizer valores
de consumo de memória, consumo de disco e também de processador com base nos
dados de entrada contidos no dataset.
Figura 4 - Variáveis de entrada do modelo ARIMA
A próxima seção vai mostrar quais foram melhores modelos estimados para as
séries, assim como resultados de predição obtidos a partir dos modelos encontrados.
6.
Resultados
O objetivo da modelagem ARIMA é observar o comportamento das séries ao longo do
tempo em relação aos valores de entrada das variáveis e a partir disso achar o melhor modelo de
predição da série temporal para prever comportamentos futuros. Com isso em mente, essa seção
visa demonstrar como foram selecionados os parâmetros para definir o melhor modelo a
ser usado e também quais foram os resultados preditivos a partir da aplicação de tal
modelo com vistas a melhorar a capacidade de um ambiente de nuvem em se adaptar a
carga de trabalho.
Para se chegar aos resultados deste trabalho, foi utilizado o software R, para
modelagem dos melhores modelos ARIMA, e na plotagem dos gráficos o software
Statistica versão 9.0. Para verificar o melhor modelo foram analisadas 399 observações
em cada variável. O primeiro passo para se modelar as séries foi a plotagem das
variáveis.
A partir dos gráficos das séries originais, observados na Figura 5, percebe-se
que as séries não são estacionárias, uma vez que o gráfico referente à variável MEM
possui variabilidade e uma tendência crescente ao longo do tempo, já o gráfico
correspondente ao disco, possui alta variabilidade, e por fim o gráfico LOAD, também
possui uma tendência crescente com bastante variância. Por estes motivos as séries não
são estacionárias, pois não variam em torno da média. Assim foi necessária a aplicação
2070
10th International Conference on Information Systems and Technology Management – CONTECSI
June, 12 to 14, 2013 - São Paulo, Brazil
de uma diferença (d) em todas as variáveis (séries), após essa diferença houve a
estacionariedade das séries.
a)
b)
c)
Figura 5 - Gráficos das séries originais: a) variável MEM (memória) - b)
variável DSC (disco) - c) variável LOAD (Load do processador)
Outro critério importante em uma modelagem ARIMA, é a verificação da
independência dos erros, ou seja, o ruído branco que é os erros do modelo encontrado,
neste caso ARIMA (1, 1, 0), isso indica as variáveis têm média zero e variância
constante ao longo do tempo. A Figura 6 mostra esta independência, que é a função da
autocorrelação dos resíduos (ACF). Através desta função se pode identificar a estrutura
do modelo, analisando ainda os valores de p ao nível de 5%, na Figura 6 se percebe que
há autocorrelação nas variáveis MEM, DSC e LOAD, isso indica que o modelo
ARIMA é indicado para estas variáveis.
2071
10th International Conference on Information Systems and Technology Management – CONTECSI
June, 12 to 14, 2013 - São Paulo, Brazil
a)
b)
c)
Figura 6 - Resíduos da série: a) Função de autocorrelação dos resíduos variáveis
MEM (memória) - b) variável DSC (disco) - c) variável LOAD (load do processador).
Após a modelagem no software R, se obteve os seguintes modelos estimados
para cada variável, visualizados nas Tabelas 2, 3 e 4, para as variáveis de entrada
memória (MEM), disco (DSC) e load (LOAD):
Variável
Modelo
Coeficiente
p-value
AIC
Ruído
branco
MEM
(memória)
ARIMA (1,1,0)
Φ= -0,4673
0,0000
4573,07
Sim
MEM
(memória)
ARIMA (2,1,0)
Φ= -0,6419
0,0000
0,0000
Sim
4515,66
Tabela 2 - Modelos estimados para a variável memória.
2072
10th International Conference on Information Systems and Technology Management – CONTECSI
June, 12 to 14, 2013 - São Paulo, Brazil
Variável
Modelo
Coeficiente
p-value
AIC
Ruído
branco
DSC
(disco)
ARIMA(1,1,0)
Φ= 0,4673
0,0000
4573,07
Sim
DSC
(disco)
ARIMA (2,1,0)
Φ= -0,5770
0,0000
0,0000
5193,82
Não
Tabela 3- Modelos estimados para a variável disco.
Variável
Modelo
Coeficiente
p-value
AIC
Ruído
branco
Load
ARIMA (1,1,0)
Φ= -0,4673
0,000000
4573,07
Sim
Load
ARIMA (2,1,0)
Φ= -0,7209
0,00000,
0,00001
3925,36
Sim
Tabela 4- Modelos estimados para a variável Load do processador.
A partir das informações contidas nas tabelas acima, verifica-se que os modelos
de previsão encontrados foram ARIMA auto-regressivos (p), com uma diferenciação
(d), já que houve necessidade de dar uma diferença nas séries para que pudessem se
tornar estacionárias. O Critério de Informação de Akaike (AIC) é utilizado para
comparar modelos diferentes para uma mesma série, este critério aumenta conforme a
soma dos quadrados dos resíduos (SQE) aumenta. E o p-value indica o quanto as
variáveis são significativas ao nível de 5%, que foi a porcentagem utilizada para se
modelar as séries.
Ao verificar o melhor modelo, entre os dois estimados nas tabelas 2, 3 e 4, levase em conta a parcimônia, em que o melhor modelo é aquele com o menor número de
parâmetros possíveis que é o número de termos autoregressivos e de médias móveis, e
número de integrações necessárias para tornar a série estacionária, isso faz com que se
tenha menos imprecisão nas estimativas. Portanto o modelo ARIMA (1, 1, 0), com
apenas um parâmetro (1), uma diferença (1) e sem média móvel (0), juntamente com os
outros critérios já mencionados, foi o modelo que apresentou as melhores configurações
de parâmetros, uma vez que a modelagem ARIMA (2, 1, 0), possui dois parâmetros (2),
uma diferença (1) e sem média móvel (0) e isso acaba tornando o modelo menos
impreciso para predição, sendo assim pouco indicado para o uso nessa situação.
Uma vez definido que o modelo ARIMA (1, 1, 0) é o mais adequado para esse
tipo de situação, foram aplicados os dados do dataset como entrada do modelo então foi
analisada a saída obtida. A Figura 7 esquematiza a aplicação do modelo definido com
relação aos dados de entrada e as saídas preditas.
2073
10th International Conference on Information Systems and Technology Management – CONTECSI
June, 12 to 14, 2013 - São Paulo, Brazil
Figura 7 - Aplicação do modelo ARIMA escolhido com relação à entrada e
saída de dados
Após a entrada dos dados no modelo, a saída da série é demonstrada na tabela 5.
Nessa tabela pode-se perceber a previsão de cada variável 10 passos à frente, ou seja,
conforme mencionado na seção anterior, os dados foram coletados de 30 em 30
segundos, o que significa que os 10 passos de previsão representa o comportamento
destas variáveis ao passo futuro de 5 minutos.
MEM (memória)
DSC (disco)
Load (processador)
75.24799
171.6662
36.29016
85.25819
196.4670
40.34235
102.28911
235.1972
48.66944
113.34960
261.5156
53.52885
124.88631
288.1394
59.00580
134.80367
311.3762
63.52031
144.31778
333.4600
67.97103
153.11958
353.9750
72.03244
161.49653
373.4461
75.93289
169.43568
391.9166
79.61498
Tabela 5 - Previsões das séries
Ou seja, nos experimentos realizados pode-se perceber que o uso de séries
temporais conseguiu apontar antecipadamente tendências que indicam eventuais
anomalias de serviço. Com isso, como se sabe o provável comportamento do sistema
nos próximos minutos, caso ocorra algum tipo de situação onde os servidores passem a
receber um alto número de requisições em um curto intervalo de tempo, pode-se
trabalhar de forma pró-ativa para que os serviços não sejam afetados ou ainda que os
impactos referentes a gargalos sejam amenizados ao máximo a fim de que os clientes
não sintam reflexos de perda de desempenho nos serviços.
Por fim, a partir das análises nas séries e com base nos resultados obtidos,
verifica-se que a proposta abordada mostrou-se válida. A utilização de uma série
temporal, a partir do modelo ARIMA, pode ser uma alternativa ao provisionamento em
ambientes dinâmicos, em que há uma constante variabilidade no sistema.
2074
10th International Conference on Information Systems and Technology Management – CONTECSI
June, 12 to 14, 2013 - São Paulo, Brazil
7.
Conclusão
O provisionamento de recursos em um ambiente dinâmico é um dos desafios da
computação em nuvem. O trabalho proposto visou investigar a existência de um método
estatístico capaz de apontar de forma preditiva os recursos computacionais necessários
para a alocação de novos servidores virtuais. A análise dos resultados demonstra que é
viável a utilização de séries temporais, neste caso, o modelo ARIMA (1, 1, 0), para o
provisionamento de recursos em ambientes onde há necessidades de uma previsão
constante e principalmente caso ocorra um ataque DoS.
A partir dos resultados obtidos neste presente trabalho, chega-se a conclusão de
que a computação em nuvem pode se beneficiar da utilização de modelos ARIMA.
Uma vez que essa modelagem possibilitou analisar as informações contidas no dataset
e com isso fazer previsões sobre o padrão do comportamento destes dados no futuro.
Assim através da capacidade preditiva desta técnica estatística, consegue-se fornecer
indicativos necessários ao provimento da elasticidade de recursos a fim de que o
ambiente se adapte as suas necessidades.
Uma carência que o trabalho possui é o comparativo de variáveis reais com as
variáveis preditivas para verificar o quanto de acerto que a séries trazem em relação a
previsões futuras. Como proposta de trabalho futuro está à abordagem dessa carência
através de um comparativo entre os valores reais das séries e os valores preditivos, a
fim de verificar a margem de erro do modelo ARIMA em cima da predição dos dados
estudados. Além disso, pretende-se modelar e aplicar uma rede neural sobre os dados e
então fazer um comparativo para verificar qual dessas técnicas é mais adequada para
predição de provisionamento de servidores em ambientes virtuais.
Referências
ARAÚJO, J.; Matos, R.; Maciel, P.; Vieira, F.; Matias, R.; Trivedi, K.S.; , "Software
Rejuvenation in Eucalyptus Cloud Computing Infrastructure: A Method Based on
Time Series Forecasting and Multiple Thresholds," Software Aging and
Rejuvenation (WoSAR), IEEE Third International Workshop on , vol., no., pp.38-43,
Nov. 29 2011-Dec. 2, 2011.
ARMBRUST, M., Fox, A., Griffith, R., Joseph, A. D., Katz, R. H., Konwinski, A., Lee,
G., Patterson, D. A., Rabkin, A., Stoica, I., and Zaharia, M. Above the clouds: A
berkeley view of cloud computing. Technical report, EECS Department, University of
California, Berkeley. 2009.
BOX, G. E. P., Jenkins, G. M. & Reinsel, G. C. Time Series Analysis:Forecasting and
Control (Third ed.). Englewood Cliffs NJ: Prentice-Hall, 1994.
BOX, G. E. P.; PIERCE, D. A. Distribution of residual autocorrelations in
autoregressive-integrated moving average time series models. Journal of the
American Statistical Association. v. 65, 1970. P. 1509-1526.
2075
10th International Conference on Information Systems and Technology Management – CONTECSI
June, 12 to 14, 2013 - São Paulo, Brazil
BUENO, Rodrigo de Losso da Silveira. Econometria das Séries Temporais. São
Paulo: Cengage Learning, 2008.
CHIRIGATI,
Fernando
Seabra.
Computação
em
Nuvem.
2009.
<http://www.gta.ufrj.br/ensino/eel879/trabalhos_vf_2009_2/seabra/vantagens.html>.
Acesso em Jan 2013.
DEPREN, O.; TOPALLAR, M.; ANARIM, E.; Ciliz, M. K. An intelligent intrusion
detection system (IDS) for anomaly and misuse detection in computer networks. In
Expert Systems with Applications, v. 29, issue 4, pages 713-722, 2005.
GUJARATI, D. N. Econometria básica, São Paulo: Makron Books, 2000.
KHAN, Arijit, Xifeng Yan, Shu Tao, Nikos Anerousis, “Workload Characterization
and Prediction in the Cloud: A Multiple Time Series Approach”, IFIP/IEEE
International Workshop on Cloud Management (CloudMan), 2012.
MORIN B.; Mé L.; ebar H.; Ducassé M. A logic-based model to support alert
correlation in intrusion detection. In Information Fusion, v. 10, issue 4, pages 285299, 2009.
MORRETIN, P. A.; TOLOI, C. M. C. Previsão de séries temporais. 2. ed. São Paulo:
Atual Editora, 1987.
NIST. National Institute of Standards and Technology Draft Definition of Cloud
Computing <http://csrc.nist.gov/groups/SNS >. Acesso em Dez 2012.
OLIVEIRA, P. C. “Séries Temporais: Analisar o Passado, Predizer o Futuro”. In
Departamento de Engenharia Informática, Universidade de Coimbra, Portugal, 2007.
SLADESCU, Matthew, Alan Fekete, Kevin Lee, and Anna Liu WISE, volume 7651 of
Lecture Notes in Computer Science, page 368-381. Springer, 2012.
SOUZA, A. M; Lutz, M. R; Cardoso, R. A. Aplicação da metodologia Box & Jenkins
na modelagem e previsão da série lucros mensais em uma empresa de ramo
alimentício. 2001.
TÁPIA, Milena, Redes Neurais Artificiais: Uma Aplicação na Previsão de Preços de
Ovos, Dissertação de mestrado, UFSC, 2000.
TAURION, Cezar. Cloud Computing: computação em nuvem: transformando o
mundo da tecnologia da informação. Rio de janeiro: Brasport, 2009.
2076
Download

the use of time series as a prediction tool for provisioning