맨위로가기

LogFS

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

LogFS는 대용량 플래시 메모리 드라이브에서 JFFS2의 성능 저하 문제를 해결하기 위해 개발된 파일 시스템이다. 2010년 리눅스 커널에 실험적으로 포함되었으나, 2016년에 제거되었다. LogFS는 아이노드 트리를 드라이브에 직접 저장하여 마운트 시간을 단축하고 메모리 사용량을 줄였으며, 파일 쓰기 작업 시 "이동 트리" 방식을 사용했다. 또한, 플래시 메모리 블록을 효율적으로 관리하고 가비지 컬렉션을 통해 플래시 메모리 드라이브를 최대한 활용하도록 설계되었다.

더 읽어볼만한 페이지

  • 리눅스 - 리누스의 법칙
    리누스의 법칙은 오픈 소스 개발에서 많은 개발자가 코드 검토에 참여할수록 버그가 빨리 발견되고 수정된다는 개념을 담고 있지만, 개발 환경에 따라 효과가 달라질 수 있다는 비판도 존재한다.
  • 리눅스 - 2038년 문제
    2038년 문제는 유닉스 시간의 정수 오버플로우로 인해 2038년 1월 19일 이후에 오류가 발생하는 문제이며, 64비트 시스템 전환 등으로 해결하려 한다.
  • 파일 시스템 - 부트 섹터
    부트 섹터는 시스템 부팅 코드를 담은 저장 매체의 특정 영역으로, 볼륨 부트 레코드(VBR)와 마스터 부트 레코드(MBR)로 나뉘며, BIOS는 이를 실행하고 UEFI는 부트로더를 직접 로드하지만 바이러스 공격에 취약하다.
  • 파일 시스템 - ZFS
    ZFS는 Jeff Bonwick 등이 설계하고 구현한 파일 시스템으로, 데이터 무결성, 스냅샷, RAID-Z 등의 기능을 제공하며, 썬 마이크로시스템즈에서 개발되어 OpenZFS 프로젝트를 통해 다양한 운영체제에서 사용된다.
LogFS - [IT 관련 정보]에 관한 문서
파일 시스템 정보
이름LogFS
개발자요른 엥겔, 프라사드 조시
운영체제리눅스
웹사이트logfs.org/logfs/

2. 역사

LogFS영어는 2008년 11월 기준으로 전체 테스트를 통과할 만큼 충분히 성숙되었고, 이후 2010년 5월 16일에 출시된 리눅스 커널 2.6.34 버전에 '실험적'으로 포함되었다.[1] 그러나 광범위한 사용자 기반을 확보하지 못하여 2016년 12월에 리눅스 커널에서 제거되었다.[1] 이는 기술 경쟁에서 뒤처진 결과로 해석될 수 있다.

3. 작동 방식

LogFS는 대용량 플래시 메모리 드라이브에서 JFFS2가 겪는 성능 저하 문제를 해결하기 위해 개발되었다. JFFS2와 달리 LogFS는 아이노드 트리를 드라이브에 직접 저장하여 마운트 시간을 단축하고 메모리 사용량을 줄였다.

LogFS는 JFFS2와는 달리 마운트할 때 전체 드라이브를 스캔하지 않고, 아이노드 트리를 드라이브에 직접 저장한다. 이 때문에 마운트 시간이 빨라지고 메모리 사용량이 줄어드는 장점이 있다. 하지만 시스템 실행 중에 더 많은 작업을 수행해야 하며, 아이노드 트리를 저장하기 위해 드라이브 공간의 일부를 사용해야 한다.[1]

3. 1. 아이노드 트리 저장

LogFS는 파일의 아이노드 트리를 드라이브에 저장한다. 이는 파일에 쓰기를 수행할 때 트리의 각 상위 노드를 다시 작성해야 함을 의미한다. 이러한 과정은 "이동 트리" 업데이트 방식을 통해 이루어진다. 트리의 가장 아래쪽 노드(데이터)가 먼저 작성되고, 각 노드는 루트 아이노드가 업데이트될 때까지 트리를 올라가면서 작성된다. 루트를 마지막으로 작성하면 업데이트의 원자성이 유지된다.[1] 즉, 업데이트 도중 오류가 발생해도 데이터의 무결성이 보장된다.

플래시 메모리 블록은 지우기의 단위이며, 일반적으로 파일 시스템 블록보다 크다. LogFS는 여러 파일 시스템 블록을 단일 플래시 메모리 블록에 묶는 방식으로 이러한 불일치를 처리한다. 플래시 메모리 블록 끝에 있는 "합계" 항목은 저장된 데이터를 기록한다. 플래시 메모리 블록에서 모든 파일 시스템 블록이 이동되거나 삭제되면 해당 블록을 지우고 새 데이터를 위해 사용할 수 있다.[1]

3. 2. 플래시 메모리 블록 관리

LogFS는 여러 파일 시스템 블록을 단일 플래시 메모리 블록에 패킹하여 이러한 불일치를 처리한다. 플래시 메모리 블록 끝에 "합계" 항목을 추가하여 저장된 데이터를 기록한다. 플래시 메모리 블록에서 모든 파일 시스템 블록이 이동되거나 삭제되면 지울 수 있으며 새 데이터를 위해 사용할 수 있다.

3. 3. 가비지 컬렉션

LogFS의 가비지 컬렉션 전략은 파일 데이터가 플래시 메모리 블록에 특정 방식으로 배치되는 것에 의존한다. 플래시 메모리 블록은 아이노드 트리에서 동일한 레벨의 파일 데이터만 보유한다. LogFS는 빈 플래시 메모리 블록 1개만 사용하여 트리의 최상위 레벨을 가비지 컬렉션할 수 있다. 빈 플래시 메모리 블록 2개를 사용하여 트리의 상위 2개 레벨을 가비지 컬렉션할 수 있다. 그리고 N개의 빈 플래시 메모리 블록을 사용하여 트리의 모든 N개 레벨을 가비지 컬렉션할 수 있다. 이 알고리즘은 최악의 경우 지수 시간이지만 최악의 경우는 드물고 이 알고리즘은 소수의 플래시 메모리 블록만 예약하면 된다.

플래시 메모리 드라이브를 최대로 사용하려면 플래시 메모리 블록이 유용한 데이터로 가득 차도록 데이터를 압축해야 하는데, 이는 가비지 컬렉션을 통해 수행된다.

참조

[1] 논문 LogFS - finally a scalable flash filesystem https://www2.informa[...] 2005-09-18
[2] 웹사이트 4.10 Merge window part 2 https://lwn.net/Arti[...] 2016-12-21
[3] 논문 LogFS - finally a scalable flash filesystem https://www2.informa[...] 2005-09-18
[4] 웹사이트 4.10 Merge window part 2 https://lwn.net/Arti[...] 2016-12-21
[5] 뉴스 LogFS news http://logfs.org/log[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com