quinta-feira, 28 de maio de 2015

Conheça os Clusters!

Olá ! Hoje falaremos sobre um assunto novo, Clusters. Você conhece? Sabe como funciona? Não!? , então acompanhe a postagem a seguir.


O que é isso?

Clusters da empresa Yahoo!
Em poucas palavras Cluster é um conjunto de computadores que desempenham tarefas de um só. Basicamente a ideia é que cada tarefa que tenha que ser realizada por esse conjunto de computares seja dividida entre eles, para que assim haja um maior aproveitamento do processamento. Ou seja, com essa tecnologia podemos ter um supercomputador, tendo apenas alguns poucos computadores de médio porte conectados entre si.


Conceito do Funcionamento

Cada computador de um Cluster é chamado de nó, ou node, (teoricamente não há limite para a quantidade nós[1]), cada máquina do nó deve poder se comunicar com as demais máquinas facilmente, e embora não seja necessário que as máquinas possuam a mesma estrutura de hardware, todos precisam ter um sistema operacional adequado para Clusters instalado. Caso contrário o software responsável pelo gerenciamento do Cluster terá dificuldade em sua funcionalidade (provavelmente nem funcionará).

Tipos de Clusters

Existem vários tipos de Clusters, porém os mais conhecidos são:
  • Cluster de alto desempenho: Como o próprio nome sugere, são os clusters que processam um grande volume de dados em um curto período de tempo.
  • Cluster de alta disponibilidade: Nesse tipo de Cluster o foco é que a aplicação continue funcionando de forma continua e, caso haja a necessidade de interrupção, que seja pelo menor período de tempo possível. 
  • Cluster de balanceamento de carga: A ideia nesse tipo de cluster é que seja distribuído por cada nó, uniformemente as tarefas, desta forma cada computador do nó executará uma só tarefa, o que pode acarretar num melhor desempenho do Cluster.

Algumas Vantagens e Desvantagens dos Clusters

  Vantagens:

  • A principal facilidade é o custo beneficio. É mais barato fazer isso do que comprar um supercomputador;
  • Para melhorar a capacidade do cluster basta acrescentar uma máquina;
  • Por ser um série de computadores conectados, a chance de todas as máquinas quebrarem ao mesmo tempo é mínima, porém quando alguma quebra o Cluster pode continuar funcionando normalmente sem ela (tendo apenas, uma redução na capacidade de processamento).

  Desvantagens:

  • A facilidade de expansão do Cluster pode ser uma "faca de dois gumes": a quantidade de máquinas pode aumentar tanto que a manutenção se torna mais trabalhosa, o espaço físico pode ficar impróprio, etc; [2]
  • A tecnologia de comunicação utilizada pode não oferecer a velocidade de transferência de dados ou o tempo de resposta necessário, dependendo da aplicação;[2]
  • Um cluster tem como base uma rede local, logo, não se pode acrescentar máquinas que estejam muito distantes geograficamente.[2] 
 

Referências

"Cluster: conceito e características", por InfoWester  - http://www.infowester.com/cluster.php[1]

"Arquitetura de Computadores II - Clusters", por Gabriel P. Silva - http://equipe.nce.ufrj.br/gabriel/arqcomp2/ArqPar6.pdf

"Running Hadoop on Ubuntu Linux (Multi-Node Cluster)", por  Michael G. Noll - http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/

"Vantagens e desvantagens dos clusters", Raí Carvalho - http://www.usuarioroot.com.br/2014/03/vantagens-e-desvantagens-dos-clusters.html[2]

domingo, 24 de maio de 2015

Virtualização de Sistemas Operacionais – Máquinas Virtuais

No post de hoje vamos falar sobre a virtualização de sistemas operacionais. Para facilitar o seu entendimento, caro leitor, vamos falar mais especificamente de máquinas virtuais, modo de virtualização mais comum para usuários domésticos. Recomendamos a leitura os posts anteriores para a obtenção de conceitos e noções básicas sobre esse tema.

A primeira coisa que um usuário comum pensa ao ver a palavra “virtualização” em algum lugar é a possibilidade de executar vários sistemas operacionais simultaneamente dentro de um. Realmente essa é uma das vantagens de ter um sistema operacional rodando virtualmente, mas isso pode se expandir a várias aplicações como vimos nos últimos posts do blog. A virtualização é possível na maioria dos sistemas atuais. Você pode rodar Windows dentro de Windows, Windows dentro de Mac, Linux dentro de Windows, são várias possibilidades. Tudo depende da potência do computador a ser utilizado. Mas como fazer isso? É por isso que precisamos falar de máquinas virtuais.
Exemplo de máquina virtual: Windows XP rodando no
Windows 7 (Fonte da Imagem: Tkp News)

   Uma máquina virtual é ambiente computacional em que um sistema operacional ou programa pode ser instalado e executado. De maneira mais simplificada, podemos dizer que a máquina virtual funciona como um “computador dentro do computador”.  Hoje em dia, criar uma máquina virtual é muito simples: basta instalar um programa dentro do seu computado. É dentro desse programa que você irá criar um disco rígido virtual e poderá executar um sistema operacional inteiro a partir dele. Para executá-lo é necessário que haja recursos na máquina hospedeira para poder suprir a carga necessária, até porque um sistema virtual é semelhante a um sistema “real” até na questão de consumo de recursos. Você pode rodar um sistema com o mínimo de recursos, esperando o mínimo de resposta do sistema ou dedicar grande parte da memória e disco para que tudo funcione razoavelmente bem.

Máquinas virtuais são extremamente úteis no dia a dia, pois permitem ao usuário rodar outros sistemas operacionais dentro de uma janela, tendo acesso a todos os softwares que precisa. Elas são usadas em diversos casos, como no lançamento de programas e SO’s ainda em estágio de desenvolvimento. Dessa forma, você não se torna refém de aplicativos inacabados que podem apresentar diversos bugs. A máquina virtual irá alocar, durante a execução de sistemas operacionais, uma quantidade definida de memória RAM. Ela normalmente emula um ambiente de computação física, mas requisições de CPU, memória, disco rígido, rede e outros recursos de hardware serão todos geridos por uma “camada de virtualização” que traduz essas solicitações para o hardware presente na máquina.

As máquinas virtuais são capazes de “enganar” os programas e sistemas operacionais, pois eles acreditam que estão sendo executados diretamente no hardware físico, e não dentro de uma simulação. Por isso, eles podem ser instalados da mesma forma que seriam dentro do sistema operacional. Além disso as mesmas podem servir de ambiente seguro para acesso à serviços na internet. Como ela é facilmente “reparada” no caso de problemas, ela não estará com nenhum tipo de programa malicioso. Quando o diretor de pesquisa da empresa finlandesa F-Secure veio ao Brasil investigar as fraudes bancárias, uma das soluções propostas por ele foi o uso de máquinas virtuais.

Ainda não se tem notícia de códigos maliciosos que tentem capturar dados dentro de máquinas virtuais, ou que consigam capturar os dados do host quando executados dentro de um sistema virtualizado.  No entanto, por serem sistemas virtualizados, tudo em execução nas máquinas virtuais é mais lento. Ela não serve, por exemplo, para executar jogos 3D. Alguns emuladores (de jogos e outros) também podem não funcionar em uma máquina virtual, por também dependerem das funções de virtualização do processador.

Existem no mercado diversos programas que criam máquinas virtuais. Os mais notáveis são o VirtualBox, da Sun, o VMWare, o VirtualPC da Microsoft e o Xen. Todos têm alguma versão gratuita ou são gratuitos com algumas restrições. O VirtualPC, por exemplo, é gratuito para qualquer usuário de alguma versão corporativa do Windows, como o Vista Business ou Windows XP Pro. O VirtualBox oficial é gratuito apenas para o uso doméstico, mas existe uma versão recompilada do programa (que é software livre) que pode ser executada sem restrições, mesmo em ambientes comerciais. O VMWare disponibiliza o VMWare Player, que permite rodar máquinas virtuais criadas pelas versões completas do programa. Existem máquinas virtuais prontas, disponíveis na internet, que podem ser executadas pelo VMWare Player, especialmente distribuições Linux. O Xen também é software livre e, portanto, 100% gratuito, mas funciona apenas no Linux.

E então, gostou? Deixa seu comentário aí em baixo e até o próximo post!


Referências:

“A virtualização de sistemas operacionais para usuários domésticos” por Caio Alexandre - http://www.guiadopc.com.br/artigos/19180/virtualizacao-sistemas-operacionais-usuarios-domesticos.html

“O que são máquinas virtuais?” por Roberto Hammerschmidt - http://www.tecmundo.com.br/maquina-virtual/232-o-que-sao-maquinas-virtuais-.htm

“Saiba o que são máquinas virtuais e como elas ajudam na segurança do PC” por Altieres Rohr - http://g1.globo.com/Noticias/Tecnologia/0,,MUL1252543-6174,00-SAIBA+O+QUE+SAO+MAQUINAS+VIRTUAIS+E+COMO+ELAS+AJUDAM+NA+SEGURANCA+DO+PC.html

sexta-feira, 15 de maio de 2015

Virtualização de Desktop

Durante nossos últimos posts está sendo reservado um tempo específico para falar de uma técnica muito importante que tem revolucionado o mercado cientifico e proporcionado vários benefícios, chamada de virtualização. Especificamente no post anterior apresentou-se um dos tipos de virtualização chamada de “virtualização por servidores”, que basicamente significa executar servidores virtuais em um único servidor físico. De forma similar, no post de hoje mais um subtipo de virtualização será abordado, chamado de “virtualização de desktop”. 
Primeiramente, o que é desktop? Alguns já devem ter ouvido falar dessa palavra, afinal estamos na era da computação, mas vale a pena ressaltar. Bom, desktop em poucas palavras significa o ambiente principal do computador, onde se encontram aplicativos, pastas, arquivos, atalhos, etc. Já sabemos que virtualização é uma técnica que cria um ambiente virtual que simula um real, e agora já temos certa base sobre o que seria desktop, então fica fácil identificar o que é virtualização de desktop, não é mesmo? 
Em termos formais, Virtualização de Desktop é uma tecnologia que separa o sistema operacional e suas aplicações do dispositivo físico que acessa o mesmo. Ou seja, permite a criação de uma máquina virtual que estará separada do computador físico (hardware) e do sistema operativo anfitrião (ou ainda, sistema operativo já existente na máquina física). As máquinas virtuais são gerenciadas por um software de virtualização (hypervisor, visto no post anterior). O conjunto Hypervisor+Desktops Virtuais roda em um conjunto de servidores destinados exclusivamente para este fim. Observe a figura abaixo:
Ilustração das interação entre Hypervisor e Desktops
Esse tipo de virtualização é muitas vezes chamado de Virtualização de Cliente, pois ocorre a criação de uma máquina virtual para cada usuário. Dessa forma, cada desktop tem seu próprio sistema operacional e aplicativos. O usuário interage com um desktop virtual da mesma forma que usaria um desktop físico, com a vantagem de poder acessar remotamente, através de rede, sua área de trabalho a partir de qualquer localização.

Ilustração de Virtualização de Cliente

As principais vantagens da Virtualização de Desktop são: ganhos de gerenciamento, segurança, disponibilidade do ambiente, mobilidade, padronização e diminuição de custos de aquisição e manutenção dos desktops. Em termos de segurança pode-se destacar que os dados não trafegam pela rede externa, o que trafega são apenas os dados de controle e os "pixels" que formam a tela da aplicação, o que oferece de certa maneira uma segurança a mais.
Já as  desvantagens da Virtualização de Desktop são: consumo alto de processamento e memória, o que requer servidores com maior processamento, e a impossibilidade de rodar alguns aplicativos, entre eles aplicativos VOIP e de videoconferência. 
Bom pessoal, nesse post aprendemos bastante sobre a virtualização de desktop, suas vantagens e desvantagens, então ficamos por aqui, e até o próximo post!
Não esquecendo que ainda temos mais alguns tipos de virtualização para aprender! Fiquem atentos. ;)  

Referências:
"O que é Virtualização?", por Fabio Eduardo Amaral -http://www.tecmundo.com.br/web/1624-o-que-e-virtualizacao-.htm
“Virtualização de Desktops”, Planus - http://www.planus.com.br/virtualizacao-de-desktops-cde-22
“Virtualização de Desktop como Solução para a Redução de Custos”, por Adriana Aparecida Costa - http://www.techoje.com.br/site/techoje/categoria/detalhe_artigo/887 
“O que é desktop virtualization ou virtualização de desktop?”-  http://www.profissionaisti.com.br/2014/08/o-que-e-desktop-virtualization-ou-virtualizacao-de-desktop/

sexta-feira, 8 de maio de 2015

Virtualização de Servidores

        Como vimos no post anterior, a virtualização pode ser definida, de forma simples, como  uma tecnica  que cria um ambiente virtual que simula um o real, proporcionando a utilização de diversos sistemas e aplicativos sem a necessidade do acesso físico à máquina. Existem vários tipos de virtualizações, dentre eles está a virtualização de servidores que será abordada no post de hoje.

       A virtualização de servidores  nos da a oportunidade de executar, simultaneamente, vários sistemas operacionais em um único hardware ou máquina virtual, ou seja, é uma técnica que executa servidores virtuais em um servidor físico. Esse processo ocorre, pois existem programas que geram Virtual Machines ou VMs que simulam componentes físicos de um computador, dando a oportunidade que para cada máquina virtual seja instalado um sistema operacional diferente.



               Quando a virtualização é do tipo completa, ela pode se dividir em duas partes:

  • Hypervisor tipo 1:
        O hypervisor tipo um conhecido como nativo ou  bare-metal, é um software que interage diretamente com o hardware da máquina física. Assim as máquinas virtuais rodam diretamente sobre ele.
          Ele é inteiramente independente do sistema operacional do host. O Hyper-V é um exemplo de hypervisor de tipo 1.

  • Hypervisor tipo 2:
        O hypervisor do tipo dois, também conhecido como hosted, possui uma camada a mais além da camada do hypervisor e ambas estão sobre o sistema operacional do host.
         Essa nova camada permite, por exemplo, troca de arquivos entre o software e o host com o ambiente virutal, além de permitir que usuários executem aplicações paralelas ao ambiente virtualizado. Esse tipo de processo não é permitido no hypervisor do tipo bare-metal.
          O Virtual Server é um hypervisor de Tipo 2.





          Quando precisamos decidir qual hypervisor usar levamos em conta qual situação ele será aplicado. Para o primeiro tipo, por exemplo, por estar ligado diretamente ao hardware, ele possibilita um número maior de opções de acesso, trazendo assim mais desempenho. O segundo tipo, proporciona uma maior compatibilidade com o hardware, que permite executar o software de forma mais ampla nas configurações do hardware, esta não sendo possível no tipo 1.

                 Quando utilizamos um hypervisor para a solução de problemas, o aproveitamento dos recursos de hardware podem ir até 90%, quando normalmente chegam aos 20%. Isso acontece porque o hypervisor tem como maior objetivo usar todos os recursos e gerenciar o funcionamento para resolver por exemplo a incompatibilidade de recursos.

                  A virtualização traz muitos benefícios para as empresas, pois com ela há a redução de espaço físico, equipamentos , consumo de energia e armazenamento de dados, oferece segurança, além de ser sustentável, pois contribui de forma significativa na redução de emissão de gás carbônico. Porém, como desvantagem, aparecem o grande uso de espaço em disco e o grande consumo de memória RAM.
       
         Atualmente, é muito difícil realizar alguma grande tarefa sem que sem o uso da internet ou algum serviço oferecido pela virtualização.



Referências:
"O que é Virtualização?", por Fabio Eduardo Amaral - http://www.tecmundo.com.br/web/1624-o-que-e-virtualizacao-.htm

"Virtualização de Servidores", por Thiago Handren da Silva - http://www.devmedia.com.br/virtualizacao-de-servidores/30820

"Virtualização de Servidores", Virtue IT - http://www.virtueit.com.br/site/?page_id=432

 "Hypervisor: Segurança em Ambientes Virtualizados" Davmedia - http://www.devmedia.com.br/hypervisor-seguranca-em-ambientes-virtualizados/30993

"Como funciona a Virtualização de Servidores", por Fernando Ulisses - http://www.profissionaisti.com.br/2014/09/como-funciona-a-virtualizacao-de-servidores/

sexta-feira, 1 de maio de 2015

Virtualização - Uma breve introdução

Talvez você já tenha ouvido falar no termo “virtualização”. Ela é algo que está presente tanto nos computadores de entusiastas da área da computação quanto nos grandes servidores e empresas espalhados pelo mundo. Através dela, os custos com equipamentos são reduzidos e podemos ter um proveito maior da potência e recursos de um computador.

Para ajudar você a aprofundar os conhecimentos no assunto, traremos uma série de postagens explorando o assunto, sendo essa uma rápida introdução ao tema.

O que é virtualização?


Para ajudar a entender o que significa a virtualização, é importante relembrar o conceito de algo real e virtual. Algo real possui características físicas e é concreto. Já algo virtual é associado a aquilo que é simulado e que é abstrato.

Com esse conceito em mente, virtualização nada mais é do que um ambiente virtual que simula um ambiente real. Isso permite com que possamos utilizar diversos sistemas operacionais, com os seus respectivos programas e configurações, dentro de um único computador, permitindo com que a potência e o uso computador possam ser melhores explorados.

Um exemplo bastante prático de como utilizar a virtualização é permitir que um computador com o Linux instalado execute o Microsoft Office. Para isso, basta preparar e configurar uma máquina virtual com o Windows e o Microsoft Office instalados e utilizar o ambiente virtualizado em conjunto com o real.

Comparativo entre uma arquitetura comum (esquerda) e uma operando com a virtualização (direita).

A necessidade da virtualização: uma breve história


Antigamente. era algo bastante comum se encontrar numa situação onde os servidores não estivessem utilizando 100% da sua potência ou mesmo que estivesses parados (com 0% de utilização). Isso trazia gastos desnecessários de energia e manutenção, uma vez que os servidores estavam ligados sem fazer nada.

Outra situação comum era de precisar executar um aplicativo em um sistema operacional incompatível. Para torná-lo compatível, o software precisaria ser modificado e recompilado novamente. Porém, as diferenças entre os sistemas não eram pequenas, dificultando bastante a tarefa.

Para resolver esses e outros problemas, os conceitos de virtualização vinham sendo discutidos desde a década de 1950, mas apenas nos anos 1960 os primeiros passos foram dados, com o conceito de multitarefa lançados pela IBM, na época chamada de Time Sharing (Tempo Compartilhado), e de servidores que poderiam virtualizar, de forma bem limitada, um servidor dentro deles.

Na década de 1990, com o avanço da tecnologia, surgiram os primeiros softwares que virtualizavam, de maneira efetiva, um computador dentro de um computador físico. Desde então, a virtualização continuou sendo melhorada e passou a ser cada vez mais utilizada, diminuindo os custos de equipamentos para as empresas e aproveitando melhor os seus servidores.

VMware GSX Server, um dos primeiros e principais softwares de virtualização comercial.

A virtualização possui uma variedade grande de aplicações e utilizações. Nas próximas postagens, falaremos sobre os tipos de virtualização e o quão úteis elas podem ser tanto para uma empresa quanto para um usuário comum. Até a próxima! :)

Referências

"O que é virtualização e para que serve?", por Emerson Alecrim - http://www.infowester.com/virtualizacao.php

"O que é Virtualização?", por Fabio Eduardo Amaral - http://www.tecmundo.com.br/web/1624-o-que-e-virtualizacao-.htm

"Tecnologia de virtualização e software de máquina virtual", por VMware Brasil - http://www.vmware.com/br/virtualization

"Saiba mais sobre Virtualização de Servidores", por Faster - Tecnologia. http://www.fasterti.com.br/virtualizacao.html

"SolutionBase: Installing VMware GSX Server - TechRepublic", por  Scott Lowe MCSE - - http://www.techrepublic.com/article/solutionbase-installing-vmware-gsx-server/