Velocidade de gravação extremamente lenta para unidade externa criptografada no Mavericks

10

A gravação em uma unidade flash USB totalmente criptografada no Mavericks é extremamente lenta.

O modelo de unidade que usei para testar foi um Kingston DataTraveler Ultimate 3.0 G3 (64 GB). Testei a velocidade de transferência lendo / gravando um arquivo grande de / para uma unidade criptografada e não criptografada. Testei em um Macbook atual com o Mavericks e em uma máquina mais antiga com o Mountain Lion. Usei o Disk Utility para formatar a unidade como Mac OS Extended (Diário) e Mac OS Extended (Diário, Criptografado).

MacBook Pro (2013) com USB 3.0 executando o OS X 10.9.2 (13C64)

Gravação: 86,16 MB / s (criptografado: 0,62 MB / s)
Leitura: 181,66 MB / s (criptografado: 151,15 MB / s)

MacBook Pro (2007) com USB 2.0 executando o OS X 10.8.5 (12F45)

Gravação: 23,57 MB / s (criptografado: 5,04 MB / s)
Leitura: 36,23 MB / s (criptografado: 37,87 MB / s)

Como você pode ver na máquina mais antiga, a velocidade de gravação diminui claramente ao gravar no volume criptografado, mas ainda é cerca de dez vezes mais rápida em comparação com a máquina mais recente executando o Mavericks. Este poderia ser um problema introduzido recentemente no FileVault ou CoreStorage?

Atualização (28/06/2014)

A unidade USB parece ter um defeito de hardware desde o início. Recebi uma unidade de substituição (mesmo modelo) que ainda não apresenta os resultados esperados, mas pelo menos a velocidade de gravação criptografada do MBP de 2013 está agora no mesmo nível do 2007 MBP.

MacBook Pro (2013) com USB 3.0 executando o OS X 10.9.3 (13D65)

Gravação: 135,41 MB / s (criptografada: 9,29 MB / s)
Leitura: 196,22 MB / s (criptografada: 187,04 MB / s)

MacBook Pro (2007) com USB 2.0 executando o OS X 10.8.5 (12F45)

Gravação: - MB / s (criptografado: 9,39 MB / s)
Leitura: - MB / s (criptografado: 37,79 MB / s)

Isso ainda deixa a questão: por que a velocidade de gravação criptografada na unidade USB no MBP de 2013 é inferior a dez por cento da velocidade de gravação normal? Também comparei as velocidades de leitura / gravação antes e depois de ativar o FileVault no SSD interno do 2013 MBP e lá não consegui detectar nenhuma desaceleração.

Stefan Schmidt
fonte
1
Uau - a leitura / gravação normal e as gravações criptografadas parecem boas. Mas essa gravação criptografada é dolorosamente lenta. Que ferramenta está medindo os MB / s? Você pode reproduzir esses resultados usando Blackmagic (free on MAS)
bmike
Eu usei uma simples linha Bash utilizando time, dde awk. O Blackmagic me fornece os mesmos resultados: goo.gl/bn32fC (não criptografado) vs. goo.gl/yghyqA (criptografado).
Stefan Schmidt
Eu suspeito que a velocidade de leitura para o volume criptografado está faltando porque a duração da leitura é mais curto do que Blackmagic de rendimento amostragem intervalo
Stefan Schmidt

Respostas:

2

Eu tenho o mesmo problema, o que, com certeza, é devido a uma combinação da maneira como as operações de gravação funcionam na memória flash e a maneira como a criptografia de armazenamento principal (ou qualquer volume inteiro) funciona.

Primeiro, escreva o comportamento: diferentemente da memória volátil (o material usado na memória do seu computador) ou dos discos rígidos, onde qualquer bit pode ser gravado em 0 ou 1 a qualquer momento, a memória flash possui dois estados principais: gravada e apagada. Dentro de "gravado" estão 0 e 1. Quando você precisa gravar na memória flash, deve escrever um bloco inteiro que esteja atualmente no estado apagado. O software do sistema de arquivos no sistema operacional pode saber quais blocos são gratuitos, mas o controlador e o armazenamento em um dispositivo flash não. Uma maneira especial para o sistema operacional dizer a um SSD para disponibilizar blocos foi desenvolvida para SSDs "conectados por barramento": é chamado TRIM. As pilhas de protocolos USB não suportam TRIM. Portanto, basicamente, a memória flash continua a encher até que não haja blocos apagados reais; nesse ponto, o sistema de arquivos precisa apagar e reescrever blocos lendo-os, mesclando os novos dados, apagando e gravando-os novamente. É por isso que você vê o desempenho de gravação de arquivos pequenos diminuir nos SSDs ao longo do tempo.

As circunstâncias especiais dos volumes criptografados são interessantes: dependendo da maneira como a criptografia funciona, ela pode realmente criptografar um volume inteiro, preenchendo todos os blocos com o que parece ser dados aleatórios, mesmo que os blocos não sejam realmente usados ​​e contenham zeros. Portanto, quando você ativa o FileVault (ou ativa a criptografia de armazenamento principal), ele basicamente consome todo o volume, não deixando espaço para operações de gravação. O sistema de arquivos precisa ler, apagar e reescrever constantemente os blocos para que possa reescrevê-los com todos os dados criptografados que você deseja colocar nele.

Agora direi aqui que isso é especulação baseada em um entendimento razoável de como as coisas funcionam, mas há pessoas que realmente conhecem os detalhes, que podem corrigir ou melhorar minha explicação e espero que o façam.

xgrep
fonte
Isso realmente parece muito razoável. Eu fiz algumas escavações e parece que para discos externos eSATA e Thunderbolt ambos suportam TRIM. Isso pode ser interessante sobre SSDs externos, mas provavelmente não para pen drives porque Macs não têm interfaces eSATA e não olhar como pen drives Thunderbolt acessíveis estarão disponíveis em breve: goo.gl/sDM1au
Stefan Schmidt
1
Apenas no caso de alguém estar se perguntando: Enquanto isso, minha solução alternativa é criar um pacote esparso criptografado na unidade com o tamanho da capacidade da unidade. Não fiz nenhum benchmark, mas parece mais ou menos parecido com a gravação de dados não criptografados na unidade.
Stefan Schmidt
@StefanSchmidt um pacote esparso criptografado como descrito aqui? blog.fosketts.net/2015/07/22/…
Brad Cupit
@BradCupit Sim, mas sincronizo o conteúdo do pacote esparso, não o pacote esparso, por isso monto o pacote esparso com ele hdiutil attach, uso-o rsyncpara sincronizar com a minha pasta local, desmonte o pacote esparso hdiutil detache ejeto a unidade de disco diskutil eject.
Stefan Schmidt