>> Delete No. 1480 article
No. 비정상 종료시 파일시스템 문제

등록 2001-07-23 13:34:00     조회 5
이름 바즈라    

		정전등 비정상 종료가 일어났을 때 파일시스템이 깨지는 문제에 대해
제 생각을 몇마디 써봅니다.
잘못 말하는 것이 있으면 지적해 주시고
이미 아시는 분들은 모르는 분들을 위해 참아주시길...
 ****************
 다른 분들은 같은 문제들을 많이 호소하시던데
저는 지금까지(8년째) 한번도 그런 일을 겪지 않았으니 제가 운이 좋은건가요?
저는 심지어 서버에 해킹이 들온것 같다는 느낌이 들면 바로 코드를 뽑는
무식한 짓도 흔히 하면서 문제없이 잘 살았거든여.
 /proc/sys/vm/bdflush 에는 disk IO에 이용되는 버퍼에 관한 parameter들이 들어있죠.
/usr/src/linux/Documentation/sysctl/vm.txt 에 설명이 나옵니다.
커널버전은 2.4.x 인데 위의 문서는 2.2.10 기준이군요. 별 차이는 없는듯 보입니다.
 문제를 일으키는 시스템에 대해 3가지 정도의 의문이 드는군요.
첫째는 bdflush 값이 어떻게 설정되어 있으신가.
둘째는 시스템에 얼마나 IO(특히 write 동작)가 많이 일어나는가.
셋째는 HDD의 성능이나 시스템의 성능 및 구성은 어떤 것인가.
 저의 경우 Mandrake-8.0을 쓰고 있는데 디스크에 써야 할 버퍼의 데이터가
30초 이상 묵으면 디스크에 기록하도록 되어있군요.
따라서 실제 디스크에 기록은 최대 30초마다 일어난다고 볼 수 있는데
29초째 정전이 되어 시스템이 꺼졌을 때 디스크에 기록되어야 할 데이터가 있었다면
파일시스템이 깨질 수 있다는 얘기가 되겠죠.
단, 이 bdflush 설명을 잘 읽어보면 한번 write 동작에 처리할 최대량이 제한되어 있습니다.
그러므로 버퍼에 쌓인 양이 무척 많다면 한번에 다 기록하지 못하고
다음번으로 미루어지는 데이터도 있을 수 있다는 것을 의미하는듯 합니다.
 IDE HDD를 사용하는 시스템의 경우 CD image 등 큰 파일을 복사하는 작업 등을 했을 때
sync 명령을 수행해보면 처음 실행했을 때 디스크에 기록하기 위한 소음이 나는 것은 당연
하겠지만 다시 한번 실행했을 때 또다시 디스크 동작이 한참 일어나는 경우가 있죠.
자신의 시스템이 이 경우에 해당한다면 비정상 종료시 문제를 일으킬 가능성이 좀 된다고 
봐야죠.  ext2 파일시스템의 문제로 보고 다른 파일시스템(reiser 등)을 사용할 것을 권하시던
데 현대적인 파일시스템이라면 어떤 것이던지 쓰기버퍼를 이용할 것이라고 생각되므로
system parameter가 잘못 튜닝되어 있거나 하드웨어의 한계등을 극복할 수는 없다고 생각합니
다. 즉, 자신의 상황을 좀더 구체적으로 파악해서 그에 맞게 잘 튜닝하면 ext2fs를 써도 무리
가 없을 겁니다. 사실 reiserfs나 ext3등의 journaling filesystem이란 파일 시스템이 깨지는 것을 막
는 것이 아니죠. 단지 그런 상황에 처했을 때 복구가 쉽게 해주는 것입니다.
말하자면 제가 주장하는 것은 자동차를 정비하자는 것이고, reiserfs나 ext3는 보험을 드는 것
이죠. 정비를 해서 사고가 덜 나게 하는것이 더 좋은 것 아니겠습니까?
 뿐만 아니라 위의 커널문서 및 sysctl, sysctl.conf 등의 man page를 참조하셔서
문제를 해결해 보는 것이 파일시스템을 다른 것으로 바꾸고
해결 되었나보다 하고 넘어가는 것보다 더 재미있지 않을까요?
 --
ext2 만쉐이~
[관리자] 패스워드를 입력 하십시오. 답장이 존재하면 함께 삭제됩니다.[ 목록 | 이전 ]
패스워드:    

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved