검색

22장. 쓰기 Barriers

download PDF
쓰기 장벽 은 휘발성 쓰기 캐시를 사용하는 스토리지 장치에 전원을 잃은 경우에도 파일 시스템 메타데이터를 올바르게 작성하고 영구 스토리지에 정렬하도록 하는 데 사용되는 커널 메커니즘입니다. 쓰기 장벽이 활성화된 파일 시스템은 fsync() 를 통해 전송되는 데이터가 정전 전체에 영구적으로 유지됩니다.
쓰기 장벽을 활성화하면 일부 애플리케이션에 상당한 성능 저하가 발생합니다. 특히 fsync() 를 많이 사용하거나 많은 작은 파일을 만들고 삭제하는 애플리케이션이 훨씬 느려질 수 있습니다.

22.1. 이메일 주소

파일 시스템은 메타데이터를 안전하게 업데이트하여 일관성을 보장합니다. journalled 파일 시스템은 메타데이터 업데이트를 트랜잭션에 번들하고 영구 스토리지로 보냅니다.
  1. 파일 시스템은 트랜잭션의 본문을 스토리지 장치로 전송합니다.
  2. 파일 시스템은 커밋 블록을 보냅니다.
  3. 트랜잭션과 해당 커밋 블록이 디스크에 기록되면 파일 시스템은 트랜잭션이 전원 실패로 유지되는 것으로 가정합니다.
그러나 전원 장애 중에 파일 시스템 무결성은 추가 캐시가 있는 스토리지 장치에 대해 더 복잡해집니다. 로컬 S-ATA 또는 SAS 드라이브와 같은 스토리지 대상 장치에는 크기가 32MB에서 64MB까지의 쓰기 캐시가 있을 수 있습니다(현장 드라이브 사용). 하드웨어 RAID 컨트롤러에는 내부 쓰기 캐시가 포함된 경우가 많습니다. 또한 NetApp, IBM, Hitachi 및 EMC(다른 특성상)의 상위 엔드 어레이에도 대규모 캐시가 있습니다.
쓰기 캐시가 있는 스토리지 장치는 데이터가 캐시에 있을 때 "완전"으로 "완전"으로 보고됩니다. 캐시의 전원이 끊어지면 해당 데이터도 손실됩니다. 캐시가 영구 스토리지에 대한 단계이므로 원래 메타데이터 순서가 변경될 수 있습니다. 이 경우, 커밋 블록이 완전한 관련 트랜잭션 없이도 디스크에 존재할 수 있습니다. 결과적으로 저널은 이러한 초기화되지 않은 트랜잭션 블록을 post-power-loss recovery 중에 파일 시스템으로 재생할 수 있으므로 데이터가 일관되고 손상될 수 있습니다.

22.1.1. Barriers의 작업 방법

쓰기 장벽은 순서가 중요한 I/O 이전과 이후에 스토리지 쓰기 캐시 플러시를 통해 Linux 커널에서 구현됩니다. 트랜잭션을 작성한 후에는 스토리지 캐시가 플러시되고, commit 블록이 기록되고 캐시가 다시 플러시됩니다. 이렇게 하면 다음을 수행할 수 있습니다.
  • 디스크에는 모든 데이터가 포함됩니다.
  • 재주문이 발생하지 않았습니다.
장벽이 활성화되면 fsync() 호출에서 스토리지 캐시 플러시를 발행합니다. 이렇게 하면 fsync() 가 반환하는 직후 전원 손실이 발생하는 경우에도 파일 데이터가 디스크에 영구적으로 유지됩니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.