Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

SSD en replacement d'un disque dur

39 réponses
Avatar
Michel
Bonjour,

Pour de l'observation animalière, j'ai acheté il y a deux mois un
système de video surveillance tournant sous linux.
Il est composé d'un boÍ®tier NVR avec un HDD de 3 To et de 8 caméras
wifi, et il se pilote depuis en écran et une souris:
https://fr.aliexpress.com/item/32761992170.html

Le HDD vibre et chauffe pas mal ( le boÍ®tier n'est pas ventilé ) et je
l'ai remplacé par un SSD.
Le système est prévu pour écraser les plus vielles données, mais je
pense qu'avec ce SSD, ça va poser problème ( la fonction fstrim n'est
sans doute pas implémentée ).
Je pensais reformater ce SSD lorsqu'il atteindra environ 80% de
remplissage ( ça se fait depuis l'interface du système ), soit d'après
mes estimations, tous les 4 Í  6 mois.
Qu'en pensez-vous? Cela tourne depuis 2 mois avec 6 caméras et les
performances sont tout Í  fait correctes.

9 réponses

1 2 3 4
Avatar
Michel
Le 19/03/2021 Í  10:16, Michel a écrit :
Donc pour résumer, j'en suis Í  33% d'occupation d'après le système, et
environ 45% de blocs Í  zéro.
Si tout continue dans les mêmes proportions, il n'y aurait plus de blocs
libres vers 70 Í  75% de remplissage ( donné par le NVR ), et lÍ , je
dépose le SSD, j'efface tout les répertoires de sdx2, je lance fstrim
sur cette partition, je réinstalle le SSD dans le NVR et reformate.
Est-ce réaliste ou idiot ?

Je viens de faire une petite manipulation:
Dépose du SSD
Pose dans le rack de la tour
Lancement de badblocks -v -t 0 -o /dev/null /dev/sdh2:
118068987 / 263361576 ( en plus de 17 minutes )
fstrim sur cette partition
Re-lancement de badblocks -v -t 0 -o /dev/null /dev/sdh2:
118068450 / 263361576
Le fstrim tourne environ une seconde, et il y a très peu de changements
dans la partition. Je pense donc continuer dans cette idée.
Y voyez vous un "piège"?
Merci
Avatar
Michel
Le 19/03/2021 Í  10:16, Michel a écrit :
Bon, j'ai un peu avancé, et ce fut une surprise. J'ai déposé le SSD du
NVR. Installé sur la tour, j'ai trouvé 2 partitions, la première de 5 Go
en ext3, et la principale de 252 Go en vfat!
df -h
Taille Utilisé Libre Uti%
/dev/sdh1 4,9G 13M 4,6G 1% ( ext3 )
/dev/sdh2 252G 241G 11G 96% ( vfat )
De plus, dès le formatage, dans cette partition vfat sont créés 15
répertoires ( dir00000 Í  dir00014 ) contenant chacun 128 fichiers de 128
Mo vides ( file00000.dat Í  file00127.dat ).
C'est dans ces fichiers que sont enregistrées les vidéos, dans un format
propriétaire.

Serait-il possible que ces nombreux fichiers soient créés remplis de 0?
Dans ce cas, ça équivaudrait Í  un formatage + un fstrim, non?
Avatar
Michel
Le 18/03/2021 Í  20:44, Pascal Hambourg a écrit :
Le 17/03/2021 Í  18:59, Michel a écrit :
Le 16/03/2021 Í  23:30, Pascal Hambourg a écrit :
Le 15/03/2021 Í  13:30, Michel a écrit :
Ce SSD accepte les commandes TRIM ( c'est un Crucial MX300 ), mais y
a-t'il un moyen de savoir si, après un reformatage depuis le système
linux fermé, les données ont bien été remises Í  0?

Si le TRIM est censé mettre les données Í  0, on peut vérifier si la
plupart des secteurs sont Í  0. Mais on ne peut pas distinguer ce cas du
cas o͹ toutes les données ont été écrites Í  0.

En résumé, il faudrait, lorsque le SSD sera Í  80% de remplissage environ:
- déposer le SSD du NVR
- le placer dans le rack ( de ma tour sous Debian )
- regarder et noter le contenu d'une dizaine de blocs
- réinstaller le SSD dans le NVR
- le formater
- le redéposer et le réinstaller dans le rack
- comparer le contenu de ces mêmes blocks

A condition de choisir des blocs qui ne vont pas être écrits par le
formatage. J'opterais pour une approche plus systématique : lecture de
tous les blocs pour déterminer combien sont ou ne sont pas Í  zéro. Cela
peut se faire assez simplement avec badblocks en lui faisant faire un
test de vérification en lecture avec le motif 0.
badblocks -v -t 0 -o /dev/null /dev/sdxy

Je viens de faire le tour de la chose ( enfin, je pense ;)
Pour le formatage du SSD, il faut que je le formate sur le système ( il
formate et créé des répertoires remplis de fichiers vides ), puis que je
le dépose pour effectuer un TRIM de la partition 2, et enfin que je le
réinstalle.
C'est la seule solution qui donne le résultat recherché.
Encore merci Pascal, tu m'as donné la clé qui manquait Í  ma démarche.
Avatar
Pascal Hambourg
Le 19/03/2021 Í  15:13, Michel a écrit :
Le 19/03/2021 Í  10:16, Michel a écrit :
Bon, j'ai un peu avancé, et ce fut une surprise. J'ai déposé le SSD du
NVR. Installé sur la tour, j'ai trouvé 2 partitions, la première de 5 Go
en ext3, et la principale de 252 Go en vfat!


Je ne trouve aucune référence Í  l'application de TRIM/discard par la
commande usuelle de formatage en FAT, mkfs.fat. Néanmoins il me semble
que le pilote FAT du noyau Linux supporte fstrim.
df -h
Taille Utilisé Libre Uti%
/dev/sdh1 4,9G 13M 4,6G 1% ( ext3 )
/dev/sdh2 252G 241G 11G 96% ( vfat )
De plus, dès le formatage, dans cette partition vfat sont créés 15
répertoires ( dir00000 Í  dir00014 ) contenant chacun 128 fichiers de 128
Mo vides ( file00000.dat Í  file00127.dat ).


Comment ça, "vides" ? D'après df ils occupent bien 240 Gio, donc ne
peuvent pas être vides, d'autant plus qu'Í  ma connaissance FAT ne
supporte pas les fichiers "creux" (sparse) ou préalloués mais non
initialisés (avec fallocate).
Je connais trois façons pour Linux de donner une taille Í  un fichier :
1) La plus évidente, y écrire des données.
2) Créer un fichier "creux" dont les "trous" sont comptés dans la taille
apparente mais n'occupent pas d'espace dans le système de fichiers. On
peut donc créer un fichier creux dont la taille dépasse celle du système
de fichiers.
3) créer un fichier préalloué (fallocate) en allouant des blocs sans les
initialiser avec des données. Contrairement aux trous des fichiers
creux, les blocs alloués non initialisés sont comptés dans l'espace
occupé et on ne peut pas dépasser la taille du système de fichiers. Je
suppose que les blocs non initialisés sont éligibles au TRIM/discard
avec fstrim puisqu'ils ne contiennent pas de données valides.
Les méthodes 2) et 3) sont beaucoup plus rapides et économes en écriture
que la méthode 1) ne sont possibles qu'avec les systèmes de fichiers qui
les supportent. La lecture d'une zone "creuse" ou non initialisée
retourne des 0 et est aussi très rapide puisqu'il n'y a pas de lecture
physique.
C'est dans ces fichiers que sont enregistrées les vidéos, dans un format
propriétaire.

Serait-il possible que ces nombreux fichiers soient créés remplis de 0?

Si c'est le cas, alors d'autres données y ont été écrites depuis puisque
badblocks retourne que seulement 45% des blocs sont Í  0.
Combien de temps prend le formatage ? S'il écrit 240 Gio de 0, ça doit
prendre au moins le même temps que badblocks Í  mis pour les lire.
Dans ce cas, ça équivaudrait Í  un formatage + un fstrim, non?

Non, pas du tout. Le résultat visible pourrait être identique (des 0)
mais pour le SSD c'est très différent : dans un cas les blocs physiques
contiennent des données valides Í  0, dans l'autre cas les blocs
physiques ne contiennent pas de données et soit sont effacés soit
peuvent être effacés.
Avatar
Pascal Hambourg
Le 20/03/2021 Í  15:39, Michel a écrit :
Je viens de faire le tour de la chose ( enfin, je pense ;)
Pour le formatage du SSD, il faut que je le formate sur le système ( il
formate et créé des répertoires remplis de fichiers vides ), puis que je
le dépose pour effectuer un TRIM de la partition 2, et enfin que je le
réinstalle.
C'est la seule solution qui donne le résultat recherché.

Quel résultat ?
Si les fichiers créés occupent 95% de la partition, alors le TRIM ne
pourra agir au mieux que sur les 5% restants.
Avatar
Michel
Le 20/03/2021 Í  20:37, Pascal Hambourg a écrit :
Le 20/03/2021 Í  15:39, Michel a écrit :
Je viens de faire le tour de la chose ( enfin, je pense ;)
Pour le formatage du SSD, il faut que je le formate sur le système ( il
formate et créé des répertoires remplis de fichiers vides ), puis que je
le dépose pour effectuer un TRIM de la partition 2, et enfin que je le
réinstalle.
C'est la seule solution qui donne le résultat recherché.

Quel résultat ?
Si les fichiers créés occupent 95% de la partition, alors le TRIM ne
pourra agir au mieux que sur les 5% restants.

Oui, tu as raison, j'ai continué mes tests, et en fait, j'ai fait la
manipulation suivante:
- dépose du SSD du NVR
- effacement des tous les répertoires/fichiers de la partition
- lancement de fstrim sur la partition
- réinstallation du SSD dans le NVR
- formatage ( depuis le système embarqué )
Je l'ai redéposé pour vérifier, et en lançant badblocks, je suis Í 
192717 / 263361576 soit 0.07% de blocks non Í  0.
Pourtant, on a bien 95% du disque occupé sur un système vfat, ce qui
voudrait dire que les répertoires et fichiers soient créés sans écrire
de données dans ces fichiers.
J'avais aussi fait la manipulation sans effectuer un TRIM, et le taux de
badblocks était resté pratiquement inchangé ( avec donc un grand nombre
de badblocks non Í  0 ).
Encore merci pour tes conseils
Avatar
Michel
Le 20/03/2021 Í  20:32, Pascal Hambourg a écrit :
Le 19/03/2021 Í  15:13, Michel a écrit :
Le 19/03/2021 Í  10:16, Michel a écrit :
Bon, j'ai un peu avancé, et ce fut une surprise. J'ai déposé le SSD du
NVR. Installé sur la tour, j'ai trouvé 2 partitions, la première de 5 Go
en ext3, et la principale de 252 Go en vfat!


Je ne trouve aucune référence Í  l'application de TRIM/discard par la
commande usuelle de formatage en FAT, mkfs.fat. Néanmoins il me semble
que le pilote FAT du noyau Linux supporte fstrim.

D'après ce que j'ai trouvé sut le net, oui, depuis les noyaux 4.19.
df -h
Taille Utilisé Libre Uti%
/dev/sdh1 4,9G 13M 4,6G 1% ( ext3 )
/dev/sdh2 252G 241G 11G 96% ( vfat )
De plus, dès le formatage, dans cette partition vfat sont créés 15
répertoires ( dir00000 Í  dir00014 ) contenant chacun 128 fichiers de 128
Mo vides ( file00000.dat Í  file00127.dat ).


Comment ça, "vides" ? D'après df ils occupent bien 240 Gio, donc ne
peuvent pas être vides, d'autant plus qu'Í  ma connaissance FAT ne
supporte pas les fichiers "creux" (sparse) ou préalloués mais non
initialisés (avec fallocate).
Je connais trois façons pour Linux de donner une taille Í  un fichier :
1) La plus évidente, y écrire des données.
2) Créer un fichier "creux" dont les "trous" sont comptés dans la taille
apparente mais n'occupent pas d'espace dans le système de fichiers. On
peut donc créer un fichier creux dont la taille dépasse celle du système
de fichiers.
3) créer un fichier préalloué (fallocate) en allouant des blocs sans les
initialiser avec des données. Contrairement aux trous des fichiers
creux, les blocs alloués non initialisés sont comptés dans l'espace
occupé et on ne peut pas dépasser la taille du système de fichiers. Je
suppose que les blocs non initialisés sont éligibles au TRIM/discard
avec fstrim puisqu'ils ne contiennent pas de données valides.
Les méthodes 2) et 3) sont beaucoup plus rapides et économes en écriture
que la méthode 1) ne sont possibles qu'avec les systèmes de fichiers qui
les supportent. La lecture d'une zone "creuse" ou non initialisée
retourne des 0 et est aussi très rapide puisqu'il n'y a pas de lecture
physique.

Pardon, je voulais dire, par vides, que les données ne semblent pas
modifiées sur le SSD, comme tu le dit au point 3.
C'est dans ces fichiers que sont enregistrées les vidéos, dans un format
propriétaire.

Serait-il possible que ces nombreux fichiers soient créés remplis de 0?

Si c'est le cas, alors d'autres données y ont été écrites depuis puisque
badblocks retourne que seulement 45% des blocs sont Í  0.
Combien de temps prend le formatage ? S'il écrit 240 Gio de 0, ça doit
prendre au moins le même temps que badblocks Í  mis pour les lire.

Oui, après avoir écrit ça, j'ai pensé comme toi, trop rapide pour être
vrai ;)
Avatar
Pascal Hambourg
Le 20/03/2021 Í  21:01, Michel a écrit :
Le 20/03/2021 Í  20:32, Pascal Hambourg a écrit :
Le 19/03/2021 Í  15:13, Michel a écrit :
Le 19/03/2021 Í  10:16, Michel a écrit :
De plus, dès le formatage, dans cette partition vfat sont créés 15
répertoires ( dir00000 Í  dir00014 ) contenant chacun 128 fichiers de 128
Mo vides ( file00000.dat Í  file00127.dat ).


Comment ça, "vides" ? D'après df ils occupent bien 240 Gio, donc ne
peuvent pas être vides, d'autant plus qu'Í  ma connaissance FAT ne
supporte pas les fichiers "creux" (sparse) ou préalloués mais non
initialisés (avec fallocate).
Je connais trois façons pour Linux de donner une taille Í  un fichier :
1) La plus évidente, y écrire des données.
2) Créer un fichier "creux" dont les "trous" sont comptés dans la taille
apparente mais n'occupent pas d'espace dans le système de fichiers. On
peut donc créer un fichier creux dont la taille dépasse celle du système
de fichiers.
3) créer un fichier préalloué (fallocate) en allouant des blocs sans les
initialiser avec des données. Contrairement aux trous des fichiers
creux, les blocs alloués non initialisés sont comptés dans l'espace
occupé et on ne peut pas dépasser la taille du système de fichiers. Je
suppose que les blocs non initialisés sont éligibles au TRIM/discard
avec fstrim puisqu'ils ne contiennent pas de données valides.


(...)
Pardon, je voulais dire, par vides, que les données ne semblent pas
modifiées sur le SSD, comme tu le dit au point 3.

Sauf qu'Í  ma connaissance Linux ne fait pas de préallocation avec FAT.
J'ai essayé avec fallocate, il écrit des 0 pour atteindre la taille
demandée.
Serait-il possible que ces nombreux fichiers soient créés remplis de 0?

Si c'est le cas, alors d'autres données y ont été écrites depuis puisque
badblocks retourne que seulement 45% des blocs sont Í  0.
Combien de temps prend le formatage ? S'il écrit 240 Gio de 0, ça doit
prendre au moins le même temps que badblocks Í  mis pour les lire.

Oui, après avoir écrit ça, j'ai pensé comme toi, trop rapide pour être
vrai ;)

Combient de temps dure le formatage par l'enregistreur ?
Avatar
Michel
Le 21/03/2021 Í  11:35, Pascal Hambourg a écrit :
Le 20/03/2021 Í  21:01, Michel a écrit :

[ . . . ]
Pardon, je voulais dire, par vides, que les données ne semblent pas
modifiées sur le SSD, comme tu le dit au point 3.

Sauf qu'Í  ma connaissance Linux ne fait pas de préallocation avec FAT.
J'ai essayé avec fallocate, il écrit des 0 pour atteindre la taille
demandée.

Le système est fermé, dans une flash sur la petite carte mère ( je
suppose car il est possible de faire des mises Í  jour depuis une clé USB
), la doc dit que c'est un linux.
Dans mes test, j'avais écrit 80 Go de fichiers sur la partition, vérifié
le nombre de blocs occupés Í  l'aide de badblocks, formaté dans le NVR,
puis déposé et recontrÍ´ler le nombre de badblocks: le nombre de
"badblocks" avait augmenté de moins de 0.1%, mais l'occupation était
bien passée de 80 Í  250 Go.
Oui, après avoir écrit ça, j'ai pensé comme toi, trop rapide pour être
vrai ;)

Combient de temps dure le formatage par l'enregistreur ?

Moins d'une minute, c'est très rapide.
1 2 3 4