Niezwykle mała prędkość zapisu na zaszyfrowanym dysku zewnętrznym w Mavericks

10

Zapisywanie na w pełni zaszyfrowanym dysku flash USB w Mavericks jest bardzo wolne.

Modelem dysku, którego użyłem do testów, był Kingston DataTraveler Ultimate 3.0 G3 (64 GB). Testowałem prędkości przesyłania, odczytując / zapisując duży plik z / na zarówno zaszyfrowany, jak i niezaszyfrowany dysk. Testowałem na obecnym Macbooku z Mavericks i na starszej maszynie z Mountain Lion. Użyłem Narzędzia dyskowego do sformatowania dysku jako Mac OS Extended (Journaled) i Mac OS Extended (Journaled, Encrypted).

MacBook Pro (2013) z USB 3.0 z systemem OS X 10.9.2 (13C64)

Zapis: 86,16 MB / s (szyfrowany: 0,62 MB / s)
Odczyt: 181,66 MB / s (szyfrowany: 151,15 MB / s)

MacBook Pro (2007) z USB 2.0 z systemem OS X 10.8.5 (12F45)

Zapis: 23,57 MB / s (szyfrowany: 5,04 MB / s)
Odczyt: 36,23 MB / s (szyfrowany: 37,87 MB / s)

Jak widać na starszej maszynie, szybkość zapisu wyraźnie zmniejsza się podczas zapisywania na zaszyfrowanym woluminie, ale wciąż jest około dziesięć razy większa w porównaniu z nowszą maszyną z Mavericks. Czy może to być jakiś ostatnio wprowadzony problem w FileVault lub CoreStorage?

Aktualizacja (28.06.2014)

Wygląda na to, że dysk USB miał wadę sprzętową od samego początku. Dostałem dysk zastępczy (ten sam model), który nadal nie zapewnia oczekiwanych rezultatów, ale przynajmniej prędkość szyfrowania zapisu MBP z 2013 roku jest teraz równa z MBP z 2007 roku.

MacBook Pro (2013) z USB 3.0 z systemem OS X 10.9.3 (13D65)

Zapis: 135,41 MB / s (szyfrowany: 9,29 MB / s)
Odczyt: 196,22 MB / s (szyfrowany: 187,04 MB / s)

MacBook Pro (2007) z USB 2.0 z systemem OS X 10.8.5 (12F45)

Zapis: - MB / s (zaszyfrowane: 9,39 MB / s)
Odczyt: - MB / s (zaszyfrowane: 37,79 MB / s)

Pozostaje jednak pytanie, dlaczego prędkość szyfrowania zapisu na dysku USB w MBP 2013 jest mniejsza niż dziesięć procent zwykłej prędkości zapisu. Porównałem także prędkości odczytu / zapisu przed i po aktywacji FileVault na wewnętrznym dysku SSD MBP 2013 i tam nie mogłem wykryć żadnego spowolnienia.

Stefan Schmidt
źródło
1
Wow - normalny odczyt / zapis i szyfrowane zapisy wyglądają dobrze. Ale ten zaszyfrowany zapis jest boleśnie powolny. Jakie narzędzie mierzy MB / s? Czy możesz odtworzyć te wyniki za pomocą Blackmagic (bezpłatnie w MAS)
bmike
Użyłem prostego, jednoskładnikowego linku Bash time, ddi awk. Blackmagic daje mi te same wyniki: goo.gl/bn32fC (niezaszyfrowany) vs. goo.gl/yghyqA (zaszyfrowany).
Stefan Schmidt
Podejrzewam, że brakuje prędkości odczytu dla zaszyfrowanego woluminu, ponieważ czas odczytu jest krótszy niż interwał próbkowania przepustowości Blackmagic
Stefan Schmidt

Odpowiedzi:

2

Mam ten sam problem, który, jestem pewien, jest spowodowany kombinacją sposobu, w jaki operacje zapisu działają na pamięci flash i sposobu, w jaki działa szyfrowanie pamięci masowej (lub dowolnego woluminu).

Po pierwsze, zachowanie zapisu: w przeciwieństwie do pamięci ulotnej (pamięci używanej w pamięci komputera) lub dysków twardych, na których dowolny bit można zapisać w dowolnym momencie na 0 lub 1, pamięć flash ma dwa główne stany: zapisany i skasowany. W polu „zapisane” znajdują się 0 i 1. Gdy musisz zapisać w pamięci flash, musisz napisać cały blok, który jest obecnie w stanie wymazanym. Oprogramowanie systemu plików w systemie operacyjnym może wiedzieć, które bloki są wolne, ale kontroler i pamięć na urządzeniu flash nie. Specjalny sposób dla systemu operacyjnego, aby informować dysk SSD o udostępnianiu bloków, został opracowany dla dysków SSD „podłączonych do magistrali”: nazywa się TRIM. O ile mi wiadomo, stosy protokołów USB nie obsługują TRIM. Zasadniczo więc pamięć flash zapełnia się, dopóki nie zostaną faktycznie usunięte bloki, w którym to momencie system plików musi usunąć i przepisać bloki poprzez ich odczytanie, scalanie nowych danych, kasowanie i ich ponowne zapisywanie. Właśnie dlatego z czasem maleje wydajność zapisu małych plików na dyskach SSD.

Ciekawe są szczególne okoliczności zaszyfrowanych woluminów: w zależności od sposobu działania szyfrowania może on faktycznie zaszyfrować cały wolumin, wypełniając wszystkie bloki danymi, które wydają się przypadkowymi danymi, nawet jeśli bloki są faktycznie nieużywane i zawierają zera. Tak więc, gdy włączysz FileVault (lub w inny sposób włączysz szyfrowanie pamięci masowej), zasadniczo zużywa cały wolumin, nie pozostawiając miejsca na operacje zapisu. System plików musi stale czytać, wymazywać i przepisywać bloki, aby mógł przepisać je z dowolnymi zaszyfrowanymi danymi, które chcesz na nim umieścić.

Teraz powiem tutaj, że są to spekulacje oparte na rozsądnym zrozumieniu tego, jak rzeczy działają, ale są ludzie, którzy faktycznie znają szczegóły, którzy mogą poprawić lub poprawić moje wyjaśnienie i mam nadzieję, że to zrobią.

xgrep
źródło
To rzeczywiście brzmi bardzo rozsądnie. Zrobiłem trochę kopania i wydaje się, że dla zewnętrznych dysków eSATA i Thunderbolt obsługują TRIM. Może to być interesujące w przypadku zewnętrznych dysków SSD, ale prawdopodobnie nie dla napędów kciukowych, ponieważ komputery Mac nie mają interfejsów eSATA i nie wygląda na to, że w najbliższym czasie będą dostępne dyski twarde Thunderbolt
Stefan Schmidt
1
Na wypadek, gdyby ktoś się zastanawiał: w międzyczasie moim obejściem jest utworzenie zaszyfrowanego, rzadkiego pakietu na dysku o wielkości pojemności dysku. Nie przeprowadziłem żadnych testów porównawczych, ale jest to mniej więcej tak samo, jak zapisywanie niezaszyfrowanych danych na dysku.
Stefan Schmidt
@StefanSchmidt zaszyfrowany rzadki pakiet, jak opisano tutaj? blog.fosketts.net/2015/07/22/…
Brad Cupit
@BradCupit Tak, ale synchronizuję zawartość pakietu rzadkiego, a nie samego pakietu rzadkiego, więc montuję pakiet rzadki za pomocą hdiutil attach, następnie używam rsyncdo synchronizacji z moim folderem lokalnym, następnie odłączam rzadki pakiet za pomocą hdiutil detachi wysuwam dysk diskutil eject.
Stefan Schmidt,