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:

  1. Comprendre els conceptes bàsics dels sistemes de fitxers distribuïts.
  2. Conèixer els diferents tipus de sistemes de fitxers distribuïts.
  3. Aprendre sobre els avantatges i desafiaments associats amb els DFS.
  4. 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

  1. 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.

  1. Sistemes de Fitxers Basats en Objectes

  • Exemple: Ceph
  • Característiques: Emmagatzema dades com a objectes amb metadades associades. Proporciona una alta escalabilitat i flexibilitat.

  1. 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

  1. Objectiu: Configurar un clúster HDFS simple amb un NameNode i dos DataNodes.
  2. 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

  1. Objectiu: Emmagatzemar i recuperar fitxers utilitzant Ceph.
  2. 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

  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
    
  2. 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>
      
  3. Inici del Clúster:
    /usr/local/hadoop/bin/hdfs namenode -format
    /usr/local/hadoop/sbin/start-dfs.sh
    

Solució a l'Exercici 2

  1. Instal·lació de Ceph:
    sudo apt-get update
    sudo apt-get install ceph
    
  2. 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
      
  3. 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.

© Copyright 2024. Tots els drets reservats