데이터 손실 또는 손상을 최소화하기 위해 ext3 파일 시스템에 사용할 마운트 옵션은 무엇입니까?


15

루트 파일 시스템에 initramfs를 사용하지만 컴팩트 플래시 IDE 드라이브에 마운트 된 사용자 지정 ext3 파티션을 사용하는 내장 설정이 있습니다. 정전시 데이터 무결성이 전체 설정에서 가장 중요한 요소이므로 다음 옵션을 사용하여 마운트했습니다 ( /etc/fstab파일 의 항목 아래에 있음).

<file system> <mount pt> <type> <options>                         <dump><pass>
/dev/sda2     /data      ext3   auto,exec,relatime,sync,barrier=1 0     2

인터넷에서 책을 읽음으로써 이러한 옵션이 나왔습니다. 내가 걱정하는 것은 내용이 /proc/mounts다음 을 제공한다는 것입니다.

/dev/sda2 /data ext3 rw,sync,relatime,errors=continue,user_xattr,acl,
barrier=1,data=writeback 0 0

내가 읽은 내용은 data=journal데이터 손상에 대한 최상의 보호 기능을 제공하기 때문에 마운트 옵션 을 사용하고 싶다는 것 입니다. 그러나 특정 ext3 옵션에 대한 매뉴얼 페이지 mount에서 writeback 옵션에 대해 다음과 같이 말합니다.

데이터 순서가 유지되지 않습니다. 메타 데이터가 저널에 커밋 된 후 데이터가 기본 파일 시스템에 기록 될 수 있습니다.
이것은 최고 처리량 옵션이라고 소문이 있습니다. 내부 파일 시스템 무결성을 보장 하지만 충돌 및 저널 복구 후 파일에 오래된 데이터가 표시 될 수 있습니다.

나는 이것에 대해 매우 혼란스러워한다. 맨 페이지는 파일 시스템 무결성을 위해 data=writeback옵션을 지정 하고 mount싶지만 내가 찾은 대부분의 다른 참조 (내장 리눅스에 출판 된 책을 포함하여)는 내가 사용해야한다고 제안한다 data=journal. 내가 사용하기에 가장 좋은 방법은 무엇입니까? 쓰기 속도는 전혀 문제가되지 않습니다. 데이터 무결성은 중요합니다.


1
data = journal에 대한 지침을 제공합니다 . RH는 해당 유형의 주문 만 지원하므로 다른 것보다 사용하는 경향이 있습니다.
slm

2
실제로 @sim는 말한다 data=ordered: P
sourcejedi

답변:


7

writeback언급 만한다는 사실에 오해하지 마십시오 internal filesystem integrity.
ext3사용 여부 journal, ordered또는 writeback, 파일 시스템 메타 데이터는 항상 저널링 수단 내부 파일 시스템 무결성이.

데이터 모드는 어떻게 제어 할 수있는 방법을 제공 일반 파일 시스템에 기록 된 데이터를.
에서는 writeback모드, 메타 데이터의 변경은 제 일지에 기록하고,이 기록 블록이 커밋된다. 저널이 업데이트 된 후 메타 데이터 및 데이터 쓰기가 진행될 수 있습니다. data=writeback 심각한 보안 위험이있을 수 있습니다. 파일을 추가하는 동안 메타 데이터가 커밋 된 후 (추가 데이터 블록이 할당 된 후) 데이터가 쓰여지기 전에 (새 데이터로 덮어 쓴 데이터 블록) 저널 후 해당 파일을 복구하려면 사용자로부터 이전에 삭제 된 파일의 데이터로 채워진 블록이 포함될 수 있습니다 1 .

따라서 데이터 무결성이 주요 관심사이고 속도가 중요하지 않은 경우 data=journal갈 길입니다.


4

이미 알고 있듯이, 요점은 파일 시스템이 모든 종류의 충돌을 막을 수 없다는 것입니다.

할 수있는 일 :

  1. 소프트웨어 측면에서, 당신은 사용할 수 있습니다 fdatawrites를 각각의 중요한 작업을 (참조 후 이 2003 시어 도어 T'so, 주요 리눅스 FS 커널 개발자로부터합니다. 여전히 사실이다.도 있는데 이 하나 ext4에의 이전 버전에 숨겨진 주요 데이터 손실에 대한이)
  2. 커밋 간격을 1 초로 줄입니다 ( commit = 1 ) ( LWN 의이 기사 를 참조하십시오. ext4에 관한 것이지만 ext3에 대한 유용한 정보가 들어 있습니다). NB : sync 와 함께 필요하지 않아야합니다 .
  3. sim이 지적한 RHEL 문서가 말했듯이 * data_err = abort * 및 data = ordered를 사용하십시오.
  4. noatime 은 파일 시스템에서 쓸모없는 작업을 줄입니다
  5. 이미 알고 있듯이 barrier = 1 은 데이터 손실을 최소화하는 좋은 방법입니다 ( 이 게시물 참조 ).
  6. 그리고 동기화는 물론, 또한 "나는 내 데이터를 잃고 싶지 않아"옵션 중 하나입니다.

결국, 편집증 장착 옵션은 다음과 같습니다.

auto,exec,relatime,sync,barrier=1,commit=1,data=ordered,data_err=abort,noatime,

또한 부팅 할 때마다 자동 fsck로 데이터 무결성을 보장 할 수 있습니다.


2

맨 페이지에서 강조 할 부분을 변경해보십시오.

다시 쓰기

데이터 순서가 유지되지 않습니다. 메타 데이터가 저널에 커밋 된 후 데이터가 기본 파일 시스템에 기록 될 수 있습니다. 이것은 최고 처리량 옵션이라고 소문이 있습니다. 내부 파일 시스템 무결성을 보장 하지만 충돌 및 저널 복구 후 파일에 오래된 데이터가 표시 될 수 있습니다.

don_crissti가 지적했듯이, 다른 모드에는 "그러나"는 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.