Software Aging em uma Infraestrutura de Cloud Computing Jean Carlos Teixeira de Araujo Rubens de Souza Matos Júnior [email protected] [email protected] 1 Software Aging Degradação progressiva do desempenho e/ou da disponibilidade de recursos do sistema operacional Corrupção de dados e acúmulo de erros numéricos que podem levar a falhas no sistema ou desligamentos indesejados [Trivedi et al, 2000] 2 Software Rejuvenation É uma técnica que contraria o fenômeno do envelhecimento em uma forma proativa, eliminando condições de acumulação de erro e liberando recursos do sistema operacional. Proposta por (HUANG et al, 1995). 3 Software Rejuvenation ESTRATÉGIAS Garbage collection; Desfragmentação; Flushing de tabelas e recursos do SO; Reinicialização de estruturas internas de dados. 4 Cloud Computing Recursos computacionais são abstraídos e fornecidos como serviços na internet, de uma forma acessível remotamente. Poder de computação Armazenamento Rede Software 5 Eucalyptus é um software usado para implementar clouds privadas e híbridas no estilo IaaS. A arquitetura do Eucalyptus é bastante modular e seus componentes internos usam Web services, facilitando sua substituição e expansão; Implementa a API Amazon Web Service (AWS), permitindo interoperabilidade com outros serviços baseados no AWS. 6 Baseada em Linux Pode usar as tecnologias de virtualização: – – – KVM Xen VMWare* 7 MoDCS Cloud Arquitetura utilizada: 1 host controlador geral Cloud Controller Cluster Controller Storage Controller (Block-level storage – Amazon EBS) Walrus Controller (File-level storage – Amazon S3) 4 hosts para execução das VMs (node controllers); 3 com S.O. e pacotes i386 1 com S.O. e pacotes amd64 Interligados por um switch, numa rede isolada; 1 máquina sendo utilizada como proxy (rede do CIn e Internet) e cliente para requisições à cloud. 8 9 ModCS Cloud 10 Ciclo de vida das VMs 11 Descrição do experimento Elaboração de scripts para experimento de aging – Monitoramento de recursos: • • • • • • – Uso geral de CPU (mpstat) Uso geral de memória: buffer, cache, swap (free) Uso de CPU e memória do processo eucalyptus-cloud e do processo apache2, relativo ao eucalyptus-nc (pidstat) Uso geral de disco (df) Número de processos zumbis (ps) Eventos de fragmentação de memória Métricas eram obtidas a cada 1 minuto 12 Andamento do experimento Aproximadamente 1 hora de medição antes do início da carga A partir do 2º dia, notamos que em algumas máquinas as VMs não estavam mais sendo instanciadas. Decidimos reiniciar o serviço eucalyptus-nc na máquina onde isso acontecia e continuar o experimento. O comportamento prosseguiu nos dias seguintes. Em algumas ocasiões demorou-se a perceber o “travamento”. 13 Análise preliminar Cloud controller – CPU geral 14 Análise preliminar Cloud controller – Memória geral 15 Análise preliminar Cloud controller – Swap 16 Análise preliminar Cloud controller – Processo eucalyptus cloud 17 Memória residente Análise preliminar Cloud controller – Processos zumbis 18 Análise preliminar Node controller – Serviço eucalyptus-nc 19 Memória residente Análise preliminar Node controller – Serviço eucalyptus-nc 20 Memória virtual Análise preliminar Node controller 64 bits – Swap 21 Análise preliminar Node controller 64 bits – Serviço eucalyptus-nc 22 Memória residente Análise preliminar Node controller 64 bits – Serviço eucalyptus-nc 23 Memória virtual Proposta de rejuvenation Reinicialização do serviço eucalyptus-nc, antes que o mesmo chegue aos 3 GB de uso de memória virtual. Prejuízos mínimos para a disponibilidade do serviço (FTP ou Web por exemplo) VMs não são interrompidas com a reinicialização do referido processo Apenas pedidos de alocações de VMs naquela máquina ficam imposdibilitados (por poucos segundos) 24 Futuros projetos Cloud storage Eucalyptus Google File System Modelos e medições de dependabilidade de serviços na cloud Comparações entre efeitos de aging usando KVM e Xen. 25 Dúvidas 26