Btrfs 개발자 조세프 바시크가 현재 개발상태에대한 소식을 발표하여, 포스팅 해 본다.
그의 말에 의하면, 지난 한해동안 800개가량의 Changeset 들이 머지되는등, 엄청난 발전이 있었다고 한다. 그는 ext4 와 250개 가량의 대조되는 부분을 보여주었으며,
여기에는 서브볼륨 쿼타 그룹과 레이드 파일시스템에 디스크를 추가할 때 사용할 새로운 re-striper 기능등이 포함되어 있었다.
Btrfs 는 이제 거의 ext4 에 버금가는 성능과, 스피닝 디스크들에서 XFS 의 두배가량의 성능을 갖고있다고 하였다.
물론 Fusion-IO 를 사용할 경우에는 XFS 와 같이 "지독하게 느리지만",
이것은 fsync() 의 작업방식 - 쓰고 대기하고, 쓰고 대기하는 - 때문이고,
atomic writes (SCSI command 중 새로 추가될 기능) 에 의해 개선될 것으로 희망하고있었다.
이는, direct I/O 를 사용하기 때문인데, 특히 4K 단위로 fsync 를 이용해 직접적인 입출력을 수행하는 것은 Btrfs 에서는 최악의 행위인 것으로 설명했다.
이 문제들은, 작업 진행과정에서 항상 언제든지 맞닥뜨릴 수 있는 문제들이나 마찬가지로 보고있으며, 반면에 send/receive 기능과, 단편화제거에 대한 작업들은 훨씬 나아졌다고 말했다.
또한, 최악의 경우 디렉토리 안의 특정 아이노드에 대한 하드링크를 두개로, 최상의경우에는 단지 사십개로 제한하는 방식으로,
아이노드 확장성에 대한 문제를 이미 해결하였으므로 이젠, 아이노드의 문제가 아닌 고작 디스크 공간의 제약만 있을 뿐이라고 설명하였다.
(사실 이부분에 대한 기본공부가 안되있어서 좀 헛갈림 ㅠㅠ)
RAID 5/6 기능이 마침내 추가되었으며, 비록 아직 power-failure-safe (전원이상에대한 안정성) 는 지원하지 않으나,
이것은 단지 깨진 드라이브를 교체하는 코드를 더 빠르고 깔끔하게 손보는 작업을 하느라 포맷이 약간 바뀌어 딜레이 되는 것일 뿐이고,
관리자들이 아주 쉽게 작업 할 수 있도록 하기 위한 것이라고 했다.
Fsck 역시 여유공간과 함께 확장된 트리들과 체크섬 트리를 체크를 하도록 수정되었고,
Btrfs 의 이미지 파티션을 만들기 위한 btrfs-image 툴또한 추가되었다고 했다.
그는, 곧 새로운 릴리즈를 만나 볼 수 있을 것이며, 나아가 단지 메인라인 코드와 btrfsprogs 안에 있는 유틸리티에서로만 머물 것이 아닌,
더 주류로 발전될것을 기대해 본다고 말했다.
비록 지금은 해결책을 갖고있다고 생각하지만, btrfs 에서 공간이 부족해 졌을때는 큰 문제가 되는 부분이긴 한데,
기본적으로, 파일시스템에서는 메타데이타가 얼마만큼의 공간이 필요한지 결코 알 수 없으므로, 꽤 과하게 예약해 놓는 부분이 있으며,
이것에 대한 수정은, 어떤 오버플로우가 발생한 곳에 로그에 특별한 "chunk" 를 기록하여 수정 될 예정이라고 설명했다.
그는 온라인 중복제거기술에 대해서도, 여러번 거듭된 작업이 있었고, 3.11 커널로 이동해야 할 것으로 예상되지만,
기본기능이 되진 않을거며, 활성화 시킬 수 있게 만들 것인데 그 전에 약간의 포맷변경이 필요할 것 같다고 설명하며,
오프라인 중복제거는 유저스페이스에서 가능하게 되었다고 했다.
이번 "우리는 아직 멀었나?" 라는 질문의 답변에서, 죠세프는 올 연말쯤에는 완성될 것이라고 말했다.
비록 그는 지난 삼년동안 계속 그렇게 말해왔으나, 그것은 정말 안정화되어왔고 더 안정적이 되었다고 했다.
그동안은 그는 많은 버그들을 수정하느라 각 기능들을 손볼 시간이 전혀 없었지만, 지금은 매우 작은 버그들만 있을 뿐이라고 설명했고,
또한 이 파일시스템에는 "끔찍할만하게 잘못되는 상황" 에 처했을 경우 도움이 될 수 있도록 유저스페이스에서의 도구들을 제공한다고 했고,
ENOSPC(공간부족) 에 대한 문제는 몇달안에 반드시 해결할 것이라고 얘기했다.
그는 올 연말이나 다음해 초에 이 프로젝트를 새로운 인스톨시에 기본 파일시스템으로 포함되도록 할지에 대해
배포판들과 이야기를 시작 할 수 있을 것으로 기대하고 있으며, 퍼포먼스가 팀을 위해서 가장 큰 주요사항이 될것임을 설명하며 마무리 했다고 한다.
여러가지 상황과 게으름이 나의 발목을 잡아왔다는 핑계를 대며... 백년만의 포스팅을 마치도록 하겠다..
기회가되면(대체언제????) 위에 언급된 atomic writes 와 스냅샷 센드/리시브 기능에대해서 포스팅 하도록 하겠다.
PS : 근데... Bacik 은 뭐라고 읽어야돼?? 그냥 Josef 라고부를걸 그랬나? ㅋㅋ