Algoritmi per la ridondanza dei dati e il failover per il sistema di storage distribuito?

0

Sto costruendo un sistema di storage distribuito che funziona con diverse dimensioni di archiviazione. Ad esempio, i miei dispositivi di archiviazione hanno dimensioni di 50 GB, 70 GB, 150 GB, 250 GB, 1000 GB, 5 sistemi di archiviazione in un unico sistema. La mia applicazione memorizzerà qualsiasi file sul sistema di archiviazione.

Domanda: come posso costruire uno storage distribuito con l'idea della ridondanza dei dati e del failover per archiviare documenti, video, qualsiasi tipo di file allo stesso tempo assicurandoti che uno dei dispositivi di memorizzazione fallisca, ci sarebbe un altro copia di questi file su un'altra periferica di archiviazione. Tuttavia, la preoccupazione è che 50 GB di spazio di archiviazione possono solo archiviare questo numero massimo di file rispetto a 70 GB, 150 GB ecc. Con un solo spazio di archiviazione, portando 5 sistemi di archiviazione come un cloud storage, esiste un modo logico di distribuire o archiviare file attraverso la mia applicazione?

Come posso garantire la ridondanza dei dati attraverso diverse dimensioni di archiviazione? Esiste un algoritmo per fascicolare più file blob in un unico archivio di file? Qual è la soluzione migliore per uno storage cloud con più dimensioni di archiviazione diverse?

Apro questo argomento con l'obiettivo di discutere il modo migliore per implementare questa idea, assumendo la semplicità, quali sono i problemi di questa implementazione, le misurazioni delle prestazioni e la discussione delle limitazioni.

    
posta kennetham 29.06.2013 - 08:09
fonte

1 risposta

2

Ci sono due classici problemi di NP correlati alla tua domanda.

Essendo entrambi NP-hard, non esiste un algoritmo "perfetto" a priori per gestire il problema. In questo modo rispondi alla tua terza domanda: non esiste un "sistema migliore per risolvere questo problema". D'altra parte, questi articoli forniscono alcune approssimazioni che puoi usare per "ingannare" il problema e trovare una soluzione ragionevole.

Da un punto di vista di livello superiore, considera di avere una sorta di livello di memorizzazione dei meta-dati (ovvero un database) per tenere traccia di quali file si trovano nel sistema di backup e dove si trovano le copie primarie e di backup. Ciò ti aiuterà con la tua prima domanda. Le copie ridondanti sono semplicemente parte della tua logica aziendale e puoi scrivere regole per verificare che la logica sia soddisfatta o per intraprendere azioni correttive facendo copie.

Per la tua seconda domanda, il problema dello zaino si applica direttamente: più blob in un singolo file sono una semplice ripetizione del classico problema.

    
risposta data 29.06.2013 - 14:39
fonte

Leggi altre domande sui tag