LINUX.ORG.RU

zfs у кринку не лизе

 zfs ssh


0

1

Друзья, подскажите в чем проблема. Пытаюсь по ssh забрать снепшот zfs, не получается.
Есть рабочий сервер с Proxmox 7 (имя server). На нём имеется zfs-pool.
Есть бекап-сервер тоже с Proxmox 7 (имя backup-server). С него есть ssh-доступ по ключу к рабочему серверу.
Команда для репликации снепшота которую я запускаю на бекап-сервере:

root@backup-server:~# ssh server zfs send zfs-pool/ds.test@01 | zfs recv -F zfs-backup/ds.test
cannot receive: invalid stream (bad magic number)

Погуглил, но ничего особо не нашёл, правда в процессе поиска выяснилось что у меня разные версии zfs на хостах. Я сделал там и там zpool upgrade, однако итог получился неожиданным. zfs status больше не сообщает о возможности обновиться, но обновление прошло до разных версий:
root@server:~# zfs version
zfs-2.0.6-pve1~bpo10+1
zfs-kmod-2.0.6-pve1

root@backup-server:~# zfs version
zfs-2.0.5-pve1
zfs-kmod-2.0.6-pve1

репозитории у хостов одинаковые, стандартные, хосты обновлены. Но наверное дело и не в этом, потому что если отправлять снепшот с сервера на бекап-сервер то работает:

root@server:# zfs send zfs-pool/ds.test@01 | ssh backup-server zfs recv -F zfs-backup/ds.test
но не хочу чтобы у сервера был ssh-доступ к бекап-серверу

РЕШЕНИЕ:

на рабочем сервере в .bashrc была строка приветствия добавлена - echo 'Hello World!' При ssh подключении она попадала в поток и reсeive это поломало.



Последнее исправление: poedyatel (всего исправлений: 14)
Ответ на: комментарий от Harliff

Не не. Просто другой localhost с такой же ОС. Нужно забрать снепшот zfs по ssh, инициировав процедуру с бекап-сервера. Если делать отправку снепшота с рабочего сервера то получается, но это никуда не годится, у сервера не должно быть ssh к бекап-серверу.

mord0d, я немного почитал по ссылке, zap это в общем то тоже что и я делаю. Просто zfSnap у меня уже настроен и я репликацию через zrep прикручиваю со стороны бекап-сервера. Такая команда у меня работает:

root@server:# zfs send zfs-pool/ds.test@01 | ssh backup-server zfs recv -F zfs-pool/ds.test

но надо наоборот, send по ssh

poedyatel
() автор топика
Последнее исправление: poedyatel (всего исправлений: 7)

У тебя на бекап сервере загружен старый драйвер ZFS. Чтобы загрузить новый, надо перезагрузить сервер.

Black_Shadow ★★★★★
()

root@backup-server:~# ssh server zfs send zfs-pool/ds.test@01 | zfs recv -F zfs-backup/ds.test

cannot receive: invalid stream (bad magic number)

есть подозрение что у тебя recv пытается выполниться там же. может надо как-то так?:

(ssh server zfs send zfs-pool/ds.test@01) | zfs recv -F zfs-backup/ds.test

Minona ★★☆
()

у кринку не лизе

Бан за танцпол

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

Это на каком языке?

Это классика, надо знать.

Black_Shadow, да вроде перезагружался, но сделал ещё раз. Попробовал переустановить zfsutils. Не помогло. Версии по прежнему разные.

Minona, заклинание не сработало, вывод тот же.

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

А что-нибудь вообще приходит?

# ssh server zfs send zfs-pool/ds.test@01 > /tmp/output.txt

Прервать через пару секунд и

less /tmp/output.txt
anonymous-angler ★☆
()
Ответ на: комментарий от anonymous-angler

anonymous-angler, команда завершается сама мгновенно, выдавая файлик размером 47кб. В Нем несколько строк типа:

^@^@^@^@^@^@^@^@�˺�^B^@^@^@^Q^@^@^@^@^@^@^@�Qwa^@^@^@^@^B^@^@^@^L^@^@^@���-x�\�^@^@^@^@^@^@^@^@zfs-pool/ds.test@01^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^

Снепшот значительно больше, несколько мегабайт.

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

Что-то оно шлёт, так что дело наверно не в SSH.

А у вас /etc/apt/sources.list одинаковые на обеих системах? А /etc/apt/sources.list.d/*? Апгрейд системы как делали, apt dist-upgrade? ZFS апгрейдили только с помощью zpool upgrade ... или zfs upgrade ... - тоже?

anonymous-angler ★☆
()
Ответ на: комментарий от anonymous-angler

ZFS, кстати, не [особо] чувствительна при пересылке между разными версиями, я с 2.1.0 на 2.0.3 переслал снапшоты без проблем.

anonymous-angler ★☆
()
Ответ на: комментарий от anonymous-angler

anonymous-angler, да, sources.list и sources.list.d/ одинаковы. Апгрейдился через apt dist-upgrade. Выполнял и zpool upgrade и zfs upgrade.

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

Возможно это не твой случай, но когда-то давно году так в 2003, я внес в .bashrc (или .bash_login) сообщение типа

echo «Hi, It’s server … be carefull»

чтобы напоминало всякое разное.

Так вот вылезли косяки с ssh.

делаешь что-то вроде твоего

echo ‘add new line’ | ssh server ‘cat >> /etc/services’

а туда еще и моя строка ‘Hi, …’ попадает.

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

Ну разумеется это мой случай :) у меня там было:

echo '__|____|____|____|____|____|__
|____|____|____|____|____|____|
__|____|____|бицца|____|____|_
|____|____| галавой |____|____|
__|____|____|сюда|____|____|__
|____|____|____|____|____|____|
__|____|____|____|____|____|__' 

Убрал, жаль, мило смотрелось, но снепшоты пошли. Всем спасибо за помощь и полезные ссылки!

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

О как. Тогда очень странно что этого не было в файле, в котором было.

^@^@^@^@^@^@^@^@�˺�^B^@^@^@^Q^@^@^@^@^@^@^@�Qwa^@^@^@^@^B^@^@^@^L^@^@^@���-x�\�^@^@^@^@^@^@^@^@zfs-pool/ds.test@01^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^
anonymous-angler ★☆
()
Ответ на: комментарий от anonymous-angler

Это было там, но я подумал, что это должно быть по ssh и не стал цитировать. Только после слов futurama до меня дошло что это же вход zfs receive и ничего такого там быть точно не должно. Забавная ирония, оставил эту шутку на случай передачи хоста по наследству, а оказалось следовало самому начать с этой инструкции после less /tmp/output.txt :)

poedyatel
() автор топика
Последнее исправление: poedyatel (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.