Как проверить, работает ли TRIM для зашифрованного тома?

Установите раздел, на котором установлен Ubuntu, и запустите эту команду:

file /media/ubuntu-disk/sbin/init

Где / media / ubuntu-disk - это путь к установке Ubuntu ...

1
задан 13 April 2017 в 15:25

3 ответа

У меня еще нет dm-crypt с настройкой TRIM, но я также заинтересован в проверке этого. Сначала следует сказать, что это может быть невозможно, в зависимости от вашего SSD (см. Https://serverfault.com/a/401506/60525).

Предполагая, что у вас есть правильный тип SSD, Я вижу пару различных вариантов:

Проверьте это на очень маленьком блочном устройстве. Создайте зашифрованный раздел размером 20 МБ так же, как и для всей системы. Обязательно сначала заполните раздел случайными байтами. Затем создайте, напишите, очистите и удалите файл 10 Мб на зашифрованном fs. Запустите fstrim на установленном fs. Если все работает, вы должны увидеть около половины раздела 20Mb, заполненного нулевыми байтами. В качестве альтернативы вы можете убедиться, что через подсистему scsi выдается либо команда UNMAP, либо WRITE SAME scsi. Единственный способ, которым я нашел, чтобы увидеть пакеты scsi без использования аппаратного устройства или взломать ядро, - включить ведение журнала пакетов scsi: echo $ BITMASK> / sys / module / scsi_mod / parameters / scsi_logging_level Использование 9216, поскольку BITMASK было достаточно для меня, чтобы WRITE SAME cdbs отправлялись после fstrim ext4 fs, находящегося непосредственно на диске (без шифрования). Вы можете использовать либо fstrim на уровне fs, либо sg_unmap / sg_write_same на уровне устройства, чтобы вызвать TRIM. Когда вы найдете либо UNMAP, либо WRITE SAME, используйте scsi docs на t10.org, чтобы декодировать пакет и выяснить, на каком диске он ссылается. Затем проверьте, что диск имеет все нули в этом секторе (секторах).

Последний подход более сложный, но он имеет преимущество в работе над уже существующими установками и намного проще при работе с файловыми системами с нестандартным размером. Вам может показаться достаточно, чтобы послать команду UNMAP или WRITE SAME (вам все равно, есть ли нули или нет?) Обратите внимание, что последний подход, скорее всего, не будет работать, если TRIM выполняется с помощью команды ata DATA SET MANAGEMENT, он не должен появляться в журнале scsi, и я не вижу способ получить ata cdbs. Но я бы сказал, что это менее 0,01% случаев.

Последнее решение может быть каким-то автоматическим, поэтому нам не пришлось бы декодировать пакет вручную. Любые получатели?

И насколько я сейчас не могу получить сопоставление зашифрованного блочного адреса с адресом блока устройства без взлома dm-crypt.c Итак, если вы хотите увидеть, что блоки удаленный файл на обрезанной fs на карте зашифрованного блочного устройства на нулевые сектора на устройстве, вы находитесь в мире боли.

2
ответ дан 25 May 2018 в 08:46
  • 1
    Интересные идеи! Я попробую их, когда у меня будет время потратить :) – Tomasz Zieliński 9 August 2012 в 13:42

На вопрос был задан вопрос.

Если вы используете LVM, вам нужно добавить discard к параметрам в /etc/fstab

Открыть /etc/fstab с любым редактором

# Command line
sudo -e /etc/fstab

# Graphical
gksu gedit /etc/fstab

Добавьте «disard» к параметрам в 4-м столбце.

/dev/mapper/volumegroup-root  /  ext4  discard,noatime,nodiratime,errors=remount-ro  0  1

Затем вы добавляете ту же опцию (отбрасываете) на /etc/crypttab

Предполагая, что ваш раздел LUKS /dev/sda1 (отрегулируйте соответственно)

# Command line
sudo -e /etc/crypttab

# Graphical
gksu gedit /etc/crypttab

Опять добавьте сброс:

sda1_crypt UUID=[... series of numbers ...] none luks,discard

Обновите свои initramfs

sudo update-initramfs -c -k all

Перезагрузка

Подтверждение TRIM работает ...

sudo dmsetup table /dev/mapper/sda1_crypt --showkeys

Вы должны увидеть «allow_discards» на выходе

Для дополнительную информацию см .: http://worldsmostsecret.blogspot.com/2012/04/how-to-activate-trim-on-luks-encrypted.html

1
ответ дан 25 May 2018 в 08:46
  • 1
    Спасибо за ответы, но я имел в виду другое дело в своем вопросе, извините за отсутствие разъяснений. Проверьте мой обновленный вопрос. FYI sudo dmsetup table /dev/mapper/sda1_crypt --showkeys возвращает allow_discards, но я хочу проверить, действительно ли диск TRIM-ed. – Tomasz Zieliński 11 July 2012 в 23:17

Я не вижу, как TRIM может работать вообще для зашифрованного тома; громкость по определению полна случайных (то есть - ненулевых) данных. TRIM обнуляет блоки, когда файловая система больше не имеет активных данных, хранящихся на них. В зашифрованном томе то, что хранится на аппаратном блочном устройстве, не является файловой системой, а виртуальным блочным устройством.

0
ответ дан 25 May 2018 в 08:46
  • 1
    Ну, это работает. Но я бы хотел увидеть эти нули: – Tomasz Zieliński 11 July 2012 в 23:18

Другие вопросы по тегам:

Похожие вопросы: