Fly.io, 직접 만든 파일시스템을 버리고 '그냥 디스크'로 돌아가다

SBD: We Have a Filesystem at Home

Fly.io, 직접 만든 파일시스템을 버리고 '그냥 디스크'로 돌아가다

Fly.io의 Sprites는 오브젝트 스토리지를 루트 디스크로 쓰기 위해 JuiceFS를 개조해 썼지만, 청크·메타데이터·체크포인트를 각각 따로 관리하다 보니 서로 어긋나며 디스크가 읽기 전용으로 망가지는 일이 생겼다. 400개의 Sprite를 5,000회 반복 검증한 결과 일부가 영구적으로 체크포인트 능력을 잃었다. 대안은 Sprites Block Device(SBD)로, 버킷을 NBD를 통해 블록 디바이스로 노출하고 ext4를 그대로 올린다. 메타데이터가 블록과 같은 버킷에 있어 동기화할 별도 데이터베이스가 없다.

스파게티에 수리 키트가 딸려 오면 아무리 잘 삶아도 이상한 맛이 날 수밖에 없다.
  1. dangoodmanUT

    fly.io 글 정말 좋아한다. 보통 굉장히 인간적인 느낌으로 쓰여 있거든. 예전엔 전부 다 읽었는데, 글이 흥미로워서였고, 부차적으로는 주제가 흥미로운 경우도 있었고.

    다만 이런 문장을 보면:

    > 차이는 이제 Sprite가 멈추고 그렇다고 말한다는 점이에요. 자기가 보증할 수 없는 디스크를 그대로 들고 계속 나아가는 대신에

    이건 확실히 LLM이 쓴 느낌이 든다. 어쩌면 내가 LLM 글쓰기를 식별하도록 RL 당하고 있는 건지도 모르고, 아니면 저자가 Claude가 쓴 글을 너무 많이 읽어서 그렇게 쓰도록 RL 당한 건지도 모르겠다. 그래도 fly.io 블로그 글의 그 인간미가 돌아왔으면 좋겠다.

  2. bennettnate5

    > 파스타를 직접 만드는 사람들에 대해서는 좋지 않은 말을 하고 싶다

    첫 문장에서 나를 놓쳐버렸다. 내 반려인의 홈메이드 라비올리는 비할 데가 없다. 홈메이드 파스타는 만드는 것 자체가 즐겁고, 1달러짜리 골판지 상자 파스타보다 훨씬 맛있다.

  3. aftbit

    솔직히 말하면, Sprites가 뭔지, 그리고 왜 자기들만의 블록 디바이스 종류가 필요한지 이해가 안 된다. 고통은 전부 블록 디바이스 위에서 돌아가는 리눅스 파일시스템을 오브젝트 스토어에 매핑하려는 시도에서 비롯된 것처럼 보인다. 그냥... 안 하면 되는 거 아닌가?

    그들이 그렇게 하는 이유는 여기 있다:

    https://fly.io/blog/design-and-implementation/

    그런데 여기서는 아마 잘못된 트레이드오프를 선택한 게 아닌가 싶다.

이 날의 다른 글

2026-10-22