Introducció
Els sistemes de fitxers distribuïts (DFS, per les seves sigles en anglès) són una part fonamental de les arquitectures distribuïdes. Permeten emmagatzemar, gestionar i accedir a fitxers de manera distribuïda a través de múltiples nodes en una xarxa. Això proporciona alta disponibilitat, escalabilitat i tolerància a fallades.
Objectius d'aquest tema:
- Comprendre els conceptes bàsics dels sistemes de fitxers distribuïts.
- Conèixer els diferents tipus de sistemes de fitxers distribuïts.
- Aprendre sobre els avantatges i desafiaments associats amb els DFS.
- Explorar exemples pràctics de DFS, com HDFS i Ceph.
Conceptes Bàsics
Definició
Un sistema de fitxers distribuït és un sistema que permet l'accés a fitxers emmagatzemats en múltiples dispositius de manera que semblin estar en un sol dispositiu.
Característiques Clau
- Transparència: L'usuari no ha de ser conscient de la distribució dels fitxers.
- Escalabilitat: Capacitat per gestionar un gran nombre de nodes i fitxers.
- Tolerància a Fallades: Capacitat per continuar operant malgrat les fallades de nodes individuals.
- Consistència: Garantir que tots els nodes tinguin una visió coherent dels fitxers.
Tipus de Sistemes de Fitxers Distribuïts
- Sistemes de Fitxers Basats en Bloquejos
- Exemple: HDFS (Hadoop Distributed File System)
- Característiques: Emmagatzema fitxers en blocs grans distribuïts a través de múltiples nodes. Cada bloc es replica per garantir la tolerància a fallades.
- Sistemes de Fitxers Basats en Objectes
- Exemple: Ceph
- Característiques: Emmagatzema dades com a objectes amb metadades associades. Proporciona una alta escalabilitat i flexibilitat.
- Sistemes de Fitxers Basats en Arxius
- Exemple: NFS (Network File System)
- Característiques: Permet l'accés remot a fitxers com si estiguessin en el sistema local. Utilitza protocols de xarxa per a la comunicació.
Avantatges i Desafiaments
Avantatges
- Alta Disponibilitat: Els fitxers estan disponibles fins i tot si alguns nodes fallen.
- Escalabilitat: Capacitat per afegir més nodes per gestionar més dades.
- Rendiment: Pot millorar el rendiment mitjançant la distribució de la càrrega de treball.
Desafiaments
- Consistència: Mantenir la consistència de les dades a través de múltiples nodes pot ser complex.
- Seguretat: Protegir les dades distribuïdes requereix mecanismes avançats de seguretat.
- Gestió de Fallades: Detectar i recuperar-se de fallades de nodes és crític.
Exemples Pràctics
HDFS (Hadoop Distributed File System)
HDFS és un sistema de fitxers distribuït dissenyat per emmagatzemar grans volums de dades i proporcionar un accés ràpid i fiable. Utilitza una arquitectura mestre-esclau amb un NameNode que gestiona la metadata i múltiples DataNodes que emmagatzemen les dades.
Característiques de HDFS:
- Replicació: Cada bloc de dades es replica en múltiples nodes per garantir la tolerància a fallades.
- Alta Capacitat: Pot gestionar petabytes de dades.
- Integració amb Hadoop: Dissenyat per treballar amb el framework de processament de dades Hadoop.
Ceph
Ceph és un sistema de fitxers distribuït basat en objectes que proporciona emmagatzematge escalable i altament disponible. Utilitza una arquitectura distribuïda sense un únic punt de fallada.
Característiques de Ceph:
- Autogestió: Els nodes poden autogestionar-se i equilibrar la càrrega de treball.
- Escalabilitat: Pot escalar des de pocs nodes fins a milers.
- Flexibilitat: Suporta emmagatzematge de blocs, objectes i fitxers.
Exercicis Pràctics
Exercici 1: Configuració d'un Sistema HDFS
- Objectiu: Configurar un clúster HDFS simple amb un NameNode i dos DataNodes.
- Passos:
- Instal·la Hadoop en tres màquines virtuals.
- Configura el NameNode en una màquina i els DataNodes en les altres dues.
- Inicia el clúster i verifica que els DataNodes estan registrats correctament amb el NameNode.
Exercici 2: Emmagatzematge i Recuperació de Fitxers en Ceph
- Objectiu: Emmagatzemar i recuperar fitxers utilitzant Ceph.
- Passos:
- Instal·la Ceph en un clúster de tres nodes.
- Configura el clúster i crea un pool d'emmagatzematge.
- Emmagatzema un fitxer en el pool i recupera'l per verificar la integritat de les dades.
Solucions als Exercicis
Solució a l'Exercici 1
- Instal·lació de Hadoop:
sudo apt-get update sudo apt-get install openjdk-8-jdk wget https://downloads.apache.org/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz tar -xzvf hadoop-3.3.0.tar.gz sudo mv hadoop-3.3.0 /usr/local/hadoop
- Configuració del NameNode:
- Edita el fitxer
core-site.xml
:<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://namenode:9000</value> </property> </configuration>
- Edita el fitxer
hdfs-site.xml
:<configuration> <property> <name>dfs.replication</name> <value>2</value> </property> </configuration>
- Edita el fitxer
- Inici del Clúster:
/usr/local/hadoop/bin/hdfs namenode -format /usr/local/hadoop/sbin/start-dfs.sh
Solució a l'Exercici 2
- Instal·lació de Ceph:
sudo apt-get update sudo apt-get install ceph
- Configuració del Clúster:
- Inicialitza el monitor:
ceph-deploy new node1 ceph-deploy install node1 node2 node3 ceph-deploy mon create-initial
- Afegeix els OSDs:
ceph-deploy osd create node1:/dev/sdb node2:/dev/sdb node3:/dev/sdb
- Inicialitza el monitor:
- Emmagatzematge i Recuperació de Fitxers:
rados put myfile myfile.txt --pool=my_pool rados get myfile myfile_retrieved.txt --pool=my_pool
Resum
En aquesta secció, hem explorat els sistemes de fitxers distribuïts, els seus tipus, avantatges i desafiaments. També hem vist exemples pràctics com HDFS i Ceph, i hem realitzat exercicis per configurar i utilitzar aquests sistemes. Els sistemes de fitxers distribuïts són essencials per gestionar grans volums de dades de manera eficient i fiable en entorns distribuïts.
Curs d'Arquitectures Distribuïdes
Mòdul 1: Introducció als Sistemes Distribuïts
- Conceptes Bàsics de Sistemes Distribuïts
- Models de Sistemes Distribuïts
- Avantatges i Desafiaments dels Sistemes Distribuïts