테이프에 17TB를 써야 합니다.
ssh some_host 'tar -cz /' | dd bs=20b of=/dev/tape
물론 17Tb는 테이프 하나에 다 들어가지 않아서 "공간 없음" 오류가 발생하면 자동으로 바꿔줘야 합니다. 로봇 체인저가 있는데 "mtx next"가 잘 작동합니다. 테이프가 변경될 때 기록할 태그도 작성해야 하므로 이 이벤트에 대한 후크 스크립트를 작성하는 것을 선호합니다.
"tar"에는 "테이프 스크립트 변경" 기능이 있지만 다른 호스트에서 tar를 실행하고 있습니다.
또한 17TB는 로컬 호스트에 복사할 수 없습니다. sshfs는 옵션이 아니며 나쁘다. 그리고 거대한 백업 솔루션을 제공하지 마십시오.
나에게 필요한 것은 "공간 없음" 오류에 대해 일부 스크립트를 실행한 다음 계속할 수 있는 dd와 같은 파이프라인 도구입니다. 테이프 드라이브에는 특정 값이 필요하므로 블록 크기를 지정하는 것도 중요합니다.
답변1
설치가 가능한 경우평균 시간테이프 드라이브가 있는 시스템에서는 네트워크를 통해 드라이브에 tar 액세스 권한을 부여할 수 있습니다. 기본적으로 rmt는 tar
이 프로토콜을 사용하여 rsh
테이프 서버에서 실행되지만 GNU tar가 있는 경우 --rsh-command='ssh tapeserver /usr/sbin/rmt'
옵션을 제공할 수 있습니다.
LTO 테이프가 있는 경우 블로킹 요소 20은 테이프 스트리밍을 유지하기에는 너무 작을 수 있습니다. LTO4에서는 126을 사용했습니다. 하지만 일부 RMT 구현에서는 블록 전송 크기를 20개로 제한하므로 @schily의 구현을 살펴보는 것이 좋습니다.평균 시간.
귀하의 의견에
rmt는 좋은 선택인데, 시간을 어떻게 할당해야 할까요? 백업해야 할 서버가 20개 정도 있습니다. RMT를 사용하도록 대기열에 추가하려면 어떻게 해야 하나요?
각 서버에 대한 백업 명령을 셸 스크립트로 패키지화할 수 있다면 순차 처리를 보장할 수 있는 유연한 일괄 대기열 시스템이 있을 수 있지만 임시적인 것은 아무것도 모르고 여러분이 원하지 않는다는 것을 알고 있습니다. 여기에 많은 복잡성이 있습니다.
먼저 모든 서버에 SSH로 연결할 수 있는 시스템에서 다음을 시도해 볼 수 있습니다.
#!/bin/sh
lock=/var/run/doalldumps.lock
status=/var/run/doalldumps.status
for s in $(cat ~/servers)
do
(
flock -e 9
echo started $s at $(date) > $status
ssh $s -n command-to-do-backups
echo finished $s at $(date) > $status
) 9> $lock
done
또는 테이프 드라이브에 대한 액세스를 직렬화하는 간단한 방법은 flock
테이프 드라이브를 사용하여 서버의 파일을 잠그는 것입니다. tar --rsh-command
옵션 과 함께 사용할 수 있습니다 .
tar ... --rsh-command='ssh tapeserver flock -e /var/run/tape.lock /usr/sbin/rmt'