LINUX.ORG.RU
решено ФорумAdmin

rsync -ax переходит через filesystem boundaries - в чем я не прав?


0

1

Приветствую о глубокоуважаемый Олл!!!

Решил я сделать по старой памяти рсинк одного раздела, поскипав всё подмонтированное к нему. Раньше я это делал с помощью: rsync -ax. Сейчас бах... и скопировалось ВСЁ. Поначалу я решил что это поведение zfs - ибо я экспериментировал с ней.

Сделал иерархию фс в файлах и получилось:
/dev/loop1 ext4 10T 1,3G 9,5T 1% /opt/e4file
/dev/loop2 xfs 10T 1,1G 10T 1% /opt/e4file/xfs
/dev/loop3 jfs 10T 2,4G 10T 1% /opt/e4file/jfs

Накопировал я туда и:
#rsync -ax /opt/e4file/* /opt/e4file-test
скопировал всё дерево, хотя хотел копию лишь /opt/e4file.

В чём может быть проблема?

P.S. Хм... только сейчас заметил опечаточку... хотел сделать для теста файлики по 10Gb а получилось 3 по 10Tb - легко уместившиеся на свободные 40Gb :)
По крайней мере интересно пронаблюдать расход:
ext4 - как положенно откушала 5% для рута от свободного места и моё 1,06Gb дерево - заняло 1,3Gb на разделе.
xfs - заняла честные 1,1G
jfs - откушала 2,4Gb.

P.P.S. Мои беглые ощущения от разных fs:

ext4fs - Мейнстрим. Вполне оправдывает совй статус. Единственный напряг был с моим незнанием того что 5% потерь места это не потери а место доступное для рута даже если пишет что его 0. Это дополнительный плюс fs, ибо когда заканчивается место на руте - всё становится плохо, а здесь есть 5% шанс :)

jfs - работает хорошо но требует fsck хоть она и транзакционная. В результате не раз уже сталкивался с ситуацией невозможности fsck при загрузке приводящей к остановке загрузки ОС пока оператор не нажмет кнопку или введет пароль рута.

xfs - пока самые лучшие впечатления, при нештатном завершении сама накатывает журнал при загрузке и монтируется. Пугают лишь страшилки что она всё забывает при неожиданном отрубании света.

btrfs - Использовал для теста варианта с упаковкой. В результате тестов получил нечитаемую fs. Давно это было потому подробностей не помню. Всяческие fsck тожe сыпались. Особых средств не применял - данные были неважны (тестовое копирование).

zfs - Пришел к ней ища fs с упаковкой. Эта фс имеет очень интересную архитектуру. Позволяет создавать тома а в них подтома. Позволяет включать упаковку несколькими алгоритмами. Есть возможность «дедупликации». Теоретически можно мильен раз делать xcopy диска на этот раздел и занимать место будут лишь изменившиеся файлы. Реалии более суровы. Баги... расход памяти... Если говорить кооротко то 10Gb файл с этой fs импортированный как раздел и включенный дедуп от 4х разового копирования дерева с флешки по #zpool list дают:
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
zfs-file 9,94G 3,85G 6,08G 38% 4.02x ONLINE -

т.е. 10Gb файл, занято 3,85Gb хотя du там видит 16G
Вот только попытка копировать с удалением получившиеся логи копирования с временными отметками - привела к повисанию системы. Система виснет скорее всего на дисковых операциях. Графический интерфейс работает, но даже консоль не запустить. Временами и полное повисание случается.
Неоднократные зависания системы при игрищах со включенным дедупом привели к тому что эту фичу использовать невозможно, хотя думал что 8Gb памяти должно хватить...

★★★

Последнее исправление: n0mad (всего исправлений: 2)
Ответ на: комментарий от sdio

Увы, без / тот же результат. Пробовал.

Я тоже об этом подумал. Исполнил без / но тогда имя каталога не поменять. Результат тот же.

n0mad ★★★
() автор топика
Ответ на: комментарий от sdio

Извиняюсь. Именно это и имел в виду. Без звездочки и слеша.

Делал без звездочки и слеша, но видимо в чем то очепятался.
Спасибо за настойчивость в объяснении моей ошибки.
Сейчас ручками сделал модель - все прошло как надо.
Осталось сообразить как поменять имя каталога. т.е. Скопировать всё но не вложенным e4file а его содержание в e4new.
с ходу не знаю.

n0mad ★★★
() автор топика
Последнее исправление: n0mad (всего исправлений: 1)

Единственный напряг был с моим незнанием того что 5% потерь места это не потери а место доступное для рута даже если пишет что его 0

Ноль значит ноль. Место теряется под статическую таблицу inode.

Пугают лишь страшилки что она всё забывает при неожиданном отрубании света.

Ну так не отключай барьеры и всё будет ровно.

Gotf ★★★
()
Ответ на: комментарий от Gotf

Не уверен. Надо проверить когда будет время.

Есть в мане mkfs.ext4 такой абзац.:

-m reserved-blocks-percentage
Specify the percentage of the filesystem blocks reserved for the
super-user. This avoids fragmentation, and allows root-owned
daemons, such as syslogd(8), to continue to function correctly
after non-privileged processes are prevented from writing to the
filesystem. The default percentage is 5%.

т.е. по умолчанию эти самые 5% не под иноды идут а руту, и когда места 0 - от рута еще можно писать и писать...

n0mad ★★★
() автор топика
Последнее исправление: n0mad (всего исправлений: 2)

Есть в мане mkfs.ext4

Я его наизусть знаю.

по умолчанию эти самые 5% не под иноды идут а руту

Я не так понял фразу «Единственный напряг был с моим незнанием того что 5% потерь места это не потери а место доступное для рута даже если пишет что его 0.» Но раз уж я об этом упомянул, то предлагаю посмотреть на доступный объём достаточно большого свежего раздела без зарезервированного пространства и со стандартным inode ratio.

Gotf ★★★
()
Ответ на: комментарий от sdio

не совсем в тему но опять с рсинком встрял :(

скажем есть src и dst Надо синкнуть src в dst
Говорю rsync -axvPH --delete src/* dst - всё вроде как нормально. Но затем обнаруживаю что в dst есть лишнее.
захожу в dst и rsync -axvPH --delete . ../dst Удаляет из
dst всё лишнее.
Почему в первом варианте каталоги синкаются а удаление нет?
Вернее какие то файлы удалялись и при первом варианте.

n0mad ★★★
() автор топика

Надо было дурилке и правда лишь без звездочки, а слэш оставить :(

Без «звездочки», дурилка

Извиняюсь. Именно это и имел в виду. Без звездочки и слеша.

Действительно надо было убрать лишь звездоку - осознал это лишь через неделю.

src/* - Копирует ВСЁ наплевав на границы
src/ - Копирует без перехода через границы
src - Копирует сам src

n0mad ★★★
() автор топика

PS: src/* - Копирует ВСЁ наплевав на границы

... исключая то, что начинается с ".", или содержит пробелы. Короче, * в команде должна рассматриваться как ошибка, кроме случая, когда ты точно уверен в имени каждого файла.

DonkeyHot ★★★★★
()
Ответ на: PS: src/* - Копирует ВСЁ наплевав на границы от DonkeyHot

Всё еще чудесатее.

... исключая то, что начинается с ".", или содержит пробелы. Короче, * в команде должна рассматриваться как ошибка, кроме случая, когда ты точно уверен в имени каждого файла.

всё еще чудесатее. Не поверил и проверил. Маска * работает лишь в том каталоге что указал. т.е. файлы и каталоги начинающиеся с .(точки) не скопируются, но для уже попавших в копию каталогов действует маска /, таким образом достаточно подмонтировать src/folder/mount и rsync -axvPH src/* dst не скопирует содержимое mount, но скопирует все (даже скрытые) файлы в дереве src/folder но скипнет src/.folder. Файлы/каталоги содержащие пробелы спокойно копируются даже в корне.

n0mad ★★★
() автор топика
Последнее исправление: n0mad (всего исправлений: 2)
Ответ на: Всё еще чудесатее. от n0mad

Файлы/каталоги содержащие пробелы спокойно копируются

С IFSом (или shell-ом) повезло.

DonkeyHot ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.