우분투 대화방에서 문제를 제기 한 다른 사용자를 대신 하여이 질문을 하고 있습니다.
저널링 파일 시스템은 정전이 발생해도 손상이 발생하지 않도록 보장합니까?
이 답변이 파일 시스템에 따라 달라지면 손상으로부터 보호 할 수있는 것과 그렇지 않은 것을 표시하십시오.
우분투 대화방에서 문제를 제기 한 다른 사용자를 대신 하여이 질문을 하고 있습니다.
저널링 파일 시스템은 정전이 발생해도 손상이 발생하지 않도록 보장합니까?
이 답변이 파일 시스템에 따라 달라지면 손상으로부터 보호 할 수있는 것과 그렇지 않은 것을 표시하십시오.
답변:
보장은 없습니다. 저널링 파일 시스템은 복원력이 뛰어나고 부패하기 쉽지만 면역력은 없습니다.
모든 저널은 최근 파일 시스템에 수행 된 작업 목록입니다. 중요한 부분은 작업이 수행 되기 전에 분개가 작성된다는 것입니다 . 대부분의 작업에는 여러 단계가 있습니다. 예를 들어 파일을 삭제하면 파일 시스템의 목차에서 파일 항목을 삭제 한 다음 드라이브의 섹터를 사용 가능한 것으로 표시해야합니다. 두 단계 사이에 문제가 발생하면 저널 파일 시스템은 즉시 모든 것을 일관성있게 유지하기 위해 필요한 정리를 수행하고 수행 할 수 있습니다. 저널링되지 않은 파일 시스템의 경우에는 볼륨의 전체 내용을보고 오류를 찾아야합니다.
이 저널링은 저널링하지 않는 것보다 손상이 덜 발생하기는하지만 여전히 손상이 발생할 수 있습니다. 예를 들어, 하드 드라이브가 기계적으로 오작동하거나 저널 자체에 대한 쓰기가 실패하거나 중단 된 경우입니다.
저널링의 기본 전제는 저널 항목을 작성하는 것이 일반적으로 실제 트랜잭션보다 훨씬 빠르다는 것입니다. 따라서 OS가 (저널) 쓰기를 주문하는 것과 그것을 수행하는 하드 드라이브 사이의 기간은 일반적인 쓰기보다 훨씬 짧습니다.
아니.
메타 데이터 저널링이라고하는 가장 일반적인 저널링 유형은 데이터가 아닌 파일 시스템의 무결성 만 보호합니다. 기본 모드 xfs
에서는 및 ext3
/ ext4
가 포함 data=ordered
됩니다.
비 저널링 파일 시스템에서 충돌이 발생 fsck
하면 다음 부팅시 이를 검사 합니다. 파일 시스템에서 fsck
모든 inode 를 스캔 하여 사용 된 것으로 표시되었지만 도달 할 수없는 (즉, 파일 이름이없는) 블록을 찾고 해당 블록을 사용하지 않는 것으로 표시합니다. 이렇게하는 데 시간이 오래 걸립니다.
메타 데이터 저널링 파일 시스템을 사용하면을 수행하는 대신 fsck
변경 도중에 어떤 블록이 있는지 알고 있으므로 전체 파티션을 검색하지 않고도 사용 가능한 것으로 표시 할 수 있습니다.
데이터 저널링이라고하는 덜 일반적인 유형의 저널링이 있는데, ext3
이 data=journal
옵션을 사용하여 마운트하면 어떻게 됩니다 .
논리 연산 목록뿐만 아니라 각 쓰기의 전체 내용을 저널에 기록하여 모든 데이터를 보호하려고합니다. 그러나 데이터를 두 번 쓰기 때문에 속도가 훨씬 느려질 수 있습니다.
다른 사람들이 지적했듯이 하드 드라이브가 운영 체제에 데이터를 저장했다는 사실을 하드 드라이브의 캐시에 그대로 두었을 때 하드 드라이브가 운영 체제에 알릴 수 있기 때문에 이것이 보장조차되지 않습니다.
자세한 정보는 Wikipedia Journaling File System 기사 및 ext4 문서 의 데이터 모드 섹션을 참조하십시오 .
data=journal
, 기능으로는 전혀 이해 가되지 않습니까?
파일 시스템은 전원 장애가 발생하면 하드웨어가 무엇을할지 모르기 때문에 파일 시스템의 일관성을 보장 할 수 없습니다.
하드 드라이브가 쓰기를 위해 데이터를 버퍼링하지만 OS에 데이터를 썼으며 적절한 쓰기 장벽을 지원하지 않는다고 알려 주면 이전 쓰기가 플래터에 닿지 않은 경우 비 순차적 쓰기가 발생할 수 있습니다. 있다. 자세한 내용은 이 serverfault 응답 을 참조하십시오.
또한 자기 HDD에서 헤드의 위치는 전자석으로 제어됩니다. 쓰기 도중에 전원 공급이 중단되면 헤드가 이동하는 동안 일부 데이터가 계속 기록되어 파일 시스템에 쓰려고하지 않은 블록의 데이터가 손상 될 수 있습니다.
대부분의 경우 대답은 다음과 같습니다.