테이프와 같은 디스크 사용

테이프와 같은 디스크 사용

우리는 데이터 보관 시스템을 구축하고 있으며 다양한 저장소 유형(테이프/디스크/클라우드)에 데이터의 중복 복사본을 저장하도록 선택하고 tar, zip 등 다양한 보관 형식을 사용할 수 있는 옵션도 갖고 싶습니다. .

많은 파일이 상당히 크며(50GB 이상) 일단 보관된 데이터는 수정되지 않습니다. 우리는 테이프가 이 사용 사례에 완벽하다는 것을 알았습니다. 우리는 각 아카이브 파일의 블록 오프셋을 데이터베이스에 저장하고, 테이프가 거의 가득 차면 모든 파일 블록 오프셋의 인덱스를 끝에 기록하여 이를 "완결"합니다(그래서 자체 설명적임).

포맷되지 않은 하드 드라이브(즉, 파일 시스템 없이)로 동일한 작업을 수행하고 블록 장치로 읽고 쓸 수 있는지 궁금합니다. 첫 번째 블록부터 시작하여 디스크에 아카이브를 추가하고 디스크가 거의 가득 찰 때까지 즉시 하나의 아카이브를 다른 아카이브에 씁니다. 이렇게 하면 파일 조각화 문제를 방지하고, 디스크 용량을 최대한 활용하고, 읽기/쓰기 속도를 높이고, 필요할 때 데이터 복구를 더 쉽게 할 수 있습니다.

테이프를 사용하면 기록된 데이터의 끝을 쉽게 찾을 수 있는 반면, 디스크를 사용하면 마지막으로 사용된 블록의 번호를 기록하고 다음 블록부터 다음 아카이브 쓰기를 시작해야 한다고 생각합니다. 이전에 작성된 데이터를 덮어쓰지 않도록 이를 엄격한 방식으로 계산할 수 있는 방법을 알고 싶습니다.

dd를 사용하면 검색 옵션을 사용하면 이것이 매우 간단할 것이라고 생각했습니다. 그러나 우리는 파일을 중간 아카이브(임시 디스크에 있음)에 복사하는 데 소요되는 시간을 피하기 위해 아카이브 도구(tar, zip 등)를 사용하여 데이터를 디스크에 직접 기록하고 싶습니다(테이프를 사용하는 것처럼). ), 그런 다음 dd를 사용하여 이 파일을 아카이브 디스크에 씁니다. 그러나 tar, zip에는 dd와 같은 옵션이 없습니다. 내 생각엔 그들은 단지 블록 장치를 열고 처음부터 쓰는 것 같아요.

이전에 비슷한 일을 해본 적이 있거나 이 아이디어에 대해 다른 의견/생각을 갖고 있는 사람이 있는지 궁금합니다. 특히 주의해야 할 잠재적인 함정이 있습니다. 또한 아무것도 쓰기 전에 드라이브를 0으로 채워야 합니까?

답변1

"tar"는 선택적으로 표준 출력으로 출력할 수 있으며, 그런 다음 다른 프로그램(예: "dd")으로 파이프하여 원하는 장치로 이동할 수 있습니다.

수년 전에 저는 테이프와 광 백업 메커니즘을 제조하는 회사에서 근무했습니다. 광학 장치용 드라이버를 작성하면 나머지 백업 소프트웨어에 대해 테이프 장치처럼 작동합니다.

관련 정보