마운트 해제된 장치를 tar 파일에 백업

마운트 해제된 장치를 tar 파일에 백업

저의 전반적인 목표는 Amazon Web Services(AWS)에서 무언가를 하는 것이지만, 구체적인 질문은 AWS와 관련이 없습니다.

배경

내 목표는 사용하는 것입니다포장기보안 강화를 위해 다양한 파일 시스템에 여러 경로가 탑재된 Amazon 머신 이미지(AMI)를 생성합니다. 예를 들어, /tmp이 옵션은 파일 시스템에 설치하는 데 사용해야 합니다 noexec.

AMI를 만들기 위해 자동화된 프로세스를 만들고 싶다는 것은 인스턴스 자체에서 재설치 명령을 실행할 수 없다는 것을 의미하므로 대신 Packer를 사용했습니다.아마존 chroot 빌더. 이는 EC2 인스턴스를 실행하고 해당 EC2 인스턴스에서 Packer를 실행한다는 의미입니다. 그러면 Packer는 소스 AMI와 함께 사용되는 EBS 스냅샷에서 가져온 EBS 볼륨을 탑재합니다. 이제 마운트된 EBS 볼륨에서 몇 가지 작업을 수행해야 합니다.

내 질문

첫 번째 단계는 내가 마운트한 블록 장치의 전체 백업을 만드는 것이었습니다 /mnt/ebs.

이 섹션의 훌륭한 데모를 기반으로 합니다.https://youtu.be/8h_Y-L1Q8xI?t=13m47s, 스피커에서는 먼저 장치를 제거한 다음 사용할 것을 권장합니다 tar.

그는 이런 일련의 작업을 반복합니다.나중에 데모에서. 내 구체적인 질문은 다음과 같습니다. 장치가 처음에 설치되지 않은 경우 장치 내용의 tar 백업을 어떻게 생성합니까? 또한 일관성 있는 상태를 유지하고 백업 중에 더 이상 쓰기가 발생하지 않도록 하기 위해 먼저 마운트를 해제하는 것이 목적입니까, 아니면 다른 것입니까?

umount -l그런데, fuser바쁜 프로세스를 사용하거나 확인했음에도 불구하고 해당 옵션 없이는 장치를 마운트 해제할 수 없는 것 같습니다. lsof하지만 해당 세부 정보는 다른 질문을 위해 남겨 두겠습니다.

저는 CentOS와 유사하지만 systemd를 사용하지 않는 Amazon Linux를 사용하고 있습니다.

답변1

아니요. tar를 사용하여 마운트 해제된 파일 시스템을 백업할 수 없습니다.

Tar가 백업을 기다리고 있습니다.문서, 그러나 예상한 대로 파일 시스템을 마운트 해제한 후에는 이러한 파일을 tar할 수 없습니다.

발표자는 다음과 같이 말합니다.

...먼저 모든 것을 제거합니다.Packer가 방금 설치했습니다....

그는 Packer가 무엇을 설치하는지 말하지 않았지만 스크립트의 스크린샷을 자세히 살펴보십시오. 여기에는 /proc 및 /dev와 같은 다양한 마운트 지점이 제외되어 있습니다. 이것은 의미한다무엇실제로 설치된 것입니다. 바인드 마운트된 가짜 파일 시스템이 있는 가짜 루트라고 가정합니다.

tar 기반 백업을 생성하는 이상적인 방법은 파일 시스템을 읽기 전용으로 마운트하는 것입니다. 목적은 백업 프로세스 중에 파일 시스템의 무결성을 유지하는 것입니다. 백업 프로세스 중에는 변경을 원하지 않습니다.

문제의 EBS 볼륨의 스냅샷을 찍어 다른 곳에 읽기 전용으로 마운트한 다음 거기에서 tar 아카이브를 생성할 수 있는 것 같습니다.

관련 정보