저널링 블록 장치
Journaling block deviceJBD(Journaling Block Device)는 Red Hat의 Stephen Tweedie가 작성한 Linux 커널의 일반적인 블록 장치 저널링 레이어다.JBD는 파일 시스템에 독립적이다.ext3, ext4 및 OCFS2는 JBD를 사용하는 것으로 알려져 있다.[1][2]
JBD는 JBD와 JBD2의 두 가지 버전으로 존재한다. JBD는 1998년에 ext3로 만들어졌다.[3]JBD2는 2006년에 64비트(JBD의 32비트 전용이 아닌) 블록 번호 지원을 목표로, ext4와 함께 JBD로부터 포커스를 받았다.따라서 ext4의 최대 볼륨 크기는 ext3의 16TiB에 비해 1EiB로 증가한다(4KiB 블록으로 가정).[4]JBD2는 역호환성이 있다.Linux 2.6.28에서 시작하는 OCFS2는 JBD2를 사용한다.[5]기존 JBD는 Linux 4.3(2015년)에서 전용 ext3 드라이버와 함께 제거되었다.[6]
JBD 구조물
원자 손잡이
원자 핸들은 기본적으로 파일 시스템에 대한 단일 높은 수준의 원자 업데이트 동안 발생하는 모든 낮은 수준의 변경사항의 모음입니다.원자 핸들은 파일 시스템에 대한 실제 변경 사항은 저널에 원자 핸들을 기록한 후에만 플러시되기 때문에, 높은 수준의 업데이트가 발생하거나 발생하지 않도록 보장한다.[2]
거래
효율성과 성능을 위해 JBD는 여러 개의 원자 핸들을 하나의 거래로 분류하는데, 이것은 일정한 시간이 경과한 후에 저널에 쓰여지거나 저널에 그것을 맞출 수 있는 여유 공간이 남아 있지 않다.
이 거래에는 다음과 같은 여러 주가 있다.[2]
- 실행 중 - 트랜잭션이 여전히 활성 상태고 더 많은 핸들을 수용할 수 있음을 의미
- 잠김 - 새 핸들을 수락하지 않지만 기존 핸들은 아직 완료되지 않음
- 플러시 - 트랜잭션이 완료되어 저널에 기록 중
- 커밋 - 트랜잭션이 저널에 기록되어 파일 시스템에 변경 사항이 적용되고 있음
- 완료됨 - 거래가 저널과 블록 장치에 완전히 기록됨.그것은 저널에서 삭제될 수 있다.
회복
JBD는 거래 상태를 바탕으로 파일 시스템에 재생(또는 재적용)해야 할 트랜잭션을 결정할 수 있다.[2]
원천
- ^ "The Linux Journalling API". The Linux Kernel documentation.
- ^ a b c d Kedar Sovani (June 20, 2006). "Linux: The Journaling Block Device". KernelTrap. Archived from the original on 2007-09-26.
- ^ Stephen C. Tweedie (May 1998). "Journaling the Linux ext2fs Filesystem" (PDF). Proceedings of the 4th Annual LinuxExpo, Durham, NC. Retrieved 2007-06-23.
- ^ Mingming Cao (9 August 2006). "Forking ext4 filesystem and JBD2" (Mailing list). Linux kernel mailing list.
- ^ "Linux 2.6.28". kernelnewbies.org. 2008.
- ^ Corbet, Jonathan. "rm -r fs/ext3". LWN.net.