Я использую LVM thinvolumes для сетевой загрузки нескольких компьютеров через iSCSI. Время от времени я освобождаю место на этих машинах. К сожалению, это место не освобождается на thinvolumes. Поэтому я partclone
время от времени удаляю разделы, чтобы освободить место. В виртуализации можно использовать инструменты, которые обнуляют неиспользуемое пространство, что освобождает его. Есть ли похожий или лучший способ освободить место с помощью LVM thin pools/thin volumes?
заранее спасибо
решение1
LVM thin поддерживает DISCARD, более широко известный как TRIM. Теоретически должно быть возможно как-то заставить это работать с iSCSI (есть эквивалентная команда UNMAP), но я ничего не нашел по этому поводу.
На машине, на которой размещены эти тома, вы можете использовать fstrim
для освобождения свободного пространства. Страница руководства даже упоминает об этом явно:
fstrim используется в смонтированной файловой системе для удаления (или "обрезки") блоков, которые не используются файловой системой. Это полезно для твердотельных накопителей (SSD) и тонко-предусмотренных хранилищ.
Чтобы это работало, Linux должна поддерживать файловую систему, и эта поддержка должна включать TRIM. Если ваши компьютеры с сетевой загрузкой работают под управлением Windows, то, скорее всего, это NTFS. По-видимому, NTFS-3G поддерживает TRIM.
fstrim
работает только на смонтированных файловых системах.
Это будет выглядеть так:
Обновлять: Как обсуждалось в комментариях, Linux SCSI Target предлагает флаг на своих блочных хранилищах, который идентифицирует SSD: is_nonrot
. Он также поддерживает команду UNMAP SCSI. Windows (по крайней мере Windows 10) правильно определяет SSD через iSCSI и выдает команды UNMAP, немедленно освобождая неиспользуемое пространство.