Том тонкого пула LVM и ioctl BLKZEROOUTLinux

Ответить
Anonymous
 Том тонкого пула LVM и ioctl BLKZEROOUT

Сообщение Anonymous »

Я только что исследовал следующее поведение BLKSECDISCARD и BLKZEROOUT ioctls ядра Linux 6.4 в отношении тома LVM, выделенного в тонком пуле:
  • Если я выдаю BLKSECDISCARD, то том в пуле не распределяется, т.е. 0% пространства зарезервировано для данных (как и следовало ожидать).
  • Если я выдаю BLKZEROOUT, то том в пуле становится полностью выделенным, т. е. lvs показывает 100 % пространства, зарезервированного для данных.
Последнее поведение сомнительно с учетом того, как ioctl реализован для других типов блочных устройств (SCSI, eMMC и т. д.). Я вижу, что ядро ​​пытается использовать аппаратные команды, такие как команда WRITE SAME SCSI, для выполнения команды обнуления. Я ожидаю, что результат BLKSECDISCARD и BLKZEROOUT должен быть одинаковым в случае тонкого пула LVM.
Для тонкого пула несопоставленные блоки на самом деле не существуют (сравните с SSD, где отброшенные блоки физически существует) и детерминированно заменяются нулями при операции чтения, поэтому они уже гарантированно будут нулями при чтении. Поправьте меня, если я ошибаюсь, пожалуйста.
Итак, в чем же причина такого поведения?

Подробнее здесь: https://stackoverflow.com/questions/792 ... oout-ioctl
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»