NT 디스크 시스템의 신뢰성. 저널링 파일 시스템이란 무엇입니까? 예2. ReiserFS 파일 시스템

NTFS 저널링

NTFS는 사용자 데이터가 아닌 논리적 구조의 저널링을 사용합니다. 따라서 데이터의 안전성이 보장되지는 않지만 시스템 자체의 올바른 상태는 유지됩니다. NTFS가 파일 데이터를 저널링하지 않는다는 사실은 실제로 데이터 손실의 한 가지 변형으로 이어집니다. 동일한 가상의 경우 3MB를 쓰는 경우 쓰기 프로세스에 오류가 발생하면 파일의 어느 부분을 설정할 수 없습니다. 데이터가 기록되었고 변경되지 않은 상태로 유지되었습니다. 그럼에도 불구하고 시스템에 의해 기록되는 작업은 시스템 자체의 구조, 즉 파일 및 디렉토리에 대한 작업입니다: 파일 추가, 이름 바꾸기, 이동, 생성 및 삭제(해제 자유 공간). 조각 모음 작업, 즉 파일 조각의 이동도 기록됩니다. 한마디로 모든 논리 연산저널링.

게으른 쓰기 및 로깅 체크포인트

어떤 것이라도 알려져 있다 현대 시스템파일 작업의 속도를 높이기 위해 쓰기 작업의 캐싱을 포함하여 캐싱을 사용해야 합니다. 이른바 지연 쓰기(lazy write)는 디스크에 쓰려는 데이터를 일정 시간 캐시에 저장하고 물리적으로 다른 활동이 없는 시간에만 저장하는 캐싱의 원리다. 지연 쓰기는 이러한 캐싱이 많은 작업을 하나로 그룹화하기 때문에 디스크 작업의 효율성을 크게 높입니다. 이것은 디스크의 압축 영역에 쓰기가 수행되는 경우 특히 효과적입니다. 지연 쓰기의 또 다른 이점은 더 필요한 읽기를 방해하지 않고 시스템이 비어 있고 다른 목적을 위해 디스크 액세스가 필요하지 않을 때만 쓰기가 가능하다는 것입니다. 일기 쓰기와 지연된 쓰기를 조화시키는 방법? 예쁘다 복잡한 문제, 쓰기를 연기하면 물리적 쓰기 대기열에 있었고 오류가 발생하기 전에 디스크에 쓸 시간이 없었던 데이터가 손실될 수 있기 때문입니다. 여기서 가장 불쾌한 점은 데이터 손실도 아니지만 기록 시간에 불일치가 있다는 사실입니다. 일부 서비스 영역은 업데이트될 수 있고 일부는 의미와 관련이 있습니다. 아직 업데이트가 다른 영역으로 지연될 수 있기 때문에 몇 초 후 실패로 인해 발생하지 않습니다.

NTFS는 지연 쓰기와 저널링의 의미 있는 통합을 통해 이러한 문제를 해결합니다. 기록된 작업을 시작하려고 하면 의도가 즉시 로그에 기록됩니다(예: 파일 삭제). 이것은 지연 없이 발생합니다. 이 단계에서는 지연 쓰기가 작동하지 않습니다. 이것은 피할 수 없는 로깅의 존재에 대한 대가입니다. 그러나 다른 모든 작업은 이미 지연 모드로 진행 중입니다. 즉, 부분적으로 수행되거나 전혀 수행되지 않을 수 있습니다. 작업이 단순 레코드와 다소 다른 지연된 작업은 이전 트랜잭션의 성공적인 완료에 대한 로그의 레코드, 즉 체크포인트입니다. 정기적인 간격(보통 몇 초마다)으로 시스템은 보류 중인 모든 작업을 디스크에 절대적으로 플러시해야 합니다. 이 작업을 수행한 후 로그가 기록됩니다. 가장 간단한 표기법- 이전의 모든 작업이 논리적 및 물리적인 모든 수준에서 올바르게 수행되었음을 나타내는 체크포인트.

이 작동 모드는 기록 및 체크포인트의 도움으로 한편으로는 여전히 완벽하게 보장됩니다. 올바른 작업로깅, 그러나 다른 한편으로, 그것은 실제로 작업 속도를 전혀 늦추지 않습니다. 체크 포인트가 완료되고 즉시 고려되며 작업 시작에 대해 로그에 쓰는 것은 인건비 측면에서 데이터 자체를 작성하지 않고 데이터 자체를 쓰는 것에 해당합니다. 지연된 캐싱. 나중에 수행되는 실제 녹음은 대부분의 경우 작업을 방해하지 않으며 시스템 성능을 손상시키지 않습니다.

이 리뷰는 지난 기사에서 피상적으로 고려되었거나 아예 없었던 문제에 대해 자세히 다룰 것입니다. 나는 NT 디스크 시스템이 너무 복잡해서 오랫동안 그것에 대해 이야기할 수 있다고 즉시 말하고 싶습니다. 그리고 이 기사에서는 말할 수 있는 모든 것을 설명하지 않을 것입니다. 따라서 이것은 이전 게시물에서 제기된 모든 질문에 조정되고 상세한 방식으로 답변하려는 시도일 뿐입니다. 4부: NTFS 저널링

NTFS가 저널링 시스템이라는 단순한 사실에 대한 설명은 다른 파일 및 운영 체제의 많은 팬을 진심으로 분노하게 했습니다. 나에게 보낸 수많은 편지에서 NTFS를 준 저널링이 있거나 전혀 저널링이 없는 시스템이라고 언급했습니다. 파일 시스템유닉스. 또한 치명적인 NTFS 충돌을 가리키는 이메일을 많이 받았는데, 이 충돌로 인해 데이터가 손실되어 복구할 수 없었습니다. 이 부분에서는 저널링과 NTFS 충돌 방지의 철학을 설명하고 치명적인 충돌의 원인을 설명하기 위해 최선을 다해 저의 능력과 이해를 최대한 활용하겠습니다. 나는 접근 방식을 정당화하려고 노력할 것이다 마이크로 소프트 회사, 모든 것을 정확히 수행했습니다. 적어도 구현된 기술 솔루션의 이유와 NTFS 개발 팀이 수행해야 했던 타협에 대해 설명하겠습니다.

기록된 작업

먼저 정확히 어떤 작업이 기록되는지에 대해 이야기하고 싶습니다. 롤백할 수 있는 완전한 실행 취소 파일이 있음은 매우 분명합니다. 모든 것속도의 관점에서도, 상식적인 관점에서도 절대 불가능하다. 예, 그러한 로깅을 통해 더 많은 데이터를 복구할 수 있습니다. 예를 들어 파일 중간에 3MB를 덮어쓸 때 먼저 새 데이터를 로그에 저장한 다음 파일의 이전 3MB를 다시 쓸 수 있습니다. 그런 다음 실제 데이터로 작업을 수행합니다. 이러한 접근 방식은 정보의 운명에 대한 완전한 확실성을 보장합니다. 데이터의 어느 부분이 이미 디스크에 기록되었는지, 그리고 어떤 부분이 업데이트되지 않은 원래 상태인지 항상 이해할 수 있습니다. 속도면에서 약간의 오버 헤드가 있습니다. 디스크에 3 메가 바이트를 쓰려면 3 배 더 큰 9 메가 바이트 볼륨에 대해 다양한 디스크 작업을 수행해야합니다. 예, 완벽한로깅도 사용되지만 주로 데이터베이스로 작업할 때 사용됩니다. 모든 데이터에 대한 전체 로깅을 제공하려는 경우 MS SQL 또는 Oracle을 설치할 수 있습니다. 이 소프트웨어는 파일 시스템의 기능을 전혀 사용하지 않으며 합리적인 조건에서 데이터의 안전을 보장합니다. 파일 시스템의 전체 저널링을 지지하는 사람들에게 한 가지 대답할 수 있습니다. 쓰기 작업의 속도를 3배로 줄이기로 한 결정은 가정 컴퓨터와 서버 모두에서 의무적이기에는 너무 과감합니다.

NTFS 개발자의 접근 방식은 근본적으로 다릅니다. 주된 모토는 분명히 "어떤 대가를 치르더라도 신뢰성"이 아니라 "성능의 영속성"이었습니다. 로깅은 쉽습니다 해서는 안 된다파일 시스템을 방해하는 것이었습니다. 첫 번째 논리적 단계는 성능 관점에서 절대 허용할 수 없는 전체 로깅을 폐지하는 것입니다. NTFS는 사용자 데이터가 아닌 논리적 구조의 로깅을 사용하므로 안전 데이터보장되지는 않지만 시스템 자체의 올바른 상태는 계속 유지됩니다. NTFS가 파일 데이터를 저널링하지 않는다는 사실은 실제로 데이터 손실의 한 가지 변형으로 이어집니다. 동일한 가상의 경우 3MB를 쓰는 경우 쓰기 프로세스에 오류가 발생하면 파일의 어느 부분을 설정할 수 없습니다. 데이터가 기록되었고 변경되지 않은 상태로 유지되었습니다. 그럼에도 불구하고 시스템에 의해 기록되는 작업은 시스템 자체의 구조, 즉 파일 및 디렉토리에 대한 작업입니다: 파일 추가, 이름 바꾸기, 이동, 생성 및 삭제(여유 공간 확보). 조각 모음 작업, 즉 파일 조각의 이동도 기록됩니다. 한마디로 모든 두뇌 티저작업이 기록됩니다.

게으른 쓰기 및 로깅 체크포인트

파일 작업의 속도를 높이는 모든 최신 시스템은 쓰기 작업의 캐싱을 포함하여 캐싱을 사용해야 하는 것으로 알려져 있습니다. 이른바 지연 쓰기(lazy write)는 디스크에 쓰려는 데이터를 일정 시간 캐시에 저장하고 물리적으로 다른 활동이 없는 시간에만 저장하는 캐싱의 원리다. 지연 쓰기는 이러한 캐싱이 많은 작업을 하나로 그룹화하기 때문에 디스크 작업의 효율성을 크게 높입니다. 이것은 디스크의 압축 영역에 쓰기가 수행되는 경우 특히 효과적입니다. 지연 쓰기의 또 다른 이점은 더 필요한 읽기를 방해하지 않고 시스템이 비어 있고 다른 목적을 위해 디스크 액세스가 필요하지 않을 때만 쓰기가 가능하다는 것입니다. 일기 쓰기와 지연된 쓰기를 조화시키는 방법? 쓰기를 연기하면 물리적 쓰기를 위해 대기열에 있었고 실패하기 전에 디스크에 쓸 시간이 없었던 데이터가 손실될 수 있으므로 이것은 까다로운 질문입니다. 여기서 가장 불쾌한 점은 데이터 손실도 아니지만 기록 시간에 불일치가 있다는 사실입니다. 일부 서비스 영역은 업데이트될 수 있고 일부는 의미와 관련이 있습니다. 아직 업데이트가 다른 영역으로 지연될 수 있기 때문에 몇 초 후 실패로 인해 발생하지 않습니다.

NTFS는 지연 쓰기와 저널링의 의미 있는 통합을 통해 이러한 문제를 해결합니다. 기록된 작업을 시작하려고 하면 의도가 즉시 로그에 기록됩니다(예: 파일 삭제). 이것은 지연 없이 발생합니다. 이 단계에서는 지연 쓰기가 작동하지 않습니다. 이것은 피할 수 없는 로깅의 존재에 대한 대가입니다. 그러나 다른 모든 작업은 이미 지연 모드로 진행되고 있습니다. 즉, 부분적으로(추가로 잘못된 순서로) 발생하거나 전혀 발생하지 않을 수 있습니다. 단순 쓰기와 작업이 약간 다른 지연된 작업은 이전 트랜잭션의 성공적인 완료에 대한 로그에 기록하는 것입니다. 체크 포인트. 정기적인 간격(보통 몇 초마다)으로 시스템은 보류 중인 모든 작업을 디스크에 절대적으로 플러시해야 합니다. 이 작업을 수행한 후 가장 간단한 항목이 로그(체크포인트)에 기록됩니다. 모두이전 작업은 논리적 및 물리적 모든 수준에서 올바르게 수행되었습니다.

이 작동 모드는 기록 및 검사점의 도움으로 한편으로는 여전히 완전히 올바른 로깅 작동을 보장하고 다른 한편으로는 실질적으로 물론작업 속도를 늦추지 않습니다. 체크포인트 설정이 완료되고 즉시 고려되며 작업 시작에 대해 로그에 쓰는 것은 인건비 측면에서 지연된 캐싱 없이 데이터 자체를 쓰는 것과 같습니다. 나중에 수행되는 실제 녹음은 대부분의 경우 작업을 방해하지 않으며 시스템 성능을 손상시키지 않습니다.

지연된 로깅 문제: 중복 정보의 개념

위의 모든 이론은 충분하지만 그럼에도 불구하고 논의할 몇 가지 사항을 더 고려하지 않으면 매우 불쾌한 결과를 초래할 수 있습니다.

이 경우를 고려하십시오. 우리는 파일을 삭제하고 있습니다. 로그에 "파일 N이 지워지는 중입니다." 항목이 수신되었습니다. 그런 다음 지연 캐시는 먼저 파일이 차지하는 공간이 여유 공간이 되었음을 물리적으로 표시한 다음 MFT의 물리적 구조 및 디렉토리에서 파일을 제거하도록 선택합니다. 디스크가 활성 작업에 있고 다른 파일이 해제된 공간에 즉시 기록된다고 가정합니다. 이 시점에서 충돌합니다. 로드할 때 시스템은 로그를 검사하고 완료되지 않은 작업 "파일 N이 지워지고 있습니다"를 확인합니다. 또는 위에서 설명한 것처럼 완료되지 않은 것이 아니라 단순히 작업이며 그 후에는 불완전성을 자동으로 나타내는 체크포인트가 없습니다. . 다음 단계는 "롤백 작업"입니다. 즉, 파일을 복원합니다. 한 가지 불운 - 파일이 물리적으로 차지하는 위치에 이미 다른 데이터가 포함되어 있습니다.

이러한 상황을 방지하기 위해 논리적 로깅으로 제한하려는 시스템은 "임시 점유 공간" 원칙을 적용해야 합니다. 논리적 구조를 가진 모든 작업이 물리적으로 완료될 때까지 개체 또는 이에 대한 레코드가 해제한 공간은 사용 가능한 것으로 선언되지 않습니다. NTFS의 이 메커니즘은 일시적으로 점유된 공간을 해제하는 일반적인 시간이 약 30초이기 때문에 검사점과도 동기화되지 않지만 검사점은 더 자주 발생합니다.

이 메커니즘은 파일을 삭제할 때뿐만 아니라 다양한 작업에도 사용됩니다. 로깅의 원칙 - 제거되거나 새 위치로 이동된 개체는 "출발", 즉 참조된 데이터를 올바르게 롤백할 수 있어야 합니다. 삭제 또는 이동된 객체의 논리적 구조에 따라 일정 시간 동안 다음과 같이 예약해야 합니다. 점령된 장소(디스크/디렉토리). 이것은 물리적으로 파괴되지 않은 해제된 영역 자체의 데이터가 파일 정보의 특정 저널 역할을 하는 완전한 저널링을 향한 또 다른 NTFS 단계입니다.

글쎄, 당신은 모든 것이 너무 훌륭하다고 말할 것입니다 - 그런데 왜 NTFS 파티션이 여전히 날아가는가? .. 이제 위의 모델이 논리적 구조의 완전한 복구 가능성을 제공할 수 있다는 사실로 이어지는 원리를 설명하려고 노력할 것입니다.

  • 일반 모드에서 하드 드라이브는 운영 체제에서 쓰라고 지시한 내용과 위치를 정확히 기록해야 합니다. 이 원칙시스템에 신뢰할 수 없는 루프, 프로세서, 메모리 또는 컨트롤러가 있는 경우 위반 - 및 이것은 NTFS 오류의 가장 일반적인 원인입니다.. 그것은 당신을 도울 것입니다 : 오버 클럭되지 않은 프로세서, 비싸다(고품질)메모리, 우수한 마더보드 및 컨트롤러 디스크 섹션에서 제어 및 오류 복구를 제공하는 UDMA 프로토콜.
  • 하드 드라이브, 사고, 정전 또는 컨트롤러에서 "재설정" 신호 수신(갑작스러운 재부팅의 경우) 마더보드) ~ 해야 하다사고 당시 수행된 경우 현재 물리적 섹터의 데이터 기록을 올바르게 완료합니다. 섹터 중간 상태 허용되지 않음. 완전한 정전이 발생한 경우에도 이 작업을 수행할 수 있는 최신 하드 드라이브가 도움이 될 것입니다. 커패시터에 충분한 에너지가 버퍼링되어 있으며 해당 논리는 기록 중 정전이 발생한 경우 올바른 동작을 위해 설계되었습니다.
  • 디스크는 "캐시하지 않음" 플래그와 함께 전송된 데이터를 즉시 쓰기 위해 필요합니다. 사실 많은 최신 디스크 또는 컨트롤러가 지연된 녹음을 제공합니다. NTFS 메타파일은 "한 번에 쓰기" 모드로 업데이트되며 컨트롤러/디스크는 이 요구 사항을 준수해야 합니다.
  • HDD ~ 해야 하다기록된 데이터를 정확히 읽을 수 있도록 합니다. 데이터를 읽을 수 없는 경우 "에러" 신호가 발행됩니다. 디스크 권리가 없다오류 신호 없이 잘못된 데이터(부분적으로만 올바르지 않을 수도 있음)를 반환합니다. 모든 현대 하드 드라이브섹터의 체크섬을 갖고 이 행동 논리를 엄격하게 따릅니다.

이러한 요구 사항의 정확한 이행 충분히신뢰할 수 있는 보장 NTFS 작업. 파일 시스템 구조는 충돌 후에도 심각한 오류를 포함하지 않습니다. 마지막 작업 이후에 모든 항목을 무조건 롤백하면 완전한 안정성이 보장되는 경우 로깅 논리가 완료되지 않은 작업(예: 동일한 파일 삭제)을 완료하려고 시도하기 때문에 일부 사소한 버그가 여전히 나타납니다. 검문소. 이러한 시도에서 발생하는 작은 불일치는 중복 보안 정보이며 데이터에 실질적인 위험을 초래하지 않습니다. 이러한 불일치의 본질은 시스템에 더 이상 필요하지 않은 액세스 모드에 대한 "추가" 데이터가 디스크에 있다는 사실에 가장 자주 있습니다. 그것들을 정리하는 것은 조각 모음과 같은 순전히 성능 향상의 문제이므로 그것들의 존재는 실제로 버그가 아닙니다. 심각하고 실제적인 문제가 감지되면 드라이버 자체에서 "더티" 볼륨 플래그를 설정하여 다음에 마운트할 때 볼륨을 확인하도록 시스템에 지시합니다.

치명적인 NTFS 오류의 대부분은 이러한 기본 요구 사항을 충족하지 않는 하드웨어로 인해 발생한다는 점을 유감스럽게 생각합니다. 네, 절대적인 신뢰성은 존재하지 않는다는 것을 이해합니다. 그러나 Microsoft는 분업의 길을 택했습니다. 회사는 장비의 신뢰성에 대해 책임을 지지 않습니다. 내 컴퓨터는 Windows 2000 호환 하드웨어 목록에서 70% 떨어져 있으며 거의 ​​모든 제품에 대해서도 마찬가지입니다. 실제 차구 소련의 광활한 지역에서 활동하고 있습니다. 이것은 컴퓨터를 오버클럭하는 것을 좋아하는 사람들에게 특히 해당됩니다. 한 번만 기억하십시오. 프로세서가 333이고 415로 오버클럭된 경우 작동 첫해에 NTFS를 망칠 가능성이 매우 높습니다. 그리고 두 번 이상 ... 죄송합니다. 하지만 실제로 그렇습니다. 어떤 실패로부터 옳은 NTFS는 컴퓨터를 보호하지만 부트 섹터(이의 복사본은 파티션의 맨 끝에 저장됨)와 MFT 시스템에 임의의 데이터를 쓰지 못하도록 합니다. 보험에 들지 않은. 죄송합니다. 5부. 소프트웨어 RAID

앞에서 언급한 것처럼 NTFS 저널링은 사용자 정보 손실로 인한 오류에 대해 보장되지 않습니다. 한편 NT는 합리적인 조건에서 절대적으로 모든 것이 보장되는 시스템을 만들기 위한 몇 가지 옵션을 제공합니다. 더 많은 수의 디스크를 사용하여 안정성을 높일 수도 있지만 반대로 속도 증가- 또는 동시에 둘 다. 이러한 구성은 기사의 이 부분에서 설명합니다.

RAID(Redundant Array of Inexpensive Disks)는 저렴한 디스크의 중복 어레이입니다. 여러 디스크 드라이브를 동시에 사용하여 단일 드라이브에서 제공할 수 없는 안정성 또는 속도 특성을 제공하는 기술입니다.

Windows NT는 소프트웨어 수준 3에서 지원합니다. RAID 레벨(이른바 디스크 어레이 작동 전략)에 대한 간략한 특성이 다음 표에 요약되어 있습니다.

기존 하드 드라이브에 비해 속도 신뢰할 수 있음 총 디스크 공간
RAID 0
병렬 드라이브
디스크 복제로 성능이 크게 향상되었습니다.
이론적으로 일부(예: 선형) 작업의 조건에서는 시스템에 관련된 디스크가 있는 만큼 읽기/쓰기 속도가 증가합니다.
실제로, 성능의 증가는 이 수치의 50% -90% 미만이며 여전히 매우 중요합니다.
다운그레이드됨 - 디스크 중 하나에 치명적인 오류가 발생하면 데이터가 손실됩니다.어레이를 구성하는 디스크 볼륨의 합계와 동일
RAID 1
미러 디스크
정보 중복으로 인한 신뢰성 증가.
읽기 속도는 이론적으로 디스크 수에 해당하는 요소만큼 증가합니다. NT에서 구현된 알고리즘은 최적이 아니며 성능이 훨씬 더 많이 향상됩니다.
특히 디스크 컨트롤러가 완전히 멀티태스킹되지 않는 경우 쓰기 속도가 감소합니다.
모든 디스크가 한 번에 실패하거나 모든 디스크의 동일한 정보가 손상된 경우에만 데이터 손실이 가능합니다.변경되지 않은 상태로 유지(사용 가능한 증가 디스크 공간추가 디스크로 인해 발생하지 않음).
RAID 5
패리티가 있는 병렬 디스크
RAID 1과 RAID 0의 조합 - 더 효과적인 사용추가 디스크.
읽기 속도는 RAID 0과 유사한 방식으로 증가하지만 성능에 영향을 미치는 디스크 수는 1개 줄여야 합니다. 저것들. 3개의 RAID 5 드라이브는 2개의 RAID 0 드라이브와 거의 동일한 읽기 속도를 갖습니다.
쓰기 속도는 개별 디스크의 쓰기 속도보다 빠르지만 일반적으로 빠르지는 않습니다.
한 세트의 디스크 2개에 장애가 발생하면 데이터가 손실될 수 있습니다. 디스크 중 하나에 장애가 발생하면 전체 어레이의 속도가 크게 감소하며 데이터 손실은 없지만 실제로는 비상 상황입니다.증가.
전체 디스크 볼륨의 손실은 디스크 한 개의 볼륨입니다.
예를 들어 5개의 10GB 디스크는 40GB의 RAID 5를 제공합니다.

각 RAID 유형에 대해 자세히 살펴보겠습니다.

RAID 0(병렬 드라이브)

이 전략은 순전히 생산성 향상에 중점을 둡니다. 여러 디스크는 어레이의 모든 디스크가 있는 경우에만 하나의 볼륨으로 수집되는 디스크 구조의 일부를 저장합니다.

2개의 RAID 0의 가장 간단한 구현, 예를 들어 디스크는 볼륨의 모든 첫 번째 섹터(또는 다른 양의 정보)가 물리적 디스크 A에 있고 매초마다 디스크 B에 있음을 나타냅니다. 이러한 엄격한 전략 데이터가 있는 위치에 대한 정보를 저장하기 위한 추가 구조를 피할 수 있습니다. 읽기 속도와 쓰기 속도는 동일하며 디스크 수에 따라 다릅니다.

  • 무작위로 위치한 데이터로 작업하기 위한 작업 속도는 다음 체계의 적용을 받습니다. 다음 정보를 기록하려는 디스크가 비어 있고 요청을 즉시 수행할 준비가 되어 있을 확률에 따라 달라집니다. 예를 들어 두 디스크의 RAID 0: 디스크 중 하나에서 작업을 수행하고 디스크 시스템과 작업하기 위해 추가 명령을 수신한 경우 명령을 실행하기 위해 여유 디스크를 방해해야 할 확률 이 순간디스크는 50%입니다. 이는 무작위 작업의 성능이 전체적으로 1.5배 증가하는 것에 해당합니다. 예를 들어 10개의 디스크 어레이를 사용하는 경우 이미 사용 중인 드라이브에 작업이 들어갈 확률은 10%에 불과합니다. 즉, 성능이 9배 향상됩니다. 엄격한 확률 이론의 팬을 위해 이러한 계산은 시스템의 실제 작동에 대한 몇 가지 요소를 고려하지 않지만 그럼에도 불구하고 숫자는 정확히 이 순서를 갖습니다.
  • 순차 작업(연속 섹션 읽기 또는 쓰기)은 별도의 물리적 디스크보다 거의 항상 n배 빠릅니다. 여기서 n은 세트의 디스크 수입니다. 이것은 다음 작업에서 여유 디스크에 도달할 확률이 100%이기 때문에 발생합니다. 결국 작업은 디스크에 고르게 분포된 연속 블록에서 수행됩니다.

결론적으로 RAID 0은 어쨌든 선형 작업의 속도를 크게 높이고 세트에 포함 된 디스크의 수가 증가함에 따라 임의 데이터 작업 속도도 크게 빨라집니다. 을 위한 효과적인 작업 RAID 0 모드의 디스크 시스템에서는 멀티태스킹 컨트롤러 작업이 필요하며, 가급적이면 액세스를 제공하는 다른 컨트롤러도 필요합니다. 다른 디스크. IDE 인터페이스에서 이러한 작업을 위한 전제 조건은 버스 마스터링 드라이버입니다. Windows 2000에는 이 모드를 자동으로 활성화하는 내장 드라이버가 있습니다. 컨트롤러 IDE, NT4의 경우 추가 드라이버 또는 레지스트리 키 변경이 필요할 수 있습니다.

RAID 0의 신뢰성은 낮습니다. 각 디스크의 고장은 일반 파티션의 경우 드라이브의 고장과 마찬가지로 치명적인 고장입니다.

전체적으로 시스템 오류의 확률은 증가합니다. 사용하는 디스크가 많을수록 디스크 중 하나 이상의 오류 확률이 높아져 볼륨 데이터의 일부가 손실됩니다.

RAID 1(미러링된 드라이브)

데이터를 안전하게 유지하는 가장 쉬운 방법은 두 개의 디스크를 복사하는 것입니다. 쓰기는 한 번에 두 디스크에 수행되므로 이 프로세스가 느려지고 현재 사용 가능한 디스크에서 읽기가 수행됩니다. 물론 시스템이 이러한 읽기를 효율적으로 수행할 수 있는 경우(버스 마스터링이 필요함) 불행히도 NT에서 구현된 알고리즘은 최적이 아니며 읽기 성능이 훨씬 더 많이 향상됩니다.

소프트웨어 모드에서 RAID 1의 복잡성 중 일부는 종종 시스템이 두 디스크의 데이터 ID를 완전히 확신할 수 없다는 것입니다. 심각한 장애가 발생한 후 두 개의 물리적 디스크를 조정하는 작업은 몇 시간이 걸리고 매우 부적절할 수 있으므로 소프트웨어 RAID 1을 사용할 때 매우 주의해야 합니다. 안정성을 위해 디스크 어레이를 여러 번 늘리기로 결정한 경우 하드웨어 RAID 컨트롤러를 구입해야 할 수도 있습니다. 또한 이동 중에 장애가 발생한 디스크를 교체하고 데이터 동기화 자체를 모니터링할 수 있습니다.

어쨌든 디스크 중 하나가 완전히 실패하더라도 디스크가 완전히 미러링되므로 데이터가 손실되지 않습니다.

RAID 5(패리티가 있는 병렬 드라이브)

이 전략은 현재 3개 이상의 디스크로 구성된 RAID 운영을 위한 가장 성공적이고 효율적인 방식으로 보입니다. 정보는 이 정보에 의해 제어되는 실제 데이터와 다른 물리적 디스크에 있는 소위 패리티 데이터로 보완됩니다.

패리티의 개념은 예를 들어 다음과 같이 이해할 수 있습니다. 예를 들어 집합(0, 1, 1, 0, 1)과 같이 5개의 비트가 있다고 가정해 보겠습니다. 우리는 이 규칙에 따라 또 다른 비트(패리티 비트, 여섯 번째)를 형성합니다. 이전 5비트의 1의 수가 짝수이면 1이 되고 그렇지 않으면 0이 됩니다. 우리의 경우 1의 수는 3과 같습니다. 즉, 홀수 - 우리 세트에 숫자 0이 추가되고 (0, 1, 1, 0, 1, )로 바뀝니다.

데이터 세트가 손상되었다고 가정해 보겠습니다(0, X, 1, 0, 1, ). 1의 개수는 홀수(마지막 비트)여야 한다는 규칙을 사용하여 X가 1임을 추측할 수 있습니다. 우리의 결과 6비트 세트(5 데이터 비트 및 1 패리티 비트)는 중복되며 6비트 중 하나의 손실을 지능적으로 수정할 수 있습니다.

패리티 연산은 비트뿐만 아니라 가장 단순한 데이터 복구 알고리즘에 사용되는 모든 양의 데이터로 수행할 수 있습니다.

RAID 5 장치로 돌아가기:

그림은 5개의 디스크 어레이를 보여줍니다. 각 디스크에는 4개의 (조건부) 실제 데이터 조각과 1개의 패리티 데이터 블록이 저장되어 있음을 알 수 있습니다. 패리티 유닛(예: 0 패리티)은 A0, B0, C0 및 D0 중 하나를 제외한 단편 중 하나의 손실을 복구할 수 있습니다. 함께 그들은 차례로 0 패리티 블록을 복원할 수 있습니다. 묘사된 RAID 구조에서, 필요한 데이터는 완전한 회복전체 열, 즉 오류 발생 시 모든 디스크의 정보는 다른 디스크에 있습니다. 이것은 복원이 구성되는 내용입니다. 데이터가 디스크 중 하나에 기록되면 현재 블록에 해당하는 다른 디스크의 패리티 블록도 업데이트됩니다(예: A2에 쓸 때 블록 2 패리티도 업데이트됨). 정상적인 디스크에서 데이터 읽기는 패리티 블록을 사용하지 않고 발생합니다. 즉, RAID 0과 거의 동일한 모드입니다. NT에서 구현된 RAID 5는 RAID 0보다 약간 빠릅니다.

유일한 오버 헤드 - 오류가 발생하면 D4와 같이 직접 읽을 수없는 경우이 블록의 데이터를 복원해야하기 때문에 어레이의 성능이 엄청나게 감소합니다. 다른 모든 디스크를 동시에 사용 - 우리의 경우 블록 4 패리티, B4, C4 및 E4가 됩니다.

보시다시피 RAID 5 디스크 중 하나의 오류는 치명적이지는 않지만 적어도 어레이에서 읽기 속도의 이유로 급박한 긴급 상황입니다. 또한 최소 3개의 드라이브에 대한 요구 사항이 어디에서 오는지 쉽게 추측할 수 있습니다. 드라이브가 2개인 경우 RAID 5는 단순히 RAID 1로 변질됩니다. 유일한 방법한 요소에서 목록의 패리티 정보를 생성하는 것은 그 요소를 어떻게든 복제하는 것입니다.

신뢰성 가정

어떻게, 또? 예, 다시 한 번 - RAID는 절대적으로 모든 하드웨어 문제에 대한 만병 통치약이 아닙니다. 나는 어떤 사람들에게는 매우 예상치 못한 것을 말해야 합니다. 신뢰할 수 없는(잘못된) 컴퓨터에서 RAID는 단일 디스크 시스템만큼 충돌하기 쉽습니다.. RAID는 다음과 같은 경우에 전혀 저장되지 않습니다:

  • 잘못된 데이터의 올바른 쓰기 및 예상 영역 외부의 데이터 쓰기. 이는 이전과 마찬가지로 메모리, 프로세서, 케이블, 컨트롤러, 드라이브 전원 공급 장치의 결함으로 인해 발생합니다.
  • 드라이브가 읽기 오류를 보고할 수 없는 경우.

RAID는 물리적 장애라는 한 가지 경우에만 손상을 최소화하도록 설계되었습니다. 하드 드라이브 또는 아마도 컨트롤러(다중 컨트롤러 RAID의 경우). 메모리, 운영 체제 및 RAID의 다른 모든 오류 제공되지 않음- 단일 NTFS 전략과 동일한 방식입니다.

그리고 마지막으로, 위의 RAID 레벨 작동의 공리는 시스템의 디스크 중 하나의 오류가 가능한 한 빨리 제거되어야 하는 사고로 간주된다는 것입니다. 이것은 디스크 중 하나에 장애가 발생하면 일반 작동이 거의 불가능한 RAID 0 및 RAID 5에 특히 해당됩니다.

Windows NT 소프트웨어 RAID 시스템에 대한 자세한 내용은 실제로 이러한 유형의 디스크가 생성되는 디스크 관리자 프로그램(또는 모듈 - Windows 2000의 경우)에 대한 도움말을 참조하십시오. RAID를 만들고 사용할 수 있는 워크스테이션의 기능이 매우 제한적이라는 사실에 주의를 기울입니다. 워크 스테이션예를 들어 NT4는 RAID 0(병렬 디스크)만 지원하지만 설명된 모든 옵션은 서버 운영 체제에서만 작동합니다.

NTFS가 설치된 컴퓨터는 부팅되지 않습니다. 이 경우 어떻게 해야 합니까? 데이터를 복구하는 방법? 행동이 서로 다소 다른 두 가지 경우가 있습니다. 불행히도 NT 및 따라서 NTFS를 복원하는 간단한 전략은 없습니다. 시스템은 매우 복잡하고 DOS 또는 Windows95/98과 같은 가장 간단한 부팅 도구가 없습니다.

1. 첫 번째 옵션 - 시스템이 동일한 NTFS 디스크에 있었습니다. 시스템이 단순히 로드를 중지했습니다. 그렇다면 90%의 경우 NTFS가 아니라 NT 자체를 올려야 합니다. 이 작업이 기사의 범위를 훨씬 넘어서므로 나는 다음에 작업할 수 있고 데이터를 읽을 수 있는 다른 NT 시스템(동일한 NTFS 파티션에)을 두는 방법에 대해서만 설명합니다.

NT4 사용자어떻게 든 설치 프로그램으로 부팅하여 시스템을 NTFS에 직접 넣을 수 있습니다.

NT4의 올바른 배포 CD가 필요합니다. 이러한 속성은 NT4가 루트 디렉터리에 있는 i386이라는 디렉터리에 있는 디스크에서 찾을 수 있습니다. 이 디렉토리에서 실행되는 winnt /? NTFS 드라이브. 다른 설치 디렉토리(예: winnt2)를 선택한 다음 전문가만이 할 수 있는 이 특정 문제에 대한 접근 방식이 보이면 자신의 NT4 설치를 다시 시도할 수 있습니다. 새로 설치된 운영 체제는 부팅 목록에 올바르게 입력되고 이전 NT4를 전혀 방해하지 않습니다.

적절한 형식의 CD가 없는 경우(증상 - CD의 존재에 응답하지 않는 "NT4 배포 키트가 포함된 디스크 삽입"이라는 문구) - NTFS가 NT 이외의 시스템에서는 디스크에 액세스할 수 없습니다.

NT4는 Windows2000에서 새로운 형식으로 변환된 NTFS에 설치할 수 없습니다. NT4는 여전히 이러한 NTFS를 읽지만 SP4 이상을 사용할 수 있는 경우에만 가능합니다.

Windows 2000 사용자부팅 가능한 Windows2000 CD(공식 배포판)를 찾아야 하는 경우 시스템을 처음부터 설치하거나 이전 설치를 복원하라는 메시지가 표시됩니다. Windows2000에서 작업한 NTFS 드라이브는 Windows2000 또는 NT4 SP4 이상에서만 읽을 수 있습니다.

주의: 복구 디스크(NT4에서 rdisk /s 명령으로 생성, Windows2000에서 프로그램으로 생성) 없이 NT를 복원하십시오. 사본 예약), 거의 불가능합니다. 이것은 전문가의 작업입니다. 그건 그렇고, 복구 디스크가 있더라도 "복원 된"시스템의 작업이 마음에 들지 않을 가능성이 높으므로 전체 시스템을 다시 설치하는 것은 거의 불가피합니다. 당신이 아닌 경우 숙련된 전문가 NT에서는 NT 설치 프로그램의 복구 옵션을 사용하지 않는 것이 좋습니다. 결과는 대부분 당신을 만족시키지 못할 것입니다. 물론 시도는 고문이 아니지만 시스템의 본격적인 소생술을 위한 작업의 복잡성은 매우 크고 어디에도 설명되어 있지 않으므로 부팅할 수는 있지만 중간 상태로 유지됩니다.

2. 시스템 자체는 작동하지만 디스크에 액세스할 수 없습니다(부팅할 수 없지만 다른 디스크에 액세스할 수 있음). 디스크 관리자는 파티션에 대해 알 수 없는 유형을 표시합니다. 대부분의 경우 이것은 파티션의 부트 섹터(부트 섹터)가 어떻게든 덮어써졌다는 것을 의미하며 NT는 이것이 NTFS라는 사실을 전혀 알지 못합니다. 운영 체제 NT는 만일의 경우를 대비하여 사본을 보관합니다. 부트 섹터파티션 끝 - 적절한 위치에 다시 복사하면 대부분의 경우 드라이브가 NTFS로 인식되고 자체적으로 복구됩니다.

정확한 주소를 계산하는 과정은 상당히 복잡하므로 설명하지 않겠습니다. 에 대한 전체 지침은 이 경우 MSDN 사이트로 이동하여 기술 자료 문서 Q153973을 찾아야 합니다(간단한 검색으로 이 작업을 수행할 가능성이 높음). 이 지침을 올바르게 따르면 시스템이 최소한 NTFS로 인식되고 향후 파티션은 내부 NT 복구 도구에 따라 달라지며, 이 경우 순환에 사용됩니다. 당신은 또한 겸손한 외모의 도움을받을 것입니다. chkdsk 명령, NT 디스크 시스템의 내부 복구 시스템에 대한 일종의 지름길입니다.

저널링된 파일 시스템은 다음을 수행하는 파일 시스템 클래스입니다. 특징 which - 파일 시스템의 무결성을 유지하는 데 도움이 되는 어느 정도의 변경 목록 저장, 로깅.

대형 파일 시스템에서 시스템 검사(예: fsck)를 실행하는 것은 시간이 오래 걸릴 수 있으며, 이는 오늘날의 고속 시스템에서 매우 나쁩니다. 파일 시스템의 무결성이 부족한 이유는 예를 들어 종료 시 디스크에 기록 중인 경우와 같이 잘못된 마운트 해제 때문일 수 있습니다. 응용 프로그램은 파일에 포함된 데이터를 업데이트할 수 있고 시스템은 "파일 시스템 데이터"인 파일 시스템 메타데이터를 업데이트할 수 있습니다. 같은.. 데이터 파일의 오류(무결성)는 나쁘지만 파일 시스템 메타데이터의 오류보다 나쁩니다. 이는 파일 손실 및 기타 심각한 문제로 이어질 수 있습니다.

무결성 문제를 최소화하고 시스템 재시작 시간을 최소화하기 위해 저널링 파일 시스템은 실제로 변경 사항을 기록하기 전에 파일 시스템에 대한 변경 사항 목록을 유지합니다. 이러한 기록은 "저널" 또는 "로그"라고 하는 파일 시스템의 별도 부분에 저장됩니다. 파일 시스템 변경 사항이 안전하게 기록되면 저널링된 파일 시스템은 이러한 변경 사항을 파일 또는 메타데이터에 적용한 다음 로그에서 해당 항목을 제거합니다. 로그 항목은 데이터베이스에 추가된 변경 사항이 트랜잭션으로 구성되는 방식과 마찬가지로 관련 파일 시스템 변경 사항 세트로 구성됩니다.

저널이 있으면 실제 변경 사항이 적용되기 전에 로그 파일 항목이 만들어지고 이러한 항목이 완전히 안전하게 적용될 때까지 보관되기 때문에 파일 시스템의 무결성을 유지할 가능성이 높아집니다. 컴퓨터가 재부팅되면 마운터는 로그 파일에서 예상했지만 변경되지 않은 사항을 간단히 확인한 다음 파일 시스템에 기록함으로써 저널링된 파일 시스템의 무결성을 보장할 수 있습니다. 저것. 저널이 있으면 대부분의 경우 시스템에서 파일 시스템의 무결성을 확인할 필요가 없습니다. 즉, 재부팅 후 거의 즉시 컴퓨터를 사용할 수 있습니다. 따라서 파일 시스템의 문제로 인한 데이터 손실 가능성이 크게 줄어듭니다.

Linux에서 사용할 수 있는 여러 저널 파일 시스템이 있습니다. 그들 중 가장 유명한 :

    Silicon Graphics에서 개발했지만 현재 출시된 저널링 파일 시스템 XFS 오픈 소스(오픈 소스);

    Linux용으로 특별히 설계된 저널링 파일 시스템인 ReiserFS;

    JFS는 원래 IBM에서 개발했지만 현재는 오픈 소스로 출시된 저널링 파일 시스템입니다.

    xt3은 대부분의 GNU/Linux 버전에서 사용되는 ext2 파일 시스템의 저널 확장입니다. ext3 시스템의 고유한 기능은 드라이브를 다시 포맷하지 않고 ext2에서 마이그레이션하는 기능입니다. 스테판 트위디 박사가 디자인했습니다.

    OS 제품군에서 마이크로소프트 윈도우저널링 포함 파일 NTFS 시스템. Mac OS X - HFS+.