O kernel do Linux evita o armazenamento em cache duplicado com a compactação ou criptografia de sistemas de arquivos? Se sim como?

0

Por curiosidade: se eu tenho um dispositivo LUKS de acordo com o meu entendimento ao ler um bloco de um dispositivo de bloco, este bloco é colocado no cache de buffer. Mas este bloco é criptografado, portanto, não é imediatamente utilizável. Ao acessar o bloco, ele será descriptografado, portanto, há uma segunda versão dos dados. Essa segunda cópia faria mais sentido para armazenar em cache que o bloco de disco. Eu imagino que o kernel Linux armazenaria razoavelmente este segundo bloco também (vindo do dispositivo de loop) - ou mesmo somente deste bloco transformado.

Existe uma situação semelhante com a compressão de sistemas de arquivos como o btrfs: um bloco lido do disco é basicamente inútil, somente após a descompactação há conteúdo que os aplicativos podem usar e que faria sentido armazenar em cache.

Eu tentei encontrar essa informação em outro lugar ( link , link ) mas até agora não conseguiram. O que eu encontrei na maior parte cobriu versões de kernel mais antigas e sistemas de arquivos que não possuem essa propriedade de blocos de disco que precisam passar por uma transformação para serem utilizáveis. Eu ficaria grato por alguns ponteiros.

    
por Robert Klemme 26.02.2018 / 23:02

1 resposta

1

I would be thankful for some pointers

Eu tentaria ver a saída de free antes e depois da primeira descriptografia ( cryptsetup [luksOpen | open --type luks] ) de montagem e leitura de um dispositivo LUKS.

Se o [livre | buff / cache | disponível] espaços muda por sobre o tamanho que você leu, então é só o cache de uma cópia. Se o espaço for alterado em cerca de duas vezes, provavelmente é o armazenamento em cache de duas / ambas as cópias.

Por segurança, imagino / espero que os dados desclassificados de LUKS não sejam armazenados em cache. Normalmente, a leitura é mais lenta do que descriptografar de qualquer maneira.

  • Para testar, você pode tentar criar seu próprio dispositivo LUKS criptografado (10x), usando alguns (cem?) arquivo MB e luksFormat e luksOpen repetidamente, para usar criptografia repetitiva / aninhada. Então, qualquer leitura deve ser multiplicada (10x) e isso pode ser mais fácil de ver na saída de free .
por 27.02.2018 / 01:09