Fiabilité de la mémoire Flash : attendue et inattendue. Partie 2. XIVe conférence de l'association USENIX. Technologies de stockage de fichiers

Fiabilité de la mémoire Flash : attendue et inattendue. Partie 1. XIVe conférence de l'association USENIX. Technologies de stockage de fichiers

4.2.2. RBER et âge du disque (hors cycles PE).

La figure 1 montre une corrélation significative entre le RBER et l'âge, qui correspond au nombre de mois pendant lesquels le disque a été sur le terrain. Cependant, il peut s'agir d'une fausse corrélation puisqu'il est probable que les disques plus anciens comportent plus de PE et que le RBER est donc davantage corrélé aux cycles PE.

Pour éliminer l'effet de l'âge sur l'usure causée par les cycles PE, nous avons regroupé tous les mois de service dans des conteneurs en utilisant les déciles de la distribution des cycles PE comme coupure entre les conteneurs. Par exemple, le premier conteneur contient tous les mois de durée de vie du disque jusqu'au premier décile de la distribution du cycle PE, et ainsi de suite. Nous avons vérifié qu'au sein de chaque conteneur, la corrélation entre les cycles PE et RBER est assez faible (puisque chaque conteneur ne couvre qu'une petite plage de cycles PE), puis avons calculé le coefficient de corrélation entre RBER et l'âge du disque séparément pour chaque conteneur.

Nous avons effectué cette analyse séparément pour chaque modèle, car les corrélations observées ne sont pas dues aux différences entre les modèles les plus jeunes et les plus anciens, mais uniquement à l'âge des disques du même modèle. Nous avons observé que même après avoir limité l'effet des cycles PE de la manière décrite ci-dessus, pour tous les modèles de variateur, il existait toujours une corrélation significative entre le nombre de mois pendant lesquels un variateur était sur le terrain et son RBER (les coefficients de corrélation variaient de 0,2 à 0,4). ).

Fiabilité de la mémoire Flash : attendue et inattendue. Partie 2. XIVe conférence de l'association USENIX. Technologies de stockage de fichiers
Riz. 3. La relation entre le RBER et le nombre de cycles PE pour les disques nouveaux et anciens montre que l'âge du disque affecte la valeur RBER quels que soient les cycles PE provoqués par l'usure.

Nous avons également visualisé graphiquement l'effet de l'âge du disque en divisant les jours d'utilisation du disque à un âge « jeune » jusqu'à 1 an et les jours d'utilisation du disque au-delà de 4 ans, puis avons tracé le RBER de chacun. groupe par rapport au nombre de cycles PE. La figure 3 montre ces résultats pour le modèle de lecteur MLC-D. Nous constatons une différence notable dans les valeurs RBER entre les groupes d'anciens et de nouveaux disques tout au long de tous les cycles PE.

Nous en concluons que l’âge, mesuré en jours d’utilisation du disque sur le terrain, a un impact significatif sur le RBER, quelle que soit l’usure des cellules mémoire due à l’exposition aux cycles PE. Cela signifie que d’autres facteurs, comme le vieillissement du silicium, jouent un rôle important dans l’usure physique du disque.

4.2.3. RBER et charge de travail.

On pense que les erreurs de bits sont causées par l’un des quatre mécanismes suivants :

  1. erreurs de stockage Erreurs de rétention, lorsqu'une cellule mémoire perd des données au fil du temps
    Erreurs de perturbation de lecture, dans lesquelles une opération de lecture endommage le contenu d'une cellule adjacente ;
  2. Erreurs de perturbation d'écriture, dans lesquelles une opération de lecture endommage le contenu d'une cellule adjacente ;
  3. Erreurs d'effacement incomplet, lorsque l'opération d'effacement ne supprime pas complètement le contenu de la cellule.

Les erreurs des trois derniers types (perturbation de lecture, perturbation d'écriture, effacement incomplet) sont corrélées à la charge de travail, donc comprendre la corrélation entre RBER et la charge de travail nous aide à comprendre la prévalence des différents mécanismes d'erreur. Dans une étude récente, "Une étude à grande échelle des pannes de mémoire flash sur le terrain" (MEZA, J., WU, Q., KUMAR, S., MUTLU, O. "Une étude à grande échelle des pannes de mémoire flash dans le domaine. " Dans les actes de la conférence internationale ACM SIGMETRICS 2015 sur la mesure et la modélisation des systèmes informatiques, New York, 2015, SIGMETRICS '15, ACM, pp. 177-190) a conclu que les erreurs de stockage prédominent dans le domaine, tandis que les erreurs de lecture sont assez mineurs.

La figure 1 montre une relation significative entre la valeur RBER au cours d'un mois donné de vie du disque et le nombre de lectures, d'écritures et d'effacements au cours du même mois pour certains modèles (par exemple, le coefficient de corrélation est supérieur à 0,2 pour le MLC - B modèle et supérieur à 0,6 pour le SLC-B). Cependant, il est possible qu’il s’agisse d’une fausse corrélation, dans la mesure où la charge de travail mensuelle peut être liée au nombre total de cycles d’éducation physique.

Nous avons utilisé la même méthodologie décrite dans la section 4.2.2 pour isoler les effets de la charge de travail des effets des cycles PE en isolant les mois de fonctionnement du lecteur en fonction des cycles PE précédents, puis en déterminant les coefficients de corrélation séparément pour chaque conteneur.

Nous avons constaté que la corrélation entre le nombre de lectures au cours d'un mois donné de vie du disque et la valeur RBER de ce mois persistait pour les modèles MLC-B et SLC-B, même en limitant les cycles PE. Nous avons également répété une analyse similaire dans laquelle nous avons exclu l'effet des lectures sur le nombre d'écritures et d'effacements simultanés, et avons conclu que la corrélation entre RBER et le nombre de lectures est vraie pour le modèle SLC-B.

La figure 1 montre également la corrélation entre RBER et les opérations d'écriture et d'effacement. Nous avons donc répété la même analyse pour les opérations de lecture, d'écriture et d'effacement. Nous concluons qu'en limitant l'impact des cycles et des lectures PE, il n'y a aucune relation entre la valeur RBER et le nombre d'écritures et d'effacements.

Ainsi, il existe des modèles de disque dans lesquels les erreurs de violation de lecture ont un impact significatif sur le RBER. D’un autre côté, rien ne prouve que RBER soit affecté par des erreurs de violation d’écriture et des erreurs d’effacement incomplet.

4.2.4 RBER et lithographie.

Les différences de taille des objets peuvent expliquer en partie les différences de valeurs RBER entre les modèles de lecteurs utilisant la même technologie, c'est-à-dire MLC ou SLC. (Voir le tableau 1 pour un aperçu de la lithographie des différents modèles inclus dans cette étude).

Par exemple, 2 modèles SLC avec lithographie 34 nm (modèles SLC-A et SLC-D) ont un RBER d'un ordre de grandeur supérieur à celui de 2 modèles avec lithographie microélectronique 50 nm (modèles SLC-B et SLC-C). Dans le cas des modèles MLC, seul le modèle 43 nm (MLC-B) a un RBER médian 50 % supérieur aux 3 autres modèles avec lithographie 50 nm. De plus, cette différence de RBER augmente d'un facteur 4 à mesure que les disques s'usent, comme le montre la figure 2. Enfin, une lithographie plus fine peut expliquer le RBER plus élevé des disques eMLC par rapport aux disques MLC. Dans l’ensemble, nous avons des preuves claires que la lithographie affecte le RBER.

4.2.5. Présence d'autres erreurs.

Nous avons étudié la relation entre le RBER et d'autres types d'erreurs, telles que les erreurs non corrigibles, les erreurs de délai d'attente, etc., en particulier si la valeur du RBER devient plus élevée après un mois d'exposition à d'autres types d'erreurs.

La figure 1 montre que même si le RBER du mois précédent permet de prédire les valeurs futures du RBER (coefficient de corrélation supérieur à 0,8), il n'y a pas de corrélation significative entre les erreurs non corrigibles et le RBER (groupe d'éléments le plus à droite de la figure 1). Pour les autres types d'erreurs, le coefficient de corrélation est encore plus faible (non représenté sur la figure). Nous avons exploré plus en détail la relation entre le RBER et les erreurs non corrigibles dans la section 5.2 de cet article.

4.2.6. Influence d'autres facteurs.

Nous avons constaté qu'il existe des facteurs qui ont un impact significatif sur le RBER et que nos données ne peuvent pas prendre en compte. Nous avons notamment remarqué que le RBER pour un modèle de disque donné varie en fonction du cluster dans lequel le disque est déployé. Un bon exemple est la figure 4, qui montre le RBER en fonction des cycles PE pour les lecteurs MLC-D dans trois clusters différents (lignes pointillées) et le compare au RBER pour ce modèle par rapport au nombre total de lecteurs (ligne continue). Nous constatons que ces différences persistent même lorsque nous limitons l'influence de facteurs tels que l'âge du disque ou le nombre de lectures.

Une explication possible à cela réside dans les différences de type de charge de travail entre les clusters, car nous observons que les clusters dont les charges de travail ont les ratios de lecture/écriture les plus élevés ont le RBER le plus élevé.

Fiabilité de la mémoire Flash : attendue et inattendue. Partie 2. XIVe conférence de l'association USENIX. Technologies de stockage de fichiers
Riz. 4a), b). Valeurs médianes du RBER en fonction des cycles PE pour trois clusters différents et dépendance du rapport lecture/écriture sur le nombre de cycles PE pour trois clusters différents.

Par exemple, la figure 4(b) montre les taux de lecture/écriture de différents clusters pour le modèle de lecteur MLC-D. Cependant, le rapport lecture/écriture n'explique pas les différences entre les clusters pour tous les modèles. Il peut donc y avoir d'autres facteurs que nos données ne prennent pas en compte, tels que des facteurs environnementaux ou d'autres paramètres de charge de travail externes.

4.3. RBER lors des tests de durabilité accélérés.

La plupart des travaux scientifiques, ainsi que les tests réalisés lors de l'achat de supports à l'échelle industrielle, prédisent la fiabilité des appareils sur le terrain à partir des résultats de tests de durabilité accélérés. Nous avons décidé de déterminer dans quelle mesure les résultats de ces tests correspondent à l'expérience pratique de l'utilisation de supports de stockage à semi-conducteurs.
L'analyse des résultats des tests effectués à l'aide de la méthodologie générale de test accéléré pour les équipements fournis aux centres de données de Google a montré que les valeurs RBER sur le terrain sont nettement supérieures aux prévisions. Par exemple, pour le modèle eMLC-a, le RBER médian pour les disques exploités sur le terrain (à la fin des tests, le nombre de cycles PE atteint 600) était de 1e-05, alors que selon les résultats des tests préliminaires accélérés, ce RBER La valeur doit correspondre à plus de 4000 cycles PE. Cela indique qu'il est très difficile de prédire avec précision la valeur RBER sur le terrain, sur la base des estimations RBER obtenues à partir de tests en laboratoire.

Nous avons également noté que certains types d’erreurs sont assez difficiles à reproduire lors de tests accélérés. Par exemple, dans le cas du modèle MLC-B, près de 60 % des disques sur le terrain subissent des erreurs non corrigibles et près de 80 % des disques développent des blocs défectueux. Cependant, lors des tests d'endurance accélérés, aucun des six appareils n'a rencontré d'erreurs incorrigibles jusqu'à ce que les disques atteignent plus de trois fois la limite de cycle PE. Pour les modèles eMLC, des erreurs non corrigibles se sont produites sur plus de 80 % des disques sur le terrain, tandis que lors des tests accélérés, de telles erreurs se sont produites après avoir atteint 15000 XNUMX cycles PE.

Nous avons également examiné le RBER rapporté dans des travaux de recherche antérieurs, basés sur des expériences dans un environnement contrôlé, et avons conclu que la plage de valeurs était extrêmement large. Par exemple, L.M. Grupp et d'autres, dans leurs travaux 2009-2012, rapportent les valeurs RBER pour les disques qui sont sur le point d'atteindre les limites du cycle PE. Par exemple, pour les appareils SLC et MLC avec des tailles de lithographie similaires à celles utilisées dans notre travail (25-50 nm), la valeur RBER varie de 1e-08 à 1e-03, la plupart des modèles de lecteurs testés ayant une valeur RBER proche de 1e-06. XNUMX.

Dans notre étude, les trois modèles de variateurs ayant atteint la limite du cycle PE présentaient des RBER allant de 3e-08 à 8e-08. Même en tenant compte du fait que nos chiffres sont des limites inférieures et pourraient être 16 fois plus élevés dans le pire des cas, ou en tenant compte du 95e percentile du RBER, nos valeurs restent nettement inférieures.

Dans l'ensemble, même si les valeurs RBER réelles sur le terrain sont supérieures aux valeurs prédites basées sur des tests de durabilité accélérés, elles restent inférieures à la plupart des RBER pour des appareils similaires rapportés dans d'autres documents de recherche et calculés à partir de tests en laboratoire. Cela signifie que vous ne devez pas vous fier aux valeurs RBER sur le terrain prévues qui ont été dérivées de tests de durabilité accélérés.

5. Erreurs non corrigibles.

Compte tenu de l'apparition généralisée d'erreurs non corrigibles (UE), qui ont été abordées dans la section 3 de cet article, dans cette section, nous explorons leurs caractéristiques plus en détail. Nous commençons par discuter de la métrique à utiliser pour mesurer l'UE, de son lien avec le RBER et de la manière dont l'UE est affectée par divers facteurs.

5.1. Pourquoi le ratio UBER n'a pas de sens.

La métrique standard caractérisant les erreurs non corrigibles est le taux d’erreurs binaires non corrigibles UBER, c’est-à-dire le rapport entre le nombre d’erreurs binaires non corrigibles et le nombre total de bits lus.

Cette métrique suppose implicitement que le nombre d’erreurs non corrigibles est lié d’une manière ou d’une autre au nombre de bits lus et doit donc être normalisé par ce nombre.

Cette hypothèse est valable pour les erreurs corrigibles, où le nombre d'erreurs observées au cours d'un mois donné s'avère fortement corrélé au nombre de lectures sur la même période de temps (coefficient de corrélation de Spearman supérieur à 0.9). La raison d'une telle corrélation est que même un mauvais bit, tant qu'il est corrigible à l'aide d'ECC, continuera à augmenter le nombre d'erreurs à chaque opération de lecture à laquelle il accède, puisque l'évaluation de la cellule contenant le mauvais bit est pas immédiatement corrigé lorsqu'une erreur est détectée (les disques ne réécrivent que périodiquement les pages avec des bits endommagés).

La même hypothèse ne s’applique pas aux erreurs non corrigibles. Une erreur non corrigible exclut toute utilisation ultérieure du bloc endommagé. Ainsi, une fois détecté, un tel bloc n'affectera pas le nombre d'erreurs à l'avenir.

Pour confirmer formellement cette hypothèse, nous avons utilisé diverses métriques pour mesurer la relation entre le nombre de lectures au cours d'un mois donné de vie du disque et le nombre d'erreurs non corrigibles sur la même période de temps, y compris divers coefficients de corrélation (Pearson, Spearman, Kendall). , ainsi que l' inspection visuelle des graphiques . En plus du nombre d'erreurs non corrigibles, nous avons également examiné la fréquence des incidents d'erreurs non corrigibles (c'est-à-dire la probabilité qu'un disque présente au moins un incident de ce type au cours d'une période de temps donnée) et leur relation avec les opérations de lecture.
Nous n'avons trouvé aucune preuve d'une corrélation entre le nombre de lectures et le nombre d'erreurs non corrigibles. Pour tous les modèles de lecteur, les coefficients de corrélation étaient inférieurs à 0.02 et les graphiques ne montraient aucune augmentation de l'UE à mesure que le nombre de lectures augmentait.

Dans la section 5.4 de cet article, nous expliquons que les opérations d'écriture et d'effacement n'ont également aucun rapport avec des erreurs non corrigibles, de sorte que la définition alternative d'UBER, qui est normalisée par des opérations d'écriture ou d'effacement au lieu d'opérations de lecture, n'a aucun sens.

Nous concluons donc qu'UBER n'est pas une métrique significative, sauf peut-être lorsqu'elle est testée dans des environnements contrôlés où le nombre de lectures est défini par l'expérimentateur. Si UBER est utilisé comme métrique lors des tests sur le terrain, cela réduira artificiellement le taux d'erreur pour les disques avec un nombre de lectures élevé et gonflera artificiellement le taux d'erreur pour les disques avec un faible nombre de lectures, car des erreurs non corrigibles se produisent quel que soit le nombre de lectures.

5.2. Erreurs non corrigibles et RBER.

La pertinence du RBER s'explique par le fait qu'il sert à déterminer la fiabilité globale du variateur, notamment en fonction de la probabilité d'erreurs non corrigibles. Dans leurs travaux, N. Mielke et al ont été les premiers en 2008 à proposer de définir le taux d'erreurs non corrigibles attendu en fonction du RBER. Depuis lors, de nombreux développeurs de systèmes ont utilisé des méthodes similaires, telles que l'estimation du taux d'erreurs non corrigibles attendu en fonction du type RBER et ECC.

Le but de cette section est de caractériser dans quelle mesure RBER prédit les erreurs non corrigibles. Commençons par la figure 5a, qui représente le RBER médian pour un certain nombre de modèles de disques de première génération en fonction du pourcentage de jours d'utilisation au cours desquels des erreurs UE non corrigibles ont été enregistrées. Il convient de noter que certains des 16 modèles présentés dans le graphique ne sont pas inclus dans le tableau 1 en raison d'un manque d'informations analytiques.

Fiabilité de la mémoire Flash : attendue et inattendue. Partie 2. XIVe conférence de l'association USENIX. Technologies de stockage de fichiers
Riz. 5a. Relation entre le RBER médian et les erreurs non corrigibles pour différents modèles de lecteurs.

Fiabilité de la mémoire Flash : attendue et inattendue. Partie 2. XIVe conférence de l'association USENIX. Technologies de stockage de fichiers
Riz. 5b. Relation entre le RBER médian et les erreurs non corrigibles pour différents disques du même modèle.

Rappelons que tous les modèles d'une même génération utilisent le même mécanisme ECC, les différences entre les modèles sont donc indépendantes des différences ECC. Nous n’avons constaté aucune corrélation entre les incidents RBER et UE. Nous avons créé le même graphique pour la probabilité RBER du 95e percentile par rapport à l'UE et, encore une fois, nous n'avons constaté aucune corrélation.

Ensuite, nous avons répété l'analyse à un niveau granulaire pour des disques individuels, c'est-à-dire que nous avons essayé de savoir s'il existait des disques pour lesquels une valeur RBER plus élevée correspondait à une fréquence UE plus élevée. À titre d'exemple, la figure 5b représente le RBER médian pour chaque lecteur du modèle MLC-c en fonction du nombre d'UE (résultats similaires à ceux obtenus pour le RBER du 95e percentile). Encore une fois, nous n’avons constaté aucune corrélation entre le RBER et l’UE.

Enfin, nous avons effectué une analyse temporelle plus précise pour examiner si les mois de fonctionnement des disques avec un RBER plus élevé correspondraient aux mois au cours desquels des UE se sont produits. La figure 1 a déjà indiqué que le coefficient de corrélation entre les erreurs non corrigibles et le RBER est très faible. Nous avons également expérimenté différentes manières de représenter graphiquement la probabilité d'UE en fonction du RBER et n'avons trouvé aucune preuve de corrélation.

Ainsi, nous concluons que le RBER est une mesure peu fiable pour prédire l’UE. Cela peut signifier que les mécanismes de défaillance qui conduisent au RBER sont différents des mécanismes qui conduisent à des erreurs non corrigibles (par exemple, des erreurs contenues dans des cellules individuelles par rapport à des problèmes plus importants survenant dans l'ensemble du périphérique).

5.3. Erreurs et usures non corrigibles.

L'usure étant l'un des principaux problèmes de la mémoire flash, la figure 6 montre la probabilité quotidienne d'erreurs de lecteur non corrigibles en fonction des cycles PE.

Fiabilité de la mémoire Flash : attendue et inattendue. Partie 2. XIVe conférence de l'association USENIX. Technologies de stockage de fichiers
Figure 6. Probabilité quotidienne d'apparition d'erreurs de conduite non corrigibles en fonction des cycles PE.

Nous notons que la probabilité d'un UE augmente continuellement avec l'âge du disque. Cependant, comme pour le RBER, l’augmentation est plus lente qu’on ne le pense habituellement : les graphiques montrent que les UE croissent de manière linéaire plutôt qu’exponentielle avec les cycles PE.

Deux conclusions que nous avons tirées pour le RBER s'appliquent également aux UE : premièrement, il n'y a pas d'augmentation claire du potentiel d'erreur une fois la limite du cycle PE atteinte, comme dans la figure 6 pour le modèle MLC-D dont la limite du cycle PE est de 3000 XNUMX. , le taux d'erreur varie selon les différents modèles, même au sein d'une même classe. Toutefois, ces différences ne sont pas aussi importantes que pour le RBER.

Enfin, à l'appui de nos conclusions de la section 5.2, nous avons constaté qu'au sein d'une même classe de modèles (MLC vs SLC), les modèles avec les valeurs RBER les plus faibles pour un nombre donné de cycles PE ne sont pas nécessairement ceux avec les valeurs RBER les plus faibles. probabilité d’apparition d’UE. Par exemple, sur 3000 4 cycles PE, les modèles MLC-D avaient des valeurs RBER XNUMX fois inférieures à celles des modèles MLC-B, mais la probabilité d'UE pour le même nombre de cycles PE était légèrement plus élevée pour les modèles MLC-D que pour MLC-B. des modèles.

Fiabilité de la mémoire Flash : attendue et inattendue. Partie 2. XIVe conférence de l'association USENIX. Technologies de stockage de fichiers
Figure 7. Probabilité mensuelle d'apparition d'erreurs de conduite non corrigibles en fonction de la présence d'erreurs antérieures de différents types.

5.4. Erreurs et charge de travail non corrigibles.

Pour les mêmes raisons pour lesquelles la charge de travail peut affecter le RBER (voir la section 4.2.3), on peut s'attendre à ce qu'elle affecte également l'UE. Par exemple, puisque nous avons observé que les erreurs de violation de lecture affectent le RBER, les opérations de lecture peuvent également augmenter la probabilité d'erreurs non corrigibles.

Nous avons mené une étude détaillée sur l’impact de la charge de travail sur l’UE. Cependant, comme indiqué dans la section 5.1, nous n'avons pas trouvé de relation entre l'UE et le nombre de lectures. Nous avons répété la même analyse pour les opérations d’écriture et d’effacement et encore une fois, nous n’avons constaté aucune corrélation.
Notez qu’à première vue, cela semble contredire notre observation précédente selon laquelle les erreurs non corrigibles sont corrélées aux cycles PE. On pourrait donc s’attendre à une corrélation avec le nombre d’opérations d’écriture et d’effacement.

Cependant, dans notre analyse de l'impact des cycles PE, nous avons comparé le nombre d'erreurs non corrigibles au cours d'un mois donné avec le nombre total de cycles PE que le variateur a subi tout au long de sa vie jusqu'à présent afin de mesurer l'effet de l'usure. Lors de l'étude de l'impact de la charge de travail, nous avons examiné les mois de fonctionnement du disque comportant le plus grand nombre d'opérations de lecture/écriture/effacement au cours d'un mois donné, qui présentaient également un risque plus élevé de provoquer des erreurs non corrigibles, c'est-à-dire que nous n'avons pas pris en compte compte le nombre total d’opérations de lecture/écriture/effacement.

En conséquence, nous sommes arrivés à la conclusion que les erreurs de violation de lecture, les erreurs de violation d'écriture et les erreurs d'effacement incomplet ne sont pas les principaux facteurs de développement d'erreurs non corrigibles.

Merci de rester avec nous. Vous aimez nos articles ? Vous voulez voir du contenu plus intéressant ? Soutenez-nous en passant une commande ou en recommandant à vos amis, 30 % de réduction pour les utilisateurs Habr sur un analogue unique de serveurs d'entrée de gamme, que nous avons inventé pour vous : Toute la vérité sur le VPS (KVM) E5-2650 v4 (6 Cores) 10Go DDR4 240Go SSD 1Gbps à partir de 20$ ou comment partager un serveur ? (disponible avec RAID1 et RAID10, jusqu'à 24 cœurs et jusqu'à 40 Go de DDR4).

Dell R730xd 2 fois moins cher ? Ici seulement 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV à partir de 199$ aux Pays-Bas! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - à partir de 99$ ! En savoir plus Comment construire une infrastructure corp. classe avec l'utilisation de serveurs Dell R730xd E5-2650 v4 qui valent 9000 XNUMX euros pour un sou ?

Source: habr.com

Ajouter un commentaire