Привет снова! Я весь день пытаюсь заставить fstrim работать внутри непривилегированных LXC-контейнеров, но безуспешно. Сначала я думал, что это проблема только Debian/Ubuntu, но я попробовал несколько шаблонов ОС, и это всегда приводит к: FITRIM ioctl failed: Operation not permitted. Чтобы вы знали, в привилегированных контейнерах все работает хорошо, но, как отметили люди, они не такие безопасные. Может кто-то помочь мне разобраться с этим или рассказать, есть ли обходной путь? Я переключился на lvm-thin provisioning, так что мне нужно очищать диски контейнеров, чтобы освободить место после удаления. Или это просто не поддерживается в непривилегированных контейнерах на данный момент? Я нашел похожую проблему на linuxcontainers.org. Один из разработчиков сказал: "К сожалению, я ожидаю, что это просто ядро отказывается разрешить непривилегированному пользователю запрашивать операцию TRIM на блочном устройстве. Если вы не используете привилегированный контейнер, я не ожидаю, что вам это удастся… Один из вариантов — дать root на хосте запустить fstrim для всех /dev/rbd* устройств, фактически выполняя TRIM для всех работающих контейнеров. В противном случае вам нужно будет ждать, пока у нас не появится способ перехватывать такие системные вызовы в пространстве пользователей (в настоящее время ведется работа над этим в ядре), после чего мы могли бы заставить LXD перехватывать этот конкретный ioctl и воспроизводить его как настоящий root." Если этого не получится сделать внутри контейнеров, есть ли способ очистки образов диска с хоста? Спасибо!
fstrim не работает в контейнерах (любая ОС) - какие есть обходные пути?, Proxmox Виртуальная Среда
|
18.05.2019 07:01:00
|
|
|
|
|
|
18.11.2019 17:48:00
Я получаю 'tput: No value for $TERM and no -T specified', когда запускаю скрипт через cron (но не при ручном запуске). pct, конечно, был заменен на /usr/sbin/pct.
|
|
|
|
|
|
19.11.2019 17:41:00
грязная однострочка для обрезки всех контейнеров: Код: pct list | awk '/^[0-9]/ {print $1}' | while read ct; do pct fstrim ${ct}; done
|
|
|
|
|
|
20.02.2020 15:47:00
Однострочник с xargs: Код: pct list | grep -Eo '^[0-9]+' | xargs -P X -n 1 pct fstrim Здесь `X` — это количество fstrim, которое вы хотите выполнить параллельно.
|
|
|
|
|
|
11.12.2021 21:04:00
Хорошо, это имеет смысл. Но только если автотрим включен, верно? Код: root@Hypervisor:~# zpool get autotrim NAME PROPERTY VALUE SOURCE VMpool autotrim on local
|
|
|
|
|
|
17.06.2023 10:01:00
Это не ошибка, а предупреждение, и оно говорит о том, что тонкий объем отображает больше данных, чем его размер, что странно.
|
|
|
|
|
Читают тему
