영속성을 정리하는 대화#
학생: 와, 파일 시스템이 흥미롭게 보이네요 (!), 그렇지만 복잡해요.
교수: 그게 나와 배우자가 이 분야에서 연구를 하고 있는 이유이지.
학생: 잠깐만요. 당신이 이 책을 쓰신 교수님 중 한 분이시라고요? 나는 우리가 그저 가상의 인물들인 줄 알았는데요. 핵심 내용을 정리하고 운영체제를 공부하는 데 부담도 약간 덜어줄 요량으로요.
교수: 어, 그게, 그럴 수도 있지. 너랑은 상관 없는 일이야! 그러면 누가 이런 것들을 쓴다고 생각 한거니? (한숨) 어쨌거나, 다시 시작해 보자. 무엇을 배웠니?
학생: 좋아요, 한 가지 핵심은 이해한 것 같아요. 영속적이지 않은 데이터 (메모리에 있는 것들 같은)를 관리하는 것보다 (영속적으로) 데이터를 오랫동안 관리하는 것이 더 어렵다는 것을 알았어요. 결국에는 기계가 크래시되면 메모리의 내용들은 사라지잖아요! 파일 시스템의 내용은 영원히 유지되어야 하죠.
교수: 그래, 내 친구인 Kevin Hultquist가 “영원이란 오랜 시간이다.”라고 했었지. 플라스틱 골프 티에 대해서 이야기하고 있었을 때였어. 이 말은 특히 대부분의 파일 시스템에서 볼 수 있는 쓸모없는 데이터를 설명할 때 더 적합한 말인 것 같아.
학생: 음, 제말이 무슨 뜻인지 아시잖아요! 최소한 아주 긴 시간 동안이라고요. 저장 장치에서 데이터를 저장하는 것은 간단해 보여도 사실 매우 복잡하죠. 저장 장치에 영속 데이터를 갱신하는 것과 같은 간단한 것조차도 복잡해요. 왜냐하면 크래시가 발생했을 상황도 관리해야 하잖아요. 메모리 가상화에서는 복구란 것을 생각조차도 안했었는데, 이제는 엄청나게 중요하잖아요!
교수: 맞는 말이야. 저장 장치에서 갱신은 앞으로도 계속 그럴거야. 재미있고 도전적인 문제이지.
학생: 그리고 디스크 스케줄링과 같은 멋진 것도 배웠고요. RAID와 같은 데이터 보호 기법 그리고 체크섬 같은 것도 배웠어요. 정말 끝내줘요.
교수: 나도 그 주제들이 좋구나. 하지만 정말 그 주제들을 깊게 살펴 본다면 약간 수학 분야 쪽으로 기울어질거야. 머리가 좀 아파도 괜찮다면 최신의 이레이저 코드 (erasure code)들을 살펴보기 바라네.
학생: 바로 시작해 보겠습니다.
교수: (찡그리며) 빈정대는 것으로 들리는구나. 그래, 또 어떤 것들이 마음에 들었니?
학생: 기술에 대한 이해를 바탕으로 한 FFS와 LFS와 같은 시스템을 만들기 위해 여러 가지를 고려한 것이 마음에 들었어요. 완전 괜찮아요! 디스크 특성을 반영한 설계는 정말 멋져보여요. 하지만 이제 그런 것들이 더 이상 의미가 있을까요? 플래시와 또 다른 새로운 최신의 기술들이 나왔잖아요.
교수: 좋은 질문이야! 플래시에 대한 새로운 장을 작성하기 시작해야 한다고 적어 놔야겠다. (메모를 남기기 위해 노트에 끄적인다) … 그렇지만 말야, 놀랍게도 플래시에서도 이 모든 것들이 여전히 관련이 있지. 예를 들어 플래시 변환 계층 (Flash Translation Layer, FTL)은 플래시 기반의 SSD의 신뢰성과 성능 개선을 위해서 내부적으로 로그 기반으로 동작을 취하고 있지. 그래서 지역성을 고려하는 것은 언제나 유익해. 기술은 변화하더라도 여기서 공부한 여러 개념들은 여전히 유익할 것이야. 최소한 당분간은.
학생: 좋아요, 지금까지 배웠는데, 불필요한 내용이 되면 안되는데…
교수: 교수님들이 그렇게 하지는 않겠지, 안 그렇겠니?