온라인 시스템에 btrfs 루트 파일 시스템이 있다고 가정합니다. 파일 시스템을 스냅샷이 있는 이전 상태로 복원하려고 합니다.
remount /dev/sdaX / -o remount,subvol=snapshots/Y
참고로 저는 테스트 시스템에서 이 작업을 수행했는데 실제로는 그렇습니다.아니요일하다. 명령은 오류 없이 반환되지만 마운트된 하위 볼륨은 동일합니다.
이 경우했다일하면 결과는 어떻게 될까요? 내 생각엔 열린 파일 설명자가 여전히 이전 하위 볼륨을 가리키므로 조심하지 않으면 새 하위 볼륨에서 "데이터 손실"이 발생할 가능성이 있는 것 같습니다. 열려 있는 모든 파일 설명자를 닫았다가 다시 여는 문제가 발생한다고 가정하면 이것이 실현 가능할까요? 아니면 다른 유형의 질문이 있나요?
답변1
아니요, 불가능합니다. 모든 IO를 새 하위 볼륨으로 리디렉션할 수 있더라도 응용 프로그램에 액세스하는 동안 응용 프로그램에서 파일을 변경하면 필연적으로 파일이 손상되고 응용 프로그램이 혼란스러워집니다. 문제의 파일이 프로그램인 경우 프로그램이 통제 불능 상태에 빠지게 되며 행운이 따른다면 충돌이 발생합니다.