Présentation
ZeroFS et Amazon S3 Files exposent des systèmes de fichiers POSIX basés sur le stockage d'objets, mais l'interface partagée cache des dispositions de bucket opposées. Le choix dépend du rôle du bucket : si les fichiers doivent rester des objets S3 ordinaires, S3 Files préserve cette identité ; si le bucket peut être une couche de persistance interne, ZeroFS échange l'accès direct S3 pour le regroupement, la compression et le cryptage côté client.
Architecture
La propriété définissante de S3 Files, construite à l'aide d'Amazon EFS, est que images/cat.jpg sur le point de montage correspond à la même clé dans le bucket, avec des modifications qui s'effectuent dans les deux sens. Les données actives et les métadonnées résident dans un niveau à faible latence que AWS appelle « stockage haute performance ».
ZeroFS utilise un arbre LSM pour les métadonnées ; les contenus de fichiers sont divisés en étendues, compressés et cryptés, puis regroupés en objets de segment immuables. Un client S3 voit une disposition interne opaque plutôt que les fichiers montés.
Performances et coûts
Les deux systèmes utilisent le cache de page client. Le chemin d'écriture commence après que le client envoie l'écriture au serveur. Le coût de stockage S3 et les frais de demande s'appliquent dans les deux cas. S3 Files facture également son niveau de stockage haute performance : stockage résident par GB-mois et lectures et écritures par GB.
Le coût estimé pour ZeroFS est réduit grâce à la compression, qui diminue les octets de charge utile, tandis que les métadonnées, les données de compactage temporaires et les demandes ajoutent des coûts. À une taille de GET idéale de 8 MiB, la lecture des données de fichiers coûte environ 0,26 $ à un rapport de compression de 2:1 ou 0,51 $ à un rapport de 1:1, avant les métadonnées et les lectures aléatoires ou courtes.
Comparaison et limites
Les deux systèmes ont des forces et des faiblesses. S3 Files préserve les objets S3 ordinaires pour l'écosystème S3 environnant ; ZeroFS traite le stockage d'objets comme le substrat privé du système de fichiers. Le choix entre les deux dépend des besoins spécifiques de l'application et de la disposition du bucket.
import os
print(os.path.join('images', 'cat.jpg'))
En résumé, ZeroFS et S3 Files offrent des systèmes de fichiers POSIX basés sur le stockage d'objets, mais avec des dispositions de bucket et des compromis différents. La compréhension de ces différences est essentielle pour choisir la solution la plus appropriée pour les besoins de stockage et d'application spécifiques.