Из любопытства: если у меня есть устройство LUKS в соответствии с моим пониманием, при чтении блока с блочного устройства этот блок помещается в буферный кеш. Но этот блок зашифрован, поэтому его нельзя сразу использовать. При доступе к блоку он будет расшифрован, поэтому существует вторая версия данных. Эта вторая копия будет иметь больше смысла для кэширования, чем блок диска. Я предполагаю, что ядро Linux будет разумно кэшировать и этот второй блок (поступающий от устройства цикла) - или даже только этот преобразованный блок.

Аналогичная ситуация возникает при сжатии файловых систем, таких как btrfs: чтение блока с диска в основном бесполезно, только после распаковки есть контент, который приложения могут использовать и который имеет смысл кэшировать.

Я пытался найти эту информацию в другом месте (https://kernelnewbies.org, https://www.kernel.org/), но пока не удалось. То, что я обнаружил, в основном касалось более старых версий ядра и файловых систем, которые не имеют этого свойства дисковых блоков, которые должны быть преобразованы, чтобы их можно было использовать. Я был бы благодарен за некоторые указатели.

1 ответ1

1

Я был бы благодарен за некоторые указатели

Я бы попробовал посмотреть вывод из free до и после первого дешифрования (cryptsetup [luksOpen | open --type luks]) монтирования и чтения с устройства LUKS.

Если [бесплатно | бафф / кеш | Доступные] пробелы изменяются примерно на размер, который вы прочитали, тогда кешируется только одна копия. Если пространство изменяется примерно вдвое, возможно, оно кэширует две / обе копии.

В целях безопасности я представляю / надеюсь, что расшифрованные данные LUKS не кэшируются. Обычно чтение медленнее, чем расшифровка в любом случае.

  • Для тестирования вы можете попробовать создать свое собственное (10x) зашифрованное устройство LUKS, используя несколько (сто?) Файл MB и несколько раз luksFormat и luksOpen его, поэтому он использует повторяющееся / вложенное шифрование. Затем любые чтения должны быть умножены (в 10 раз), и это может быть легче увидеть в выводе free .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .