LINUX.ORG.RU

После zfs send|zfs receive получил оба дерева смонтированные в одинаковые каталоги.

 , ,


0

2

Как всегда накосячил и подробных логов нет.
Есть зеркальный том Safe, но старенький P4 лопает много электричества.
Возникла мысль - сделать копию и подключить к микро-ПК.
Потом, временами - буду подключать тот винт и рсинкать изменения назад на рейд. Или правильнее сделать как то по другому?

Сначала сделал снэпшот этого тома:
#zfs snap -r Safe@250328-1200

Потом его послал в другой том:
#zfs send -R Safe@250328-1200|zfs recv -Fuv T4T3S

Это всё шуршало 26 часов. Пытаюсь экспортировать пул назначения: Бизи...

$sudo zfs list
-----
NAME USED AVAIL REFER MOUNTPOINT
.....
Safe/:pub 1.42T 363G 1.42T /opt/:pub
....
T4T3S/:pub 1.42T 363G 1.42T /opt/:pub
-----
и таких строчек много, т.е. Вся иерархия Safe скопировалась на T4T3S и у всей иерархии на обоих томах стали одинаковые точки монтирования.

Начал этот топик, отвлекли домашние дела. Вернулся через несколько часов, в соседнем окне решил запротоколировать ошибку экспорта - но увы, пул сэкспортировался без ошибки и теперь могу спокойно отключить диск и подключить к МикроПК - лопающему 15 Ватт, а не 200. Это по результатам топиков где мне говорили что за пару лет работы - МикроПК сэкономит свою цену, если отключить древний комп.

Однако вопрос остался: Что это? Почему send/receive монтируют копию туда же где и источник? Так и должно быть? Или где я накосячил?

P.S. Не пугайтесь таких имён подтомов начинающихся с ":" или испугайте меня чем это грозит. Как уже говорил, с памятью у меня проблемы и тяжело помнить все подтома и различать их с подкаталогами. Тепрь всё что начинается с ":" это подтом, такой я придумал протокол именования подтомов.
Пока вроде в командах прокатывают. Пробовал другие символы для индикации подтомов, но нашел только этот, или были какие то другие косяки.

★★★

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

испугайте меня чем это грозит.

Да ничем не грозит. Хоть эмодзи💀 используйте. Разве что винда будет ругаться, если вы ей двоеточие в имени файла будете предлагать. А так обычно подтома именуют с начальной @. Нигде это официально не прописано - сообщаю просто так, вы сами на этом внимание заострили.

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

испугайте меня чем это грозит.

Да ничем не грозит. Хоть эмодзи💀 используйте. Разве что винда будет ругаться, если вы ей двоеточие в имени файла будете предлагать. А так обычно подтома именуют с начальной @. Нигде это официально не прописано - сообщаю просто так, вы сами на этом внимание заострили.

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

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

Во-первых, чтобы ничего не монтировалось автоматом, точку назначения нужно сделать canmount=noauto или canmount=off, тогда ZFS не будет пытаться монтировать датасеты автоматически.

Если на ссылаемых датасетах стоит canmount=on, оно может унаследоваться, так что лучше вручную прописать таким датасетам что надо.

Остальное читать не стал, без разметки это больно.

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

Спасибо за советы!

Потому что ты пытаешься назвать датасет с @, а у ZFS это зарезервировано под снапшоты.

Да, пытался но не взлетело и выбрал ":"

Почитай про терминологию ZFS и пойми разницу, тогда путаницы не будет.

Подскажи пожалуйста источник в котором описывается «терминология».
Я пока не знаю где это брать.

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

Да, пытался но не взлетело и выбрал «:»

Но зачем? Что ты пытаешься этим добиться? Используй a-z+_+- для датасетов (в любом регистре), а снапшоты лучше всего именовать по датам (я предпочитаю ISO-8601). Не нужно изобретать самому себе сложности. (=

Подскажи пожалуйста источник в котором описывается «терминология».
Я пока не знаю где это брать.

Всё в комплекте:

  • man zpoolconcepts
  • man zfsconcepts
mord0d ★★★★★
()
Ответ на: комментарий от mord0d

Да, пытался но не взлетело и выбрал «:»

Но зачем? Что ты пытаешься этим добиться?

Я больной человек (последствия тяжелой ЧМТ), проблемы с памятью и сложно помнить кто из них подкаталог, а кто подтом. Всякие плюсминусы - тоже использовал, но случались косяки. Увы не помню какие. Сейчас использую ":", если и тут вылезут косяки - буду думать дальше, но мне нужно чтобы я визуально видел каждый подтом. Чтобы не путать с подкаталогами.

man zpoolconcepts
man zfsconcepts

Спасибо за акцент на очевидном.

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

последствия тяжелой ЧМТ

Не знал. Сочувствую.

сложно помнить кто из них подкаталог, а кто подтом

Это и не обязательно. Тем более, как я уже писал в другом твоём треде, маунтпоинт и имя датасета не обязательно должны быть одинаковыми. То есть ты можешь называть датасет, например, SB, а маунтпоинт — /.../#SB. Таким образом ты себе не создашь проблем для ZFS (те же : у тебя отображаются как 0x3A в некоторых местах, например в логах и возможно в истории zpool history <poolname>), но в иерархии ФС "маркируешь" директории, являющиеся точками монтирования.

Спасибо за акцент на очевидном.

Я даже не интересовался что там есть онлайн (кроме официальной документации Oracle, которая ощутимо расходится с OpenZFS), ну и маны вполне себе самодостаточны (хотя примеров, конечно, не хватает).

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

Это и не обязательно. Тем более, как я уже писал в другом твоём треде, маунтпоинт и имя датасета не обязательно должны быть одинаковыми. То есть ты можешь называть датасет, например, SB, а маунтпоинт — /.../#SB

Это я понимаю. Я не хочу подтома разносить по дереву, вынесу лишь если будет необходимо. Посмотрим, благо перекроить потом можно будет.
Пока по моему «протоколу» у меня: /zfs/<ТОМ>/<Подтом> Хожу по лезвию. LenovoDesktop+USB3(1T+2T+4T+4T), и на всём этом zfs. Сегодня подключил туда ещё одну USB3 SSD и отвалился 2T, а потом вся система повисла :( (Экран замёрз)
Уже второй раз на этом Lenovo M79, покупал б/у (рефабришед) на Вайлдбериз. Благо после перезагрузки проинитились все zfs сидящие на USB3. Так извратился чтобы отрубить основной древний P4 с рейдом, лопающий под 200Вт. Сейчас рабочее окружение с 300 до 120Вт урезалось. Это 300р вместо 900 за месяц, и 3600 вместо 10800 за год.

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

Пока по моему «протоколу» у меня: /zfs/<ТОМ>/<Подтом>

Лишь бы тебе удобно было. Куда монтировать — решать только тебе (главное не монтируй два раздела/датасета в одно место, задолбаешься с этим). Я лишь рекомендую не использовать non-alphanumeric в именах датасетов (точки монтирования проблем создать не должны, разве что # в имени могут добавить проблем с fstab, но кто ж монтирует ZFS через fstab… я монтирую, но я точно знаю зачем я это делаю).

USB3

а потом вся система повисла :(

Подключать диски по USB не очень хорошо. По USB во-первых нестабильное питание, а во-вторых SATA-интерфейсы через USB недоступны (неможно посмотреть S.M.A.R.T., например).

отвалился 2T

99% на то, что питания не хватило.

Сейчас рабочее окружение с 300 до 120Вт урезалось. Это 300р вместо 900 за месяц, и 3600 вместо 10800 за год.

У меня дома стоит Supermicro на Intel 3rd gen (2 CPU, 24 ядра и 48 потоков в сумме; 256G RAM; 6 SATA в нескольких RAID-10 пулах), за электричество выходит ≥1K, но у меня очень много всего, и без такого железа будет совсем печально. )=

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

(главное не монтируй два раздела/датасета в одно место, задолбаешься с этим).

А поподробнее? Что значит: «в одно место»?

Я лишь рекомендую не использовать non-alphanumeric в именах датасетов (точки монтирования проблем создать не должны, разве что # в имени могут добавить проблем с fstab, но кто ж монтирует ZFS через fstab… я монтирую, но я точно знаю зачем я это делаю).

Ну... Как вариант ещё вставить 0 в начало, для сортировки «вверх»

USB3
а потом вся система повисла :(

Подключать диски по USB не очень хорошо. По USB во-первых нестабильное питание,

Понимаю, но сейчас грубо 5 винтов по USB, и не надо лезть внутрь опломбированного компа.

а во-вторых SATA-интерфейсы через USB недоступны (неможно посмотреть S.M.A.R.T., например).

Разве? У меня прекрасно смотрится. Времена, когда адаптеры не умели SMART - давно прошли.

отвалился 2T

99% на то, что питания не хватило.

Возможно, но они висят на USB3 хабе с блоком питания.

Сейчас рабочее окружение с 300 до 120Вт урезалось. Это 300р вместо 900 за месяц, и 3600 вместо 10800 за год.

У меня дома стоит Supermicro на Intel 3rd gen (2 CPU, 24 ядра и 48 потоков в сумме; 256G RAM; 6 SATA в нескольких RAID-10 пулах), за электричество выходит ≥1K, но у меня очень много всего, и без такого железа будет совсем печально. )=

Вот и у меня дома штук 7 компов... Но большинство давно не включаются, разве только для каких со специфических нужд.
Вот решил ради экономии электричества - переехать на BMAX B1 PRO, но «подвернулся» Lenovo M79 и пока на нем всё кручу. А «основной» - с 4*SATA - рсинкнул на USB и выключил.

А сейчас вообще пишу с китайского ноута. 16Гб/1Тб. Лопает ватт 15.

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

Спасибо за содействие, но всё же... Явное задание точек монтирования не катит.
Потом я не смогу переименовать или изменить точку монтирования тома - если у подтомов явно прописаны точки монтирования, находящиеся в нём же.

Какие есть предположения как выйти из этого локапа/факапа?
Есть том T4T3S
В нём подтом :SB с точкой монтирвания /#SB (использовал когда у рсинка было «слишком длинное имя».
Меняю точку монтирования тома на /zfs/=T4T3S
Меняю точку монтирвания T4T3S/:SB на /zfs/=T4T3S/:SB
ВСЁ! ТЕПЕРЬ Я НЕ МОГУ ИЗМЕНИТЬ ТОЧКУ МОНТИРОВАНИЯ T4T3S! - ОН БИЗИ!

#zfs inherit -rS mountpoint T4T3S/:SB
Меняет опять на /#SB, хотя у T4T3S - точка монтирования /zfs/=T4T3S

Как выйти из этого факапа? Если пропишу подтома явно - не смогу управлять томом, пока опять не вынесу точки монтирования. :(((

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

а во-вторых SATA-интерфейсы через USB недоступны (неможно посмотреть S.M.A.R.T., например)

Это если древний адаптер без UASP используется, да и там обычно с ключом "-d sat" читается.

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

а во-вторых SATA-интерфейсы через USB недоступны (неможно посмотреть S.M.A.R.T., например)

Это если древний адаптер без UASP используется, да и там обычно с ключом "-d sat" читается.

Да, проблемы были ещё во времена IDE, там даже -d sat не поможет.
Заказал на ОЗОНЕ USB3<->IDE адаптер, посмотрим что там.

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

Вот с IDE не знаю, я его последний раз очень давно видел, а через переходник SMART смотреть не пробовал.

Прямща в столе ещё 5 IDE винтов валяется, да в компе 1 стоит и в другом...

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

(главное не монтируй два раздела/датасета в одно место, задолбаешься с этим).

А поподробнее? Что значит: «в одно место»?

В один маунтпоинт. Например sda и sdb оба в /mnt.

У меня прекрасно смотрится. Времена, когда адаптеры не умели SMART - давно прошли.

Пока не сталкивался. Буду знать.

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

Переименовать датасет — вообще без проблем. А чтобы изменить точку монтирования без автоматического перемонтирования (которое не всегда возможно из-за device busy), нужно делать zfs set -u mountpoint=... pool/dataset/... — датасет останется примонтирован в старое место пока ты его не перемонтируешь через zfs unmount ... + zfs mount ... или не перезагрузишь машину.

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

Хотелось бы консультации от гуру zfs
Есть скажем том Safe в нём :pub и :Backup
На подтоме :pub есть подкаталог bkp - решил всё содержимое bkp - вынести в :Backup. Тупо, rsync&rm -rf с каждым каталогом внутри него.
В пуле было порядка 300Гб свободных. В результации операции - осталось 40Гб свободных. Но ещё оставалось 2 каталога, на ~400Gb
рсинкнул их на другой том, сделал rm -rf и места как было, так и осталось 40Gb.

Я теперь не представляю где искать свободное место?

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

гуру zfs

Я далеко не гуру. @anonymous-angler лучше шарил, но он всё. )=

На подтоме :pub есть подкаталог bkp - решил всё содержимое bkp - вынести в :Backup.

А если бы использовал датасеты вместо простых директорий, достаточно было бы сделать zfs rename Safe/:pub/bkp Safe/:Backup/bkp, эта операция мгновенна и не требует никаких манипуляций. Но так как у тебя просто директория, то да, придётся использовать штатные средства (tar/dd/rsync/cp), zfs тут уже не причём.

места как было, так и осталось 40Gb

Открытые дескрипторы, снапшоты, скрытые файлы/директории? Но вообще ZFS освобождает место не мгновенно, нужно немного подождать (коммит каждые пять минут, если ты ничего не менял).

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

гуру zfs

Я далеко не гуру. @anonymous-angler лучше шарил, но он всё. )=

Тем не менее, знаний больше чем у меня.

На подтоме :pub есть подкаталог bkp - решил всё содержимое bkp - вынести в :Backup.

А если бы использовал датасеты вместо простых директорий, достаточно было бы сделать zfs rename Safe/:pub/bkp Safe/:Backup/bkp, эта операция мгновенна и не требует никаких манипуляций. Но так как у тебя просто директория, то да, придётся использовать штатные средства (tar/dd/rsync/cp), zfs тут уже не причём.

Так я в датасет и выношу для этого. (Если конечно мы под этим имеем одно и то же. Датасет это подтом?)

места как было, так и осталось 40Gb

Открытые дескрипторы, снапшоты, скрытые файлы/директории? Но вообще ZFS освобождает место не мгновенно, нужно немного подождать (коммит каждые пять минут, если ты ничего не менял).

О! А говоришь не гуру ;) - я уже и забыл что я по результатам какого то треда, что то делал соснапшотами.

# zfs list -t snapshot
NAME                       USED  AVAIL     REFER  MOUNTPOINT
Safe@250328-2244            20K      -     31.5K  -
Safe/:1T@250328-2244        13K      -       24K  -
Safe/:Backup@250328-2244    22K      -       24K  -
Safe/:Dedup@250328-2244    679M      -     14.6G  -
Safe/:Media@250328-2244   7.61M      -     1.54T  -
Safe/:SB@250328-2244      2.94M      -     10.0G  -
Safe/:cry@250328-2244     3.59M      -      108G  -
Safe/:ecry@250328-2244    2.81M      -     84.5G  -
Safe/:encfs@250328-2244     14K      -       24K  -
Safe/:ext@250328-2244       13K      -       24K  -
Safe/:pub@250328-2244      663G      -     1.42T  -

Пойду гуглить - как это удалять.... Один корневой или все отдельно?

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

Пойду гуглить - как это удалять.... Один корневой или все отдельно?

В общем сделал кардинально: zfs destroy -r Safe@250328-2244
Получил 704Г свободных.

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

Так я в датасет и выношу для этого. (Если конечно мы под этим имеем одно и то же. Датасет это подтом?)

Грубо говоря да.

Пойду гуглить - как это удалять…

zfs destroy Safe/:...@...

Один корневой или все отдельно?

Так как снапшоты — сущности друг от друга не зависящие (от них зависят клоны, но я не буду тебя грузить лишним), то да, каждый в отдельности.

Если нужно удалить ВСЕ снапшоты, можешь сделать так:

zfs list -rt snapshot -o name | xargs -r -I % zfs destroy %

ВНИМАТЕЛЬНО проверь вывод команды до пайпа (zfs list -rt snapshot -o name), прежде чем скармливать список в xargs.

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

ВНИМАТЕЛЬНО проверь вывод команды до пайпа (zfs list -rt snapshot -o name), прежде чем скармливать список в xargs.

я предположил (на счет -r), рискнул и оно сделало всё как надо: zfs destroy -r Safe@250328-2244

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

я предположил (на счет -r)

Ключ -r при удалении снапшотов ни на что не влияет, кроме клонов (клоны зависят от снапшотов, это их "начальная точка"). В случае удаления датасетов (которые ты называешь подтомами) ключ -r удалит всё что внутри этого датасета — другие вложенные датасеты, снапшоты и снапшоты дочерних датасетов.


По поводу датасетов, томов, подтомов и прочего.

В ZFS сам пул (который в твоей терминологии "том") тоже является датасетом (в твоей терминологии — "подтом"). И клон, который создаётся из снапшота, тоже является датасетом.

Но датасет в ZFS — штука логическая: оно может не содержать данных и никуда не монтироваться. А может содержать (и обновляться) и при этом никогда не монтироваться. А может монтироваться как любая другая файловая система. Это как и Primary и Extended в MBR. (=

На примере твоей структуры:

Safe@250328-2244
Safe/:1T@250328-2244

Здесь Safe — название пула, но он уже имеет одноимённый корневой датасет, снапшот создаётся именно датасета Safe, не пула. Далее у тебя есть датасет Safe:/1T и его снапшот 250328-2244. Не смотря на то что все снапшоты у тебя зовутся идентично, это разные, независимые снапшоты данных в датасетах.

Например, ты можешь примонтировать Safe/:1T куда-нибудь и создать там директорию test, но эта директория не появится в датасете Safe. (= Хотя логически это возможно, достаточно смонтировать Safe/:1T внутрь Safe.

Можно даже извернуться и смонтировать Safe внутри Safe/:1T, но я так делать крайне не рекомендую.

Кстати, снапшоты тоже можно монтировать, но только в read-only.

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