임베디드 리눅스 개발자를 위한 파일시스템 분석 ①

시작하며필자는 운이 좋게도 올해 리눅스의 가장 큰 행사인 Ottawa Linux Symposium(OLS) 2006에 관련 논문의 제출과 동시에, 많은 개발자들에게 소개할 수 있는 기회를 가지게 되어 행사장인 캐나다의 오타와를 방문했다. 매년 열리는 OLS를 통해 한국에 본사를 둔 회사가 Technical Paper를 발표하는 것은 필자가 속한 팀이 처음이 아닌가 하는 생각에 뿌듯한 마음으로 많은 개발자들과 이야기하고 우리 팀이 개발한 파일시스템을 소개했다.그런데 파일시스템은 이제 연구 및 개발이 거의 끝난 단계에 접어들고 있다고 알려진 분야이고, 또한 많은 엔터프라이즈 IT 관련 개발자들이 이제 더 이상 개발 여지가 없다고 생각하고 있는 분야이기도 하다. 그러나 여전히 파일시스템은 올해 OLS에서 2번째로 많은 Technical Paper들이 제출됐으며, 가장 많은 BoF(Birds-of-a-feather)를 통해 개발자들의 의견이 논의되는 주제이기도 했다. 특히 필자가 소속된 회사뿐만 아니라 전통적인 의미의 IT 업체가 아닌, Intel, Philips 등 가전 업체(Consumer Electronics 업체) 또는 Chip 업체들의 파일시스템에 대한 관심 또한 굉장히 뜨거웠다.필자는 앞으로 총 4회에 걸쳐 임베디드 시스템을 위한 파일시스템에 대해 연재를 할 것이다. 먼저 이번 회에서 다룰 내용은 왜 다시 파일시스템이 관심이 증가하고 있으며, 특히 정보 가전제품을 다루는 CE업체들이 파일시스템에 관심을 가질 수밖에 없는지에 대해 설명하려고 한다.임베디드 시스템의 환경 변화10여년 전, 필자가 학생시절에 펌웨어 작성 아르바이트를 할 때만 해도 임베디드 시스템이라는 거창한 말도 없었다. 뿐만 아니라, 리소스 제한이 너무 심하고 디버깅도 어려워서 같은 과에서 멋진 PC용 응용프로그램을 작성하는 선배를 부러워했고 Unix 시스템 프로그램을 하는 친구들을 동경하기도 했다. 극단적으로 말하면 임베디드 시스템 프로그래밍은 “노가다”로, 친구나 선배가 개발하는 것은 “개발”이라고 생각한 시절이었다. 물론 그 시절에도 많은 RTOS가 존재하였고 그것으로 멋진 제품들이 나오곤 했다. 그러나 지금처럼 임베디드 시스템에 대해 장래가 밝다고 이야기하거나(필자는 회의적이지만) IT 강국을 유지하기 위한 하나의 축으로 주장하는 사람은 거의 없었던 것 같다.최근 10년간 하드웨어의 눈부신 발전, 특히 가격이 저렴한 SoC(System-On-Chip)와 그 매뉴얼(한 때는 Chip 매뉴얼을 구하기 위해 눈에 불을 켜야 했던 시절이 있었다)을 쉽게 구할 수 있게 되고 Linux 같은 General Purpose OS가 SoC에 포팅되어 사용할 수 있게 되면서 임베디드 개발 환경에 많이 변화가 일어났다. 물론 아직 하드웨어와 관계된 드라이버 제작 등에서 “노가다”가 완전히 사라지진 않았지만 예전보다는 많이 개선되었고, 회사에서 근무하는 개발자들이 디버깅을 위해 오실로스코프를 바라보는 일은 많이 줄어들었다.특히, 구조 및 Instruction이 상대적으로 간단하면서도 성능이 뛰어나고 가격까지 저렴한 ARM 기반 SoC들이 대중화되고, DSP 기술이 발달하면서 임베디드 시스템, 그 중에서도 정보 가전 부분에서 새로운 제품들이 속속 기획 및 출시됐다. 이와 같은 흐름을 타고 제품 디지털화라는 새로운 물결이 가능하게 됐다.정보 가전제품의 변화앞서 설명한 임베디드 시스템, 특히 정보 가전제품은 지난 10년 사이에 극적인 변화를 경험했다. 하드웨어 측면에서는 처리하는 데이터가 디지털화 되고, 고속의 유·무선 네트워크 기능 및 USB로 대표되는 사용자 친화적이며 고속인 장치 연결 인터페이스를 탑재하게 됐다. 이에 따라 네트워크나 다른 장치에 있는 대량의 음성이나 동영상 데이터를 처리할 수 있게 됐다. 소프트웨어 측면에서는 가전제품에서는 절대 쓰일 것 같지 않았던 Windows(WinCE)나 Linux같은 General Purpose OS(기존의 RTOS에 대비 하이엔드 OS)가 사용되면서, 향상된 하드웨어를 이용하여 빠르고 효과적인 제품화가 가능하게 됐다.오늘날 많은 사용자들은 손바닥에 들어가는 작은 이동전화로도 DMB TV를 볼 수가 있으며, 일부 제품은 방송을 녹화하는 기능도 내장돼 있다. 또한 들고 다니면서 어디서든지 동영상을 볼 수 있는 PMP도 이미 대중화 단계에 들어서고 있다. 디지털 TV는 MPEG2 TS를 실시간으로 압축을 풀어서 화면에 표시하고 있으며, 영상을 대용량 하드 디스크에 녹화하는 PVR도 최근 각광을 받고 있다.결론적으로 디지털 정보 가전의 중요한 특징은 어떤 제품이라도 네트워크로 연결되어 디지털화된 대용량의 멀티미디어 데이터를 처리하는 능력이며, 또한 시간의 제약을 극복하기 위해 이러한 대용량 데이터를 언제나 사용 가능하도록 어디엔가 저장할 수 있는 능력이다.대용량 저장 장치의 발전대용량의 멀티미디어 데이터를 처리 능력만으로는 디지털 정보 가전의 변화를 설명하기는 힘들다. 더 중요한 것은 디지털로 된 멀티미디어 데이터를 값싸고, 사용하기 편하며 안전하게 저장하며, 쉽게 저장 된 데이터를 지울 수 있는 속도 빠른 저장 장치이다. 물론 예전에도 하드디스크, 5.25인치 및 3.5인치 플로피 디스크가 있었지만, 가전제품에 사용하기에는 너무 큰 크기와 한정된 저장 용량으로 인해 고려 대상에서 제외됐었다. 또한 EPROM이나 Serial Flash 같은 반도체 2차 저장 장치들은 너무 비싸서 대용량으로 사용할 수 없었으며, 용량 제한도 심각했다(처음 필자가 개발한 제품 사양이 16KB OTP에 64KB DRAM 이었다).그러나 어느 시점부터 저장 장치들의 용량이 폭발적으로 증가했고, 3.5인치 하드디스크의 경우 내년 초면 1TB 용량의 제품이 개인도 구입할 수 있는 가격 선에서 출시될 것이라고 한다. 노트북용으로 쓰이는 2.5인치와 1.8인치 하드디스크는 3.5인치 하드디스크의 절반 용량 정도가 될 것이다. Flash와 용량 경쟁을 펼치고 있는 1인치, 0.85인치 하드디스크도 금년 말에는 16GB 용량의 제품을 선보일 예정이다. Flash memory의 경우에도 NAND를 기준으로 32Gbit 단품이 개발되어 이를 이용한 64Gbyte CompactFlash가 개발됐다는 소식이 들려온다. 그림 2는 Seagate가 Storage Networking World conference에서 예상한 하드디스크 개발 트랜드이다.(http://www.snwusa.com/documents/presentations-s06/MarkKryder.pdf 참조).이처럼, 대용량 저장 장치를 사용할 수 있게 되면서 정보 가전용 임베디드 시스템은 새로운 가능성을 열고 있지만 또한 새로운 문제에 부딪치게 됐다. 따라서 이런 문제가 왜 발생하고 어떻게 해결해야 되는지 이야기 해보겠다.정보 가전제품을 위한 파일 시스템 요구 사항최근 우리가 사용하는 대부분의 정보 가전제품들은 앞서 언급한 대로 대용량 데이터를 저장할 수 있는 능력을 가지고 있다. 많은 사람들이 항상 휴대하는 이동전화의 내장 저장 용량은 100MB를 넘고 있으며, 외장 메모리 카드를 사용하는 경우에는 기가바이트 용량을 쉽게 사용할 수 있다. MP3 player도 기가바이트의 메모리가 일반적이며, PMP의 경우는 하드디스크를 탑재하여 30GB정도의 데이터 저장 공간이 있다. 또한 Microsoft의 Xbox360이나 PS3 같은 차세대 게임기도 하드디스크를 기본으로 탑재하고 있다.그렇다면 이런 대용량의 저장 장치를 내장한 정보 가전제품들은 일반적으로 어떤 특성이 있을까? 개인용 컴퓨터와 비교하여 정리해 보면 다음과 같다.쪾 사용자의 비전문성쪾 하드웨어 사양이 낮음쪾 설치 후 소프트웨어 갱신이 어려움쪾 저장 데이터 백업의 어려움쪾 예측하기 어려운 전원 차단그 밖에도 여러 다른 점들이 있겠지만 위에 정리한 사항이 가장 큰 차이점이라 할 수 있다. 개인용 컴퓨터와 비교하는 이유는 Linux나 WinCE같은 OS가 탑재된 정보 가전 시스템은 소프트웨어, 하드웨어 구성이 PC와 큰 차이가 없기 때문이다.앞에서 나열한 차이점에 의해 정보 가전 임베디드 시스템은 PC보다 훨씬 높은 정도의 안정성을 요구받으며, 또한 문제 발생 시에 사용자의 데이터를 반드시 복구해야(그것도 사용자는 시스템에 문제가 생겨 복구하고 있다는 사실도 모르게) 한다. 대부분의 사람들은 정전으로 컴퓨터가 잘못 종료될 경우, 데이터가 파괴되거나 블루스크린이 떠서 컴퓨터가 동작을 멈추면 화를 내는 정도에 그칠 것이다. 하지만, 집에서 사용하는 디지털 TV나 이동전화에서 위와 같은 일이 발생하면 인터넷에 안티 사이트가 생기고, 아마 제조사는 대규모 리콜을 해야 할 것이다.개인용 컴퓨터의 자료는 여러 방법으로 백업이 가능하지만 정보 가전제품은 특별한 백업 방법이 없고, 있더라도 평균적인 사용자 수준에서 사용하기란 쉽지 않다. 따라서 정보 가전제품에 저장되어 있는 사용자의 데이터는 백업이 존재하지 않는 원본 데이터일 확률이 높다. 또한 그 데이터가 사용자의 소중한 추억이 담겨 있는 것이라면 절대로 문제가 생겨서는 안 된다. 게다가 정보 가전제품은 400HMz 처리 속도의 CPU와 256MB의 메모리를 갖췄다면 하이엔드 시스템으로 불릴 정도로 아직 하드웨어 사양이 열악하다. 물론 많은 부분은 전용 칩으로 해결하고 있긴 하지만 이런 사양에서도 끊어짐 없는 데이터 처리가 가능해야 한다.결론적으로 최근 정보 가전제품들의 소프트웨어는 OS, Middleware, Application까지 매우 복잡하게 구성되어 다양한 기능을 수행할 수 있게 되어 있으며(리눅스를 사용하는 제품의 경우에는 리눅스를 사용하는 개인용 컴퓨터와 소프트웨어 구성이 별차이가 없다), 하드웨어의 사양이 부족하지만 언제든지 전원이 나갈 수 있는 상황에서도 문제없이(== 버그 없이) 원하는 동작을 해야 한다. 이 같은 요구사항은 어떻게 생각하면 기적에 가까운 일로, 그래서인지 최근 여기저기서 제품의 버그가 문제되고 있는 것 같다. 물론, 제조사에서도 제품을 개발할 때 사용자가 상상하기 힘든 Quality Assurance를 과정을 거치고 있고, 또한 기업 규모가 클수록 더 많은 효과적인 테스트를 더 오랫동안 진행하는 방법으로 해결하려고 하고 있다.따라서 정보 가전 임베디드 시스템에 내장된 대용량 저장 장치를 위한 파일시스템은 낮은 CPU 사용, 예측할 수 없는 전원차단 대비 및 문제점 발견 시 복구 또한 어느 상황에서도 시스템의 안정성을 유지시켜야 특성을 갖춰야 한다. 더불어 저장 장치의 수명을 제품과 일치시킬 수 있는 기능성과(제품수명이 5년인데, 하드디스크 수명이 2년이라면 이상하지 않을까?) 저장 장치가 소음을 발생시키는 경우에는 이를 최소화할 수 있도록 해야 한다.이와 같은 내용을 정리한 것을 그림 3에 나타냈다.물론 위의 요소를 다 갖춘 파일 시스템은 아마 존재하지 않을 것이지만, 제품의 특성에 맞게 기존 파일시스템을 개선하거나 새로운 파일시스템을 개발하는 것이 정보 가전제품을 위해서 꼭 필요하다.저장 장치의 특성정보 가전제품에서는 여러 종류의 저장 장치를 사용하고 있는데, 장치마다 특성이 다르므로 파일시스템은 이에 대한 고려가 필요하다.Hard Disk Drive하드 디스크는 용량 당 가격이 가장 저렴하나, 자체의 Firmware에서 IO와 관련된 많은 부분을 처리하기 때문에 OS나 파일 시스템은 관여할 수 없어서 에러 핸들링, 성능 최적화에 어려운 부분이 있다. 또한 충격에 약하고, 소음이 있으며 모터 등의 기구부로 구동되는 장치라서 내구성 및 신뢰성 측면에서 부족하다. 특히 상대적으로 높은 전력 소모는 배터리로 작동하는 모바일 장치에게는 치명적이다.하드 디스크는 사용자들이 생각하는 만큼 높은 안정성을 가진 저장 장치가 아니며 구조상 완벽한 실시간성을 보장하기 어렵다.하드 디스크에서 특정한 정보를 얻기 위해서는 정보가 담긴 섹터가 Head까지 도달해야 하며 그 과정에서 rotational과 seek에 대한 latency가 발생하게 된다. 이 latency가 전체적인 실시간성을 떨어뜨리고, 또한 파일시스템의 성능을 결정하는 중요 요소가 된다(그림 4 참조). 또한 현재 쓰이는 하드디스크는 섹터 배열이 Zone을 고려하고 있기 때문에 파일시스템의 데이터 배치 정책(Allocation Policy)은 이런 latency와 Zone 배열을 모두 고려해야 한다.FlashFlash는 반도체의 게이트들의 전기적 특성을 이용한 저장 장치로 전원이 공급되지 않아도 내용을 저장할 수 있다. NOR와 NAND 타입이 일반적이며, NOR의 경우에는 직접 이진 코드를 실행시킬 수 있고 NAND 타입은 용량 대비 가격이 저렴하다. Erase, Write와 관련된 수명 문제를 위한 Wear leveling, 그리고 bad block 처리를 위한 FTL(Flash Translation Layer) 소프트웨어가 필요하며, 파일 시스템에서 이를 모두 처리하는 경우도 있다. 최근에는 NOR와 NAND의 장점을 갖춘 Fusion Memory인 OneNandTM가 삼성전자에서 발표되어, 차차 사용이 늘어나고 있다.차세대 저장 장치현재 사용중은 아니지만 아주 가까운 시기에 사용될 수 있는 저장 장치들로는 Flash의 장점을 이용하여 부팅시간 단축 및 저전력을 확보하는 Hybrid Had Disk와 유전체 종류 변경이나 Write를 위한 Erase를 제거한 FRAM, MRAM, PRAM 등이 대표적인 제품이다.끝마치며이번 회에서는 정보 가전용 임베디드 시스템의 트랜드와 이에 따른 파일 시스템의 요구 사항을 살펴보았고 앞으로는 본격적인 소스 코드에 집중할 것이다. 특히, 소스 코드가 공개되어 있으며 최근에도 파일시스템에 대한 구현 및 논의가 활발한 리눅스에서 파일 시스템을 구현하는 것을 기준으로 연재를 계속할 계획이다. 필자의 10년 남짓의 부족한 경력으로 연재를 시작하여, 의미가 불명확하거나 혹시나 잘못된 내용이 글에 포함되었을까 염려스럽다. 만약 연재 중에 더 궁금한 점이 있다거나 잘못된 내용에 대한 메일은 언제든지 환영한다.참고문헌* Understanding Linux Kernel 3rd Edition, O’Reilly* Unix Internals - the new frontier, Prentice Hall* Linux kernel Development 2nd Edition, Novell쪹 연재순서임베디드 리눅스 개발자를 위한 파일시스템 분석1회 임베디드 시스템용 파일 시스템 개괄2회 리눅스 VFS 분석과 파일 시스템의 작성3회 IO 서브시스템의 기초 : Memory, Process4회 IO 서브시스템 분석 : 블록 디바이스장민성(mdpe36@empal.com)1999년 대학원 졸업 직전부터 회사 생활을 시작하여, 8bit 펌웨어부터 RTOS, 윈도우용 드라이버까지 다양한 소프트웨어를 개발했다. 삼성전자 소프트웨어연구소에서 2003년부터 임베디드 리눅스 관련 업무를 수행하고 있으며, 주로 저전력기술 및 파일시스템 관련 부분에 경험을 쌓았다. 지난해 CELF Technical Conference, Linux World Conference 2006 Korea 등에서 관련 발표를 진행했으며, 올해는 Ottawa Linux Symposium 2006(OLS06)에 관련 Technical Paper 제출을 통해 참가했다.
회원가입 후 이용바랍니다.
개의 댓글
0 / 400
댓글 정렬
BEST댓글
BEST 댓글 답글과 추천수를 합산하여 자동으로 노출됩니다.
댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글수정
댓글 수정은 작성 후 1분내에만 가능합니다.
/ 400
내 댓글 모음
저작권자 © 테크월드뉴스 무단전재 및 재배포 금지