btrfs의 사례로 본 리서치-레퍼런스구현-상용화(?)의 사이클

권순선의 이미지

리눅스에 btrfs라는 파일시스템이 최근 여러가지 면에서 화두가 되고 있는데... 이것을 기술적 관점/정치적(?) 관점/비즈니스 관점에서 분석하고 이것이 어떻게 시작되어 어떤 과정을 거쳐 현재의 상태에 이르렀으며 앞으로 어떻게 될 것인가를 전망한 아주 좋은 글이 http://lwn.net 에 올라왔습니다. 글쓴이는 파일시스템 쪽에서 상당히 잘 알려진 Valerie Aurora(예전에는 Valerie Henson이었는데 이분이 여자분이라... 결혼을 하고 남편의 성을 따서 이름이 바뀐 듯)입니다.

http://lwn.net/Articles/342892/

자료구조 중에서 btree라는 것이 있는데 IBM Haipa Research에서 근무하고 있던 Ohad Rodeh씨가 이것의 단점을 극복한 새로운 형태의 btree 구현 방법을 Linux File and Storage Workshop 2007에서 발표합니다. 그리고 당시 Reiserfs 개발에 참여하고 있던 Chris Mason이라는 개발자가 이 아이디어를 실제로 파일시스템으로 구현하면서 어느정도 완성되어갈 무렵... 그는 Oracle로 자리를 옮깁니다. 그리고 거기서 Zach Brown등 오라클에 이미 근무하고 있던 다른 개발자들과 함께 패치를 다듬은 후 btrfs라는 이름으로 lkml에 포스팅합니다. 이후는 일반적인 오픈소스 프로젝트들과 크게 다르지 않습니다. 현재는 mainline에 포함되어 있고 Red Hat, SUSE, Intel, IBM, HP, Fujitsu 등 다양한 회사의 개발자들이 참여하여 활발하게 개발이 진행 중입니다.

리눅스의 기본 파일시스템은 ext2에서 ext3를 거쳐... ext4로 이어져 오고 있는데 글쓴이는 이미 Linus Torvalds가 자기 노트북에 btrfs를 사용 중이라는 점도 함께 언급하면서 2년 이내로 btrfs가 그 자리를 차지할 것으로 내다보고 있습니다.

연구 -> 레퍼런스 구현 -> 상용화(?)의 각 단계별 진행 과정이 잘 나타나 있어 여러가지 면에서 insight를 얻을 수 있는 매우 훌륭한 글입니다. 그외에도 위의 글에는 btrfs의 자세한 기술적 원리와 ZFS와의 장/단점 비교 등 매우 유용한 정보들이 많이 있으니 관심 있으신 분들은 꼭 한번 읽어 보시기 바랍니다.

댓글

koseph의 이미지

버터fs는 오라클이 버티고 있군요.

선전을 기대해 봅니다.
---------------------------------
There's always another way, dear.

---------------------------------
There's always another way, dear.

segfault의 이미지

reiser4의 디자인 아이디어가 많이 반영되었다고 해서 기대중입니다. reiser4를 써 보려고 했지만 메인라인 커널에 포함된 적이 없어서...

별 관계 없는 이야기긴 하지만 이 분이 성을 바꾼 건 부친 Keith Henson이 연쇄 유아 성폭행범이기 때문이라고 하더군요.

http://valerieaurora.org/keith.html

----
http://www.planetmono.org

익명 사용자의 이미지

btrfs 의 최근 상황은 어떤가요?
아직 주변에서 많이 못 봤으니 메인스트림이라 하긴 좀 어려운 듯 한데요.

익명 사용자의 이미지

제가 알기론 아직 fsck가 구현되어 있지 않습니다.

다콘의 이미지

곧 fsck가 완성되나 봅니다.

Btrfs To Go Production-Ready In Oracle Linux
http://www.phoronix.com/scan.php?page=news_item&px=MTA0ODU

tsgates의 이미지

잠시 ubuntu에서도 default로 사용되니 마니 하는 계획과 논의가 있었죠. 개인적으로 1년 이상 사용해 봤는데, 초기에 fs을 망가트리는 경우가 종종 있었습니다. 백업용 레이드에 버터fs를 사용하는데, kernel 3.0 이후 부터는 한번도 문제가 된적이 없네요. fsck도 활발하게 개발 되고 있어서 .. 가장 주목 받고 있는 fs라 볼 수 있죠.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.