Раньше приходилось заново копировать после каждого обрыва. Но потом придумали механизм, основанный на bookmark’ах, который позволяет продолжить копирование с места разрыва.
Solaris (oracle zfs) – доступно в 11.4
# zfs snapshot rpool/test@test # zfs send -rvp rpool/test@test | zfs receive data/test estimating full stream rpool/test@test (size = 1G) estimated total stream size: 1G ^C # zfs receive -C data/test | zfs send -rvp -C rpool/test@test | zfs receive data/test found bookmark 1:8:c800000:c829000:f18d828d3d3e339a:0:5a1521180b65777a:9dc1777d for rpool/test@test send bookmark 8:c800000 in estimating full stream rpool/test@test (size = 825M) estimated total stream size: 825M ^C # zfs receive -C data/test | zfs send -rvp -C rpool/test@test | zfs receive data/test found bookmark 1:8:27c00000:27c33a00:f18d828d3d3e339a:0:5a1521180b65777a:9dc0dd7d for rpool/test@test send bookmark 8:27c00000 in estimating full stream rpool/test@test (size = 389M) estimated total stream size: 389M
Как видим, можно прерывать не один раз и каждый раз продолжит с точки останова. Тоже самое, если на другую машину:
# zfs send pool/diant@snap1 | ssh system2 zfs recv pool/hsolo ^C # ssh system2 zfs receive -C pool/hsolo | zfs send -C pool/diant@snap1 | ssh system2 zfs receive pool/hsolo
Linux/FreeBSD/Illumos/… (openzfs)
# zfs send pool/diant@snap1 | ssh system2 zfs recv pool/hsolo ^C system2# zfs get receive_resume_token pool/hsolo 1-d4f61d893-c0-789c636064000310a500c.... # zfs send -v -t 1-d4f61d893-c0-789c636064000310a500c.... pool/diant@snap1 | ssh system2 zfs recv -s pool/hsolo resume token contents: nvlist version: 0 object = 0x8 offset = 0x35a00000 bytes = 0x35c35630 toguid = 0xc237c4c4522d8045 toname = pool/hsolo@snap1 full send of pool/hsolo@snap1 estimated size is 1.16G TIME SENT SNAPSHOT 17:38:20 263M pool/hsolo@snap1 17:38:21 472M pool/hsolo@snap1
В обычном режиме это свойство пустое:
# zfs get receive_resume_token remotepool/to NAME PROPERTY VALUE SOURCE remotepool/to receive_resume_token - -
Если вы хотите запретить режим продолжения, нужно использовать ключ -A на принимающей стороне, то есть
zfs send pool/diant@snap1 | ssh system2 zfs recv -A pool/hsolo
3 коментарі “zfs: продолжаем send/receive после обрыва связи”
Здравствуйте
Извиняюсь, что немного не в тему.
1) Подскажите плз, если есть сервер Sparc T3-1 с системой Solaris 10, то чтобы обновиться до 11.4 мне нужно сначала установить с нуля на этот сервер Solaris 11?
2) Саппорт давно кончился на сервер, но нашёл на трекере Solaris 11.1 под спарк. Значит мне можно, по идее, установить его и потом обновиться до 11.4?
Здравствуйте.
11.4 не поддерживает Sparc T3-1 (подробнее, здесь https://docs.oracle.com/cd/E37838_01/html/E60973/glmru.html ), поэтому, максимум, что станет – 11.3. Берёте сразу 11.3 и ставите с нуля. Нету обновления с Solaris 10 на 11 – только полный переинстал с нуля с потерей всех данных. В вашем случае, можно даже попробовать перенести Solaris 10 в зону, а global zone оставить в 11.3, если там есть старое ПО, которое не работает с 11.
Да, уже перевёл Solaris 10 с ufs на zfs.
Пробовал накатить на свободные диски Solaris 11, и само собой выдало, то что платформа не поддерживается. После этого еще раз внимательнее глянул сайт и увидел, что там не T3-1 не в “supported platforms”, а в “not supported”.
Установил 11.3. Пытаюсь завести нативно там ems ericsson.
Если не взлетит, то попробую в зону с Solaris 10.
Спасибо!