Par comparaison avec l’utilisation exclusive de dispositifs de stockage dédiés, comme des serveurs et des NAS (pour « Network Attached Storage », traduit par serveur de stockage en réseau), la mise en œuvre de dispositifs locaux de stockage génère deux problématiques principales qui peuvent être adressées par la conception de l’architecture : - la fiabilité et la disponibilité de dispositifs de stockage non dédié sont sensiblement inférieures à celle de dispositifs de stockage dédiés ; le taux de pannes est plus élevé, il peut être éteint à tout moment par son utilisateur, ou encore être temporairement indisponible du fait d’une mauvaise connexion au réseau – l’architecture peut alors mettre en place des stratégies alternatives en cas d’indisponibilité telles, par exemple : - lors du stockage d’un bloc, si le dispositif de stockage sélectionné n’est pas disponible, le système peut sélectionner un autre dispositif de stockage présentant les mêmes caractéristiques : c’est-à-dire qu’il est garanti qu’une stratégie d’allocation du système est respectée en tout état de cause – par exemple dans le cas d’une allocation par zone, le dispositif de stockage indisponible est remplacé par un autre dispositif de stockage disponible de la même zone, ou une cible appartenant à une zone pas encore utilisée (le contrat étant qu’il ne doit pas exister deux blocs du même segment sur la même zone) et - lors de la lecture d’un bloc, si le dispositif de stockage qui le contient n’est pas disponible, on utilise la redondance de l’architecture pour récupérer les données depuis un autre dispositif de stockage (soit une copie du bloc en mode miroir, soit un bloc de parité) – si l’architecture détecte un comportement suspicieux de la part du dispositif de stockage en défaut (par exemple le renvoi d’un bloc corrompu lors de la demande de lecture, ce qui peut être un vecteur d’attaque), des mesures correctives peuvent être prises– ces mesures incluent la mise sur liste noire du dispositif de stockage (le dispositif de stockage ne reçoit plus de nouveaux blocs) et la reconstitution de la redondance perdue par déplacement du bloc reconstitué sur un autre dispositif de stockage sain et - l’utilisation d’un dispositif de stockage non dédié ne doit pas impacter sa fonction principale (qui n’est donc pas le stockage), ce qui peut être réalisé par exemple de la manière suivante : - concernant le stockage, l’architecture surveille en permanence l’espace disponible sur chaque dispositif de stockage, si l’espace disponible passe en dessous d’un seuil d’alerte (configurable) - par exemple à la suite du téléchargement d’un fichier volumineux par l’utilisateur du dispositif de stockage – l’architecture refuse le stockage de nouveaux blocs, même si la capacité attribuée à l’architecture sur ce dispositif de stockage n’est pas atteinte – cette sécurité met la priorité sur la fonctionnalité principale du dispositif de stockage, et sacrifie la fonction stockage avant qu’elle ne rentre en conflit avec la fonction principale et - concernant l’usage des ressources réseau, mémoire et processeur, celle-ci peut être réduite au minimum, par exemple au travers de l’optimisation logicielle de l’architecture – quand le dispositif de stockage local doit utiliser des ressources, il le fait sur des durées courtes (inférieures à la seconde, si possible inférieures aux 100ms) de manière à ce que cela reste indétectable pour l’utilisateur humain du dispositif de stockage.