pg_probackup icon indicating copy to clipboard operation
pg_probackup copied to clipboard

работа с ftp&sftp

Open zhendosina opened this issue 5 years ago • 13 comments

Привет! Во-первых хочу сказать спасибо за ваши труды! Где-то в соседнем разделе натыкался, что pg_probackup умеет работать со всеми протоколами, поддерживаемыми файловыми api. Вопрос следующий: можно ли заставить работать его под windows с sftp, или хотя бы ftp? Получается под windows по ssh базы не забрать, то есть probackup должен работать непосредственно на сервере баз данных, а вот дальше вопрос: как 200к файлов выгружать offsite? Казалось бы очевидное решение - дать возможность разместить репозиторий пробекапа где-нибудь за пределами сети, но завести ни с ftp ни с sftp у меня не вышло без костылей, в виде rclone :( Отсюда вытекает второй вопрос: Не планируется ли дать возможность архивировать сами директории бекапов? Было бы удобно, синхронизировать не сотни тысяч файлов, а несколько десятков zip архивов. Если бы пробекап мог прозрачно сам обращаться к таким архивам. Спасибо!

zhendosina avatar Sep 02 '20 07:09 zhendosina

Добрый день. К сожалению, через sftp работать не получится, потому что нам необходимо запускать агента на удаленной машине.

Получается под windows по ssh базы не забрать, то есть probackup должен работать непосредственно на сервере баз данных, а вот дальше вопрос: как 200к файлов выгружать offsite? Казалось бы очевидное решение - дать возможность разместить репозиторий пробекапа где-нибудь за пределами сети, но завести ни с ftp ни с sftp у меня не вышло без костылей, в виде rclone :(

не рассматривали вариант с NFS ?

Не планируется ли дать возможность архивировать сами директории бекапов? Было бы удобно, синхронизировать не сотни тысяч файлов, а несколько десятков zip архивов. Если бы пробекап мог прозрачно сам обращаться к таким архивам. Спасибо!

Планируется в рамках добавления поддержки s3.

Вообще ssh можно запустить и на Windows, особенно на последних версиях, где есть wsl, но мы этот вариант пока не тестировали, соответственно, и не саппортим его пока.

gsmolk avatar Sep 02 '20 15:09 gsmolk

Добрый день. К сожалению, через sftp работать не получится, потому что нам необходимо запускать агента на удаленной машине.

Хм, а с фтп? Сейчас у меня виндовый сервер, и я использую rclone для синхронизации репозитория пробекапа и удаленного фтп сервера, гипотетически это работает неплохо, но хотелось бы не иметь локальных бекапов, чтобы внезапно не обнаружить, что постгре лег из-за нехватки места на диске. Учитывая что с UNC пути работают исправно, можно было бы и использовать что-то вида -B \NAS\RESOURCE\BACKUP_DIR но решение не очень хорошо для сценария, когда место хранения находится снаружи.

не рассматривали вариант с NFS ?

NFS вроде бы неплохой вариант, но как мне кажется маловато подходит для сценария отправки бекапов за пределы периметра

Планируется в рамках добавления поддержки s3.

s3 это замечательно, а упаковка каждого бекапа в отдельный архив еще замечательней 👍

Вообще ssh можно запустить и на Windows, особенно на последних версиях, где есть wsl, но мы этот вариант пока не тестировали, соответственно, и не саппортим его пока.

Тоже об этом думал уже, но что-то страшно это использовать для реальной эксплуатации.

zhendosina avatar Sep 02 '20 16:09 zhendosina

А какой версии у Вас Windows?

gsmolk avatar Sep 02 '20 23:09 gsmolk

А какой версии у Вас Windows?

server 2019

zhendosina avatar Sep 03 '20 05:09 zhendosina

А бэкапная машина тоже на Server 2019?

gsmolk avatar Sep 03 '20 08:09 gsmolk

бекапы по sftp улетают на NAS через rclone, доступный по внешнему адресу, и находящийся за периметром. :( И да, выгружать сотни тысяч маленьких файлов наружу это прямо скажет неудобно. Но справедливости ради оно все работает и каши не просит в таком сценарии, единственная реальная проблема - это необходимость наличия копии репозитория локально на сервере субд

zhendosina avatar Sep 03 '20 09:09 zhendosina

А какую ф-цию выполняет rclone в данной схеме? Он запускается на виндовой машине и по sftp загружает файлы на NAS?

gsmolk avatar Sep 09 '20 20:09 gsmolk

А какую ф-цию выполняет rclone в данной схеме? Он запускается на виндовой машине и по sftp загружает файлы на NAS?

Да

zhendosina avatar Sep 10 '20 05:09 zhendosina

Вас бы устроило, если бы мы подключилась по ssh к NAS и лили бэкап сразу на него?

gsmolk avatar Sep 10 '20 07:09 gsmolk

Вас бы устроило, если бы мы подключилась по ssh к NAS и лили бэкап сразу на него?

Концептуально - да. Вопрос реализации) Нативного ssh клиента у мс же нету, на сколько я знаю. Хотя для унификации пробекапа, как мне кажется, лучше было бы все же сразу sftp поддерживать. Было бы бОльше сценариев использования.

zhendosina avatar Sep 10 '20 07:09 zhendosina

Нативного ssh клиента у мс же нету, на сколько я знаю.

Вроде как есть: https://blogs.windows.com/windowsdeveloper/2018/12/11/windows-server-2019-includes-openssh/

Хотя для унификации пробекапа, как мне кажется, лучше было бы все же сразу sftp поддерживать

Тут встает вопрос, может ли sftp дать нам аналогичные гарантии: эксклюзивное создание файла, fsync, атомарный rename. Надо изучить вопрос.

gsmolk avatar Sep 10 '20 07:09 gsmolk

Вроде как есть: https://blogs.windows.com/windowsdeveloper/2018/12/11/windows-server-2019-includes-openssh/

О похоже wsl подъехал окончательно)

Тут встает вопрос, может ли sftp дать нам аналогичные гарантии: эксклюзивное создание файла, fsync, атомарный rename. Надо изучить вопрос.

Насколько я понимаю sftp это и есть ssh, в плане транспорта

zhendosina avatar Sep 10 '20 08:09 zhendosina

Насколько я понимаю sftp это и есть ssh, в плане транспорта

Вообще надо посмотреть, если мы сможем использовать sftp подсистему, по-прежнему полагаясь на ssh бинарь, то может даже это будет не сложно запилить, но этим имеет смысл заниматься только после https://github.com/postgrespro/pg_probackup/issues/233

gsmolk avatar Sep 10 '20 16:09 gsmolk