Vitesse d'écriture extrêmement lente sur un disque externe crypté sur Mavericks


10

L'écriture sur une clé USB entièrement chiffrée sur Mavericks est extrêmement lente.

Le modèle de lecteur que j'ai utilisé pour les tests était un Kingston DataTraveler Ultimate 3.0 G3 (64 Go). J'ai testé les vitesses de transfert en lisant / écrivant un fichier volumineux de / vers un lecteur chiffré et non chiffré. J'ai testé sur un Macbook actuel avec Mavericks et sur une machine plus ancienne avec Mountain Lion. J'ai utilisé l'Utilitaire de disque pour formater le disque en Mac OS étendu (journalisé) et Mac OS étendu (journalisé, crypté).

MacBook Pro (2013) avec USB 3.0 exécutant OS X 10.9.2 (13C64)

Écriture: 86,16 Mo / sec (crypté: 0,62 Mo / sec)
Lecture: 181,66 Mo / sec (crypté: 151,15 Mo / sec)

MacBook Pro (2007) avec USB 2.0 exécutant OS X 10.8.5 (12F45)

Écriture: 23,57 Mo / sec (crypté: 5,04 Mo / sec)
Lecture: 36,23 Mo / sec (crypté: 37,87 Mo / sec)

Comme vous pouvez le voir sur l'ancienne machine, la vitesse d'écriture diminue clairement lors de l'écriture sur le volume chiffré, mais elle est toujours environ dix fois plus rapide par rapport à la nouvelle machine exécutant Mavericks. Serait-ce un problème récemment introduit dans FileVault ou CoreStorage?

Mise à jour (2014-06-28)

La clé USB semble avoir eu un défaut matériel depuis le début. J'ai obtenu un lecteur de remplacement (même modèle) qui ne fournit toujours pas les résultats que j'attendais, mais au moins la vitesse d'écriture cryptée du MBP 2013 est maintenant comparable à celle du 2007 MBP.

MacBook Pro (2013) avec USB 3.0 exécutant OS X 10.9.3 (13D65)

Écriture: 135,41 Mo / sec (chiffré: 9,29 Mo / sec)
Lecture: 196,22 Mo / sec (chiffré: 187,04 Mo / sec)

MacBook Pro (2007) avec USB 2.0 exécutant OS X 10.8.5 (12F45)

Écriture: - Mo / sec (chiffré: 9,39 Mo / sec)
Lecture: - Mo / sec (chiffré: 37,79 Mo / sec)

Cela laisse toujours la question de savoir pourquoi la vitesse d'écriture cryptée sur le lecteur USB sur le MBP 2013 est inférieure à dix pour cent de la vitesse d'écriture normale. J'ai également comparé les vitesses de lecture / écriture avant et après l'activation de FileVault sur le SSD interne du MBP 2013 et là, je n'ai détecté aucun ralentissement.


1
Wow - les écritures normales en lecture / écriture et cryptées semblent bonnes. Mais cette écriture cryptée est douloureusement lente. Quel outil mesure le MB / s? Pouvez-vous reproduire ces résultats en utilisant Blackmagic (gratuit sur MAS)
bmike

J'ai utilisé une simple doublure Bash en utilisant time, ddet awk. Blackmagic me donne les mêmes résultats: goo.gl/bn32fC (non crypté) vs goo.gl/yghyqA (crypté).
Stefan Schmidt

Je soupçonne que la vitesse de lecture pour le volume chiffré est manquante car la durée de la lecture est plus courte que l'intervalle d'échantillonnage de débit de Blackmagic
Stefan Schmidt

Réponses:


2

J'ai le même problème, qui, je suis sûr, est dû à une combinaison de la façon dont les opérations d'écriture fonctionnent sur la mémoire flash et de la façon dont fonctionne le chiffrement du stockage de base (ou de tout volume).

Tout d'abord, écrivez le comportement: contrairement à la mémoire volatile (les trucs utilisés dans la mémoire de votre ordinateur) ou aux disques durs, où n'importe quel bit peut être écrit à 0 ou 1 à tout moment, la mémoire flash a deux états principaux: écrite et effacée. Dans "écrit" se trouvent 0 et 1. Lorsque vous devez écrire dans la mémoire flash, vous devez écrire un bloc entier qui est actuellement à l'état effacé. Le logiciel du système de fichiers dans le système d'exploitation peut savoir quels blocs sont libres, mais le contrôleur et le stockage sur un périphérique flash ne le savent pas. Une façon spéciale pour le système d'exploitation de dire à un SSD de rendre les blocs disponibles a été conçue pour les SSD "connectés au bus": cela s'appelle TRIM. À ma connaissance, les piles de protocoles USB ne prennent pas en charge TRIM. Donc, fondamentalement, la mémoire flash continue de se remplir jusqu'à ce qu'il n'y ait plus de blocs effacés, auquel cas le système de fichiers doit effacer et réécrire les blocs en les lisant, fusionner les nouvelles données, les effacer et les réécrire. C'est pourquoi vous constatez une dégradation des performances d'écriture des petits fichiers sur les SSD au fil du temps.

Les circonstances particulières des volumes chiffrés sont intéressantes: selon la façon dont le chiffrement fonctionne, il peut en fait chiffrer un volume entier, remplissant tous les blocs avec ce qui semble être des données aléatoires même si les blocs sont réellement inutilisés et contiennent des zéros. Ainsi, lorsque vous activez FileVault (ou activez le chiffrement du stockage principal), il consomme essentiellement le volume entier, ne laissant aucun espace pour les opérations d'écriture. Le système de fichiers doit constamment lire, effacer et réécrire les blocs afin de pouvoir les réécrire avec toutes les données chiffrées que vous souhaitez y mettre.

Maintenant, je dirai ici qu'il s'agit d'une spéculation basée sur une compréhension raisonnable du fonctionnement des choses, mais il y a des gens qui connaissent réellement les détails, qui peuvent corriger ou améliorer mon explication et j'espère qu'ils le feront.


Cela semble en effet très raisonnable. J'ai fait quelques recherches et il semble que pour les disques externes, eSATA et Thunderbolt prennent tous les deux en charge TRIM. Cela peut être intéressant concernant les SSD externes mais probablement pas pour les clés USB car les Mac n'ont pas d'interfaces eSATA et il ne semble pas que des clés USB Thunderbolt abordables seront disponibles de sitôt: goo.gl/sDM1au
Stefan Schmidt

1
Juste au cas où quelqu'un se poserait la question: pour le moment, ma solution consiste à créer un paquet clairsemé chiffré sur le disque, de la taille du disque. Je n'ai fait aucun benchmark, mais cela ressemble à peu près à l'écriture de données non cryptées sur le disque.
Stefan Schmidt

@StefanSchmidt un paquet fragmenté chiffré comme décrit ici? blog.fosketts.net/2015/07/22/…
Brad Cupit

@BradCupit Oui mais je synchronise le contenu du bundle épars, pas le bundle épars lui-même, donc je monte le bundle épars avec hdiutil attach, puis utilise rsyncpour synchroniser avec mon dossier local, puis démonter le bundle épars avec hdiutil detachet éjecter le lecteur de disque avec diskutil eject.
Stefan Schmidt
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.