Escolar Documentos
Profissional Documentos
Cultura Documentos
Índice................................................................................................................................ i
Índice de Figuras
Figura 1 - Cenário com servidor de bases de dados único ............................................. 2
Figura 2 - Exemplar da mímica da interligação entre uma agencia e o servidor de bases
de dados ......................................................................................................................... 4
Figura 3 - Modelos de Consistência .............................................................................. 14
Figura 4 - Organização geral de uma base de dados fisicamente distribuído e replicado
sobre múltiplos processos. ............................................................................................ 14
Figura 5 - Arquitectura de Distribuição .......................................................................... 22
Figura 6 - Arquitectura de Consolidação ....................................................................... 23
Figura 7 - Arquitectura de Deslocamento de dados ...................................................... 23
Figura 8 - Arquitectura de workflow ............................................................................... 24
Figura 9 - Arquitectura de Multi-site Data sharing ......................................................... 24
Figura 10 - Modelos de Replicação de dados ............................................................... 26
Figura 11 - Modelo Muti mestre .................................................................................... 26
Capítulo I – Introdução
1.1. Contextualização
Os Softwares, têm desempenhado um papel importante no dia-a-dia da população em
todo o mundo, isso devido a possibilidade facilitadora que eles trazem na realização das
actividades, dando maior eficácia e eficiência. Devido a essas e outras facilidades, o uso
de softwares torna-se cada vez mais indispensável. Primordialmente, os sistemas eram
centralizados por serem instalados e configurados em um único computador, o qual
funcionava como controlador dos recursos físicos (o hardware) e lógicos (o software)
disponíveis numa organização. E uma das dificuldades que leva ao abandono dos
sistemas centralizados é que com
Um maior número de usuários reduz a fatia de tempo (time-slice) disponível para cada
um, aumenta o número de interrupções e consumo dos recursos do sistema para tarefas
de gerenciamento. Além disso, o barramento pode causar um gargalo no sistema pela
limitação de dados que podem circular nas conexões. (Barcelar, 2013, p. 1)
E porque nem todos sistemas são de natureza centralizada, há por vezes, a necessidade
de tornar remoto o acesso a determinados recursos ou um sistema inteiro; o que faz com
que em alguns sistemas exista “[…] conjunto de computadores independentes que se
apresenta a seus usuários como um sistema único e coerente” (Tanenbaum & Steen,
2006), a este dá-se o nome de Sistema Distribuído. Em relação ao primeiro tipo
(Sistemas centralizados), este tem a vantagem de ser eficiente no compartilhamento de
recursos e da carga de trabalho, a
distribuição mais eficiente o que
permite a computação mais rápida,
a tolerância a falhas e a
capacidade de redundância.
No cenário da Figura 1 (ao lado)
tem-se um servidor de bases de
dados cujo acesso é remoto, e
possui diversas bases de dados de
diversas organizações diferentes
operando em Moçambique, uma
Figura 1 - Cenário com servidor de bases de dados único dessas possui software com a
Fonte: o Autor
Arquitectura Cliente-Servidor.
Cada um dos computadores do conjunto distribuído em todas agências é dependente da
base de dados remota. Apesar disso, pela definição acima colocada, este sistema é
distribuído. Ele possui uma dependência que faz com que a falha do servidor torna
todas agências da organização não operacionais criando assim inúmeros prejuízos
(desde os de logística aos económicos) o que faz dele não confiável. Por outro lado,
todas agências estão geograficamente distribuídas e com cada uma, tendo diversos
computadores usando o sistema o que dependendo da infra-estrutura de rede de
computadores instalada pode afectar ao desempenho primeiro do servidor e em
segundo o de cada sistema que usada os recursos deste servidor. Por tanto estes
desafios, o desempenho e a tolerância a podem ser resolvidos a partir da a replicação
dos sistemas distribuídos, o que será o centro das atenções deste trabalho. E neste, tem-
se em vista estudar o mecanismo de salvaguarda de problemas (a confiabilidade e o
desempenho) que afectam sistemas como o do cenário anterior tendo como solução a
replicação de dados. Por tanto, a meta global é demonstrar a importância do uso da
replicação em sistema distribuídos e como aspecto pratico trar-se-á uma simulação
usando máquinas virtuais interagindo em uma rede com um programa (um sistema
distribuído com arquitectura cliente-servidor) onde o foco será mostrar o ganho da
tolerância a falha usando-se a replicação.
1.2. Problematização
O grupo de recrutamento tsintsiva, possui representações em todas províncias do país,
onde que, em cada possui agencias de operações, estas que são destacadas pela
facilidade que têm na comunicação interna entre os funcionários desta organização, a
mesma, facilita muitos processo internos ao grupo, essa comunicação é obtida atreveis
do uso de uma aplicação de bate-papo que conecta cada computador de operações ao
servidor de bases de dados que esta localizada em sua sede em Maputo-cidade. Nesta
aplicação, os funcionários podem conversar de forma partícula, podem conversar em
um grupo geral ou da sua Província, podendo também trocar documentos e outros
ficheiros. Um exemplar da interligação pode ser visto na Figura 2 (nesta figura traz-se
apenas aspectos relevantes a nossa análise, aspectos como a representação do
servidor de DHCP, da firewall e outros é descartada). Nesta rede, existem períodos em
que:
1. o sistema de bate-papo fica indisponível devido ao uso excecivo dos recurso da rede
estes que fazem com que a largura;
2. o sistema de bate-papo fica indisponível devido a queda do servidor de bases de
dados quando este recebe actualizações;
Quando o sistema fica indisponível, a comunicação torna-se deficiente, fazendo que o
trabalho seja oneroso.
Figura 2 - Exemplar da mímica da interligação entre uma agência e o servidor de bases de dados
Fonte: O autor
Segundo Tanembaum e Steen (2006, p. 165) os problemas de confiabilidade e
desempenho são os dois principais problemas para a replicação de sistemas
distribuídos, não só, pode também existir a necessidade de replicar sistemas quando as
organizações pretender ampliar-se geograficamente (o que no nosso problema não foi
tido em conta no momento a da ampliação geográfica). E para Coulouris et al (2007, p.
521) a replicação fornecer um melhor desempenho, alta disponibilidade e tolerância a
falhas. Pelo que ambos entram em convergência sobre o assunto neste aspecto de
melhorias trazidas pela replicação. Assim, com este problema trar-se-á propostas de
solução sob a perspectiva de como melhorar a confiabilidade e desempenho nos
sistemas geograficamente distribuídos?
1.4. Objectivos
1.4.1. Geral
Descrever os conceitos da replicação de sistema distribuídos
1.4.2. Específicos
Descrever o princípio de funcionamento dos tipos de replicação de dados
Discriminar a replicação de dados de backup
Testar um sistema de chat (bate-papo) em um ambiente com replicação de dados
Capítulo II – Metodologia
Neste capítulo, serão mostrados os procedimentos usados para a conspecção do
corrente trabalho e a classificação do mesmo.
Capítulo II – Metodologia
Operativo); constituiu também critério de sua selecção a rica documentação que possui
e a vasta comunidade de desenvolvedores activos.
3.1. Replicação
Como mencionado na secção de Problematização, Segundo Tanembaum e Steen (2006,
p. 165) os problemas de confiabilidade e desempenho são os dois principais problemas
para a replicação de sistemas distribuídos, e para Coulouris et al (2007, p. 521) a
replicação fornecer um melhor desempenho, alta disponibilidade e tolerância a falhas.
Pelo que ambos entram em convergência sobre o assunto neste aspecto de melhorias
trazidas pela replicação. Já se mencionou antes, dezoito vez a palavra replicação ainda
não foi dito o que é ou diz-se ser.
Segundo Coulouris et al (2007, p. 521) replicação é “uma técnica para melhorar
serviços” cujas motivações do seu são de “melhorar o de um serviço, aumentar sua
disponibilidade ou torná-lo tolerante a falhas”. E Tanembaum & Steen (2006, p. 165)
converge com essas motivações.
Assim, se um sistema de arquivos for replicado, pode ser possível continuar trabalhando
após a queda de uma réplica simplesmente com comutação para uma das outras
réplicas. “Manter várias réplicas permite melhor protecção contra dados corrompidos”
(Tanenbaum & Steen, 2006).
Realmente, a replicação traz bons frutos, a fiabilidade e o desempenho, mas infelizmente
traz com ela alguns problemas quando os dados são replicados. Um dos quais é a
consistência, que segundo Tanembaum e Steen (2006) “Um conjunto de cópias é
considerado consistente quando as cópias são iguais, ou seja, à qualquer operação de
leitura efectuada em qualquer uma das cópias o resultado deve ser o mesmo”, diz-se
tambem que é
essencialmente, um contracto entre diferentes processos e os dispositivos de armazenamento
de dados, garantindo a coerência e a certeza dos dados dadas determinadas regras que
precisam ser seguidas. (Omicini, 2012).
Confiabilidade;
réplicas garantem que não haverá um único ponto de falha no sistema.
Tolerância a falhas;
em caso de falha, o usuário pode ser movido para outra réplica sem notar que a
falha ocorreu.
Escalabilidade;
Desempenho.
balanceamento de carga, uso de “cache”, escalabilidade geográfica, aumento do
sistema.
Neste trabalho, serão resolvidos discutidos apenas dois dos acima listados, a
confiabilidade e o desempenho.
Consistência Contínua
Modelos de Consistência “Data - Centric”
Ordenação Consistente de Operações
Modelo Consistência
Consistência Eventual
Modelos de Consistência “Client - Centric” Leituras Monotônicas
Escritas Monotônicas
Figura 3 - Modelos de Consistência
aceder aos dados de forma transparente. Nos sistemas de arquivos distribuídos caches
de clientes são usadas para garantir a disponibilidade e bom desempenho, e mantém
um a semântica de actualização de arquivos com cópia única e toleram e se recuperam
de falhas.
3.1.7.1. Distribuição
Fonte: o Autor
Nesta arquitectura, existe uma entidade central que faz a gestão de todos os dados e
disponibiliza à replicas apenas para leitura.
3.1.7.2. Consolidação
Fonte: o Autor
Nesta arquitectura, a informação é gerida de forma central, no entanto, as réplicas só
acedem à informação que lhes diz respeito.
Fonte: o Autor
Nesta arquitectura, a informação é partilhada entre um componente original que aplica o
conceito de transacções e uma réplica que serve apenas para leitura para evitar conflitos.
3.1.7.4. Workflow
Fonte: o Autor
Um modelo de workflow ilustra o conceito de exclusão dinâmica de propriedade
passando a propriedade dos dados da localização do base de dados para a localização
o base de dados dentro de um ambiente replicado. O ambiente de fluxo de trabalho de
replicação é extremamente tolerante a falhas, permitindo diferentes funções ao longo de
um fluxo para proceder de forma independente no caso de falha em locais dedicados a
outras funções.
3.1.7.5. Multi-site data sharing
Fonte: O autor
Nesta arquitectura, a informação é partilhada entre um componente original que aplica o
conceito de transacções e uma réplica que serve apenas para leitura para evitar conflitos.
Síncrona
Quando um base de dados é alterado, a alteração nos outros bases de dados é
feita instantaneamente.
Fonte: O autor
3.2. Backup
Backup refere-se ao armazenamento em um dispositivo de armazenamento virtual ou
físico, diferente do dispositivo onde encontram-se os dados de origem. Formalmente é
definida como
uma cópia de segurança dos dados armazenados no sistema de informação da instituição ou
dos dados de uso pessoal. Este backup é fundamental para qualquer sistema de informação
ou pessoa, pois ele é a garantia da restauração dos dados caso haja uma pane nos
equipamentos da instituição ou pessoa. (INNARELLI, 2003, p. 24)
Para o SANT’ANA (2004, p. 14) significa protecção e segurança de qualquer tipo de
informação dada como importante para uma empresa, seja na forma impressa ou digital,
independentemente da área de actuação sendo um recurso de extrema importância.
Fonte: o autor
Para a resolução do problema descrito na Problematização sistema passará a contar
com replicas regionais, onde que os aplicativos actualizam e as tabelas replicadas em
qualquer base dados que pertença ao grupo de bases de dados. Servidores têm um
papel importante, porque convergem dados automaticamente todas as replicas de
tabelas, assim, garantindo consistência global e integridade de dados.
4.1. Configuração
Editar o ficheiro /etc/mysql/my.cnf ou /etc/mysql/mysql.conf.d/mysqld.cnf
server_id = 1 [2]
log_bin = /var/log/mysql/mysql-bin.log
log_bin_index = /var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index
expire_logs_days = 10
max_binlog_size = 100M
log_slave_updates = 1
auto-increment-increment = 2
auto-increment-offset = 1
bind-address = x.x.x.x (ip de do servidor mestre)
sudo service mysql restart
CHANGE MASTER TO
MASTER_HOST='192.168.2.3',
MASTER_USER='replication',
MASTER_PASSWORD='1234567',
MASTER_LOG_FILE='mysql-bin.000008',
MASTER_LOG_POS=154;
5.1. Conclusão
Existem dois tipos de replicação de dados, a que quando há uma base de dados a ser
alterada, a alteração será feita em uma transição separada levando algum tempo
(segundos, minutos, horas até dias) para concluir noutras bases de dados. Esse tipo de
replicação é utilizado quando não há necessidade de os dados serem actualizados em
tempo real e quando os conflitos entre transacções não acontecem com muita
frequência; a essa dá-se o nome de assíncrona. E a segunda que possui o nome de síncrona
que quando uma base de dados é alterada, a alteração é aplicada instantaneamente noutras.
Em quanto que a replicação é uma técnica para melhoria serviços, a o backup
uma cópia de segurança dos dados armazenados no sistema de informação da
instituição ou dos dados de uso pessoal, na replicação cria-se também uma copia como
em backups, porém, com a motivação de melhorar o de um serviço, aumentar sua
disponibilidade ou torná-lo tolerante a falhas, enquanto que no backup a motivação é a
garantia da restauração dos dados. Não só, sempre que se faz a replicação de sistemas,
todas replicas permanecem em uso (operação) “constante”, sendo que os backups
podem ser feitos e conservados esperando a ocorrência de uma catástrofe.
Do teste feito podou-se perceber que realmente fazendo se a replicação consegue-se
garantir os aspectos discutidos na secção de Desafios dos Sistemas distribuídos resolvidos
pela replicação, que no sistema em estudo com as réplicas propiciam o aumento da
disponibilidade do sistema como consequência da confiabilidade – disponibilidade; com as
réplicas garantiu-se que não haverá um único ponto de falha no sistema – confiabilidade;
e em caso de falha, os usuário podem ser movido para outra réplica sem notar que a
falha ocorreu - tolerância a falhas.
Referências Bibliográficas