Uma Heurística Aleatória com Busca Adaptativa
Transcrição
Uma Heurística Aleatória com Busca Adaptativa
Anais do XIX Workshop de Gerência e Operação de Redes e Serviços– WGRS 2014 Dependabilidade na Alocação de Recursos em Redes Virtuais: Uma Heurística Aleatória com Busca Adaptativa Marcelo Santos, Matheus Santana, Djamel Sadok, Stênio Fernandes Centro de Informática – Universidade Federal de Pernambuco (UFPE) Recife – PE – Brasil {mabs, embs, jamel, sflf}@cin.ufpe.br Abstract. Network Virtualization has become a central matter for the Future Internet. Nevertheless, mapping virtual networks on the top of physical infrastructure topology represents a NP-Hard problem due to its numerous combinations and many node and link allocation constraints. Virtualized structures are as failure-prone as its underlying physical infrastructure. Hence, dependability attributes constitute relevant metrics for virtual network allocation decision. This work proposes and evaluates a dynamic and random networks allocation heuristic that takes into account of nodes and links capacity attributes maximizing availability. Results show that the proposed heuristic achieves an average availability of 95% while others algorithm allocation techniques achieve an average of 60% for same dependability metric. Resumo. Virtualização de redes vem sendo um dos pilares da Internet do Futuro. No entanto, mapear redes virtuais em uma topologia física é um problema NP-difícil devido ao grande número de combinações e às diversas restrições envolvidas na alocação de nós e enlaces virtuais. Falhas são inerentes a estas estruturas virtualizadas, uma vez que a infraestrutura física é propensa a falhas. Portanto, atributos de dependabilidade são importantes para a decisão de alocação de uma rede virtual. Assim, este trabalho propõe e avalia uma heurística aleatória adaptativa para alocação de redes virtuais levando em consideração características de capacidade dos nós e enlaces juntamente com atributos de dependabilidade buscando maximizar a disponibilidade. Os resultados mostram que a heurística proposta alcança uma disponibilidade média nas requisições de 95% contra 60% nas outras estratégias. 1. Introdução Redes Virtuais têm recebido grande atenção da comunidade de pesquisa nos últimos anos. Tratada como umas das tecnologias para a Internet do Futuro, possibilita um meio de avaliar novos protocolos e serviços figurando como uma importante tecnologia para superar a barreira da ossificação da Internet. Uma de suas características chave é a dinamicidade. Redes virtuais permitem a operadores de redes terem negociação em tempo real sobre uma variedade de serviços entre seus usuários, operadores de serviços virtuais (Virtual Network Operators -VNO) e provedores de redes virtuais (Virtual Network Providers - VNP) [Schaffrath et al. (2009)]. As estratégias de gerenciamento de rede dependem de mecanismos de alocação dinâmica dos recursos para a alocação das redes virtuais de forma eficiente e com alto 47 Anais do XIX Workshop de Gerência e Operação de Redes e Serviços– WGRS 2014 grau de desempenho. Para este fim, uma série de heurísticas foram propostas na literatura [Zhu et al. (2006)] [Guo et al. (2011)] [Zhou et al. (2010)] [Chowdhury et al. (2012)] para alcançar utilização eficiente dos recursos dos elementos de rede, como enlaces, nós e roteadores, uma vez que a alocação ótima não é possível devido à natureza NP-Difícil do problema. Embora a alocação eficiente dos recursos de rede seja uma questão fundamental a ser abordada, há ainda um ponto importante a ser discutido, originado pelo seguinte questionamento: quais são os riscos associados a uma determinada rede virtual? É normal que os riscos sejam inerentes às infraestruturas físicas utilizadas (nós e enlaces), uma vez que os componentes de rede física subjacente são propensos a falhas. Podemos citar, por exemplo, o recente acidente na nuvem da Amazon como um alerta de que falhas técnicas ou de intervenção humana é uma realidade e não devem ser negligenciadas [Gill et al. (2011)] [Benson et al. (2010)]. A avaliação e análise de risco dos atributos de dependabilidade são de suma importância, uma vez que se pode quantificar e dar medidas concretas para serem usadas como fator de decisão no gerenciamento e controle da rede. Em poucas palavras, a dependabilidade pode ser vista como um conceito geral que engloba a disponibilidade, confiabilidade, segurança, confidencialidade, integridade e capacidade de manutenção [Maciel et al. (2011)] [Laprie et al. 1985]. Dessa forma, expandido outros trabalhos, este artigo propõe e avalia uma heurística aleatória adaptativa para alocação de redes virtuais levando em consideração capacidades de nós e enlaces juntamente com atributos de dependabilidade. Através da utilização da modelagem baseada em Diagrama de Blocos de Confiabilidade (RBD) [Guimarães et al. (2011)], nós fornecemos uma heurística para o problema de mapeamento de redes virtuais (Virtual Networking Mapping Problem VNMP) que leva em consideração os riscos na virtualização de rede por meio de métricas de dependabilidade. As principais Contribuições deste trabalho são duas: (i) propomos uma heurística para VNMP que leva em consideração dependabilidade para tomada de decisão da alocação; e (ii) uma base metodológica que permite o desenvolvimento da análise de riscos na alocação de redes virtuais. O restante do artigo é organizado da maneira descrita a seguir. Na seção 2 são citados os trabalhos relacionados. Na seção 3 há uma breve discussão sobre conceitos de Dependabilidade. Na seção 4 é dada uma definição sobre VNMP e é exibida a modelagem do problema. A seção 5 apresenta a heurística desenvolvida. A seção 6 discute a metodologia. Na seção 7 são apresentados os resultados. Na seção 8 discutimos os resultados. Apresentamos as conclusões na seção 9. Por fim são citadas as referências. 2. Trabalhos Relacionados Em Sun et al. (2010) é proposto um modelo de dependabilidade para ambientes de computação em nuvem, usando virtualização de nível de sistema (CDSV) que adota várias métricas quantitativas para avaliar a dependabilidade. O foco é uma análise sobre aspectos de segurança e a avaliação do impacto das propriedades de dependabilidade dos componentes virtualizados em nível de sistema (por exemplo, máquinas virtuais, hypervisor e afins). Da mesma forma, Saripalli et al. (2010) apresentam um impacto quantitativo e uma metodologia de avaliação de risco a fim de avaliar riscos de 48 Anais do XIX Workshop de Gerência e Operação de Redes e Serviços– WGRS 2014 segurança em ambientes de computação em nuvem. Esses trabalhos dão uma visão de como abordar a avaliação da dependabilidade em cenários com virtualização, porém possuem um escopo mais simples quando comparados com um cenário de redes virtualizadas. Em Fernandes et al. (2012) é proposto um método para análise da dependabilidade em ambientes de redes virtualizadas com o uso de diagrama de bloco de confiabilidade (RBD) e Redes de Petri Estocásticas (SPN). Este é o primeiro trabalho a analisar o impacto da dependabilidade em ambientes dinâmicos de virtualização de redes. No entanto, este trabalho utiliza como entrada para análise da dependabilidade o resultado da heurística R-ViNE [Chowdhury et al. (2012)]. É importante destacar que a heurística R-ViNE não leva em consideração dependabilidade para realizar a alocação de requisições virtuais. Sendo assim, a relevância se dá pelo vislumbre de uma primeira avaliação sobre os aspectos de dependabilidade num cenário de redes virtualizadas. O trabalho mais semelhante encontrado na literatura é realizado por Lira et al. (2013). Neste trabalho é apresentada uma heurística baseada no GRASP para alocação de redes virtuais considerando dependabilidade. No entanto, a meta-heurística utilizada não tem como objetivo a maximização da dependabilidade. A dependabilidade apresenta-se apenas como uma restrição informada pelo usuário. Ou seja, o objetivo da alocação é minimizar o custo estabelecido pelos autores que não leva em consideração atributos de dependabilidade na sua função objetivo, não sendo assim justa uma comparação com a heurística proposta. Além disso, o trabalho apresenta resultados preliminares, pois não apresentam dados em relação à carga de recursos físicos utilizados e à taxa de aceitação das requisições. Dessa forma podemos afirmar que os trabalhos embrionários de Fernandes et al (2012) e Lira et al (2013) serviram como motivação para uma análise mais extensa e aprofundada apresentada neste artigo. Com relação às heurísticas de alocação de redes virtuais, focamos - nos próximos parágrafos - em dois trabalhos que foram utilizados para comparação de nossos resultados. Deve-se notar que os trabalhos abaixo não levam em consideração características de falha em suas soluções de mapeamento de redes virtuais. No entanto, esta comparação é importante para mensurar o quanto a dependabilidade varia quando é negligenciada durante o processo de alocação. Zhu e Ammar (2006) propõem um algoritmo ganancioso cujo objetivo é balancear a carga sobre os enlaces e nós físicos. No entanto, sua abordagem não considera aspectos de capacidade, o balanceamento é realizado levando em consideração apenas a quantidade de nós e enlaces virtuais mapeados sobre a rede substrato. A ideia principal da estratégia utilizada é mapear um novo nó virtual em um nó físico considerando a quantidade de nós virtuais nesse nó físico e a carga nos nós e enlaces físicos vizinhos. Em Chowdhury et al. (2012) o problema de alocação de redes virtuais é modelado em função dos custos de receita do servidor com restrições de nós, enlaces e geo-localização. O problema resultante é NP-difícil e, para resolvê-lo, é realizada uma redução para um problema de otimização inteira mista e posteriormente há o relaxamento sobre as restrições, culminando em dois algoritmos de aproximação: DViNE e R-ViNE. D-ViNE possui uma abordagem determinística para mapeamento dos nós baseada em uma solução linear relaxada. R-ViNE é similar, mas usa um mapeamento de nós aleatório. Ambos os algoritmos possuem versões em que o enlace 49 Anais do XIX Workshop de Gerência e Operação de Redes e Serviços– WGRS 2014 virtual é mapeado através do menor caminho ou do particionamento do fluxo virtual em mais de um caminho físico. É importante destacar que neste trabalho, os autores não levam em consideração atraso dos enlaces como restrição de alocação. Na prática, tais restrições são importantes para requisitos de aplicações que executam, por exemplo, na Internet. Além disso, assume-se que uma mesma máquina física não pode receber mais de uma máquina virtual de uma mesma requisição, tornando a busca por uma solução de mapeamento mais difícil. Outra desvantagem é o fato de algumas variações do D-ViNE e R-ViNE realizarem divisão de caminhos virtuais (mapeamento de um caminho virtual em dois ou mais caminhos físicos). Na prática isso é difícil de ser realizado, não sendo comum sua adoção. Por isso, decidimos comparar apenas a abordagem que utiliza a alocação de enlaces pelo menor caminho chamada D-ViNE-SP. Este levantamento não tem o objetivo de ser extensivo, dado que apenas os artigos que consideramos mais similares ao nosso trabalho são citados. Para uma extensa literatura sobre o problema de alocação de redes virtuais pode-se destacar o trabalho de Fischer et al. (2013). É importante ressaltar que os autores desconhecem qualquer trabalho que leve em consideração a dependabilidade como fator durante uma alocação de uma rede virtual. Desta forma, não há trabalhos que possam ser analisados diretamente com a heurística proposta, por isso, como no trabalho de análise de dependabilidade realizado por Fernandes et al. (2012), comparamos nosso trabalho com heurísticas bem conhecidas na literatura. 3. Dependabilidade A dependabilidade de um sistema, de maneira simplificada, pode ser entendida como a sua capacidade de fornecer um conjunto de serviços de forma justificadamente confiável. Trata-se, em termos mais abrangentes, de um conceito guarda-chuva que contempla vários atributos como, por exemplo, tolerância a falhas, disponibilidade e confiabilidade [Laprie (1985)] [Ebeling (1997)]. Métricas de dependabilidade podem ser calculadas por modelos combinatórios, como os Diagramas de Bloco de Confiabilidade (Reliability Block Diagram - RBD) e árvores de falha ou por meio de modelos estocásticos baseados em estado - cadeias de Markov (Markov Chains) e redes estocásticas de Petri (Stochastics Petri Nets - SPN), por exemplo [Maciel et al. 2011] [Nicol et al. 2004]. Para uma melhor compreensão dos modelos de confiabilidade podese utilizar as referências [Maciel et al. 2011] e [Nicol et al. 2004]. Uma das principais características utilizadas para a avaliação da dependabilidade de sistemas é a disponibilidade. A dependabilidade de um sistema pode ser calculada com os supracitados modelos combinatórios, por exemplo - através do cálculo das disponibilidades dos dispositivos que o compõem. A maneira de se obter a disponibilidade (A) de um determinado dispositivo é lançar mão das suas características de tempo até a ocorrência de falha (TTF) e tempo até o reparo de uma falha ocorrida (TTR). Considerando que essas medidas exatas não estão disponíveis, suas médias são utilizadas. Valendo-se dos valores de tempo médio para falha (MTTF) e tempo médio de reparo (MTTR) de um dispositivo, a disponibilidade de estado estacionário (A) pode ser representada como: (1) 50 Anais do XIX Workshop de Gerência e Operação de Redes e Serviços– WGRS 2014 O MTTF pode ser computado considerando a confiabilidade do sistema (R) como segue: ∫ ( ) ∫ ( ) (2) Este trabalho adota a disponibilidade como métrica de dependabilidade, modelada por RBD. Diagramas de bloco de confiabilidade fornecem método para avaliação de disponibilidade ou confiabilidade através do mapeamento de sistemas (e seus subsistemas / dispositivos) em blocos que se configuram em série ou paralelo. Depois de modelado o sistema, a avaliação é feita de acordo com as regras de cálculo para cada uma das possíveis configurações. Para melhor entendimento da modelagem com diagramas de bloco de confiabilidade, a referência [Trivedi et al. (2008)] pode ser consultada. Neste trabalho o modelo RBD utilizado tem o objetivo de calcular a dependabilidade de uma requisição virtual alocada sobre uma topologia física. Como explicado na próxima seção, os blocos que modelam uma requisição são dispostos totalmente em série, sendo a dependabilidade de uma requisição virtual calculada através da multiplicação da disponibilidade de todos os nós e enlaces físicos utilizados no mapeamento da requisição virtual. 4. VNMP e Modelagem do Problema Com o intuito de deixar o problema atacado neste artigo bem definido, vamos nesta seção descrever e caracterizar formalmente o problema e sua respectiva modelagem matemática através da extensão do trabalho de Infuhr et al. (2013). O problema de alocação de redes virtuais é conhecido na literatura como VNMP (Virtual Network Mapping Problem). Algumas informações são necessárias para especificar um VNMP: rede de substrato com seus recursos disponíveis e redes virtuais que precisam ser alocadas de acordo com seus requisitos e restrições específicas sobre os recursos virtuais e físicos. Para modelar a rede de substrato utilizamos um grafo não direcionado com ( ) onde representa o conjunto de nós e o conjunto de enlaces. Cada nó da rede substrato tem uma capacidade de CPU . O recurso de CPU disponível é utilizado por um nó virtual que é mapeado para um nó físico . Enlaces da rede substrato tem uma capacidade de banda e um atraso . Outro grafo não direcionado ( ) modela a rede virtual. Cada nó requer uma capacidade de CPU . Cada enlace virtual tem um requisito de banda e um atraso máximo permitido . A soma do atraso de todos os enlaces físicos para qual um enlace virtual foi mapeado não pode exceder . A capacidade de banda de cada enlace físico deve ser respeitada, dessa forma a banda exigida por cada enlace virtual mapeado em um mesmo enlace físico não deve ultrapassar Por fim, a soma da capacidade requerida de CPU de cada máquina virtual alocada em um nó não pode exceder a capacidade deste nó físico. Os nós físicos da rede substrato em que um nó virtual pode ser alocado são definidos pelo conjunto , cujo enlace virtual ( ), onde são nós virtuais é definido por ( ) e () , que representam respectivamente fonte e destino. Dois componentes são então requeridos para solucionar 51 Anais do XIX Workshop de Gerência e Operação de Redes e Serviços– WGRS 2014 ( )) o problema VNMP: Um mapeamento tal que ( e um caminho na rede substrato iniciando em ( ( )) até ( ( )) para cada cujo o atraso não exceda . Em nosso caso, o objetivo é maximizar a disponibilidade da requisição virtual a ser alocada. A disponibilidade do nó físico é dada por para todo . Os enlaces da rede substrato utilizados no mapeamento de um enlace virtual possuem disponibilidade . Com base no modelo RBD definido para modelar a disponibilidade das requisições virtuais, a disponibilidade de cada requisição é dada pela multiplicação da disponibilidade de cada nó e enlace físico usados no mapeamento da rede virtual. Assim, a função objetivo é maximizar a disponibilidade das requisições virtuais. 5. Heurística Esta seção descreve a principal contribuição deste trabalho: uma heurística aleatória adaptativa (intitulada HRA) utilizada para alocação de redes virtuais em uma topologia física. A heurística proposta é fortemente inspirada na metaheurística conhecida como GRASP (Greedy Randomized Adaptive Search Procedure) [Infuhr et al. (2013)]. No entanto, difere em alguma de suas características, por exemplo, não apresenta nenhum método de busca local. Sua função objetivo é maximizar a dependabilidade de cada requisição no momento de sua alocação. A descrição por meio de um pseudocódigo é importante para que outros pesquisadores consigam replicar os experimentos realizados. Notem que, devido a questões de espaço, a representação aqui fornecida trata de uma simplificação do algoritmo implementado de fato. O seu funcionamento geral é dado pelo algoritmo da Figura 1: Entrada: SN = grafo da rede substrato, VNS = coleção de grafos de requisições virtuais, LIMITE_TENTATIVAS = número inteiro que limita a quantidade de iterações possíveis quando não se encontra solução 1. início 2. para i ← 1, .., |VNS| faça 3. allocated ← false 4. tentativas ← 0 5. enquanto (tentativas < LIMITE_TENTATIVAS) e (allocated == false) faça 6. allocated ← alocar_requisição(VNS[i], SN, LIMITE_TENTATIVAS) 7. tentativas ← tentativas + 1 8. fim-enquanto 9. fim-faça 10. fim Figura 1 – Método principal O passo-a-passo é bastante direto e deve ser autoexplicativo. Um ponto de destaque é a chamada à subrotina alocar_requisição (Figura 1), na linha 6. Essa, por sua vez, funciona de acordo com o seguinte algoritmo: Entrada: VNR = grafo da requisição virtual a ser alocada, SN, LIMITE_TENTATIVAS 1 início 2. alocado ← true 52 Anais do XIX Workshop de Gerência e Operação de Redes e Serviços– WGRS 2014 3. nó_virtual ← escolher_nó_aleatoriamente(VNR) 4. alocado ← alocar_primeiro_nó(nó_virtual) 5. se (alocado == false) faça 6. retorne false 7. fim-se 8. nó_virtual_base ← nó_virtual 9. nós_pendentes ← [] 10. faça 11. para i ← 1, .., |vizinhos(nó_virtual_base)| faça 12. nó_virtual_destino ← vizinhos(nó_virtual_base)[i] 13. alocado ← alocar_nós(nó_virtual_base, nó_virtual_destino, SN, LIMITE_TENTATIVAS) 14. se (alocado == false) faça 15. retorne false 16. fim-se 17. nós_pendentes ← adicionar_elemento(nós_pendentes, nó_virtual_destino) 18. nós_pendentes ← remover_elemento(nós_pendentes, nó_virtual_base) 19. nó_virtual_base ← escolher_nó_aleatoriamente(nós_pendentes) 20. fim-faça 20. enquanto (|nós_pendentes| > 0) 21. retorne true 22. fim Figura 2 – Método alocar_requisição O método alocar_requisição (Figura 2) é chamado para alocação de uma requisição específica. Ela escolhe, de maneira aleatória, um nó virtual inicial para dar prosseguimento à alocação dos nós restantes. Após a alocação do primeiro nó virtual em um nó físico, é realizada uma busca em largura para alocação dos nós virtuais vizinhos (linhas 11 a 20). É importante salientar que a alocação é feita em pares pela subrotina alocar_nós (linha 13). O pseudocódigo da Figura 3 descreve alocar_nós, que usa uma lista de nós físicos que podem acomodar uma possível alocação do nó virtual recebido na entrada. A partir dessa lista é realizada uma busca adaptativa aleatória na tentativa de maximizar a dependabilidade para o segmento da rede a ser alocado (linhas 17 a 29). Vale salientar que, ao maximizar a disponibilidade da alocação de dois nós virtuais e seus respectivos enlaces, estamos também maximizando a disponibilidade da requisição -- dado que a disponibilidade total é calculada através do produto das disponibilidades de todos os componentes. Isso se dá primacialmente devido à utilização do modelo RBD em série para o cálculo da dependabilidade. Entrada: nó_virtual_base, nó_virtual_destino, SN, LIMITE_TENTATIVAS 1. início 2. nó_físico_origem ← nó_físico_subjacente(nó_virtual_base) 3. solução ← [] 4. se (está_alocado(nó_virtual_destino) == false) faça 5. para i ← 1, .., |nós_físicos(SN)| faça 6. nó_físico ← nós_físicos(SN)[i] 7. se (pode_alocar(nó_físico, nó_virtual_destino)) faça 8. ok ← checar_caminho_mais_curto(nó_físico_origem, nó_físico, nó_virtual_destino) 9. se (ok) faça 10. solução ← adicionar_elemento(solução, nó_físico) 11. fim-se 53 Anais do XIX Workshop de Gerência e Operação de Redes e Serviços– WGRS 2014 12. fim-se 13. // Filtra a lista com os nós físicos que possuem a maior disponibilidade 14. solução ← melhores_nós_físicos(solução) 15. melhor_solução ← 0 16. tentativas ← 0 17. enquanto (tentativas < LIMITE_TENTATIVAS) faça 18. nó_físico ← escolher_nó_aleatoriamente(solução) 19. disponibilidade ← calcular_disponibilidade(nó_físico_origem, nó_físico, nó_virtual_destino) 20. se (disponibilidade > melhor_solução) faça 21. melhor_solução ← disponibilidade 22. nó_solução ← nó_físico 23. fim-se 24. tentativas ← tentativas + 1 25. solução ← remover_elemento(solução, nó_físico) 26. fim-enquanto 27. se (está_definido(nó_solução)) faça 28. alocado ← alocar_nó_e_caminho(nó_físico_origem, nó_solução, nó_virtual_destino) 29. fim-se 30. retorne alocado 31. fim-se 32. retorne true 33. fim Figura 3 – Método alocar_nós 6. Metodologia 6.1. Estratégias de Mapeamento Foram selecionadas as estratégias D-ViNE-SP [Chowdhury et al. (2012)] e G-SP [Zhu e Ammar (2006)] para comparação com a heurística proposta. D-ViNE-SP e G-SP foram escolhidos por utilizarem um algoritmo de alocação baseada em um único caminho na rede de substrato - ao contrário das outras variações do D-ViNE que particionam um único enlace virtual em caminhos físicos diferentes. Tais trabalhos foram discutidos mais detalhadamente na seção de trabalhos relacionados. Uma vez que nenhuma dessas estratégias considera restrição de atraso, nós simulamos uma versão modificada de nossa heurística para desconsiderar o atraso e quantificar o impacto desta restrição, no entanto não houve diferença estatística entre as simulações, por isso apenas um caso é exibido na seção de resultados. 6.2. Parâmetros de Dependabilidade Dependendo do tamanho e complexidade do sistema (dependências complexas), o sistema pode ser representado por um modelo ou particionado em modelos menores, que representam partes do sistema (i.e., subsistemas), que fornecem métricas para a avaliação de todo o sistema. Dessa forma, podemos considerar a rede virtual como vários subsistemas. Modelando as relações entre os componentes de rede, os subsistemas tiveram a disponibilidade calculada usando RBD. Consideramos que um nó físico é composto por três componentes: CPU, disco rígido e memória RAM. Assumimos um sistema RBD em série para estes componentes, dessa forma, obtemos a disponibilidade do nó físico através do produto da disponibilidade dos componentes que o compõem. A rede virtual formada é também modelada em um sistema RBD em série, sendo a disponibilidade da requisição virtual 54 Anais do XIX Workshop de Gerência e Operação de Redes e Serviços– WGRS 2014 dada pela multiplicação da disponibilidade dos nós físicos, nos quais os nós virtuais foram mapeados, pela multiplicação da disponibilidade dos enlaces físicos - utilizados para mapear os enlaces virtuais que conectam os nós virtuais. Seus MTTFs e MTTRs são baseados em [Kim et al. (2009)][ Fernandes et al. (2012)] e são exibidos na Tabela 1 (em horas). Semelhante a Fernandes et al. (2012), números aleatórios foram gerados uniformemente no intervalo [35,100] para cada componente da rede física a fim de determinar o seu MTTF de forma aleatória. Este número representa o percentual a ser considerado para o MTTF. Os MTTRs são mantidos os mesmos para todos os componentes. Tabela 1. MMTF e MTTR para componentes do nó e enlace físico CPU Disco Rígido Memória RAM Enlace MTTF (h) 2500000 200000 480000 19996 MTTR (h) 1 1 1 12 6.3. Simulação e Métricas Para executar as estratégias D-ViNE-SP e G-SP utilizamos o simulador desenvolvido no trabalho de Chowdhury et al. (2012). Para a nossa heurística desenvolvemos um simulador próprio. As entradas contendo as redes de substrato e requisições físicas foram retiradas de Infuhr et al. (2012). O benchmark utilizado como entrada é público e possibilita fácil replicação dos experimentos realizados neste artigo, necessitando de apenas algumas modificações: transformação do grafo direcionado em não direcionado e acréscimo dos atributos de dependabilidade na topologia física. Foi necessário ainda realizar a adaptação do simulador de Chowdhury et al. (2012) para adicionar atributos de dependabilidade e computar a dependabilidade das requisições alocadas. As requisições são alocadas de maneira sequencial sem que haja tempo de vida, ou seja, a última requisição alocada leva a rede ao estresse máximo de utilização de recursos. Realizamos 30 simulações para cada estratégia de alocação considerando tamanhos de rede substrato com 20, 30, 50 e 100 nós. Para cada simulação houve 40 requisições com tamanho variável, de acordo com o crescimento da rede física. Notem que estas características estão definidas nos arquivo de entrada do benchmark utilizado disponível em Infuhr et al. (2013). As métricas coletadas são descritas na Tabela 2. Para cada métrica foi calculado o intervalo de confiança com 95% de nível de confiança podendo ser visualizado em cada gráfico exibido na seção de resultados. Tabela 2. Métricas coletadas durante as simulações Métrica Descrição Média da disponibilidade por requisição Média da disponibilidade de um conjunto de requisições virtuais Taxa de aceitação Quantidade de requisições de redes virtuais aceitas dividida pelo número total de requisições Utilização dos nós físicos Média da carga de cada nó físico dividida por sua respectiva capacidade Utilização dos enlaces físicos Média da carga de cada enlace físico dividida por sua respectiva capacidade 55 Anais do XIX Workshop de Gerência e Operação de Redes e Serviços– WGRS 2014 Tempo de simulação Quantidade de tempo de execução de cada simulação As simulações foram executadas na máquina com as seguintes E7300 @ 2.66GH; Placa de configurações: CPU Intel(R) Core(TM)2 Duo CPU vídeo nVidia GTX 550 TI Memória DDR5 de 2GB; Memória RAM de 2GB DDR2; Disco rígido de 250GB 5400rpm e sistema operacional LinuxMint Release 14 (nadia). 7. Resultados Nos gráficos de resultados vamos nos referir à heurística proposta neste artigo como HRA (Heurística Randômica Adaptativa). Como explicado na seção 6.1, executamos a heurística HRA com e sem restrição de atraso e não obtivemos resultado estatisticamente diferente em nenhuma métrica coletada. Por esse motivo, os gráficos de resultados exibem apenas a abordagem que leva em consideração o atraso por ser mais próxima de um cenário real. 7.1. Disponibilidade Retirando a média de cada estratégia de alocação de acordo com o tamanho da topologia física, podemos ver na Figura 4 que a heurística HRA obtém resultados estatisticamente bastantes superiores em relação às estratégias G-SP e D-ViNE-SP. A disponibilidade média de uma requisição em uma rede de 20 nós, utilizando a heurística HRA, obteve disponibilidade média de 0.9895 e 0.9593 para uma rede com 100 nós. As demais estratégias obtiveram disponibilidade em torno de 0.6 ou menos. Figura 4. Disponibilidade média de uma requisição por estratégia de alocação de rede virtual 7.2. Taxa de Aceitação Outra métrica importante a ser analisada diz respeito à capacidade de a estratégia utilizada conseguir alocar o máximo possível de requisições recebidas. Analisando a Figura 5, vemos que a estratégia HRA possui grande eficiência em conseguir alocar todas as requisições virtuais recebidas. Mesmo com a variação do tamanho da topologia, a probabilidade da taxa de aceitação com uma rede física de tamanho 100 foi de 0.9875. O resultado da heurística HRA tem como um dos seus pilares a simples estratégia de alocar, em um mesmo nó físico, um ou mais nós virtuais de uma mesma requisição. Diferentemente de outras estratégias que restringem a alocação de nós virtuais de uma requisição em nós físicos distintos. Dessa forma, analisando mais 56 Anais do XIX Workshop de Gerência e Operação de Redes e Serviços– WGRS 2014 detalhadamente em nosso simulador (heurística HRA) o comportamento do mapeamento dos nós e enlaces virtuais, chegamos ao resultado de nenhuma rejeição por falta de recurso em nós físicos da rede substrato. As poucas rejeições que ocorreram se deram pela impossibilidade de formar um caminho que conectasse um dos nós da rede virtual devido às restrições da requisição (banda ou atraso). Figura 5. Taxa de aceitação 7.3. Utilização dos Nós Analisando a utilização (carga/capacidade) média dos nós da rede substrato (Figura 6), a heurística HRA obteve uma alta utilização dos nós quando comparada a outras estratégias de alocação. Esse resultado é justificável devido a grande taxa de aceitação das requisições pela heurística HRA e pelo fato de haver concentração de nós virtuais de uma mesma requisição em um mesmo nó físico, fazendo com que haja uma utilização maior nesse nó físico. Figura 6. Utilização dos Nós físicos da rede substrato 7.4. Utilização dos Enlaces Quando analisamos a utilização dos enlaces da rede substrato (Figura 7), vemos que aparentemente a heurística HRA estressa menos os enlaces, mas devido ao intervalo de confiança sobrepostos, temos resultados estatisticamente equivalentes. Um ponto a ser destacado é que por alocar mais nós virtuais, a heurística HRA deveria ocupar mais enlaces físicos após o mapeamento, e consequentemente aumentar a utilização média dos enlaces físicos. No entanto, quando dois ou mais nós virtuais são alocados num mesmo nó físico temos, provavelmente, a redução de um enlace virtual que ocuparia recursos de enlaces físicos. Diferentemente das outras estratégias que não fazem uso dessa abordagem de alocação. 57 Anais do XIX Workshop de Gerência e Operação de Redes e Serviços– WGRS 2014 Figura 7. Utilização dos Enlaces da rede substrato 7.5. Tempo de Execução O tempo de execução médio de cada simulação pode ser visto na Figura 8 utilizando uma escala medida em segundos. Pode-se observar que a heurística HRA resolve o problema mais rapidamente na maioria das comparações, não sendo nunca mais lenta. Note que o tempo de execução para a estratégia D-ViNe com 30 replicações numa topologia de 100 nós o tempo de execução é de cerca de 10 horas, enquanto a heurística HRA executa em aproximadamente 3 minutos. Figura 8. Tempo médio de execução (segundos) 8. Discussão A heurística HRA obteve resultados expressivos com bons índices de disponibilidade quando comparada a outras estratégias de alocação bem referenciadas na literatura. Com requisitos cada vez maiores por parte de clientes para utilização de serviços confiáveis e acordos mais rígidos de SLAs (Service Level Agreement) a serem cumpridos pelos provedores de infraestrutura, negligenciar atributos de dependabilidade não é uma alternativa viável, dados os resultados apresentados neste trabalho. Um ponto importante a ser destacado é que a heurística HRA possui uma nuance em relação às outras estratégias comparadas: HRA permite a alocação de um ou mais nós virtuais de uma mesma requisição virtual num mesmo nó físico. Embora simples essa diferença mostrou-se significativa, dado que o objetivo da heurística HRA é maximizar a dependabilidade. Não obstante, a heurística obteve resultados superiores na taxa de aceitação de requisições e mesmo assim não produziu mais sobrecarga nos enlaces da rede substrato quando comparada a outras estratégias. 58 Anais do XIX Workshop de Gerência e Operação de Redes e Serviços– WGRS 2014 Outro aspecto relevante é que ao simularmos os mapeamentos das requisições ignorando a restrição de atraso não obtivemos diferenças significativas em nenhuma métrica coletada quando comparamos o HRA com e sem restrição de atraso. Tal resultado indica uma perspectiva de adaptação da heurística HRA mesmo neste tipo de cenário. Por fim, por ser uma estratégia que pode ser considerada como gananciosa, a heurística HRA foi mais rápida em encontrar soluções em praticamente todas as comparações realizadas, não sendo em nenhum momento mais lenta que as estratégias comparadas. 9. Conclusão Este artigo apresentou uma heurística aleatória adaptativa para alocação de redes virtuais considerando atributos de dependabilidade, requisitos e restrições de atraso, CPU e banda. O objetivo da heurística é maximizar a disponibilidade de cada requisição alocada. A heurística proposta apresentou melhores resultados com as abordagens comparadas em métricas importantes como taxa de aceitação e carga nos enlaces da rede. A dependabilidade com o uso da heurística variou entre 95,93% e 98,95% de acordo com o tamanho da topologia da rede substrato, enquanto outras abordagens se mantiveram em 60% ou menos, demonstrando que ignorar esta característica torna a alocação de uma requisição muito mais propensa à falha. Ou seja, comparando outras estratégias com a heurística HRA, fica claro que o impacto sobre a dependabilidade quando não se leva em consideração atributos de dependabilidade no processo de alocação pode consequentemente ocasionar uma grande queda na confiabilidade das redes virtuais alocadas. Em trabalhos futuros pretendemos levar em consideração variação da probabilidade de falha de um nó físico quando a carga desse nó aumenta, inserindo ainda na modelagem do problema restrição de dependabilidade do cliente e/ou servidor. Pretendemos utilizar ainda outras métricas de dependabilidade em experimentos futuros, analisando o problema mais detalhadamente. Referências Benson, T., Sahu, S., Akella, A., & Shaikh, A. (2010) “A first look at problems in the cloud”. 2nd USENIX conference on Hot topics in cloud computing (HotCloud'10) Chowdhury, M., Rahman, M. R., & Boutaba, R. (2012). “ViNEYard: Virtual network embedding algorithms with coordinated node and link mapping”. IEEE/ACM Transactions on Networking (TON), 20(1), 206-219. Ebeling, C. E. (1997) “An introduction to reliability and maintainability engineering” (pp. 58-69). New York, NY: McGraw Hill. Fernandes, S., Tavares, E., Santos, M., Lira, V., & Maciel, P. (2012) “Dependability assessment of virtualized networks”. In Communications (ICC), 2012 IEEE International Conference on (pp. 2711-2716). IEEE. Fischer, A., Botero, J., Beck, M., De Meer, H., & Hesselbach, X. (2013) "Virtual network embedding: A survey", in IEEE Communications Surveys & Tutorials. 59 Anais do XIX Workshop de Gerência e Operação de Redes e Serviços– WGRS 2014 Gill, P., Jain, N., & Nagappan, N. (2011) “Understanding network failures in data centers: measurement, analysis, and implications”. In ACM SIGCOMM Computer Communication Review (Vol. 41, No. 4, pp. 350-361). ACM. Guimarães, A., Maciel, P., Matos Jr, R., & Camboim, K. (2011). Dependability analysis in redundant communication networks using reliability importance. In The 2011 International Conference on Information and Network Technology. Guo, T., Wang, N., Moessner, K., & Tafazolli, R. (2011) "Shared Backup Network Provision for Virtual Network Embedding," Communications (ICC), IEEE International Conference on, pp.1-5, 5-9 Infuhr, J., Raidl, G.R. (2012) "The Virtual Network Mapping Problem benchmark set",: https://www.ads.tuwien.ac.at/projects/optFI/, acessado em Dezembro de 2012. Infuhr, J., Raidl, G.R. (2013) "GRASP and Variable Neighborhood Search for the Virtual Network Mapping Problem.", Hybrid Metaheuristics. Springer Berlin Heidelberg, 2013. 159-173. Lira, V. et al., "Virtual Network Resource Allocation Considering Dependability Issues", In: IEEE 13th International Conference on Computer and Information Technology (CIT2013), Sidney, 2013 Kim, D. S., Machida, F., & Trivedi, K. S. (2009) “Availability modeling and analysis of a virtualized system”. In Dependable Computing, 2009. PRDC'09. 15th IEEE Pacific Rim International Symposium on (pp. 365-371). IEEE. Laprie, J. C. (1985). “Dependable computing and fault-tolerance”. Digest of Papers FTCS-15, 2-11. Maciel, P., Trivedi, K. S., Matias, R., & Kim, D. S. (2011). Performance and Dependability in Service Computing: Concepts, Techniques and Research Directions, ser. Premier Reference Source. Igi Global. Nicol, D. M., Sanders, W. H., & Trivedi, K. S. (2004) “Model-based evaluation: from dependability to security”. Dependable and Secure Computing, IEEE Transactions. Saripalli, P., & Walters, B. (2010) “QUIRC: A Quantitative Impact and Risk Assessment Framework for Cloud Security”. In Cloud Computing (CLOUD), 2010 IEEE 3rd International Conference on (pp. 280-288). IEEE. Schaffrath, G., Werle, C., Papadimitriou, P., Feldmann, A., Bless, R., Greenhalgh, A., & Mathy, L. (2009) “Network virtualization architecture: proposal and initial prototype”. (VISA '09). ACM, New York, NY, USA, 63-72. Sun, D., et al. (2010) “A Dependability Model to Enhance Security of Cloud Environment Using System-Level Virtualization Techniques”. In Pervasive Computing Signal Processing and Applications (PCSPA), IEEE. Trivedi, K. S. (2008) “Probability & statistics with reliability, queuing and computer science applications”. John Wiley & Sons. Zhou, Y., Li, Y., Sun, G., Jin, D., Su, L., & Zeng, L. (2010) "Game Theory Based Bandwidth Allocation Scheme for Network Virtualization," IEEE GLOBECOM. Zhu, Y., & Ammar, M. H. (2006) “Algorithms for Assigning Substrate Network Resources to Virtual Network Components”. In INFOCOM (pp. 1-12). 60