Назад | Перейти на главную страницу

Как уменьшить размер файлового хранилища Linux в targetcli

Я использую targetcli для изменения размера цели iSCSI. Я создал большое хранилище данных FILEIO, что является пустой тратой ресурсов. Возможно ли, что я могу уменьшить размер файла без потери данных?

В этом случае я бы лучше остановился на старой доброй миграции данных.

Я пробовал -truncate сам, но на этот раз закончил восстановление из снимка. Скорее всего, из-за несоответствия файловой системы и размера логического тома.

VMware, например, разработала хороший набор инструментов, позволяющих сжимать толстые или тонкие виртуальные диски, обнуляя свободное пространство или удаляя нули.

Для этого вам нужно использовать команду truncate. Поймите, что усечение отрежет конец файла по указанному вами смещению, поэтому вы потеряете данные после этой точки, если сначала не изменили размер файловой системы, которую этот LUN предоставляет на стороне инициатора iSCSI (так что файловая система, содержащаяся в нем, меньше, чем вы его усекаете).

Пример этого здесь:

truncate -s SIZE /srv/totallyalun.img

РАЗМЕР может быть (или может быть целым числом, за которым может следовать) одно из следующих значений: KB 1000, K 1024, MB 1000 * 1000, M 1024 * 1024 и так далее для G, T, P, E, Z, Y.

Это изменит размер файла на месте. Если файл изначально больше, чем размер, указанный с помощью -s, truncate отрежет его конец. Если файл меньше указанного размера, то усечение тонко расширит ваш резервный файл, с данными в конечных областях, считанными как нули (поскольку они будут дырами).

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

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

ИЛИ, если вас не волнуют данные (или вы не против их копирования), вы можете создать новый тонкий файл, используя разреженное распределение, и скопировать его, чтобы избежать всего этого беспорядка. Тонкое распределение действительно помогает в управлении ресурсами, особенно при работе с программно определяемым хранилищем.