본문 바로가기

카테고리 없음

Ext3 리눅스 파일시스템과 저널링 파일 시스템 기술

출처 : http://blog.naver.com/mogi0629?Redirect=Log&logNo=50003068490

Ext3 저널링 파일 시스템
 Ext3 저널링 파일 시스템이란?
리눅스는 표준 파일 시스템으로서 ext파일 시스템, ext2파일 시스템으로 변천해왔다. 리눅스 커널 2.4.x에 들어오면서 ReiserFS, XFS, JFS, ext3와 같은 새로운 저널링 파일 시스템 기능이 추가되면서 기대를 모으고 있다.

또 리눅스계의 큰 손 레드햇사가 7.2를 발표하면서 기존에 많이 사용하던 저널링 파일 시스템을 두고서 종래 의 ext2파일 시스템에 저널 기능을 추가한 ext3라는 파일 시스템을 선택했다.

ext3 파일 시스템은 ext2 형식의 기능을 강화시킨 파일 시스템 버전으로서, ext3 파일 시스템의 장점은 다음과 같다:

가용성 (Availability) - 예상하지 않았던 재부팅이나 시스템 고장 (비정상 시스템 종료라고도 불림)이 발생한 경우, ext2 파일 시스템 검사 프로그램인 e2fsck를 실행하여 파일 시스템의 일관성을 검사해야 한다. 따라서 이러한 작업은 시스템 부팅에 걸리는 시간을 지연시킬 수 있어 매우 시간 소모적이며, 특히 방대한 분량의 파일을 포함한 시스템의 경우에는더욱 그러하다.
또한 e2fsck 프로그램이 검사 중인 데이터는 검사 작업이 진행되는 동안에는 사용할 수 없다.

- ext3 파일 시스템의 저널링 기능을 이용하면, 시스템이 비정상적으로 종료된 후에도 이러한 시간 소모적인 파일시스템 검사 작업을 수행할 필요가 전혀 없다.
ext3 파일 시스템에서는 하드 드라이브가 고장난 경우와 같이 특정하드웨어에 문제가 있는 경우에만 일관성 검사를 수행한다.
시스템이 비정상적으로 종료된 후 ext3 파일 시스템을 복구하는데 걸리는 시간은 파일 시스템의 크기나 파일의 숫자에 따라 결정되지 않고 파일 시스템의 일관성을 유지하는데 사용되는 저널 (journal)의 크기에 따라 결정된다.
하드웨어의 속도에 따라서 기본 저널 크기의 경우, 일반적으로 파일 시스템을 복구하는데 1초가 걸린다.

데이터 신뢰성 강화 (Data Integrity) - ext3 파일 시스템은 시스템 비정상 종료시 데이터 손상 문제를 피해가면서 데이터 저널링을 효율적으로 제공 한다.
ext3 파일 시스템은 여러분이 직접 데이터 보호 유형과 수준을 결정하실 수 있도록 해준다.
디폴트 값으로, Red Hat Linux 9는 파일 시스템 상태에 따라서 데이터를 최상위 수준으로 보존하도록 ext3 볼륨을 설정한다.

보다 빠른 수행 속도 - 비록 ext3는 일부 동일한 데이터를 한 번 이상 반복하여 기록하지만, 하드 드라이브 헤드 모션을 최적화하는 저널링 기능 덕분에 대부분의 경우 ext2 파일 시스템 보다 빠른 속도로 작업을 수행할 수 있다.
속도를 최적화 하기 위해 3가지 저널링 모드를 선택하실 수 있지만, 그렇게 하면 데이터 보호 기능이 약화될 수 있다는 점에 유의해야 한다.

손쉬운 변환 과정 - ext2에서 ext3로 변환 과정은 매우 쉽고 간단하다. 파일 시스템을 재포맷할 필요가 없이 강력한 저널링 기능을 갖춘 ext3 파일 시스템으로 변환 가능하다.

저널링 파일시스템 (Journaling File System)이란?
Ext2의 문제점들을 해결하기 위한 방법 중 하나가 바로 데이터베이스에서 쓰이는 저널링 기술을 적용한 저널링 파일 시스템(JFS)이다.
이름에서도 알 수 있듯이, 일정부분을 기록을 위해 남겨두어, 백업 및 복구 능력이 있는 파일 시스템을 말하 며, 시스템 크래쉬 후에 파일시스템 복구에 드는 시간이 아주 적다.
저널링 파일 시스템이 어떻게 동작하는지 간단히 알아보도록 하자.
저널링 파일 시스템은, 사용자가 데이터를 입력 또는 수정하면 그 데이터를 바로 하드디스크에 기록하기 전에 관련 데이터를 로그에 기록한다.
만약 기록 중에 가장 빈번하게 발생하는 문제인 정전이나 기타 다른 이유로 인하여 비정상적인 종료를 하게 되면 다시 부팅할 때 로그에 기록된 데이터를 참고로 하여 다시 작성하거나 복구하게 된다.
이러한 특징 때문에 저널링 파일 시스템을 Log-Ging 파일 시스템이라고 부르기도 한다.
영어사전의 Journal
 journal n. L「매일의」→「나날의 사건을 기록한 것」→「일간 신문」1 일지, 일기 ((보통 diary보다 문학적인 것)) 2 신문, 일간 신문 3 잡지(periodical), 정기 간행물 ((특히 시사적 내용을 취급한 것)); (학술 단체등의) 기관지 a monthly ~ 월간 잡지 4 (의회 임원회 등의) 의사록, 의회 일지; [the J~s] 《영》 국회 의사록 5 【항해】 항해 일지(logbook)(=ship's ~) 6 【부기】 분개장(分介帳) 7 【기계】 저널 ((굴대의 목 부분))

-인터넷 신문 기사의 내용-
저널링 파일 시스템이란.. (2000-06-03)
 지난 1년간 리눅스는 엔터프라이즈급 운영체제로 급성장을 해오며 클러스터링과 서버에서의 중요한 자리를 차지해 가고 있다. 리눅스가 진정한 엔트프라이즈급 운영체제로 성장하기 위해 저널링 파일시스템은 필수적인 요건으로 꼽히고 있다. 이미 ReiserFS와 ext3 이외에도 SGI의 XFS가 리눅스로 포팅되고 있어 앞으로의 전망을 밝히고 있다.
저널링 파일 시스템이란.. 저널링 파일 시스템이란 백업 및 복구 능력이 있는 파일 시스템을 말한다. 디스크에 있는 인덱스가 갱신되기 전에 관련 내용이 로그에 기록되기 때문에 정전이나 다른 문제 때문에 인텍스에 이상이 생기더라도 다시 시스템을 재가동하면 운영체제가 로그를 보고 인덱스를 재작성 및 복구를 할 수 있게 된다. 왜 저널링 파일 시스템은 중요할까? 저널링 파일 시스템은 어떻게 동작하는가? 리눅스에는 어떠한 저널링 파일시스템이 존재하는가? 저널링 파일시스템은 디스크에 적용되는 변화를 로그로 남기기 때문에 전통적인 파일 시스템보다 안전하다 하겠다. 저널링 파일 시스템은 변화를 커밋하거나 RDBMS 처럼 트랜잭션 방법으로 이전으로 되돌릴 수 있다.
Ext2로는 충분치 않다. 리눅스가 지원하는 파일 시스템은 여러가지가 있지만 설치시에는 ext2가 기본으로 사용된다. 리눅스에서 지원가능한 파일시스템으로는 FAT, VFAT, HPFS(OS/2), NT 파일 시스템, Sun의 UFS 등이 있다. Ext2의 디자이너는 효율과 퍼포먼스에 주로 관심을 집중했다. Ext2는 파일 메타- 데이터(허가권, 소유권, 생성/접근 시간과 같은 정보)를 파일이 내용과 동기화 시키지 않는다. 리눅스는 일단 파일의 내용을 적은 뒤 나중에야 파일의 메타 데이터를 기록한다. 만약 파일의 내용을 변경하고 메타 데이터를 갱신하지 않은 상태에서 전원이 나가버리면 파일 시스템은 정보가 일치하지 않는 문제가 발생한다. 이러한 문제는 퍼포먼스를 위해 파일시스템의 안전을 희생한 예라 하겠다. 핫메일과 같은 무료 E-mail 서비스 를 해주는 경우 치명적인 위험을 감수해야 할 수도 있다. 저널링 파일시스템은 이러한 위험을 감소 시킬 수 있다. 당신이 디렉토리 정보를 변경하고 있다고 상상해 보자. 거대한 디렉토리의 다섯번째 블럭에 있는 23개의 파일 만 수정하였고 디스크에서는 이 블럭을 쓰고 있는데, 전원이 나가 해당 블럭이 불완전하게 되어 오류가 발생해 버렸다. 리눅스가 리부팅 되면 "fsck" (file system check)가 실행되어 파일시스템의 정보를 체크하고 올바른 블럭을 만들어간다. Fsck는 오류가 발생한 디렉토리 엔트리를 발견하고 이것을 수정하려 한다. fsck가 손상된 곳을 확실히 고쳐낸다는 보장은 없다. 때때로 디렉토리를 잃어 버릴 수도 있다. 파일 시스템이 거대해질수록 시간은 그만큼 길어 진다. 만일 수기가바이트가 되는 파일이 많이 있다면, 체크 시간은 10시간 혹은 그 이상이 될 수 도 있다. 이 시간 동안 시스템을 사용할 수 없게된다. 이러한 경우 저널링 파일시스템은 파일시스템의 변화에 대한 흔적을 남기기때문에 fsck가 복구에 걸리는 시간이 그만큼 줄게 된다. 물론 저널링 파일 시스템에 순기능만 있는 것은 아니다. 파일 시스템을 업데이트 할 때마다 로깅에 따른 오버 헤드와 I/O 가 많아 진게되어 시스템 관리자는 파일 시스템 관리의 정책을 세워야 할 필요가 있을 것이다. `/usr' 과 같은 경우에는 읽기 작업이 주를 이루기 때문에 저널링 파일 시스템을 사용할 이유는 없다. 하지만 '/var'은 메일 스풀링 및 데이터베이스의 저장으로 활용되기 때문에 많은 업데이트 과정이 생긴다. 이러한 파티션은 저널링 파일 시스템이 안전하다. 저널링 파일시스템이 리눅스에 적용된다하여 기존의 Ext2 가 곧바로사라지진 않을 것 같다. Ext2와 저널링 파일시스템을 짜임새 있게 활용한다면 속도와 안정성을 모두 확보할 수 있게 될 것이다.