A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Equipe: André Monteiro Diego Amarante Rafael Caldas Sandrini Andrade.

Apresentações semelhantes


Apresentação em tema: "Equipe: André Monteiro Diego Amarante Rafael Caldas Sandrini Andrade."— Transcrição da apresentação:

1 Equipe: André Monteiro Diego Amarante Rafael Caldas Sandrini Andrade

2 O sistema de arquivos é uma parte importantíssima dos sistemas operacionais, pois ele fornece uma visão abstrata dos dados persistentes (também chamado de armazenamento secundário), além de ser responsável pelo serviço de nomes, acesso à arquivos e de sua organização geral. Um Sistema de Arquivos Distribuído (SAD ) tem o objetivo de fornecer os mesmos serviços e recursos de um sistema de arquivos convencional, pelo menos na visão dos clientes que o acessa, com a diferença que o SAD pode ser acessado de qualquer máquina dentro de uma rede (acesso remoto).

3 Alguns SADs implementam certas transparências para os usuários, que não precisam saber que estão lidando com um sistema de arquivos de um determinado tipo ou natureza. Essas transparências, junto com uma pequena descrição, são: Nome: O nome do recurso a ser utilizado (como um arquivo) não deve indicar ou conter indícios de onde está localizado. Localização: O usuário não precisa fornecer a localização física do recurso (no caso um arquivo) para encontrá-lo. Acesso: O usuário não perceberá se o arquivo que está sendo usado é local ou remoto. Essa é a filosofia usada no sistema de arquivos virtual (VFS) do Linux. Replicação: Os arquivos do SAD podem ter cópias armazenadas em locais diferentes. O usuário não deve perceber que existem várias cópias do mesmo arquivo. Para ele só será apresentada uma, e quem a escolherá é o SAD.

4 Concorrência ou Paralelismo: Vários usuários podem acessar o mesmo arquivo ao mesmo tempo, mas isso não deve afetar esses usuários nem outros. Falha: O SAD deve garantir que o acesso aos arquivos seja ininterrupto e sem falhas, sem que o usuário saiba como isso é tratado.

5 CODA (Constant Data Availability) é um sistema de arquivos experimental desenvolvido pelo grupo do Prof. Satyanarayanan na Carnegie Mellon University nos anos 90, com base no AFS-2. É um Sistema de Arquivos Distribuídos descendente do AFS. Seu principal objetivo é fornecer acesso a sistemas de arquivo distribuídos para computadores portáteis. Ele implementa alguns mecanismos de replicação não presentes no AFS Foi o 1º sistema a definir e implementar o modo de operação desconectado.

6 O AFS-2 trouxe o conceito de callback, que permite ao cliente abrir e fechar um arquivo várias vezes sem precisar acessar o servidor. Quando um cliente receber um arquivo do servidor, ele também recebe um callback, que é uma promessa de que ele está com a versão mais recente do arquivo. Um callback pode ser quebrado ou quando um cliente atualiza um arquivo, ou quando o servidor recebe uma nova versão do arquivo de um outro cliente. A cópia local pode ser utilizada quantas vezes se quiser, contanto que o cliente possua um callback válido. O AFS suporta um esquema de replicação simples, que pode ser usado para realizar um backup automático dos arquivos dos usuários e para replicação de diretórios read-only. Atualmente há mais de 100 células AFS por todo o mundo dando a seus usuários a possibilidade de compartilhar seus arquivos através de diferentes continentes usando uma interface de sistema de arquivos parecida com a do UNIX.

7 Operação desconectada para dispositivos móveis; Cache persistente no cliente, aumentando a performance; Replicação de servidores; Autenticação, criptografia e controle de acesso; Operação não é interrompida em falhas parciais da rede; Adaptação a banda de rede disponível; Boa escalabilidade; Semânticas de compartilhamento bem definidas.

8 Oferecer aos usuários (em UM ou na rede) acesso contínuo a arquivos & diretórios UNIX mesmo em caso de falhas de servidores, partições na rede ou desconexões das UMs sistema de arquivos com alta disponibilidade; Tornar mobilidade transparente para a camada de aplicação Usa a mesma API UNIX para acesso a arquivos, Variações na conectividade (p.ex. desconexões) são tratadas de forma transparente;

9 Na rede, servidores CODA armazenam volumes (subdiretórios UNIX). Cada volume é replicado em um conjunto de servidores (pelo menos 2) denominado Volume Server Group – VSG. As réplicas no VSG são mantidas sincronizadas. Para cada cliente, existe um subconjunto de VSGs chamado AVSG (acessível) com réplicas dos volumes daquele usuário. Cada atualização é propagada para todos os AVSGs e posteriormente para todos os VSGs (antes de qq outro acesso) assim garante-se réplicas consistentes. Usa-se um RPC com multicast, multiRPC, que garante que os multicasts são tratados em ordem total. Funcionamento de MultiRPC: encaminhamento para um S e AVSG, que executa um atomic multicast com os demais servidores em AVGS.

10 Qualquer servidor pode sair e posteriormente se re- integrar ao grupo, e quando isto ocorre, nenhuma ação imediata é tomada. Através do multiRPC o cliente pode detectar diferenças entre os volumes nos servidores e AVSG e executar um multiRPC para sincronizar o arquivo/diretório. A replicação de volumes aumenta a disponibilidade de dados para os clientes. Clientes executam um Gerente de Cache (Venus), que mantém no cache arquivos e diretórios freqüentemente acessados no disco local da UM.

11 Venus (um client-side proxy) é responsável por lidar com as conseqüências de mobilidade e desconexões, e opera em 3 possíveis estados: hoarding (normal); desconectado (emulando); re-integração;

12 Terminou a UM sincronização UM se reconectou se desconectou sem diferenças UM se reconectou com diferenças Re-IntegraçãoDesconectado Hoarding

13 É o estado normal, no qual a UM do cliente está conectada com a rede (os servidores do AVSG). Neste estado Venus, mantém-se preparada para uma desconexão súbita: Trata de manter em cache todos os arquivos/diretórios potencialmente necessários ou em uso por cada um dos processos. A escolha dos arquivos é feita em um esquema de prioridades misto que combina: Informações implícitas: derivadas do histórico de acessos recentes, Informações explícitas: fornecidas pelo usuário (hoarding dadabase). Periodicamente, Venus re-avalia quais objetos merecem permanecer no cache (hoard walking). A consistência entre a cópia em cache e no AVSG é sinalizada através de callback: quando arquivo original é modificado servidor, este envia aos clientes notificações de quebra de callback

14 No estado desconectado, Venus assume o papel de um servidor AVSG operando somente sobre os arquivos em cache. No entanto, todas as operações são tentativas e deverão ser posteriormente confirmadas (após a reconexão). Cache misses geram excessões para programas de aplicação; Devido à abordagem otimista, cliente desconectado pode fazer as mesmas atualizações do que um cliente conectado; Todas as atualizações são registradas em um log (CML), que é implementado usando um mecanismo de transações; A fim de limitar/reduzir o tamanho do log, antes de adicionar uma entrada ao log, verifica-se se esta não anula uma entrada anterior; No entanto, quando o CML ficar cheio, Venus suspende qualquer nova alteração.

15 Após a reconexão com o AVSG, Venus: Propaga todas as atualizações no CML para todos os AVSGs. Atualiza o cache com a nova versão dos arquivos/diretórios. A propagação ocorre em 2 etapas: 1) Venus requisita fileIDs definitivos para os fileIDs locais de arquivos eventualmente criados, e faz a substituição destes no CML log; 2) envio do log CML em paralelo para todos os servidores AVSG, que executam o log como uma transação atômica (se uma atualização falha, toda transação de reintegração é cancelada).

16 Fases do processamento do log CML: Todos os arquivos referenciados no log são bloqueados; Valida-se cada operação no log (existe espaço em disco?, não há violação de acesso?, operação causaria perda de consistência do sistema de arquivos?); O conteúdo dos arquivos referenciados no log é copiado para os servidores; todos os bloqueios são liberados. Se reintegração falha, é gerado um novo log indicando os problemas da reintegração. CODA disponibiliza ferramentas para analisar este log, comparar o conteúdo dos arquivos e diretórios no AVSG e no cache e editar o log CML a fim de remover operações que tenham causado conflito; Depois, o usuário pode tentar novamente a reintegração com o logmodificado.

17 CODA oferece flexibilidade para a resolução de conflitos: Conflito em Diretórios: conflito somente se: Novo nome de arquivo é igual a um nome existente; Se um objeto foi modificado e ao mesmo tempo removido; Atributos de um objeto tenham sido modificados no servidor e no cache (exemplo: rwx bits). Conflito em Arquivos: quando Venus detecta divergências em um arquivo, procura um programa (Application Specific Resolver -ASR) para este arquivo. Se existe, invoca o programa que: modifica a cópia do arquivo local (cache) e copia a versão modificada de para o servidor (enquanto isto, arquivo fica bloqueado). Se não existir um ASR para um arquivo, usuário tem que fazer manualmente as mudanças.

18 Em 1993, estudo envolvendo aprox. 25 usuários em 1 semana. Resultados: Disco local de 100 Mbytes mostrou-se suficiente para cache+log para operação desconectada por 1 semana. (reintegração diária); Tempo gasto para reintegração após 1 dia desconectado = 5 min; 99% das modificações em arquivos UNIX são feitos pelo mesmo usuário da modificação anterior; Poucos conflitos do tipo write-write baixo grau de compartilhamento Replicação do UNIX FileSys em 4 servidores: Desempenho do Andrew Benchmark apenas 5% pior do que sem replicação; CODA apresentou fraca escalabilidade (nº de usuários concorrentes);

19 O desenvolvimento nessa área continua intenso e aumentando significativamente. Agora que os clusters de PCs estão se tornando mais comuns, a necessidade de sistemas de arquivos que se utilizam desses recursos vem crescendo, assim como o estudo para aumentar a velocidade desses sistemas, já que a velocidade do tráfego de dados entre as aplicações e o armazenamento secundário não costuma acompanhar o aumento da velocidade dos processadores e memória. Em geral existem sistemas de arquivos distribuídos para todos os tipos de aplicações e problemas que se quer resolver. Alguns são mais tradicionais, por isso ganham mais respeito e são mais largamente utilizados, outros mais inovadores e criados para resolver problemas específicos, o que os torna menos populares, porém não deixam de ganhar crédito. Além disso, é necessário também analisar o custo de cada solução a se adotar, pois alguns deles necessitam de hardware especial.

20 Não existe um sistema de arquivos completo que se adéqua a qualquer aplicação. Para decidir qual SAD utilizar, o melhor é se informar, entre os candidatos, quais mais se adéquam ao ambiente do problema, além de saber quais os prós e contras de cada candidato, e para quais plataformas ele funciona bem. Depois de escolhido os finalistas, um bom benchmark (ato de executar um programa de computador, um conjunto de programas ou outras operações, a fim de avaliar a performance relativa de um objeto, normalmente executando uma série de testes padrões e ensaios nele) poderá mostrar em que situações esses SADs funcionaram bem. A partir daí é verificar quais as probabilidades das situações analisadas ocorrerem e decidir qual o SAD que tem mais chance de resolver o problema. programa de computadorperformance


Carregar ppt "Equipe: André Monteiro Diego Amarante Rafael Caldas Sandrini Andrade."

Apresentações semelhantes


Anúncios Google