TN Scale перенос файлов между папками групп

Tony24

Cadet
Joined
Nov 6, 2023
Messages
6
Всем доброго дня.
Я новичок в теме TrueNAS и вопрос будет крайне нубский, но я прогуглил на ru\eng сегменте и только после понимания, что проблема точно на моей стороне уже пишу вопрос тут.

Суть проблемы:
Есть 2 юзера и 1 группа. Допустим юзер А, юзер Б и группа G1. Доступы выданы всем на всё по максимуму.
Все настройки пула(1шт)\шар(1шт)\смб\acl были взяты с лучших (что нашёл) гайдов гуру ютуба. Никаких странных настроек, всё довольно стандартно.
Заходим на сетевой диск диск(SMB) в папку юзер А, копируем\переносим файлы в папку группы G1 и....
И проходит 5% загрузки, потом всё встаёт колом. Через минуту отваливается интернет соединение на веб интерфейсе TN и отключается сетевой диск.
Ничего не поднимается, необходимо с клавиатуры самого физического TN выбрать ребут. После ребута всё восстанавливается.

Прогуглив половину интернета на тему "почему переброс между папками роняет тру нас" и "как перемещать файлы между папками" я не нашёл абсолютно ничего. Я так понимаю, как и любая другая система она должна "просто работать" и ни у кого не возникало подобной нелепой ошибки, либо она как то легко устраняется, что никто не стал про это писать. Ранее, была крайняя необходимость перекинуть около 5тб критически важного материала на NAS, всё закинулось успешно. Все файлы воспроизводятся сразу с диска, скорость отличная, ничего не предвещало беды. Позже, я создал общую шару и группу, пытаюсь перенести всё в неё.

Вот тут есть предположение, что проблема в... разных логических слоях? я не совсем уверен как это работает.
Если зайти в Sharing\Windows shares (SMB) то увидим следующую структуру.

/mnt
----pool
--------Шара, которую я создал под общак и сделал под неё группу. (ACL)
--------Домашняя шара юзера А (создалась при создании юзера)
--------Домашняя шара юзера Б (создалась при создании юзера)

Все "три шары" находятся на одном уровне. То есть я перекидываю из юзера А в общую шару и это может вызвать падение всего соединения?
Проблемы с доступами? Я хоть и выдал доступы всем ко всему, но под юзером А я не могу создать ничего в папке юзера Б, что тоже меня сильно смущает.
Немножко страшновато за данные, я конечно могу еще скинуть их обратно на ПК и залить уже в общую шару (так работает, проверял), но это же бред.
Ни за что не поверю что это так работает.

Тесты:
Перебрасывал (копированием) файл 300мб = падение.
Перебрасывал (копированием) папку с ~100 файлов по 5-12мб. Перекинулось около 15 файлов и падение.
Пытался удалить эти 15 файлов, что бы попробовать еще раз. Удалились 14, а 1 не хочет т.к. его что то использует, но только вот что?

Собственно, суть вопроса. Как мне из домашней шары юзера А перекинуть много много тяжёлых файлов в общую шару и сделать это по человечески?
И подскажите пожалуйста, где и что пошло не так?

Заранее всем спасибо за конструктивные ответы.

Версия TrueNAS-13.0-U5.3
3 диска в raidz1
1 ssd под операционку через юсб.
Windows 10 версия 21H1 (сборка 19043. 1052)
 

mav@

iXsystems
iXsystems
Joined
Sep 29, 2011
Messages
1,428
Сложно что-то диагностировать без какой-либо технической информации (логи, ошибки, и т.п.). Копирование между папками на одном сервере отличается тем, что в случае SMB и NFS выполняется на стороне сервера без передачи данных по сети туда и назад. Это немного необычная ситуация, но должна нормально работать. В ZFS 2.2 она вообще перестанет копировать данные, спасибо Block Cloning в ZFS, а только переьрасывать указатели на блоки.
 

Tony24

Cadet
Joined
Nov 6, 2023
Messages
6
Сложно что-то диагностировать без какой-либо технической информации (логи, ошибки, и т.п.). Копирование между папками на одном сервере отличается тем, что в случае SMB и NFS выполняется на стороне сервера без передачи данных по сети туда и назад. Это немного необычная ситуация, но должна нормально работать. В ZFS 2.2 она вообще перестанет копировать данные, спасибо Block Cloning в ZFS, а только переьрасывать указатели на блоки.
Спасибо! Вы уже очень сильно помогли. Я не стал кидать лог, поскольку даже не представляю что именно там может помочь.

Вот новая информация:
На Макбуке(возможно это важно) по SMB скачивал файл с NAS.
Одновременно с этим перебросил из шары в шару документы, естественно всё упало, веб интерфейс и диск, НО на маке продолжало скачиваться как ни в чём не бывало.
Тут закрались сомнения, что проблема на стороне виндус пк, но это не точно.
Мак скачивал дальше до победного, а я даже восстановив доступ (в этот раз поднялся сам через пару минут) не смог удалить часть уже переброшенных копированием файлов. Ответ тот же - занято какой то программой.
Отключить\подключить диск не возымело эффекта. Ребут компа тоже результатов не дал. Только ребут NASа помог и файлы удалил.
Если перебросить файлы на ПК, а потом залить в другой датасет (об этом ниже), то всё отлично. Никаких проблем вообще.


Вопрос:
Если Вы говорите, что переброс между папками на 1 сервере происходит без передачи данных туда сюда, то как насчёт датасетов?

По сути датасета тут 2.
Это "корень", который создаётся вместе с пулом. В нём живут шары юзер А и юзер Б.
Потом есть 2 датасет, который содержит шару G1.

Я не разобрался в теории, не уверен есть ли логический барьер между датасетами\шарами и прочим.
То есть сейчас я перекидываю не просто между папками, а между двумя датасетами. Как это работает?
Но почему тогда отрубается виндус...
 

mav@

iXsystems
iXsystems
Joined
Sep 29, 2011
Messages
1,428
Block Cloning в ZFS 2.2 сможет избежать копирований в пределах одного ZFS пула, за исключением особых случаев типа шифрования. В отсутствие Block Cloning сервер выполняет копирование самостоятельно, просто читая в одном месте и записывая в другом. В этом случае самому копированию все равно на каких датасетах данные находятся, но я не помню каковы ограничения со стороны NFS и SMB протоколов, позволяют ли они копировать между шарами.
 

Tony24

Cadet
Joined
Nov 6, 2023
Messages
6
Block Cloning в ZFS 2.2 сможет избежать копирований в пределах одного ZFS пула, за исключением особых случаев типа шифрования. В отсутствие Block Cloning сервер выполняет копирование самостоятельно, просто читая в одном месте и записывая в другом. В этом случае самому копированию все равно на каких датасетах данные находятся, но я не помню каковы ограничения со стороны NFS и SMB протоколов, позволяют ли они копировать между шарами.
В таком случае, как мне поступить? Может быть перенести через консоль?
Через другой протокол подсоединиться? А в общем вариантов то и нет больше :(
 

mav@

iXsystems
iXsystems
Joined
Sep 29, 2011
Messages
1,428
Наш SMB эксперт в отпуске на этой неделе. Я ему ссылку скинул, может чего скажет как вернется. Я бы попытался создать debug архив (System -> Advanced -> Save Debug) после какого-то числа копирований пока Web-интерфейс еще жив (чем ближе к моменту -- тем лучше), надеюсь там что-то будет видно. В идеале бы после того, но если интерфейс уже мертв, то прийдется делать это руками через консоль через запуск ixdiagnose. В идеале после этого создать тикет в jira с описанием проблемы и приложением, но они Россию блокируют, потому как вариант -- скинуть ссылку мне в личку, я посмотрю.
 

Tony24

Cadet
Joined
Nov 6, 2023
Messages
6
Наш SMB эксперт в отпуске на этой неделе. Я ему ссылку скинул, может чего скажет как вернется. Я бы попытался создать debug архив (System -> Advanced -> Save Debug) после какого-то числа копирований пока Web-интерфейс еще жив (чем ближе к моменту -- тем лучше), надеюсь там что-то будет видно. В идеале бы после того, но если интерфейс уже мертв, то прийдется делать это руками через консоль через запуск ixdiagnose. В идеале после этого создать тикет в jira с описанием проблемы и приложением, но они Россию блокируют, потому как вариант -- скинуть ссылку мне в личку, я посмотрю.
Извиняюсь за задержку, как смог полез в save debug.
Мой лог происходящего.
1. Запустил копирование между датасетами.
2. Нажал на дебаг, но веб интерфейс лёг. Через секунд 5 поднялся. Копирование, как и ожидалось, просто зависло мёртвым (файлов 15 общим весом в 35гб).
3. Скачал дебаг.

Я не спец, вообще впервые смотрю на дебаг, но заметил ms_id 324, smp_length 552, unflushed_allocs 0, unflushed_frees 0, freed 0, defer 0 + 0, unloaded time 22906 ms, loading_time 3 ms, ms_max_size 17178050560, max size error.
Возможно там еще что то есть. Архив прикрепляю.
P.S. в этот раз решил пусть это копирование висит до победного. Так вот, оно через мин 10 прокашливается сразу мегабайт на 200 или около того и опять зависает. По какой то причине в этот раз ничего не умерло "насовсем", но в целом это всё равно очень печально.
P.P.S. - возможно это важно. Я перекидываю всё через утилитку TeraCopy, но так же пробовал через виндовс стандартными функциями - результат не меняется. Но всё же...
P.P.P.S - не будет хэпи енда, через 40 минут диск отвалился, вэб интерфейс отвалился, всё накрылось. Решается только перезагрузкой NAS сервера с клавиатуры.
 

Attachments

  • debug-truenas-20231120201748.tgz
    296.8 KB · Views: 53
Last edited:

Tony24

Cadet
Joined
Nov 6, 2023
Messages
6
Ребята? Может кто помочь? Кто понимает в чем заключается смысл max size error?
 

mav@

iXsystems
iXsystems
Joined
Sep 29, 2011
Messages
1,428
Ребята? Может кто помочь? Кто понимает в чем заключается смысл max size error?
Это ничего (плохого) не значит. Это обрезок более длинного сообщения:
Code:
        zfs_dbgmsg("metaslab_load: txg %llu, spa %s, vdev_id %llu, "                             
            "ms_id %llu, smp_length %llu, "                                                     
            "unflushed_allocs %llu, unflushed_frees %llu, "                                     
            "freed %llu, defer %llu + %llu, unloaded time %llu ms, "                             
            "loading_time %lld ms, ms_max_size %llu, "                                           
            "max size error %lld, "                                                             
            "old_weight %llx, new_weight %llx",
 

Tony24

Cadet
Joined
Nov 6, 2023
Messages
6
Еще одно наблюдение.
Решил я попробовать сделать всё через консоль. Путём команды mv попробовал перенести 1 видео файл как пробный. Заругалось permission, я зашёл в настройки и выдал пользователю root = sudo true. Потом через sudo mv получилось мгновенно перекинуть файл! Радости не было предела! Но вот дальше меня ждало разочарование.
Попробовал перекинуть папку с кучей файлов на 48.5 гигов.
sudo mv выдаёт мне
mv: chmod: файл пункт назначения Operation not permitted на каждый файл внутри папки.
При этом, они всё же "копируются". То есть в другом шаре появилась эта папка и файлы начали копироваться.
Когда я перемещал 1 видео файл он как и должен был вырезался и вставился в место назначения. Тут же копии, причём удалось скопировать 15.7гб из 48.5 , потом видимо он повис, по командной строке не очевидно, но похоже повис.
В общем, я уже и так не знал что делать, тут вроде бы появилась возможность просто перекинуть всё через консоль и забыть как страшный сон, но опять на том же месте.
Буду рад любым идеям.

update:
Перекидывал папку в 13гигов, та же история, но всё закончилось нормально. Перекинулись все 13гигов.
Судя по времени и по обновлению командной строки, он как бы не "перемечает файлы", а прям реально их копирует. В итоге 13гигов тут и 13 там. Быстрее, конечно, чем перекидывать сначала на комп, потом в другую шару. Но это всё таки не дело...
 
Last edited:
Top