Cela améliorerait-il les performances d'écriture pour remplir un lecteur reformaté avec des zéros?


14

J'ai un lecteur de 2 To qui a été rempli à> 99%. J'ai supprimé les partitions avec fidsket les ai formatées avec mkfs.ext4.

Donc, pour autant que je sache, les données réelles qui se trouvaient sur le disque existent toujours. La table de partition a toujours été réaffectée.

La question est: cela améliorerait-il les performances d'écriture pour d'autres actions d'écriture si le disque était nettoyé ? Avec nettoyé, je veux dire remplir le disque avec des zéros?

Quelque chose comme

dd if=/dev/zero of=/dev/sdx bs=1 count=4503599627370496

8
Aucun avantage à avoir des zéros pour commencer car cela écrasera tout ce qui est là pour commencer.
Moab

7
S'il s'agissait d'un SSD, la réponse serait "non", car mkfs.ext4 utilise en fait TRIM pour supprimer le contenu de la partition entière, donc l'écriture manuelle de zéros en plus réduirait légèrement les performances.
user1686

2
@grawity Je me demandais s'il y a un SSD qui transforme automatiquement les écritures de tous les zéros en TRIM à la place.
kasperd

@kasperd: bonne question de suivi!
liori

Une autre question de suivi possible: si ledit disque était une machine virtuelle montée sur un SAN qui faisait une duplication de disque de bas niveau, cela pourrait-il aider (en ce sens que si les données supprimées au niveau de la machine virtuelle, à moins que le système n'utilise une API compatible VM) , il verrait au SAN que tous ces blocs supprimés doivent rester, alors que les définir sur tous les zéros se retrouverait avec un tas de blocs dupliqués tous pointés vers une chose tout à fait nulle)
Foon

Réponses:


36

Non, cela n'améliorerait pas les performances.

TL; DR: les disques durs magnétiques rotatifs ne fonctionnent pas comme ça.

Premièrement, lorsque vous écrivez des données données sur un lecteur de stockage magnétique rotatif, ces données sont transformées en domaines magnétiques qui peuvent en réalité être très différents du modèle binaire que vous écrivez. Cela est dû en partie au fait qu'il est beaucoup plus facile de maintenir la synchronisation lorsque le motif lu sur le plateau présente une certaine variabilité, et par exemple une longue chaîne de valeurs "zéro" ou "un" rendrait très difficile le maintien de la synchronisation . (Avez-vous lu 26 393 bits ou 26 394 bits? Comment reconnaissez-vous la frontière entre les bits?) Les techniques pour effectuer cette transformation entre les bits de données informatiques et les morceaux stockables ont évolué au fil du temps; par exemple, recherchez Modified Frequency Modulation , MMFM,Enregistrement de code de groupe et la technologie plus générale des encodages à durée limitée .

Le processus d'enregistrement réel, tel que HAMR , PMR , bardeaux , etc., est orthogonal à cela en ce qu'il décrit la mécanique de la façon dont les domaines magnétiques sont stockés sur le support physique.

Deuxièmement, lorsque vous écrivez de nouvelles données dans un secteur, les domaines magnétiques des parties pertinentes du plateau sont simplement définis à la valeur souhaitée. Cela se fait indépendamment de ce qu'était le domaine magnétique précédent à cet emplacement physique particulier. Le plateau tourne déjà sous la tête d'écriture; lire d'abord la valeur actuelle, puis écrire la nouvelle valeur si et seulement si elle est différente, obligerait chaque écriture à demander deux révolutions (ou une tête supplémentaire pour chaque plateau), ce qui entraînerait une latence d'écriture doublant ou augmentant considérablement la complexité du lecteur, à son tour, l'augmentation des coûts. Étant donné que le facteur limitant des performances d'E / S séquentielles du disque dur est la vitesse à laquelle chaque bit passe sous la tête de lecture / écriture, cela n'offrirait même aucun avantage à l'utilisateur. (En aparté, le facteur limitant des performances d'E / S aléatoires est la vitesse à laquelle la tête de lecture / écriture peut être positionnée sur le cylindre souhaité, puis le secteur souhaité arrive sous la tête. La raison principale pour laquelle les disques SSD peuvent être si rapides dans les charges de travail d'E / S aléatoires est qu'ils éliminent complètement ces deux facteurs.)

Comme l'a souligné JakeGould , l'une des raisons pour lesquelles vous souhaiterez peut-être remplacer le lecteur avec un modèle fixe (comme tous les zéros) serait de garantir qu'aucun résidu des données précédemment stockées ne peut être récupéré , délibérément ou accidentellement. Mais cela n'aura aucun effet sur les performances du lecteur à l'avenir, pour les raisons indiquées ci-dessus. Une autre raison, qui pourrait être considérée comme «améliorant les performances», comme l'a souligné liori , est d'aider à la compression des parties inutilisées des images de disque stockées, mais même cela n'améliore pas les performances du système utilisé.


3
Une autre raison de la mise à zéro des partitions / lecteurs est si vous envisagez de prendre un vidage brut de partition / lecteur (par exemple comme sauvegarde, création d'une image du système d'exploitation pour plusieurs machines, comme technique de migration du système, etc.). Les zéros se compressent bien, ce qui peut être différent du contenu précédent stocké sur le lecteur.
liori

@liori Bon point, mais ce n'est pas un scénario courant pour l'utilisateur final, et c'est assez loin de ce que l'OP décrit.
un CVn du

Les disques optiques sont donc non rotatifs ou magnétiques?
Max Ried

4

Tu dis ça:

La question est: cela améliorerait-il les performances d'écriture pour d'autres actions d'écriture si le disque était nettoyé? Avec nettoyé, je veux dire remplir le disque avec des zéros?

100% non. L'écriture de zéros sur un disque n'améliore pas les performances. Vous ne feriez cela que pour détruire des données. Donc, sachant cela, vous dites ceci:

Donc, pour autant que je sache, les données réelles qui se trouvaient sur le disque existent toujours.

Techniquement oui… Les données qui existaient auparavant sur le disque existent toujours sur le disque à un certain niveau fondamental. Cela dit, il n'existe pas sous une forme facile d'accès ou de récupération à ce stade, mais cela peut être un problème si vous êtes vraiment inquiet que les données soient compromises par une personne désireuse de faire l'effort de récupérer ces fragments de données qui rester.

Donc, si la sécurité et la confidentialité sont un problème, vous pouvez écrire des zéros sur le disque pour vous assurer que tout l'espace libre est vraiment effacé. Mais la sécurité et la confidentialité sont la seule raison absolue pour effacer l'espace libre avec des zéros car faire quelque chose comme ça n'améliore jamais les performances.


Exécuter un outil comme ça recoverne compte pas comme "facile"? Cela ferait apparaître beaucoup, beaucoup de fichiers sur un disque plein qui venait juste d'être mkfs.
hobbs

0

Mon cadeau de deux cents pour vous tous est ma propre expérience, OUI cela aide mais avec prudence.

J'ai eu beaucoup de SSD et sur la base de mes propres tests, je recommande de remplir complètement les zéros avant de réécrire la table principale et au lieu de supprimer les partitions, recréer la table principale.

Plus tard, j'expliquerai pourquoi, mais les étapes seraient ˋddˋ pour remplir tout le SSD, utiliser bs = 1M, beaucoup plus rapidement que bs = 1, et oublier le paramètre count pour le faire aller jusqu'à la fin (cela donnera l'erreur de ne plus d'espace lorsque atteindre la fin, qui est respecté alors ne vous inquiétez pas de voir une telle erreur, elle doit être montrée); après un remplissage complet, utilisez gparted ou tout ce que vous voulez écrire une table principale (MBR / GPT / etc) selon les besoins, cela `` découpera '' tout le disque, puis créera des partitions avec le format souhaité, etc.

Pourquoi le remplir de zéros? Une réponse courte est que mon expérience est quand je le remplis de zéros de certains SSD qui, où donner 2 à 24 blocs illisibles ont été corrigés, plus de blocs irréalisables.

Maintenant, la première chose que je fais quand je reçois un nouveau SSD, avant de l'utiliser, c'est de le remplir complètement avec des zéros, pour m'assurer que je ne souffrirai plus les erreurs aléatoires courantes des blocs 1KiB illisibles.

Mon expérience: en utilisant un logiciel pour lire / tester l'intégralité du SSD (il vous indique combien de temps prend la lecture de chaque «secteur»), je recevais beaucoup de paires de «secteurs 512 octets» (blocs de 1 Ko) qui ne sont pas exploitables, et leur position change au hasard et le nombre d'échecs varie de 2 à 24, etc .; après un remplissage complet avec des zéros et recréer la table principale (qui suspend le découpage) plus de secteurs illisibles.

Mon test de crash: Instesd de remplissage avec des zéros pour récupérer de telles erreurs, j'ai laissé un SSD à utiliser, après quelques heures et avec seulement moins d'un téraoctet écrit (SSD 120 Go), il est mort de façon mignonne, il ne permet aucune l'accès, le BIOS de la carte mère ne peut pas le voir, les boîtiers USB se gèlent lors de l'accès, donc ni Windows ni le Linix fdisk ne le voient.

C'était un test de `` die '' avec plusieurs SSD que j'avais achetés en même temps, identiques ... tout ce que je n'ai pas mis à zéro est mort, le reste a beaucoup de blocs réaffectés, mais sans aucune erreur illisible.

Bien sûr, ma conclusion est que tous les SSD ne sont pas fiables, quelles que soient la marque et la capacité.

Donc, la première chose avec eux, selon mon expérience, est de les forcer à se remplir complètement au moins une fois, mieux avec des zéros qu'avec du aléatoire (c'est plus rapide).

De plus, la plupart des disques SSD effectuent un découpage interne lorsqu'ils sont écrits avec des zéros (algorithmes de rappel garbe, etc.).

De plus, si vous les remplissez d'abord une fois, tout bloc qui donne une erreur d'écriture est réaffecté. Il est préférable qu'une telle chose se produise sans données vitales, lorsque des zéros écrits si des données ont été perdues (tous étaient des zéros), cela n'est pas pertinent, mais si les données sont `` vitales '' pour le système d'exploitation, elles sont très mauvaises.

La plupart des réallocations SSD le font, mais en perdant les données sur le bloc qui a donné une erreur d'écriture, seules les «entreprises» (elles coûtent> 10 € par Gio) réessayent correctement l'écriture après réallocation. Certains SSD perdront également tous les autres «secteurs» sur un tel bloc défaillant (comme faire un «rejet»).

Donc, essayez d'abord, après le remplissage complet, vérifiez les données SMART pour voir combien de réaffectations peuvent encore être effectuées.

Peu importe combien de réallocations ont été effectuées, la plupart des disques SSD proviennent de fabricants avec certains blocs déjà réalloués, trouvez-en un avec zéro est inférieur à 1%, donc l'important est le ratio, réallouer par rapport aux réallocations éventuelles futures.

C'est mon expérience après que des centaines de SSD sont morts pendant 5 à 5 ans, certains sont morts dans la première heure d'utilisation, d'autres en une semaine, d'autres en un mois; mais tout ce que j'avais fait un tel remplissage complet était en vie pendant 2 à 3 ans, avec un 13GiB écrit chaque jour, 3 * 365 * 13 GiB = 13.9TiB écrit, beaucoup moins que ce que disent les fabricants (> 100TiB).

Mais la vitesse compte, la plupart du temps sur Windows (sous Linux, une bonne répartition LVM2 2xHDD donne les mêmes temps de démarrage, mais ils n'échouent pas en> 25 ans), donc l'utilisation de SSD avec un prix de 0,21 € par gigaoctet (120 Go = 25 €) est ça vaut le coup (pour Windows), parmi eux ils peuvent être changés après 2 ou 3 ans; j'espère que la technologie améliorera la fiabilité.

Pour Linux, je ne veux plus de SSD jusqu'à ce qu'il soit plus fiable, mais pour Windows (Vista, 7 et 10), la partition système est un must (temps de démarrage dix fois plus bas dans certains cas, avec Windows Vista, au lieu de> 30min de démarrage) démarre> 4min sur mon ancien ordinateur portable).

Oui, un remplissage complet avec des zéros est un must, compte tenu de mon expérience.

Mais, uniquement lorsque vous recevez le SSD et avant de l'utiliser pour quoi que ce soit.

Astuce: Si le SSD ne fait pas bien la collecte des ordures et que le système d'exploitation ne lui dit pas de tout couper, mieux vaut faire un remplissage complet avec des zéros, à la fin c'est ce qui se fait en interne dans le SSD lorsqu'il jette les blocs. L'écriture de zéros effacera également l'électronique, c'est pourquoi elle permet de récupérer les blocs de lecture défaillants.

Et aussi, chaque fois que vous modifiez des données dessus, essayez de faire un clone, le SSD informera que l'écriture était OK, également sur les secteurs illisibles (ils peuvent être écrits OK mais non lus), aucun système d'exploitation n'est conçu pour supporter une telle condition , ils supposent tous que si wtite est OK, les données peuvent être lues; ne confondez pas lisible avec lire différentes données thsn ce qui a été écrit.

C'est mon expérience avec les SSD et les disques durs. Pour le démarrage et les applications Windows, j'utilise un SSD mais toujours avec un clone fait sur des disques durs normaux car les SSD meurent en moins de 3 ans, mais pour Linux j'utilise 2x ou 3x un bon disque dur de 2,5 "pour obtenir des temps similaires en utilisation normale comme ce que les SSD donneraient , mais qui dure beaucoup plus longtemps (> 25 ans).

Je ne suis pas en mesure de payer> 1000 € pour un SSD 100GiB entetprise qui fonctionne bien pendant 10 ans, je préfère payer 25 € pour 130GiB tous les 2 ou 3 ans. Le prix compte 100 € par an (entreprise) contre 10 € par an (Yucon, Samsung, etc.), faites le calcul.


Forcer à écrire sur des secteurs défectueux est en effet un moyen assez fiable de les "corriger", tant qu'il reste des secteurs réservés.
confettis
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.