Licenciatura em Engenharia Informática Universidade...

Click here to load reader

  • date post

    12-Dec-2018
  • Category

    Documents

  • view

    212
  • download

    0

Embed Size (px)

Transcript of Licenciatura em Engenharia Informática Universidade...

Computao Distribuda Cap. V

Licenciatura em Engenharia Informtica

Universidade Lusfona

P f J R dProf. Jos RogadoProf. Jos Fasca

Sistemas de Ficheiros Distribudos

Conceito e caracterizao A it t d SGF di t ib d Arquitecturas de SGF distribudos Implementaes: NFS e AFS P bl ti d hi f i t i Problemtica do caching: performance e consistncia

Licenciatura Eng. Informtica5.2Computao Distribuda

Partilha de Recursos de Armazenamento

Uma das principais funcionalidades dos Sistemas Distribudos o acesso a informao remotaDistribudos o acesso a informao remota

A informao constitui valor essencial Information-Centered Society

A quantidade de informao disponvel cada vez maiorA quantidade de informao disponvel cada vez maior impraticvel existirem rplicas de toda informao necessria nos locais onde necessria

A partilha de recursos de armazenamento pois fundamental para permitir o seu acesso generalizado

Existem vrios nveis de partilha de informao Existem vrios nveis de partilha de informaoAcesso em modo consulta em larga escala (Web, Peering, )Acessos escrita/leitura em larga escala (AFS, CODA, )g ( , , )Armazenamento de objectos persistentes (RMI, CORBA)Acesso escrita/leitura redes locais e Intranet (NFS, Samba, AFS)

Licenciatura Eng. Informtica5.3Computao Distribuda

Propriedades de Sistemas de Armazenamento Remotos

Sharing Persis-tence

Distributedcache/replicas

Consistencymaintenance

Exampletence cache/replicas maintenance

Main memory RAM

File system UNIX file system11

File system UNIX file system

Distributed file system Sun NFS

Web Web server

12

Distributed shared memory Ivy (DSM, Ch. 18)

Remote objects (RMI/ORB) CORBA1

2

Persistent object store 1 CORBA PersistentObject Service

Peer-to-peer storage system OceanStore (Ch. 10)3p g y OceanStore (Ch. 10)3

Types of consistency:1: strict one-copy. 2: slightly weaker guarantees. 3: considerably weaker guarantees.

Licenciatura Eng. Informtica5.4Computao Distribuda

Sistemas de Gesto de Ficheiros (SGF)

Um SGF implementa um nvel de abstraco em cima de um meio fsico de armazenamentoum meio fsico de armazenamento

Noo de directrios, ficheiros e atributos Um ficheiro um conjunto de dados associados a um tipo e um nome Um directrio um ficheiro especial que mapeia nomes em descritores internos Os atributos caracterizam os ficheiros e esto guardados nos directrios

A gesto de ficheiros inclui A gesto de ficheiros incluiNomeao e localizao dos ficheirosGesto dos seus atributosAlocao e libertao de espao de armazenamentoSegurana e proteco dos acessosProvimento de uma API de acesso e respectivos mtodos

Os SGF mantm informao sobre ficheiros no meio fsicoM t d t

Licenciatura Eng. Informtica5.5Computao Distribuda

Metadata

Mdulos de um SGF local

Naming module: relates file names to file IDs

Fil d l l t fil ID t ti l filFile module: relates file IDs to particular files

Access control module: checks permission for operation requested

File access module: reads or writes file data or attributes

Block module: accesses and allocates disk blocks

Device module: disk I/O and buffering

Organizao em camadas Organizao em camadas Cada nvel utiliza os servios das camadas inferiores Um SGF distribudo necessita de todas estas camadas mais as necessrias

nomeao, localizao, invocao, mensagens e comunicaes Estas funcionalidades existem em todas as camadas acima excepto nas duas

inferiores

Licenciatura Eng. Informtica5.6Computao Distribuda

Componentes de um Ficheiro

File Attributes BlockBlockBlock

length

creation timestampread timestamp

it ti t

Naming Module

Read & Write

M d lwrite timestampattribute timestamp

reference count

File Module

Module

Block Module

version numberownership

Access control Module

Module

Device Module

t

access control list File System Modules

type

Licenciatura Eng. Informtica5.7Computao Distribuda

API de Acesso a Ficheiros (exemplo Unix)

fileid = open (name, mode) Opens an existing file with the given name.

fileid = create (name, mode) Creates a new file with the given name. Both operations deliver a file descriptor referencing the open file. The mode is read, write or both.

status = close (filed) Closes the open file fileid.

count = read (fileid, buffer, n) Transfers n bytes from the file referenced by fileid to buffer.

count = write (fileid, buffer, n) Transfers n bytes to the file referenced by fileid from buffer. Both operations deliver the number of bytes actually transferred and advance the read-write pointer.

pos = lseek (fileid, offset, rel) Moves the read-write pointer to offset (relative or absolute, depending on rel value).

status = link (name1, name2) Adds a new name (name2) for a file (name1).

status = unlink (name) Removes the file name from the directory structure. If the file has no other names, it is deleted.

status = stat (name, buffer) Gets the file attributes for file name into buffer.

A implementao da API associa estado a cada ficheiro utilizadoLista dos ficheiros abertos e I/O pointer por processo

Licenciatura Eng. Informtica5.8Computao Distribuda

Lista dos ficheiros abertos e I/O pointer por processo A realizao dos mtodos da API est condicionada verificao de permisses

Requisitos de SGF Distribudos (i)

TransparnciaNo acesso: a mesma API deve ser utilizada para aceder a ficheiros locais ou premotosNa localizao: os utilizadores e as aplicaes devem ver um espao de nomeao uniformeNa mobilidade: nada deve ser modificado na estrutura dos SGFs quando um ou mais ficheiros so movidos de um local para outroNo desempenho: o acesso remoto no deve ser (muito) penalizadoNa escalabilidade: o sistema distribudo deve escalar como o local

ReplicaoUm ficheiro pode ser replicado em vrios exemplares por motivos de p p p peficincia e tolerncia a falhas

Concorrncia de AcessosO sistema deve providenciar meios para permitir modificaes simultneasO sistema deve providenciar meios para permitir modificaes simultneas de ficheiros de forma coerente e sem bloqueios

Licenciatura Eng. Informtica5.9Computao Distribuda

Requisitos de SGF Distribudos (ii)

ConsistnciaSemntica de cpia nica: todos os processos que acedem a um ficheiro Se ca de cp a ca odos os p ocessos que acede a u c e odevem ver um contedo idntico, mesmo se o ficheiro estiver replicado em vrios locais

Tolerncia a falhas Tolerncia a falhasSemntica de evocao at most onceSemntica de evocao at least once mas fornecendo uma API com

t d id t tmtodos idempotentes Segurana

Controle de Acessos baseado em Listas de Controle de Acesso (ACLs) ou ( )CapabilitiesAutenticao das invocaes remotas para permitir o controle baseado na identidade

DesempenhoGarantir tempos de acesso comparveis com os SGF locais

Licenciatura Eng. Informtica5.10Computao Distribuda

Modelo de um Servio de Ficheiros Distribudo

Modelo abstracto baseado em 3 servios distintos: Servio de Nomeao Servio de Nomeao

Implementa uma estrutura hierrquica atravs da criao do conceito de directoria e efectua a resoluo de nomesUtiliza a API do servio de acesso bsico para aceder ao armazenamentoUtiliza a API do servio de acesso bsico para aceder ao armazenamento

Servio de Acesso BsicoImplementa as operaes de base sobre o contedo dos ficheiros designados por identificadores internos nicos (UFID Unique Filedesignados por identificadores internos nicos (UFID Unique File Identifiers)Operaes: create, delete, read, write, get_attribute, set_attribute e access_control, etc_

Servio ClienteIntegra e expande os servios anteriores fornecendo uma API integrada que estende as funcionalidades do SGF localMantm informao actualizada sobre a localizao dos servios de acesso e de directrioOptimiza o desempenho dos acessos atravs de caching de dados e de

Licenciatura Eng. Informtica5.11Computao Distribuda

p p gatributos de ficheiros

Arquitectura de um Servio de Ficheiros Distribudo

Client computer Server computerClient computer Server computer

Application Naming ServiceApplication programprogram program

FS API

Client module

Flat file service

RPC

Licenciatura Eng. Informtica5.12Computao Distribuda

Mtodos da Interface do Servio de NomeaoFileId = Lookup (Dir, Name) throws NotFound

Locates the text name in the directory and returns the relevant UFID. If Name is not in the directory, throws an exception

FileId = AddName(Dir Name) If Name is not in the directory adds (Name File) to the directoryFileId = AddName(Dir, Name) throws DuplicateName

If Name is not in the directory, adds (Name, File) to the directory and updates the files attribute record. If Name is already in the directory: throws an exception.

DeleteName (Dir, Name) throws If Name is in the directory: the entry containing Name isNotFound removed from the directory. If Name is not in the directory: throws

an exception

NameSeq = ReadDir (Dir, Pattern) Returns all the text names in the directory that match the regular expression Patternexpression Pattern.

O objectivo do servio de nomeao realizar a resoluo de nomes, atravs de ficheiros especiais contendo mapeamento entre nomes textuais e UFIDsSi t d Fi h i Hi i t d b i i d Sistema de Ficheiros Hierrquico construdo com base na insero recursiva de ficheiros de tipo directoria, comeando numa raiz

O mdulo cliente fornece s aplicaes uma funo que realiza a resoluo de um pathname por invocao recursiva do mtodo Lookup para cada elemento do nomepathname por invocao recursiva do mtodo Lookup para cada elemento do nome na directoria anterior e obtendo o UFID da directoria seguinte

Podem ser definidos grupos de ficheiros como conjuntos de ficheiros com uma localizao comum, podendo ser movidos em bloco. Neste caso, o UFID contm

Licenciatura Eng. Informtica5.13Computao Distribuda

, p ,um campo com a identificao do grupo - GroupID.

Mtodos da Interface do Servio BsicoData = read (FileId, i, n) throws NoSuchFile, BadPosition

If 1 i Length (File): Reads a sequence of up to n items from a file starting at item i and returns it in Data

write (FileId i Data) throws If 1 i Length (File)+1: Writes a sequence of Data to a filewrite (FileId, i, Data) throws NoSuchFile, BadPosition

If 1 i Length (File)+1: Writes a sequence of Data to a file, starting at item i, extending the file if necessary

FileId = Create() Creates a new file of length 0 and delivers a UFID for it

Delete (FileId) Removes the file from the file storeDelete (FileId)throws NoSuchFile

Removes the file from the file store

Attr = GetAttributes(FileId) throws NoSuchFile

Returns the file attributes for the file

SetAttributes (FileId, Attr) throws NoSuchFile

Sets the file attributes

Os mtodos so acedidos por RPC pelo mdulo cliente no directamente por aplicaes Os mtodos so acedidos por RPC pelo mdulo cliente, no directamente por aplicaes O identificador FileId s vlido se referenciar um ficheiro presente no repositrio do servidor Todos os mtodos da interface retornam uma excepo de autorizao se o cliente no tiver

direitos para a sua invocao Todos os mtodos, excepto create(), so idempotentes permitindo utilizar um RPC com

semntica at-least-once Os mtodos podem ser implementados por um servidor sem estado (stateless) pois nenhum

mtodo pressupe a manuteno de informao sobre a operao que o cliente efectuou

Licenciatura Eng. Informtica5.14Computao Distribuda

p p p qpreviamente

Controle de Acessos

O controle de acessos implementado no lado do servidorCada acesso do cliente validado visto a mensagem poder atravessar umCada acesso do cliente validado visto a mensagem poder atravessar um meio desprotegidoA validao feita usando credenciais enviadas em cada RPC

D i Duas opes so possveisEnvio da identificao no acto da resoluo do nome sendo devolvido o UFID e uma capacidade (capability) de acesso para operaes

fsubsequentes nesse ficheiroEnvio da identificao em cada mensagem

Cada opo permite uma implementao de servidores diferentep p p Statefull: a primeira opo usada em AFSStateless: a segunda opo usada em NFSN h d l l bl d b tit i d id tifi Nenhuma delas resolve o problema da substituio da identificao que s pode ser resolvido com recursos a tcnicas de encriptao

Licenciatura Eng. Informtica5.15Computao Distribuda

NFS - Network File System

O Sistema NFS segue o modelo descrito Sistema desenvolvido pela Sun nos anos 80 Sistema desenvolvido pela Sun nos anos 80

Inicialmente em sistema Unix mas suportado por outros Utiliza o protocolo NFS para comunicao entre o Cliente e o Servidor

Baseado no Sun RPC j estudadoPode funcionar com transporte UDP ou TCPProtocolo aberto que aceita invocaes de qualquer cliente que tenhaProtocolo aberto que aceita invocaes de qualquer cliente que tenha credenciais vlidas para o efeito

Os mdulos cliente e servidor residem no kernelI i i l t id i l t d d tili dInicialmente o servidor era implementado em modo utilizador

A integrao em sistemas Unix feito atravs de uma camada adicional de virtualizao do SGF

Virtual File SystemPermite a coexistncia de vrios SGFs distintos no mesmo sistema

Licenciatura Eng. Informtica5.16Computao Distribuda

Virtual File System

Trata-se de um nvel de abstraco adicional introduzido no kernel entre os system calls e a sua implementao em cada SGF

f Permite realizar de forma transparente a distino entre vrios tipos de SGFs locais ou remotos

Para cada tipo de SGF montado no sistema, o nvel VFS i t i bj t ( f ) t ti i dinstancia um objecto (vfs) com as caractersticas e operaes associadasGuarda uma referncia interna para a directoria do volume remoto que fica associada directoria local onde foi montada

Para cada ficheiro aberto o nvel VFS Para cada ficheiro aberto, o nvel VFSInstancia um objecto (v-node) com as caractersticas e operaes associadas ao tipo de ficheiro

Se local aponta para um identificador obtido do SGF local: i-node Se remoto aponta para um identificador obtido do servidor NFS montado: r-node

A realizao de uma operao sobre o SGF ou sobre ficheiro feita de modo transparente por invocao indirecta no objecto de virtualizao

#define VFS ROOT(vfsp vpp) (*(vfsp)->vfs op->vfs root)(vfsp vpp)#define VFS_ROOT(vfsp, vpp) ( (vfsp) >vfs_op >vfs_root)(vfsp, vpp) #define VOP_READ(vp, uiop, iof, cr) (*(vp)->v_op->vop_read)(vp, uiop, iof, cr)

O VFS mantm um objecto vfs por cada volume montado e um v-nodepor cada ficheiro aberto

Licenciatura Eng. Informtica5.17Computao Distribuda

Arquitectura NFS

Client Computer Server Computer

Application Program

Application Program

UNIX Kernel

UNIX

Virtual File System Virtual File System

UNIX syscalls

UNIX File

Other File

NFS Client

NFS Server

UNIX File

NFS Protocol

System System System System System

Licenciatura Eng. Informtica5.18Computao Distribuda

O servidor tambm pode ser implementado em modo utilizador (verso inicial)

NFS: Implementao Cliente

Implementado no kernel do sistema operativo Quando um volume NFS montado, o mdulo cliente Quando um volume NFS montado, o mdulo cliente

Obtm um identificador da directoria raiz do volume remoto O identificador NFS designado por file handle instanciado um v-node associado ao ficheiro remoto, contendo as operaes suportadas

l SGFpelo SGF O v-node neste caso aponta para um r-node onde so armazenadas as caractersticas do

ficheiro remoto, e armazenado o file handleTodas as operaes realizadas sobre os ficheiros do SGF remoto vo ter p como ponto de partida o root v-node

O root v-node mantido no objecto vfs associado ao SGF remoto e pode ser obtido atravs do mtodo VFS_ROOT

Sempre que um novo ficheiro remoto referenciado Sempre que um novo ficheiro remoto referenciado instanciado um novo par (v-node, r-node), construdo da mesma formaAs operaes que criam novos r-nodes so:

Lookup, create, mkdir

Nas operaes de leitura e escrita, realiza as transferncias de dados por blocos de dados de tamanho constante (tipicamente 4-8 kbytes)

Licenciatura Eng. Informtica5.19Computao Distribuda

Efectua o caching dos dados, indexados pelo r-node associado ao ficheiro

NFS: Implementao Servidor

O mdulo NFS implementa a interface RPC de acesso ao sistema de ficheiros remoto

Tem o papel de servidor de directrio e de servio bsico de acessoTem o papel de servidor de directrio e de servio bsico de acesso Quando um volume NFS montado, o mdulo servidor

Cria um identificador para a directoria raizFile handle: i d ti

O mdulo servidor interage com os volumes locais atravs do nvel VFSQualquer tipo de SF suportado a nvel de VFS pode ser montado por NFS

File System Identifier i-node number of file i-node generation number of file

Qualquer tipo de SF suportado a nvel de VFS pode ser montado por NFS A montagem de volumes remotos realizada atravs de um servio separado

que corre em modo utilizador : mountd Mantm uma tabela de volumes locais e dos clientes que os podem montar

/ t / t /etc/exportsO comando Unix mount do cliente invoca o servio mountd por RPC indicando o pathname da directoria de montagemMountd verifica as permisses, resolve o nome localmente e retorna um file handle para a directoria que referenciada no root v node do clientepara a directoria, que referenciada no root v-node do cliente

A montagem de volumes pode ser feita de dois modosHardmount: em caso de erro, a operao bloqueiaSoftmount: em caso de erro, a operao retorna erro de timeout depois de um

Licenciatura Eng. Informtica5.20Computao Distribuda

Softmount: em caso de erro, a operao retorna erro de timeout depois de um intervalo de tempo

Exemplo de Configurao NFS

Client Server 2Server 1(root) (root) (root)

usrvmunix. . . nfsexport

usersstudentsRemote

mo ntstaffpeople

Remote

mo ntx

jim jane joeann

mount

big bobjon

mount

. . .

Note: The file system mounted at /usr/students in the client is actually the sub-tree located at /export/people in Server 1; the file system mounted at /usr/staff in the client is actually the sub-tree located at /nfs/users in Server 2.

Licenciatura Eng. Informtica5.21Computao Distribuda

Mtodos da Interface NFS (i)

lookup (dirfh, name) -> fh, attr Returns file handle and attributes for the file name in the directory dirfhdirfh.

create (dirfh, name, attr) ->newfh, attr

Creates a new file name in directory dirfh with attributes attr andreturns the new file handle and attributes.

remove (dirfh name) status Removes file name from directory dirfhremove (dirfh, name) status Removes file name from directory dirfh.getattr (fh) -> attr Returns file attributes of file fh. (Similar to the UNIX stat system

call.)setattr (fh attr) > attr Sets the attributes (mode user id group id size access time andsetattr (fh, attr) -> attr Sets the attributes (mode, user id, group id, size, access time and

modify time of a file). Setting the size to 0 truncates the file.read (fh, offset, count) -> attr, data Returns up to count bytes of data from a file starting at offset.

Also returns the latest attributes of the file.write (fh, offset, count, data) -> attr Writes count bytes of data to a file starting at offset. Returns the

attributes of the file after the write has taken place.rename (dirfh, name, todirfh, toname) Changes the name of file name in directory dirfh to toname in( f , , f , )

-> statusChanges the name of file name in directory dirfh to toname indirectory to todirfh.

link (newdirfh, newname, dirfh, name)-> status

Creates an entry newname in the directory newdirfh which refers tofile name in the directory dirfh.

Licenciatura Eng. Informtica5.22Computao Distribuda

Continues on next slide ...

Mtodos da Interface NFS (ii)

symlink (newdirfh, newname, string)-> status

Creates an entry newname in the directory newdirfh of typesymbolic link with the value string The server does not interpret status symbolic link with the value string. The server does not interpretthe string but makes a symbolic link file to hold it.

readlink (fh) -> string Returns the string that is associated with the symbolic link fileidentified by fh.y f

mkdir (dirfh, name, attr) -> newfh, attr

Creates a new directory name with attributes attr and returns thenew file handle and attributes.

rmdir (dirfh name) -> status Removes the empty directory name from the parent directory dirfhrmdir (dirfh, name) > status Removes the empty directory name from the parent directory dirfh.Fails if the directory is not empty.

readdir (dirfh, cookie, count) -> entries

Returns up to count bytes of directory entries from the directorydirfh. Each entry contains a file name, a file handle, and an opaquef y , , p qpointer to the next directory entry, called a cookie. The cookie isused in subsequent readdir calls to start reading from the followingentry. If the value of cookie is 0, reads from the first entry in thedirectory.directory.

statfs (fh) -> fsstats Returns file system information (such as block size, number offree blocks and so on) for the file system containing a file fh.

Licenciatura Eng. Informtica5.23Computao Distribuda

Resoluo de pathnames

Os pathnames relativos a ficheiros locais so resolvidos pelo sistema de nomeao local

Em Unix, os pathnames so transformados em referncias internas para i-nodes atravs de um processo iterativo aplicado a cada nvel da hierarquia de directrios

Quando o pathname contm um ponto de montagem, a parte do nome respeitante ao SGF remoto no pode ser integralmente resolvida pelo servidor

Podem existir mais pontos de montagem locais ou symbolic links no resto do pathnameA resoluo do resto do pathname continua iterativamente no cliente com b l k li d d l t dbase na operao lookup aplicada a cada elemento do nome

Lookup retorna a referncia e atributos do ficheiro procurado no directrioSe a referncia devolvida for a de um directrio e houver mais elementos no patname o processo continuapatname, o processo continuaO facto da operao de lookup ser invocada nvel de VFS implica que a resoluo do nome independente do nmero e tipo de pontos de montagem atravessados

Licenciatura Eng. Informtica5.24Computao Distribuda

montagem atravessados

Automounter

um servio do cliente que permite montar um volume remoto sempre que um ponto de montagem vazio remoto sempre que um ponto de montagem vazio referenciado pelo cliente

Mantm uma lista de pathnames de pontos de montagem com a p p gindicao de um ou mais servidores NFS

Quando o cliente NFS tenta resolver um pathname que atravessa ponto de montagem vazio, passado um pedido de lookup() para o automounter

O automounter localiza o SF remoto na tabela e envia um pedido aoO automounter localiza o SF remoto na tabela e envia um pedido ao servidor associadoO primeiro a responder ao pedido montado no ponto indicado

Pode constituir uma forma primria de repartio de carga por servidores NFS replicados

Licenciatura Eng. Informtica5.25Computao Distribuda

Caching no Cliente (i)

Os sistemas Unix usam caching de ficheiros locais em memria centralO algoritmo utilizado tenta satisfazer os pedidos de leitura a partir do cacheO algoritmo utilizado tenta satisfazer os pedidos de leitura a partir do cachee usar read-ahead e delayed-write (30 s mx.) dos ficheiros locais.

O mdulo cliente do NFS efectua caching a dois nveis, guardandoO t ib t d fi h i b t ( t d t )Os atributos dos ficheiros abertos (metadata)Os blocos de dados desses ficheiros que recebe do servidorUtiliza um sistema de timestamps para controlar a respectiva validade.

A cada item no cache so associados dois timestamps:Tc - momento o item foi validado pela ltima vez (hora local)Tm momento em que o item foi modificado pela ltima vezTm - momento em que o item foi modificado pela ltima vezNo momento T, considera-se vlida uma entrada no cache sse:

(T - Tc < t) ou (Tm client = Tm server). Sendo t um intervalo de confiana varivel determinado empiricamente

No caso de no se verificar a primeira condio, o timestamp Tmserver obtido atravs do mtodo getattr()

Licenciatura Eng. Informtica5.26Computao Distribuda

Caching no Cliente (ii)

Determinao do intervalo de confianaCompromisso entre consistncia e eficinciapValor de t muito grande provoca incoerncia, muito pequeno provoca ineficincia do cache

determinado de forma adaptativa, sendo menor para ficheiros mais p , pfrequentemente modificados

Tipicamente t pode variar entre 3 e 30 segundos para ficheirosEntre 30 e 60 segundos para directriosEntre 30 e 60 segundos para directrios

Quando um item do cache modificado no cliente marcado para ser sincronizado no servidor

Pode ser escrito imediatamente write throughPode ser escrito imediatamente write-throughPode ser escrito assincronamente quando houver uma sincronizao -sync() ou quando o ficheiro for fechadoA sincronizao pode ser feita pelos bio daemonsA sincronizao pode ser feita pelos bio daemons

No garantida a semntica de cpia nica

Licenciatura Eng. Informtica5.27Computao Distribuda

Caching no Servidor

Blocos de dados e atributos de ficheiros e directrios lidos por conta do cliente so normalmente guardados no buffer cache do servidor

f Na leitura utilizado o mesmo algoritmo que para os ficheiros acedidos localmente

A tcnica de read-ahead permite antecipar a leitura de blocos contguos seguintesseguintes

Na escrita de dados ou atributos modificados provenientes de um cliente, podem ser utilizado vrias opes

O delayed-write em que o item modificado pode permanecer no cache e sO delayed write em que o item modificado pode permanecer no cache e s ser sincronizado em disco mais tardeO write-through em que todos os itens modificados so sincronizados antes de ser enviado o reply da mensagemA segunda opo garante maior consistncia mas pode ser penalizante no caso de ser usada sistematicamente

Na verso NFS v3 fornecido um mtodo commit() adicionalPermite sincronizar selectivamente itens modificados que estejam no cachePermite sincronizar selectivamente itens modificados que estejam no cache do servidorPermite melhorar consideravelmente o desempenho dos writes

Licenciatura Eng. Informtica5.28Computao Distribuda

Crtica do Modelo NFS (i)

A arquitectura semelhante ao do modelo abstractoImplementao simples e fcil de adaptarp p p

Transparncia de AcessoA utilizao de VFS permite que as aplicaes acedam de forma transparente a ficheiros remotostransparente a ficheiros remotos

Transparncia de LocalizaoA utilizao de mount points permite a criao de um espao de nomeao global determinado pelo clienteglobal, determinado pelo cliente

Transparncia de MobilidadeA mobilidade de sistemas de ficheiros no suportada dinamicamente pois necessita a reconfigurao dos mount pointsnecessita a reconfigurao dos mount points

Licenciatura Eng. Informtica5.29Computao Distribuda

Crtica do Modelo NFS (ii)

EscalabilidadeConsegue suportar o aumento de carga de forma correcta em modo de g p gacesso read-only atravs de instalao de mais servidoresO facto de no suportar rplicas modificveis limita a utilizao em casos em que um conjunto de ficheiros so modificados muito frequentementeq j q

ReplicaoNo suporta a gesto de rplicas modificveis directamenteA utilizao do NIS (Network Information Service) permite gerir rplicas deA utilizao do NIS (Network Information Service) permite gerir rplicas de ficheiros de autenticao e administrao de rede, usando um esquema de replicao master/slave.

Tolerncia a falhas Tolerncia a falhasO modelo stateless e os mtodos idempotentes permitem um modelo de falhas semelhante ao dos ficheiros locais

Falhas de clientes no afectam os servidores Falhas de clientes no afectam os servidoresO modo hardmount frequentemente utilizado pois muitas aplicaes no so capazes de gerir erros de timeout, diminuindo a possibilidade de recuperar de falhas do servidor

Licenciatura Eng. Informtica5.30Computao Distribuda

p

Crtica do Modelo NFS (iii)

ConsistnciaO algoritmo de gesto da validade do cache permite um grau de coerncia prximo da semntica de cpia nicaA utilizao de ficheiros NFS para realizar comunicao ou coordenao entre processos no recomendada

SeguranaO nvel de segurana baixo, mas pode ser aumentado com a utilizao de Kerberos para autenticao e RPCSEC_GSS para a comunicao

Generic Security Services Application Programming Interface: http://www.ietf.org/rfc/rfc2203.txt

ConclusoNFS uma opo aceitvel para partilha de ficheiros em ambientes sem p p pgrandes exigncia nos nveis de coerncia e segurana

Intranets, desenvolvimento partilhado, consulta de informaoEm ambientes mais exigentes necessrio adoptar outras solues

AFS, SMB/CIFS

Licenciatura Eng. Informtica5.31Computao Distribuda

AFS: Andrew File System

AFS: SGF distribudo desenvolvido na Carnegie-Mellon University nos anos 80anos 80

Chefe de Projecto: Mahadev Satyanarayanan (Satya)http://www.cs.cmu.edu/afs/cs/user/satya/Web/home.html

R i it fi Requisitos especficosPermitir acessos distribudos e seguros atravs de WANsGarantir excelente escalabilidade a nvel do nmero de utilizadores simultneosGarantir nveis de despenho e funcionalidades comparveis ao do acesso a FS locais utilizando tcnicas de caching avanadasg

Principais caractersticas de cachingCaching persistente de ficheiros (e no de blocos) no disco localS i d i i difi d fi h iSemntica de cpia nica na modificao de ficheirosUtilizao de mecanismos de callback promise

Licenciatura Eng. Informtica5.32Computao Distribuda

AFS: Andrew File System

O AFS implementa com xito essas funcionalidadesUtilizao ideal em ambiente com padres de acesso com muitas operaesUtilizao ideal em ambiente com padres de acesso com muitas operaes de leitura, poucas modificaes, acesso aos dados em sequenciaNo aconselhvel para acessos tipo bases de dados

Sistema distribudo e suportado pela IBM (Transarc), com inmeras evolues

DCE/DFS (OSF OpenGroup)DCE/DFS (OSF, OpenGroup)Coda (CMU)OpenAFSNFS v4

Licenciatura Eng. Informtica5.33Computao Distribuda

Implementao

O AFS implementado por 3 componentes: Mdulo Cliente designado por Venus Mdulo Cliente designado por Venus

Processo em modo utilizador, distingue acessos locais de remotosFuncionalidades do mdulo cliente do modelo de referncia

Mdulo Servidor designado por ViceProcesso em modo utilizadorF i lid d d d l id d d l d f iFuncionalidades do mdulo servidor do modelo de referncia

Modificaes especficas do kernel do sistema operativoIntercepo dos system calls API ficheirosIntercepo dos system calls API ficheiros

Pode usar VFS, embora inicialmente esse nvel no existisseGesto da coerncia do cache de ficheirosSegurana KerberosSegurana Kerberos

Suportado em Linux (Fedora e RedHat), Solaris, HP-UX, AIX, MacOS X, Windows XP e Vista

Licenciatura Eng. Informtica5.34Computao Distribuda

, ,

Intercepo de System Calls

Client

UNIX fil N l l fil

Userprogram

Venus

UNIX filesystem calls

Non-local fileoperations

UNIX kernel

UNIX file system

Local Disk

As operaes sobre ficheiros remotos so redirigidas para o processo Venus O ficheiros abertos so transferidos em blocos de 64 kbytes para uma partio

do disco local

Licenciatura Eng. Informtica5.35Computao Distribuda

A modificao feita localmente e propagada para o servidor no close

Arquitectura Geral

Clients Servers

VenusUserprogram

ViceUNIX kernel

UNIX kernel

UNIX kernel

VenusNetworkUserprogram

UNIX kernel

Venus

Vice

U VenusUNIX kernel

UserprogramUNIX kernel

Licenciatura Eng. Informtica5.36Computao Distribuda

Espao de Nomeao

/ (root)

SharedLocal

afs

tmp bin vmunix. . .

Symbolic links

cell1 cell3cell2

bin

Symbolic links

O espao de nomeao uma rvore de tipo Unix, em que o espao partilhado visvel na directoria /afsvisvel na directoria /afs

O espao de nomes pode estar organizado por clulas ou domniosex: /afs/cs.cmu.edu

A criao de nomeao transparente feita atravs de symbolic links

Licenciatura Eng. Informtica5.37Computao Distribuda

A criao de nomeao transparente feita atravs de symbolic links/bin -> /afs/cell2/bin

Implementao dos System CallsUser process UNIX kernel Venus Net Vice

open(FileName,mode)

If FileName refers to afile in shared file space,pass the request toV

Check list of files inlocal cache. If notVenus. local cache. If notpresent or there is novalid callback promise,send a request for thefile to the Vice serverthat is custodian of thevolume containing the Transfer a copy of the

h l l fil d

volume containing thefile.

Place the copy of thefile in the local file

t t it l l

Transfer a copy of thefile and a callbackpromise to theworkstation. Log thecallback promise.

Open the local file andreturn the filedescriptor to theapplication.

system, enter its localname in the local cachelist and return the localname to UNIX.

read(FileDescriptor,Buffer length)

Perform a normalUNIX read operationBuffer, length) UNIX read operationon the local copy.

write(FileDescriptor,Buffer, length)

Perform a normalUNIX write operationon the local copy.

close(FileDescriptor) Close the local copyand notify Venus thatthe file has been closed. If the local copy hasbeen changed, send a

copy to the Vice serverthat is the custodian of

Replace the filecontents and send a

llb k to all other

Licenciatura Eng. Informtica5.38Computao Distribuda

the file. callback to all otherclients holding callbackpromises on the file.

Segurana de Acessos em AFS

Baseada em Kerberos e Listas de Controle de Acesso (ACLs)Autenticao forte quando comparada com NFS standard

A t d d d i l l AFS i f t l i Antes de aceder a um domnio ou clula AFS necessrio efectuar um loginusando o comando klog

Obtm-se um token encriptado (um ticket Kerberos) que fica associado ao utilizador e passado ao cache manager e enviado com todos os acessos ao servidorO token recebido pelo servidor e depois de validado, permite verificar se o utilizador tem direito a efectuar a operao pela consulta dos ACLs que tem sobre o recurso acedido

ACLs dos directrios AFS r read: ability to read files in the directory l lookup: ability to look up directory information i insert: ability to add a file to a directory d d l t bilit t d l t fil f di td delete: ability to delete a file from a directory w write: ability to write to files in a directory k lock: ability to have processes lock files in the directory a administer: ability to change the permissions on the directoryy g p y

Exemplo de ACLssystem:administrators rlidwkasystem:authuser rlidwk

t l

Licenciatura Eng. Informtica5.39Computao Distribuda

system:anyuser l

Identificador de Ficheiro Remoto

Os ficheiros remotos so designados por um File_Id (fid) contendo um file handle NFS e dois campos adicionais:contendo um file_handle NFS e dois campos adicionais:

Volume Number: designa um grupo de ficheiros lgico ao qual pertence o ficheiroUniquifier: nmero nico que garante a nicidade do File_Id

Volume Number File Handle Uniquifier

i node generationFile System Identifier i-node number of file i-node generation number of file

Licenciatura Eng. Informtica5.40Computao Distribuda

Consistncia do Cache AFS

Quando Vice envia uma cpia de ficheiro a Venus, envia igualmente uma callback promise (cp)

Token que garante que o cache ir receber uma notificao (callback) do servidor se o ficheiro for modificado (no servidor ou noutro cliente)A CP guardada no disco local associada aos dados do ficheiro e tem dois estados

Valid: indica que os dados no cache esto actualizados Cancelled: quando os dados esto desactualizados

A passagem de valid para cancelled feita pela recepo do callbackA passagem de valid para cancelled feita pela recepo do callbackVenus pode validar o estado de um callback atravs de um pedido explcito a Vice

Validao de ficheiros no cache depois de um rebootValidao de ficheiros no cache depois de um rebootA durao de validade de um CP limitada a alguns minutos para obviar a perca de callbacks devido a erros de comunicao Vice->Venus

O mecanismo obriga o servidor a manter estado sobre o cliente O mecanismo obriga o servidor a manter estado sobre o clienteLista dos callbacks pendentes em cada clienteMas permite reduzir drasticamente as interaces entre o cliente e servidor

Licenciatura Eng. Informtica5.41Computao Distribuda

Mtodos da Interface do Servio Vice

Fetch(fid) -> attr, data Returns the attributes (status) and, optionally, the contents of fileidentified by the fid and records a callback promise on itidentified by the fid and records a callback promise on it.

Store(fid, attr, data) Updates the attributes and (optionally) the contents of a specifiedfile.

Create() -> fid Creates a new file and records a callback promise on it.Remove(fid) Deletes the specified file.SetLock(fid, mode) Sets a lock on the specified file or directory. The mode of theSet ock(fid, mode) Sets a oc o t e spec ed e o d ecto y. e ode o t e

lock may be shared or exclusive. Locks that are not removed expire after 30 minutes.

ReleaseLock(fid) Unlocks the specified file or directory.(f ) p yRemoveCallback(fid) Informs server that a Venus process has flushed a file from its

cache.BreakCallback(fid) This call is made by a Vice server to a Venus process It cancelsBreakCallback(fid) This call is made by a Vice server to a Venus process. It cancels

the callback promise on the relevant file.

So omitidos os mtodos de acesso a directrios renomeao e teste de validade de CP

Licenciatura Eng. Informtica5.42Computao Distribuda

So omitidos os mtodos de acesso a directrios, renomeao e teste de validade de CP

Semntica de Modificao

A gesto do cache com callback promises permite obter uma semntica muito prxima da dos ficheiros locaisuma semntica muito prxima da dos ficheiros locais

Todavia a garantia total de coerncia no conseguida

Depois de um open() com sucesso: Depois de um open() com sucesso:Se o ficheiro no estava no cache, a cpia trazida do servidor a ltima verso no servidorSe estava, dois casos so possveis

O token (CP) do ficheiro vlido e est dentro do perodo de validade T Um callback enviado nesse espao de tempo perdeu-se e a cpia est p p p p

desactualizada T segundos relativamente ltima verso

O grau de consistncia no muito diferente do obtido num sistema Unix local em que vrios processos que modificamsistema Unix local, em que vrios processos que modificam o mesmo ficheiro devem utilizar primitivas de sincronizao

Utilizao do system call flock()

Licenciatura Eng. Informtica5.43Computao Distribuda

Utilizao do system call flock()

Evoluo

A rea dos SGFs distribudos continua em evoluo A partir dos modelos originais de NFS e AFS foram desenvolvidos A partir dos modelos originais de NFS e AFS foram desenvolvidos

inmeros projectos de investigao que deram bons resultados NFS

Spritely NFS (sistema Sprite - Berkeley) e NQNFS adicionaram gesto deSpritely NFS (sistema Sprite - Berkeley) e NQNFS adicionaram gesto de coerncia de cache baseada em call-backs e estado no servidor garantindo exclusividade de acesso em escritaWebNFS: acesso a servidores NFS pela Webeb S acesso a se do es S pe a ebNFS v4: significativas modificaes do protocolo para integrar file locking, segurana forte e outras funcionalidades de AFS e CodaClustering Coherent NFS: extenses para clusteringg p g

AFSDCE/DFS verso mais robusta da OSF baseada em DCE e VFSCoda introduz acesso desconectado para gerir mobilidade e algoritmos deCoda introduz acesso desconectado para gerir mobilidade e algoritmos de acesso mtuo baseados em oportunistic lockingOdissey - projecto de investigao em CMU na rea de Multimedia e Mobile Computing que utiliza e extende os conceitos de AFS e Coda.

Licenciatura Eng. Informtica5.44Computao Distribuda

Computing que utiliza e extende os conceitos de AFS e Coda.

Coda vs. AFS cartoon

Licenciatura Eng. Informtica5.45Computao Distribuda

Referncias e Trabalho Complementar

Descrio Tcnica de AFS e Coda (obrigatrio)http://www.cs.cmu.edu/~coda/docdir/scalable90.pdfp p

Satya: um dos gurus dos SGFs distribudoshttp://www.cs.cmu.edu/afs/cs/user/satya/Web/home.html

Mais referncias para AFS, Coda e Auraa s e e c as pa a S, Coda e u a

Samba/CIFShttp://www.ubiqx.org/cifs

OpenAFS OpenAFShttp://www.openafs.org

Linux NFShttp://wiki.linux-nfs.org

Links para NFS v4 e Cluster Coherent NFS

NFS v4http://www.nfsv4.org

Trabalho complementarLer o artigo sobre AFS e Coda e comparar as vrias verses de NFS

Licenciatura Eng. Informtica5.46Computao Distribuda

g p

Fim do Captulo V

Resumo dos conhecimentos adquiridos: Conceito de SGF distribudo Caracterizao

V i ti d di t ib i Vrios tipos de distribuioSemntica de acessos e de coerncia

Arquitecturas de SGF distribudos Arquitecturas de SGF distribudosModelo conceptualOperaes bsicas

ImplementaesNFS - sistema sem estado, mtodos idempotentes, coerncia fracaAFS - sistema com estado forte coernciaAFS - sistema com estado, forte coerncia

Problemtica do cachingGesto do cache NFS e AFS: dois modelos tpicos

Licenciatura Eng. Informtica5.47Computao Distribuda