DBPIA-NURIMEDIA

Similar documents
DBPIA-NURIMEDIA

경우 1) 80GB( 원본 ) => 2TB( 복사본 ), 원본 80GB 는 MBR 로디스크초기화하고 NTFS 로포맷한경우 복사본 HDD 도 MBR 로디스크초기화되고 80GB 만큼포맷되고나머지영역 (80GB~ 나머지부분 ) 은할당되지않음 으로나온다. A. Window P

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

6.24-9년 6월

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

PowerPoint 프레젠테이션

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

2017 년 6 월한국소프트웨어감정평가학회논문지제 13 권제 1 호 Abstract

untitled

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

ISP and CodeVisionAVR C Compiler.hwp

항목

Microsoft Word - Armjtag_문서1.doc

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Chapter 05. 파일접근권한관리하기

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

Microsoft PowerPoint - 알고리즘_1주차_2차시.pptx

ADP-2480

로거 자료실

SIGIL 완벽입문

Microsoft Word - PLC제어응용-2차시.doc

슬라이드 1

PowerPoint 프레젠테이션

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft PowerPoint - chap01-C언어개요.pptx

슬라이드 1

chap 5: Trees

Tablespace On-Offline 테이블스페이스 온라인/오프라인

네이버블로그 :: 포스트내용 Print VMw are 에서 Linux 설치하기 (Centos 6.3, 리눅스 ) Linux 2013/02/23 22:52 /carrena/ VMware 에서 l

Microsoft PowerPoint - 30.ppt [호환 모드]

Microsoft Word - Korean_뷰어 메뉴얼_공용_ADVR&SWi_.doc

PowerPoint 프레젠테이션

Windows Server 2012

금오공대 컴퓨터공학전공 강의자료

학습영역의 Taxonomy에 기초한 CD-ROM Title의 효과분석

Microsoft PowerPoint - 알고리즘_2주차_1차시.pptx

공개 SW 기술지원센터

Microsoft Word - src.doc

ActFax 4.31 Local Privilege Escalation Exploit

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

임베디드시스템설계강의자료 6 system call 1/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

System Recovery 사용자 매뉴얼

PCServerMgmt7

C# Programming Guide - Types

Appendix B

Chap 5 루트파일시스템 (Root F/S)

Microsoft PowerPoint - o8.pptx

Chapter ...

Microsoft PowerPoint - CSharp-10-예외처리

슬라이드 1

Microsoft Word _LT_리눅스 마운트강좌 mount 1편.doc

Contributors: Myung Su Seok and SeokJae Yoo Last Update: 09/25/ Introduction 2015년 8월현재전자기학분야에서가장많이쓰이고있는 simulation software는다음과같은알고리즘을사용하고있다.

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

°í¼®ÁÖ Ãâ·Â

슬라이드 1

작성자 : saint Overview BackTrack 는 LILO 를부트로더로사용한다. BactTrack 을기본환경설정그대로설치하면부팅할수없는경우가있는데, 이것은실린더크기가 1024 보다큰하드디스크에설치하면 LILO 가 OS 를정상적으로읽어올수없기때문이다. 요즘나오는

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

Microsoft PowerPoint 웹 연동 기술.pptx

[ 컴퓨터시스템 ] 3 주차 1 차시. 디렉토리사이의이동 3 주차 1 차시디렉토리사이의이동 학습목표 1. pwd 명령을사용하여현재디렉토리를확인할수있다. 2. cd 명령을사용하여다른디렉토리로이동할수있다. 3. ls 명령을사용하여디렉토리내의파일목록을옵션에따라다양하게확인할수

4S 1차년도 평가 발표자료

실험 5

Microsoft PowerPoint - chap06-2pointer.ppt

À±½Â¿í Ãâ·Â

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc

PowerPoint Template

Microsoft PowerPoint - ch07.ppt

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - 03-Development-Environment-2.ppt

GNU/Linux 1, GNU/Linux MS-DOS LOADLIN DOS-MBR LILO DOS-MBR LILO... 6

DBPIA-NURIMEDIA

지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함. 한번은 intel CPU를위한 gcc로, 한번은 ARM CPU를위한 gcc로. AR

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

(SW3704) Gingerbread Source Build & Working Guide

제1장 Unix란 무엇인가?

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

Level 학습 성과 내용 1수준 (이해) 1. 기본적인 Unix 이용법(명령어 또는 tool 활용)을 습득한다. 2. Unix 운영체계 설치을 익힌다. 모듈 학습성과 2수준 (응용) 1. Unix 가상화 및 이중화 개념을 이해한다. 2. 하드디스크의 논리적 구성 능력

금오공대 컴퓨터공학전공 강의자료

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

Microsoft Word - DELL_PowerEdge_TM_ R710 서버 성능분석보고서.doc

실험. Multimeter 의사용법및기초회로이론 Multimeter 의사용법 멀티미터 (Multimeter) 는저항, 전압, 전류등을측정할수있는계측기로서전면은다음그림과같다. 멀티미터를이용해서저항, 전압, 전류등을측정하기위해서는다음그림과같은프로브 (probe) 를멀티미터

Microsoft Word - LKP-RTD 사용자 설명서

임베디드시스템설계강의자료 4 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

DBMS & SQL Server Installation Database Laboratory

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

BMP 파일 처리

KEY 디바이스 드라이버

6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO

(72) 발명자 이동희 서울 동작구 여의대방로44길 10, 101동 802호 (대 방동, 대림아파트) 노삼혁 서울 중구 정동길 21-31, B동 404호 (정동, 정동상 림원) 이 발명을 지원한 국가연구개발사업 과제고유번호 부처명 교육과학기술부

[Brochure] KOR_TunA

보도자료 2014 년국내총 R&D 투자는 63 조 7,341 억원, 전년대비 7.48% 증가 - GDP 대비 4.29% 세계최고수준 연구개발투자강국입증 - (, ) ( ) 16. OECD (Frascati Manual) 48,381 (,, ), 20

DBPIA-NURIMEDIA

Transcription:

248 정보과학회논문지 : 시스템및이론제 35 권제 6 호 (2008.6) SOAR : 저장장치를기반으로하는시스템의신뢰성분석도구개발 (SOAR : Storage Reliability Analyzer) 김영진 원유집 김락기 (Youngjin Kim) (Youjip Won) (Rakie Kim) 요약대용량멀티미디어파일의증가와개인의디지털정보의중요성이날로증가하면서저장장치는고용량화, 고집적화되는방향으로발전하고있다. 따라서저장장치에발생되는물리적인오류는단순히작은영역의손상이아닌매우넓은영역에대한정보손실로이어진다. 이를방지하기위해서는시스템을사용하기전에물리적인오류에대한시스템의강인성과대처수준을검증하고사용해야한다. SOAR(Storage Reliability Analyzer) 는검증의핵심이될수있는물리적인오류발생기능과복구기능을가지고있으며이것은시스템에대한신뢰성과강인성을검증할수있는유용한도구이다. 이기능을보다편리하게사용하기위해서 SOAR 는 3 가지의특수한오류적용기법과파일시스템에특화된 2 가지기법을가지고있다. 본논문에서는 SOAR 를이용해서어플리케이션부터파일시스템까지물리적인오류에대한검증을실제수행하고결과분석을진행하였다. 그러므로 SOAR 는물리적인오류에대한시스템의많은문제점을발견하였고동시에그기능을증명하였다. 키워드 : 신뢰성, 강인성, 저장장치, 물리적인오류, 베드섹터 Abstract As the number of large size multimedia files increases and the importance of individual s digital data grows, storage devices have been advanced to store more data into smaller spaces. In such circumstances, a physical damage in a storage device can destroy large amount of important data. Therefore, it is needed to verify the robustness of various physical faults in storage device before certain systems are used. We developed SOAR(Storage Reliability Analyzer), Storage Reliability Analyzer, to detect physical faults in diverse kinds of HDD hardware components and to recover the systems from those faults. This is a useful tool to verify robustness and reliability of a disk. SOAR uses three unique methods of creating physical damages on a disk and two unique techniques to apply the same feature on file systems. In this paper, we have performed comprehensive tests to verify the robustness and reliability of storage device with SOAR, and from the verification result we could confirm SOAR is a very efficient tool. Key words :reliability, robustness, storage, physical faults, badsector 본연구는 KOSEF(R0A-2007-000-20114-0) 의한양대 National Research Lab 지원을받아수행하였습니다. 학생회원 : 한양대학교전자컴퓨터통신학과연구원 kyj79@paran.com daybreak24@ece.hanyang.ac.kr 종신회원 : 한양대학교전자컴퓨터통신학과교수 yjwon@ece.hanyang.ac.kr 논문접수 : 2007년 5월 29일심사완료 : 2008년 3월 19일 Copyright@2008 한국정보과학회ː개인목적이나교육목적인경우, 이저작물의전체또는일부에대한복사본혹은디지털사본의제작을허가합니다. 이때, 사본은상업적수단으로사용할수없으며첫페이지에본문구와출처를반드시명시해야합니다. 이외의목적으로복제, 배포, 출판, 전송등모든유형의사용행위를하는경우에대하여는사전에허가를얻고비용을지불해야합니다. 정보과학회논문지 : 시스템및이론제35권제6호 (2008.6) 1. 서론 1.1 연구동기현대사회의디지털정보는간단한콘텐츠부터금전적으로살수없을정도의중요한콘텐츠에이르기까지날로그종류가증가하고있다. 요즘디지털정보중가장중요시여기는개인정보는외부에알려졌을경우개인의프라이버시를침해할수있고, 사라졌을경우큰곤경에빠질수있어학계에서는디지털정보의보호를위해많은연구가진행되고있다. 그리고이와같은디지털정보는일반적으로개인 PC나노트북에저장하게되는데이때의저장장치는대부분하드디스크를사용하고있다. 이러한저장장치에논리적인오류가아닌물리

SOAR : 저장장치를기반으로하는시스템의신뢰성분석도구개발 249 적인오류가발생되었고, 해당위치가중요한디지털정보가담긴영역이라면되돌릴수없는상황이된다. 또한저장장치의대용량화, 디스크의소형화, 고속화위주로연구개발되면서디스크의집적도는증가하여보다많은정보를잃어버릴수있게되었다. 기존의어플리케이션이나파일시스템검증은저장장치의물리적인오류를고려하지않은채시스템의논리적인오류에대한검증만을하고있다. 하지만저장장치는수많은물리적인오류가발생할수있는불안전한공간이기때문에어플리케이션이나파일시스템이물리적인오류에대해적절한대처를하고있는지검증할필요가있다. 이와같은검증을위해서는검증을위한도구개발이선행되야하며도구의신뢰성또한갖추어져야검증의신뢰성을얻을수있다. 1.2 관련연구기존에저장장치에대한물리적인오류를발생시켜주는대표적인도구는 IDE 디스크기반의물리적인오류발생도구인 Fault Injection Tool[1] 이있다. 이도구는 IDE디스크기반의저장장치에물리적인오류를발생시켜주는도구로서실제저장장치에물리적인오류를발생시키는기법이아닌디바이스드라이버영역을이용해서가상의물리적인오류를발생시키는기법을가지고있다. 이기법은물리적인오류를가상으로발생시켜파일시스템, 디스크시스템, I/O인터페이스사이의신뢰성을검증하기위한소프트웨어기반의오류발생도구로리눅스의 IDE디스크드라이버와그상위의시스템사이에서논리적인접근으로원하는디스크의영역에물리적인오류를발생시킨다. 이것은커널내의자료구조와디바이스드라이버영역의소스코드를수정해서개발한도구이기때문에커널에존재하는 Request 구조체가핵심자료구조이다. 커널에존재하는 Request 구조체란디스크접근요청이물리적블록장치마다있는요청큐 [2] 에들어오면엘리베이터알고리즘에의해디스크헤드이동을최소화하는방향으로알맞게정렬하여시스템성능을높이는데관여되는자료구조이다. 이와같은 Request구조체를조작한다면저장장치로부터읽거나쓰는등의작업을조작할수있기때문에물리적인오류가발생한것과같은효과를줄수있다. 이와같은방식의장점은현재저장장치의디지털정보를훼손하지않으면서시스템의물리적인오류에대한검증이가능하다. 하지만단점으로는실제저장장치에발생한것이아닌가상의물리적인오류이기때문에검증을위한범위에한계가있고재부팅된후에는오류정보가사라진다. 이와같이파일시스템에대한강인성및무결성을검증하는연구 [3] 뿐만아니라시스템의신뢰성과강인성을검증하기위한연구 [4] 도함 께진행중이다. 하지만아직미흡한수준이다. 이와같은연구가보다활발히이루어지기위해서는저장장치벤더와의밀접한교류와상세한저장장치의정보가제공되어야한다. 하지만저장장치벤더의입장에서보면자신의제품에대한결점을노출하는상황이되기때문에연구에많은어려움이있는실정이다. 여러가지어려움속에서저장장치의물리적인오류를실제발생시킬수있는지능형도구 SOAR를개발하였다. 2. 입출력시스템구조의한계일반적인시스템이라면그림 1과같이입출력에관련한시스템구조가유저어플리케이션, 파일시스템, 디바이스드라이버, 저장장치로각각나누어져있으며각각명확한경계로이루어져있다. 디바이스드라이버영역은저장장치에서발생되는물리적인오류및저장장치관련정보의대부분을알수있는영역이다. 왜냐하면저장장치관련여러레지스터조작을독립적으로수행하고있기때문이다. 물론다른영역에서도저장장치관련레지스터 [5] 에접근하여값을확인할수있지만그렇게해서얻어지는값은올바른레지스터값이아니다. 파일시스템과유저어플리케이션간에도단순히에러코드만을전달할뿐더이상의어떠한정보도공유하지않는다. 따라서각계층간의명확한구분 [6] 으로인해계층간필요로하는중요한정보를공유하지못하는시스템구조임을확인할수있다. 이와같은문제는저장장치에발생된물리적인오류정보가상위계층으로전달되지않아하위계층인하드웨어는점점심각한상태로진행되고있어도상위계층은튼튼한하드웨어를가졌다고생각하여정상적인작업을계속수행하게된다. 결국문제를인지하지못한채어느순간데이타를모두손실할수있는위기상황에봉착할수있다. 더군다나연구학자들또한각각의영역에대해서독립적인연구활동을할뿐통합적인접근은아직미흡한상태이다. 과거의저장장치에비해현대의저장장치는집적도가매우향상되어작은데이타의손실이아닌막대한양의디지털정보가손실될수있다. 따라서현재의시스템이그림 1 입출력시스템구조

250 정보과학회논문지 : 시스템및이론제 35 권제 6 호 (2008.6) 물리적인오류에대한강인성을어느수준으로가지고있는지확인할필요가있다. 이러한이유로개발된 SOAR는 ATA[7] COMMAND를이용하는 SATA/IDE 디스크저장장치에실제물리적인오류를발생시켜물리적인오류에대한시스템검증뿐만아니라검증의신뢰성을향상시켰다. 또한실제물리적인오류로부터디지털정보를보호가반드시필요할경우를대비해서가상의물리적인오류를발생시킬수있게 SOAR를구성하였다. 이는디바이스드라이버를이용해서실제물리적인오류와같은효과를줄수있을만큼의정교한기능이다. 3. SOAR 의물리적인오류발생 SOAR의물리적인오류발생기능은 2가지가있다. 첫째는 ECC-CREATOR(Error Correcting Code-CRE- ATOR) 기능으로사용자가원하는저장장치에정확한위치를파일시스템에서구분하는블록번호또는 LBA (Logical block addressing) 주소를통해서접근한후읽기실패오류의대표적인베드섹터를물리적으로실제발생시키는기능이다. 두번째는 ERROR-CREATOR 기능으로디바이스드라이버에서정의하고있는모든물리적인오류에대해서 ECC-CREATOR기능과같이원하는위치를블록번호또는 LBA주소를통해서선정가능하고, 읽기실패뿐만아니라쓰기실패, 인터페이스오류등을최대한실제현상과비슷하게구축한다. 이와같은 2가지기능으로 ATA COMMAND를이용하는저장장치에대해서물리적인오류에대한시스템의반응을쉽게확인할수있으며, 그로인해시스템의강인성과신뢰성을간단한프레임워크를통해검증하였다. 3.1 저장장치오류를발생시킬수있는기능및기법표 1은위와같은 SOAR에서핵심이되는 2가지오류발생기능을기존의도구와비교분석하였다. 표 1에서분석한 Fault Injection Tool[1] 과같이저 장장치에물리적인오류를발생시키기위한연구의대부분은가상의물리적인오류를발생시키는방식일뿐실제저장장치를손상시킬수있는기능은가지고있지않다. 하지만 SOAR의 ECC-CREATOR기능은실제저장장치에베드섹터를발생시켜읽기실패를유도할수있다. 왜냐하면저장장치로접근할수있는 ATA COMMAND를이용해서원하는섹터에정확히 ECC (Error Correcting Code) 오류를발생시킬수있는기능을가지고있기때문이다. SOAR가가지고있는또하나의물리적인오류발생기능은 ERROR-CREATOR로기존에연구개발되고있는디바이스드라이버를이용한오류발생기법을적용하고있다. 하지만 Fault Injection Tool과같은기존도구에서는물리적인오류를디바이스드라이버영역에서가상으로만들었기에현실성이매우떨어진다. 왜냐하면오염된섹터에읽기접근이든쓰기접근이든어떠한접근이이루어지면디바이스드라이버영역에서무조건저장장치오류메시지를발생시키기때문이다. 그래서 SOAR의 ERROR-CREATOR는원하는섹터에원하는물리적인오류타입을디바이스드라이버영역에서정의하는모든타입으로설정가능하며오류타입에따른특성을최대한반영하여실제해당오류가발생한것과같은효과를발생시켰다. 이는기존도구와는다르게최대한현실성과도구의신뢰성을향상시킨것이다. 지금까지 SORE의 ECC-CREATOR기능과 ERROR- CREATOR기능의특징에대해서살펴보았으며표 2에서중요한특징 3가지를정리해보았다. ECC-CREATOR 기능은 ATA COMMAND[7] 를이용해서원하는섹터에베드섹터를발생시켜섹터의디지털정보를실제손상시키는기능이고 ERROR-CREATOR기능은실제섹터의디지털정보는손상시키지않으면서물리적인오류를발생시키는기능이다. 이것은디바이스드라이버영역에서에러레지스터값의조작을통해원하는섹터 표 1 SOAR 의오류발생기능과기존도구와의비교분석 물리적인오류발생도구기능명칭오류발생기법 ECC-CREATOR 기능 ATA COMMAND[7] 를이용한실제베드섹터발생 SOAR 디바이스드라이버영역에서의필터링기법을이용한가상의물리적인오류 ERROR-CREATOR 기능발생 Fault Injection Tool[1] 물리적인오류발생기능디바이스드라이버영역을이용한가상의물리적인오류발생 표 2 ECC-CREATOR 와 ERROR-CREATOR 기능비교 항목및기능 ECC-CEATOR 기능 ERROR-CREATOR 기능 역할 실제베드섹터발생및복구 원하는물리적오류발생및복구 기법 ATA COMMAND 이용 에러레지스터값조작및가상환경구축 활용 읽기오류발생 읽기 / 쓰기 / 인터페이스오류발생

SOAR : 저장장치를기반으로하는시스템의신뢰성분석도구개발 251 의디지털정보는손상시키지않으면서섹터접근유형 ( 읽기 / 쓰기 / 인터페이스접근 ) 에따라설정된물리적인오류를발생시킬수있다. ECC-CREATOR기능은현실성이강하면서읽기접근오류만을발생시키고 ERROR- CREATOR 기능은실제섹터의디지털정보를손상시키지않아현실성은 ECC-CREATOR보다는낮지만여러가지접근유형과물리적인오류타입을정할수있는특징을가진다. SOAR의 ECC-CREATOR기능을이용해서실제베드섹터가발생되었음을명확하게확인할필요성이있다. 리눅스는 2가지방법을제공하는데첫째는공개소스로제공되어지는 S.M.A.R.T도구 [8] 를이용해서베드섹터관련한항목을통해확인가능하고, 두번째는읽기시스템콜을이용해서베드섹터가발생된부분을직접읽어커널메시지를확인하는방법이가능하다. 실제저장장치에베드섹터가발생한것이기때문에재부팅되거나다른시스템에저장장치를옮기더라도베드섹터로인한읽기실패는계속된다. ECC-CREATOR기능은실제베드섹터를발생하기때문에이를치료할수있는방법이필요하다. 일반적으로베드섹터를치료하는방법은하드디스크의리맵핑 [9] 기능을활용하는방법이있으며이는베드섹터가발생한부분에쓰기작업을수행해서하드디스크의스페어섹터와맵핑시키는기능이다. SOAR도이와같은기법을이용해서발생시킨베드섹터를복구한다. 이때치료하고자하는섹터의위치선정을파일시스템에서구분하는블록단위로계산한다면 2가지단점이발생한다. 첫번째는블록하나당섹터가 8개라면베드섹터가하나발생했음에도불구하고 8개섹터모두쓰기작업을해야하기때문에보다많은디지털정보가손실된다는것과두번째는 SOAR의자체기능이아닌파일시스템의쓰기시스템콜을사용해야한다는것이다. 하지만 SOAR는이두가지단점을해결하였다. ATA COM- MAND중 WRITE COMMAND를이용해서블록단위가아닌섹터단위의쓰기를가능하도록만든것이다. 이로인해특정파일시스템의도움없이섹터단위의쓰기를 SOAR의독립적인기능으로탑재하였다. 이와같이 SOAR 기능하나만으로도어플리케이션, 파일시스템, 디바이스드라이버의강인성을측정할수있는기능을갖춘것이다. 디지털정보의손상을막고싶고, 읽기오류뿐만아니라다른오류타입을발생시키고싶을경우를위해 SOAR는 ERROR-CREATOR 기능을탑재하였다. 이기능은디바이스드라이버영역에서정의하고있는물리적인오류 [10] 를모두발생시킬수있다. 하지만실제저장장치에물리적인오류를발생시키는방식이아 니기때문에최대한해당오류의성질을반영해야한다. 따라서해당섹터에접근하는방식에따라오류의적용유무및행동을구분할수있도록개발하였다. 이때의행동구분은읽기오류, 쓰기오류, 인터페이스오류로구분되며, 원하는디바이스오류와행동구분을선택하는방식이다. 예를들어원하는위치의섹터에행동구분을쓰기오류로하고, 특정오류구분을설정하였다면, 해당섹터에대한읽기수행은가능하지만쓰기수행을하고자할경우설정된특정오류를발생시킬수있도록하였다. ERROR-CREATOR기능의오류복구방식은설정된오류정보리스트에서오류정보를삭제시키는복구인터페이스를가지고있다. 하지만읽기오류와인터페이스오류는오류의특성을반영한복구방식을추가적으로가지고있다. 읽기오류같은경우 ECC-CRE- ATOR 기능에서와같이해당섹터에쓰기작업을수행하게되면쓰기작업이수행된영역에대한오류정보를자동으로삭제시켜리맵핑된것과같은효과를주었으며, 일시적인오류인인터페이스오류같은경우첫번째접근하여오류가발생되었다면자동으로설정된오류정보를삭제시켜이후접근에대해서는오류가발생되지않도록하여일시적인오류현상을유도해냈다. 이는최대한오류의특성을반영하여보다현실에가까운상황을유도한것이다. ERROR-CREATOR 기능은디바이스드라이버영역에서필터링기법을이용한가상의물리적인오류발생이기때문에 ECC-CREATOR 기능과같이 S.M.A.R.T 도구를이용한오류발생확인은할수없다. 하지만파일시스템을통해서오류가발생한섹터를직접접근하여커널메시지를확인하는방법은가능하다. 실제저장장치의디지털정보를훼손하지않고, 많은종류의오류를발생시킬수있기때문에시스템의강인성을검증하기에매우편리한기능이다. 그림 2와그림 3은 SOAR의 ECC-CREATOR기능과 ERROR-CREATOR 기능에대한시스템구조상의흐름도이다. 그림 2는하드웨어입장에서각각의오류발생흐름도를나타낸것으로 ECC-CREATOR기능은운영체제및디바이스드라이버영역을거치지않고 ATA COMMAND를이용해서저장장치에직접접근한후실제베드섹터를발생시킨다. 그리고 ERROR- CREATOR기능은디바이스드라이버영역의조작으로인해운영체제를거쳐들어오는요청에대해해당물리적인오류를디바이스드라이버영역에서가상으로발생시킨다. 그림 3은소프트웨어입장에서오류발생흐름도를나타낸것으로 ECC-CREATOR기능은운영체제와디

252 정보과학회논문지 : 시스템및이론제 35 권제 6 호 (2008.6) 그림 2 오류발생기능에대한시스템흐름도 ( 외적 ) 그림 3 오류발생기능에대한시스템흐름도 ( 내적 ) 바이스드라이버를거치지않고직접저장장치에접근하여물리적인오류를발생시키는구조이지만 ERROR- CREATOR기능은파일시스템, 커널, 디바이스드라이버를모두거쳐가상의물리적인오류를발생시킴을알수있는흐름도이다. 3.2 오류발생위치선택기법 ECC-CREATOR기능과 ERROR-CREATOR기능을효과적으로사용하기위해서는오류발생영역의접근이사용자중심에있어야한다. 물론사용자가저장장치의위치선택을용이하게하기위해서파일시스템이구분하는블록번호와 LBA주소로하고있으나, 그외에특정영역에대해서는간단한선택만으로원하는영역을설정할수있도록구성하였다. 저장장치에물리적인오류를발생시킬수있는위치선정기능은표 3에서와같이 4가지방법이있다. 일반적으로생각할수있는방법은파일시스템에서구분하는블록번호와계산된 LBA주소를통해서사용자가직접위치를지정해주는방식이다. 이방식뿐만아니라 3 가지특화된기능을 SOAR에적용해서보다사용자편의성을도모했다. 첫번째위치선정방식은 RANDOM 기법이다. 이위치선정기능은개발자나 SOAR의사용자가저장장치의오류발생을원하는일정범위를입력하고이범위내에서오류발생패턴과발생빈도를입력받아임의의위치에오류를발생시켜주는기능으로정형화되지않은오류발생패턴을만들어준다. 예를들어저장장치의정보와함께오류를발생하고자하는 그림 4 랜덤기법을이용한위치선정예시범위의시작위치를 LBA 100, 끝위치를 LBA 7000으로입력하고오류발생패턴의묶음수에 10을입력한다. 그리고발생패턴의개수를 4와발생패턴을 3이라고주었을경우, 오류는저장장치의 LBA주소 100에서 7000번지내에서만발생되며총 10개의묶음으로발생된다. 이때 10개의묶음중발생패턴을적용할 4개의위치를임의로선택되게된다. 임의로선택된 4개는연속된 3개의섹터에오류를적용하게된다. 오류가적용된섹터의총개수를 S라고하고물리적인오류를발생하고자하는시작섹터위치를 i, 마지막섹터위치를 j로표시하였을경우 S(i,j) 는다음과같이계산할수있다. S(i,j) = (1 * ( 오류발생패턴의묶음수 - 발생패턴의개수 ) + 발생패턴 * 발생패턴의개수 ) 이와같은방식으로오류발생섹터의개수를계산하면 18개가된다. 랜덤방식의이용은물리적인오류발생패턴을알수없는상황을재연하기위해유용한방식이다. 저장장치에물리적인오류를적용하기위한위치선정의두번째방법은 FAULT LIBRARY 방식이다. SOAR에는파일시스템에서구분하는블록번호와 LBA 주소를통해서원하는영역에접근이가능하도록설계 오류발생위치선정기능 표 3 오류발생위치선정기법 기법명칭 설명 일반 사용자의위치지정으로오류발생및복구수행 RANDOM 정형화되지않은오류발생 ( 랜덤한위치선정기법 ) FAULT LIBRARY 오류정보를담은파일을이용한오류발생 FAULT FILE 원하는파일의원하는블록에오류발생

SOAR : 저장장치를기반으로하는시스템의신뢰성분석도구개발 253 표 4 FAULT LIBRARY 기능적용방법 기능 파일작성규칙 ECC-CREATOR 기능 device:/dev/hda1 sector:111,222,333 block:100,200,300 command:crash ERROR-CREATOR 기능 device:/dev/hda1 sector:111,222,333 block:100,200,300 errortype:64 action:1 command:crash 가되어있다. 하지만 SOAR는블록번호와 LBA주소를통해서여러부분에동시적으로오류를발생시키지는못한다. 따라서 FAULT LIBRARY방식을통해서블록번호와 LBA주소를동시에입력한다면 2가지인터페이스를이용해서여러부분에오류를발생시킬수있다. 이방식은 TEXT 파일을생성한후표 4에서와같이여러정보를담아 SOAR에적용시키는방식이다. ECC-CREATOR을이용하고자할경우물리적인오류를발생시키고자하는디바이스명과다수의섹터번호, 블록번호를입력한다. 마지막으로오류발생인지오류복구인지를명시하여 SOAR를실행시키면다수의섹터와다수의블록번호에물리적인오류가발생된다. ERROR-CREATOR인경우는디바이스드라이버영역에서정의하고있는물리적인오류타입을십진수행태로작성하고읽기오류인경우 1, 쓰기오류인경우 2, 읽기 / 쓰기오류인경우는 3으로 ACTION정보를부여하여 SOAR를실행시키면된다. 이와같이 FAULT LIBRARY 기능을이용하면 ECC- CREATOR 기능과 ERROR-CREATOR 기능모두사용하면서 2개이상의위치를블록번호와 LBA를이용해서선택할수있어번거롭게여러번 SOAR를수행하지않아도된다. 세번째위치선택방식인 FAULT FILE 은실제파일의경로와블록의인덱스를통해파일의원하는위치에물리적인오류를발생시킬수있다. 이방식을이용하기위해서는 SOAR의독립적인기능만으로는불가능하다. 왜냐하면특정파일이저장장치에정확히어느위치에있는지파일시스템만이알수있기때문이다. 따라서 SOAR는 2가지의기능을파일시스템으로부터가져와서활용하였다. 첫번째는물리적인오류를발생하고자하는파일의파일디스크립터를얻기위해캐릭터디바이스의 INPUT/OUTPUT을조정할수있는 IOCTL 기능을활용하였다. 두번째는파일시스템의 IOCTL기능으로얻어온파일디스크립터구조체의정보와원하는블록인덱스번호를가지고파일시스템의 RMAP 기능을통해실제파일시스템상에서의위치를알아낼수있는기능을활용하였다. 이두가지의파일시스템기능 그림 5 FAULT FILE 방식을이용한오류발생흐름 을활용해서파일의경로와블록인댁스번호를통해물리적인오류를발생시킨다. 지금까지오류발생위치를입력받아저장장치의물리적인오류를발생시키는일반적인인터페이스와 SOAR만의특화된기능 3가지를살펴보았다. 이와같은기능을이용하면보다 SOAR의물리적인오류발생기능을효과적으로사용할수있다. 3.3 특정파일시스템에특화된기능물리적인오류가발생하면디지털정보가손상된다. 이러한디지털정보를관리하고있는시스템이파일시스템이기때문에물리적인오류에가장밀접한관계가있다. 따라서 SOAR를이용해서파일시스템의물리적인오류에대한강인성을보다쉽게검증할수있도록기능을구성하였다. 현재 SOAR의버전은리눅스기반이기에가장보편적으로사용하는 EXT3 파일시스템 [11] 에특화된기능을구성하였다. 하지만다른파일시스템에서도이와같은역할을할수있는특화된기능을추가적으로구성할수있다. EXT3 파일시스템은 2가지의중요한영역으로나눌수있다. 첫번째영역은 EXT3 파일시스템뿐만아니라다른파일시스템에서도중요시여기는메타데이타영역이다. 메타데이타란데이타의구조화된데이타로서파일의위치, 크기, 소유자, 허가권등을저장하고있는중요한영역이다. 이영역에물리적인오류가발생한다면다른영역에물리적인오류의발생으로인해발생되는손상그이상이될것이다. 따라서파일시스템메타데이타영역각각의세부영역에물리적인오류를발생시켜파일시스템의강인성과신뢰성을반드시확인해야한다. EXT3 파일시스템은메타데이타가블록그룹단위로여러개가존재한다. 또한포맷옵션에따라각각의블록그룹내에이와같은모든세부메타데이타들이존재하지않을수있다. 이와같은동적으로변하는메타데이타의특성을 SOAR는고려하고있다. 따라서 SOAR EXT3 파일시스템 표 5 EXT3 파일시스템에특화된기능 영역 메타데이타영역 저널영역 설명 세부메타데이타영역에대한오류발생세부저널영역에대한오류발생

254 정보과학회논문지 : 시스템및이론제 35 권제 6 호 (2008.6) 사용자는파일시스템의포맷옵션을알필요없이저장장치의파티션정보와몇번째블록그룹인지와세부메타데이타의선택만으로원하는영역에물리적인오류를발생시킬수있도록구성하였다. 어떤파일시스템이든메타데이타는매우중요한영역이다. 그래서이와같은파일시스템의중요한영역을 SOAR에서적극적으로검증할수있도록구성한것이다. 두번째로중요한 EXT3 파일시스템영역은저널영역이다. 저널이란파일을실제수정하기전로그에그수정된내용을저장시켜일관성이깨진상태가되었을때로그만을검사해서깨진일관성을복구시켜주는기술이다. 이때로그를저장하고있는영역이바로저널영역이다. EXT3 파일시스템의저널영역은저널슈퍼블록, 저널리복블록, 저널디스크립터블록, 저널커밋블록으로구분하고있다. 4가지의상세저널영역중저널슈퍼블록을제외한블록들은메타데이타처럼고정된위치가없으며동적으로위치가변한다. 따라서 SOAR는실시간으로어떠한저널블록이저장장치의어떠한위치에저장되는지를자료구조형태로가지고있기때문에 SOAR를통해동적으로변하는저널블록일지라도원하는저널영역에물리적인오류를발생시킬수있다. 이와같은기능들을이용한다면신뢰성과강인성을장점으로하는 EXT3 파일시스템이과연물리적인오류에대해어느정도수준까지신뢰성과강인성을보장하는지를간단한테스트프레임워크를통해확인할수있다. 4. SOAR 의사용자인터페이스지금까지 SOAR의오류발생기능에대해서상세히 살펴보았다. 하지만효과적인기능이있음에도사용자는그기능들을효과적으로사용하지못하는경우가많이있다. 왜냐하면대부분의사용자가복잡한매뉴얼을보지않고직관적으로사용하며개발자의주관이개입된인터페이스를구성하고있기때문이다. SOAR는최대한직관적인사용자중심의 2가지인터페이스를가지고있다. 첫째, 윈도우기반의그래픽환경에서사용하기편한 GUI 방식과둘째, 임베디드보드나텍스트기반의환경에서사용하기편한 TUI방식으로구성되어있다. 4.1 그래픽기반의사용자인터페이스현대의많은프로그램들은그래픽기반의사용자인터페이스를선호하고편리성과미적인기능을중시하기시작했다 [12]. 그래서 SOAR는모든기능을사용자직관적이고, 사용하기가장편리하도록그래픽기반의인터페이스를제공하고있다. 리눅스기반의 X윈도우상에서 GTK 2.0 버전을이용해서개발하였다. SOAR의특징과사용자의편의성을고려한화면구성과인터페이스를갖추었다. 따라서특별한사용자지침서가필요없이사용자직관적으로사용하면된다. 4.2 텍스트기반의사용자인터페이스임베디드시스템은 PC와는다르게그래픽유저인터페이스를갖추기가힘들며환경이제한적이다. 따라서 SOAR는텍스트기반의사용자인터페이스를제공해서임베디드시스템을지원하였다. 사용자에게가장직관적인인터페이스를제공하기위해서명령어입력이아닌사용자에게선택할수있는질의응답형식의인터페이스를갖추었다. 이것은사용자의입력실수를최대한고 그림 6 그래픽기반의사용자인터페이스

SOAR : 저장장치를기반으로하는시스템의신뢰성분석도구개발 255 그림 7 텍스트기반의사용자인터페이스 려한것이다. SOAR의텍스트기반인터페이스가사용자입장에서사용하기더편리할수있다. 이를이용해서텍스트기반의인터페이스가필요한임베디드보드에서보다유용하게사용될것이다. 5. SOAR 을이용한실험 SOAR의물리적인오류발생기법을이용해서어플리케이션과커널영역의물리적인오류에대한대처수준을확인하였다. 첫째, 물리적인오류에대해서리눅스용멀티미디어플레이어와 MP3 플레이어가어떠한대처수준을가지며문제점은무엇이있는지확인하였다. 둘째, 파일시스템을벤치마킹하는도구가물리적인오류로오염된영역을테스트영역이되었을경우검증결과와문제점을확인하였다. 마지막으로 SOAR의파일시스템에특화된기능을이용해서파일시스템의핵심자료구조에물리적인오류를발생시키고워크로드를실행했을경우어떠한현상이발생되며문제점은무엇인지확인하였다. 이와같은실험을통해서지금까지살펴본 SOAR의기능과활용방법을살펴볼수있었다. 5.1 리눅스용멀티미디어플레이어및 MP3 플레이어멀티미디어서비스를제공하는대표적인어플리케이션타입은멀티미디어플레이어와 MP3 플레이어이며이를이용하는멀티미디어파일은작은크기의파일에서부터상당히큰파일에이르기까지그범위는다양하다. 다양한크기의멀티미디어파일에빈번히발생되는베드섹터와같은읽기실패섹터는충분히존재할수있다. 하지만몇개의베드섹터는사용자가재생하여플레이를보는데큰문제를주지않는데도소중한멀티 미디어파일전부를재생하지못한다면개인에게큰실망과곤란한상황이발생될것이다. 그래서본실험은일반리눅스사용자들이많이사용하고있는어플리케이션을중심으로읽기실패에대한다양한관점의실험을진행하였다. 베드섹터즉, 읽기실패부분을플레이어가읽으려고했을경우여러가지반응을보일것이다. 읽기실패시화면수준표와에러메시지수준표를표 6과표 7에서와같이알파벳으로구성하였으며가장좋은반응순서로정의하였다. SOAR의 ECC-CREATOR 기능과 FAULT FILE 위치선정기법을이용해서멀티미디어파일의위치를선정한다. 파일의블록인덱스번호가 0일경우는멀티미디어파일의헤더부분이고, 그밖의위치는멀티미디어의디지털정보이다. 검증의목적에따라위치를선정표 6 읽기실패시화면수준표기호상황 A 재시도 B 읽기실패부분점프 C 정지화면 D 정상종료와같은상황 E 프로그램자동종료 F 프로그램크래쉬표 7 에러메시지수준표기호상황 a 정확한에러메시지출력 b 부정확한에러메시지출력 c 에러메시지출력없음 그림 8 멀티미디어플레이어테스트프레임워크

256 정보과학회논문지 : 시스템및이론제 35 권제 6 호 (2008.6) 표 8 멀티미디어플레이어의읽기실패에관한결과표 멀티미디어플레이어 화면수준결과 에러메시지정확도결과 헤더파일의읽기실패시에러메시지 Avifile C c a MTV C c b MPlayer-0.90 A/B a a 표 9 MP3 플레이어의읽기실패에관한결과표 멀티미디어플레이어 화면수준결과 에러메시지정확도결과 헤더파일의읽기실패시에러메시지 RealPlayer 7.0 E b b MPlayer-0.90 D c a Freeamp (ZINF) D c b 한후물리적인읽기실패오류를발생시킨다. 그리고플레이어를작동시켜읽기실패가발생되었을경우어플리케이션의상황과에러메시지를확인하였다. 첫번째실험은멀티미디어파일의임의의위치에물리적인오류가발생한경우적절한행동과정확한에러메시지를확인할수있는지살펴보았다. Avifile과 MTV 는마지막읽은프레임에서정지하게된다. 하지만 MPlayer-0.9 같은경우 Avifile 과 MTV와는다르게재시도를수차례진행후읽기실패영역을넘어다음영역의읽기를수행하여정상적인화면을계속보여주었다. 에러메시지역시 Avifile과 MTV는어떠한에러메시지도확인할수없었으나 MPlayer-0.9는상세한에러메시지를확인할수있었다. 멀티미디어파일의정보를담고있는헤더정보부분에읽기실패가발생했을경우 Avifile은멀티미디어파일의헤더포멧정보에문제가발생하여재생하지못한다는정확한메시지를보여주고있으며 MPlayer-0.9 역시파일을읽는모듈에서헤더정보를읽지못하였기때문에파일을열수없음을정확히알려주고있다. 하지만 MTV의경우는일반적인경고메시지만을확인할수있었을뿐헤더정보나포멧에문제가발생했음을나타내고있지않았다. 이와같은결과는 SOAR를이용해서멀티미디어동영상플레이어가물리적인오류에어떠한대처수준을가지고있는지명확히확인할수있었다. 이번실험은동영상멀티미디어플레이어와같은실험방식으로리눅스사용자가가장많이사용하고있는 MP3 플레이어에대한실험을진행하였다. 동영상멀티미디어플레이어와같은실험방식이기때문에 SOAR 의 ECC-CREATOR 기능을사용하고여러가지위치선정기법중 FAULT FILE을사용해서실제물리적인오류를발생시키고 MP3플레이어를실행시켜보았다. RealPlayer는읽기실패섹터를읽으려고할때프로그램이종료되는현상을발견했다. 이와같은현상은물리적인오류에매우약함을알수있으며이때발생되는에러메시지또한정확하지않았다. 메시지는 Bus error 였고헤더파일의읽기실패가발생되었을경우또한같은메시지를보였다. 플레이중에읽기실패가이루어졌을경우읽기실패가이루어진블록을알려주고 재시도를수행한후해당영역을점프하는것이가장이상적인현상이지만프로그램이종료되고에러메시지또한추상적인표현을사용하고있어물리적인오류에매우약함을확인할수있었다. 그리고헤더파일의읽기실패역시정확하게포맷에문제가있음을알려줘야하지만일관되게 Bus error 메시지만을보여주고있는것으로봐선에러처리루틴이매우협소하게되어있음을짐작할수있다. MPlayer와 Freeamp는읽기실패가이루어지면음악이정상적으로종료된듯한화면을보여주고있으며메시지역시성공을나타내고있다. 이현상으로알수있는사실은읽기실패가이루어졌을경우파일의끝에도달했다고어플리케이션이단정짓기때문에나타나는현상이다. 헤더파일의읽기실패가되었을경우도두어플리케이션은비슷한메시지를보여주고있다. MPlayer 경우는해당파일의정확한경로와해당파일의헤더부분분석시읽기실패되었음을정확히말해주고있다. Freeamp 경우는팝업창이떠서해당파일을읽으려고하였으나파일이부패되었음을알려주고있다. 하지만헤더파일의읽기실패일경우는파일형식에문제가있다는메시지나파일문법적인문제가있음을알려주지않아부정확한메시지라고표현하였다. SOAR를이용한멀티미디어관련어플리케이션이물리적인오류에대한강인성을검증하는절차와검증결과를살펴보았다. 검증결과아직많은어플리케이션은물리적인오류에대한대처에소홀하고있음을명확히결과표를통해서확인할수있었다. 이는 SOAR가가지고있는기능을명확한결과물로확인할수있는계기였으며더불어개인의디지털정보가점점더중요시되어가는상황속에서어플리케이션도물리적인오류에대한대책이반드시필요하다는것을다시한번느낄수있는결과이다. 5.2 파일시스템벤치마킹도구파일시스템의성능을측정하는벤치마킹도구는테스트를진행하게되는파일의읽기실패와쓰기실패에대해서보다강인하고정밀한특성을가지고있어야한다. 만약특정파일시스템을비교하기위해서벤치마킹도구를통해데이타를얻었는데한쪽파일시스템에서테스트를진행하던파일에물리적인오류즉, 읽기

SOAR : 저장장치를기반으로하는시스템의신뢰성분석도구개발 257 실패오류나쓰기실패가발생되어결과값에영향을주게된다면벤치마킹하는의미가없어지는것뿐만아니라잘못된판단을내릴수있게된다. 그래서파일시스템성능을테스트하기위해가장많이사용하고있는벤치마킹도구를선정하였으며, 벤치마킹도구의읽기성능을측정하는과정에서읽기실패가일어나는경우와쓰기성능테스트를하는과정에서쓰기실패가일어나는경우를만들어서어떠한결과가나오고있는지확인하였다. 베드블록과같은읽기실패가 LMBENCH[13] 의읽기테스트중에발생하였을경우, 어떠한결과와에러메시지가출력되고있는지를살펴보기위해서그림 9에서와같이몇가지단계를거쳐야한다. 우선읽기실패테스트를위해서벤치마킹도구의쓰기테스트를진행한다. 왜냐하면읽기성능테스트의특성상쓰기성능테스트를선행해야가능하기때문이다. 그래서읽기성능테스트를위한파일이생성된후 SOAR의읽기실패발생도구인 ECC-CREATOR 기능과위치선정방법중 FAULT FILE 기법을사용해서쓰기성능테스트이후에생성된파일에베드섹터를발생시킨다. 지금까지가읽기실패테스트를위한환경구축단계였다. 쓰기실패테스트는테스트특성상테스트파일이존재하는것이아니라테스트과정에서파일이생성되는것이다. 따라서일단벤치마킹도구의쓰기성능을측정한다. 측정후발생되는파일이저장장치의어느부분에위치하고있는지를확인해야하는데이때 SOAR의읽기실패발생방법과같이 FAULT FILE 기법을이용해서원하는부분의 LBA주소를알아낸다. 그후테스트 를진행했던저장장치또는파티션을포맷해서저장장치의물리적인오류가모두없도록만든다. 그리고 SOAR의쓰기실패발생기능을가지고있는 ERROR- CREATOR 기능과사용자위치지정기법을이용해서곧쓰기파일이쓰여질부분에쓰기실패오류를적용시킨다. 표 10은 LMBENCH[13] 의읽기실패발생유무에따른비교분석표로써읽기실패가이루어지게되면실패직전까지의내용을분석해서결과치를보여준다. 하지만읽기실패가이루어지기직전까지의시간을이용해서계산하게된다면지금보다정확한결과값이나오겠지만, 읽기실패로인해지연되는시간까지모두포함되기때문에부정확한메시지를사용자에게알려주는문제점이발견되었다. 차라리정확한결과값을보여주지못한다면결과메시지자체를보여주지않는편이더올바르다고생각한다. 쓰기실패의경우는어떠한에러메시지없이쓰기가정상적으로완료되었음을알려주고있으며, 그결과값또한쓰기오류가없는테스트의경우와비교했을때매우근소한차이를보이고있음을그림 10에서알수있다. 테스트한환경은읽기성능을측정했던환경과동일하며, 2GByte의파일을쓰는동작이다. 정상적인쓰기작업이이루어졌을경우 56.20MB/sec의속도와쓰기실패가있는경우 54.30MB/sec의속도를보이고있다. 근소한차이로쓰기실패가있는쓰기작업이약간느리다. 어플리케이션에서는어떠한에러메시지또한발생하지않음을확인하였다. 이와같은결과가나타나는 그림 9 벤치마킹도구의읽기 / 쓰기실패에따른테스트프레임워크 파일전부읽기시도성공유무 읽기성능결과값 표 10 읽기실패발생유무에따른 LMBENCH 의결과분석표 성공 읽기오류가없는경우 2097.15MB in 41.45secs 50.59MB/sec 4Mbyte 지점에읽기오류 실패 (4Mbyte 까지만읽기성공 ) 4.0632MB in 21.0160secs 0.1933MB/sec 에러메시지없음 Read: Input/output error TEST 환경 TEST 방법 CPU : Pentium4 2.4GHz, 메인메모리 : 512MB HDD : Western Digital 80G, OS : Linux 2.4.30, EXT3 1Mbyte 씩 2GByte 파일을순차적으로읽기작업수행

258 정보과학회논문지 : 시스템및이론제 35 권제 6 호 (2008.6) 그림 10 LMBENCH의쓰기성능측정결과이유는파일시스템영역에서쓰기실패에대한어떠한에러값을리턴하지않기때문이며, 단순히단방향으로저장장치에쓰기작업만을수행시키기때문에실제저장장치의물리적인오류로인해쓰여지지않더라도어떠한대처도하지않음을확인하였다. 하지만쓰기실패가있는쓰기작업이약간느린이유는디바이스드라이버영역에서는물리적인오류가발생했음을인지하여에러루틴을거쳐커널메시지형태로알려주는워크로드가발생했기때문이다. 만약콘솔모드의테스트가아닌 X윈도우상태에서이와같은테스트를진행한다면커널메시지를확인할수없을것이고, 어플리케이션조차오류가있음을감지하지못하기때문에잘못된수치값이정확한수치값이라고생각할수있는문제점이있다. 두번째실험을진행할벤치마킹도구는 IOZONE[14] 이다. LMBENCH와실험순서는비슷하지만 IOZONE 특성상읽기 / 쓰기성능테스트를동시에진행하는워크로드를가지고있어 IOZONE의소스를수정할필요가있다. LMBENCH와같이 IOZONE도쓰기성능테스트를먼저하고, 읽기성능테스트를하기때문에테스트가전환되는시점에서 break 포인트를주고, 성능테스트를분리시켰다. 그래서 LMBENCH에서보여줬던실험순서와동일하게실험을진행하였다. IOZONE은 LMBENCH와는다르게읽기실패가발생했을경우결과값을 0으로표현하고, 에러메시지를보여주고있다. LMBENCH에서보았듯이정확하지않은데이타를보여주는것보다는결과값을 0으로표현하여읽기실패로인해읽기성능평가가이루어지지않았음을명확히표현하였다. 그리고에러메시지또한 LMB- ENCH와비교했을때단순히읽기실패만을표현한것이아닌읽기실패가이루어진블록의위치와테스트를진행하던파일의경로, 파일의디스크립터번호까지정확히나타내고있다. 하지만에러메시지내에포함되지않았어야하는표현이섞여있는단점을가지고있으나, 전체적인관점에서보았을때물리적인오류로인한읽기실패가발생하였을경우 IOZONE은 LMBENCH보다정확한결과값을표현하였으며, 에러메시지또한정확히표현되고있음을확인할수있었다. 이는저장장치의베드섹터와같은물리적인오류에보다강인하다는의미이다. 쓰기실패의경우는 LMBENCH와의결과와상당수비슷함을확인할수있었다. 테스트환경은 LMBENCH의읽기성능을측정했던환경과동일하며 2GByte 파일을씀으로쓰기동작을수행하였다. IOZONE의경우정상적인쓰기작업이이루어졌을경우 57.39MB/sec의속도였으며, 쓰기실패가포함되어있는경우는 54.32MB/sec의속도를보이고그림 11 IOZONE벤치마킹도구의쓰기성능측정결과 파일전부읽기시도성공유무 성공 표 11 읽기실패발생유무에따른 IOZONE 의결과분석표 읽기오류없는경우 실패 (4Mbyte 까지만읽기성공 ) 읽기성능결과값 Initial read 50412.61 Kbytes/sec Initial read 0 에러메시지 TEST 환경 TEST 방법 없음 CPU : Pentium4 2.4GHz, 메인메모리 : 512MB HDD : Western Digital 80G, OS : Linux 2.4.30, EXT3 1024 Kbyte 씩 2 기가파일을순차적으로읽기작업수행 4Mbyte 지점에읽기오류 Error reading block 31, fd=3 Read: Success /mnt/hdd/test.dummy.0 : no such file or directory

SOAR : 저장장치를기반으로하는시스템의신뢰성분석도구개발 259 있어매우근소한차이로쓰기실패가있는쓰기작업이약간느리다는결과값을얻었다. 또한어떠한에러메시지또한발생되지않음을확인하였다. 이는 LMBE- NCH에서결과를분석했듯이쓰기실패에대한어떠한처리도하지않기때문이다. 파일시스템벤치마킹도구의차이점은지금까지벤치마킹결과값과간단한내부구조뿐이였다. 하지만 SOAR 를벤치마킹도구에적용함으로써벤치마킹의결과물뿐만아니라보다정확한결과값을보여줄수있는지를확인한것이다. 이와같은발견은일반어플리케이션보다물리적인오류에더욱민감해야하는벤치마킹도구의강인성을 SOAR를통해서증명한것이다. 5.3 파일시스템파일시스템은디지털정보의저장을위해서저장장치와유기적인관계속에서중요한역할을담당하고있다. 따라서저장장치의오류에대해서민감하게반응할필요성이있으며디지털정보의보호까지이루어져야마땅하다. 이를위해저장장치에물리적인오류로인한읽기실패와쓰기실패로구분이필요하며파일시스템의중요한자료구조를바탕으로디지털정보의훼손상태를조사하였다. 검증대상으로는리눅스에서신뢰성과견고성을자랑하는 EXT3파일시스템과 JFS파일시스템을선정하였고각각의결과표를통해분석을진행하였다. 그림 12에서와같이간단하게파일시스템의강인성을검증할수있는테스트프레임워크를제안하였다. 물리적인오류로인한읽기 / 쓰기실패검증을위해서는무결한하드디스크에검증을원하는파일시스템의포맷과마운트를수행한다. 읽기실패의경우는파일이나디렉토리와같은디지털정보를읽지못하는경우이다. 그래서검증을위해간단한어플리케이션을이용해서디렉토리와파일을임의개생성하는워크로드를수행한다. 그리고 SOAR를이용해서파일시스템의중요자료구조에읽기실패를발생시킨다. 쓰기실패의경우는반대로 SOAR를이용해서파일시스템의중요자료구조에쓰기실패를발생시킨후워크로드를수행해서물리적인오류의특성에맞는파일시스템접근을유도한다. 그이후에파일이나디렉토리와같은객체가사라졌는지, 데이타가손실되었는지, 데이타가손상되었는지, 파일시스템의언마운트와마운트가정상적으로동작하는지를확인해봄으로써파일시스템이물리적인오류로인한강인성을간단하고명확하게검증하였다. 표 12, 표 13은제안한파일시스템강인성테스트프레임워크를통해신뢰성과견고성을자랑하는 EXT3 파일시스템과 IBM에서개발한 JFS에대해서검증을수행한결과표이다. 그림 12 파일시스템의강인성테스트프레임워크진행도 EXT3 파일시스템은물리적인오류로인한슈퍼블록, 그룹디스크립터, 아이노드테이블에읽기실패가이루어지면파일시스템의마운트가실패되는특징과그밖의자료구조에서는마운트는되지만디지털정보의부패가발생함을확인할수있었다. 그리고저널영역의경우는파일시스템의마운트가안되는심각한현상이발견되었다. 이모든현상은베드섹터와같은물리적인오류를 EXT3 파일시스템이적절하게대처하지않고있음을확인하는것이다. 아울러슈퍼블록과그룹디스크립터와같은자료구조는복사본을여럿두고있지만이를적절하게활용하지않고있음을쉽게발견할수있었다. 물리적인오류로인해쓰기가실패될경우데이타의부패는발생하고있으나파일시스템의마운트와언마운트는이상없이진행됨을확인하였다. 이는파일시스템

260 정보과학회논문지 : 시스템및이론제 35 권제 6 호 (2008.6) 표 12 EXT3 파일시스템의읽기실패와쓰기실패에대한결과표 표 13 JFS 파일시스템의읽기실패와쓰기실패에대한결과표 에서쓰기실패에대한오류처리를하지않고있음을한눈에파악하는것이다. 그리고이와같은검증을진행하면서 EXT3 파일시스템의시스템파손은발견하지못했다. 이것으로써읽기실패와쓰기실패에대한고려를대부분하지않기때문에시스템이멈추는빈도는극히드물다는예상을할수있었다. JFS 파일시스템의물리적인오류로인한읽기실패시 EXT3와대체로상반되는결과를보였다. 파일시스템의마운트를예로든다면특정자료구조에물리적인오류로인한읽기실패시 EXT3와는다르게복사해놓은복사본자료구조를원본영역에복사함으로써읽기실패에대한복구동작을충실히하고있어실험초반에는검증의신뢰성까지의심해볼정도였다. 하지만자료구조의원본과복사본모두에서읽기오류가발생한 다면시스템이파손됨을확인하였다. 더불어원본과복사본에서의읽기실패가동시에발생하는경우는고려하지않음을확인할수있었다. JFS의쓰기실패에대한검증결과는 EXT3와는다르게파일시스템의마운트가실패됨을확인할수있었다. 이것의의미는쓰기실패에대한대처는아닐지라도기본적인검사는수행함을알수있었다. 하지만저널관련자료구조에쓰기실패가발생하면시스템파손을제외한모든현상을고루확인하였다. 이는 JFS의다른자료구조에비해서저널영역에대한쓰기실패를고려하고있지않음을확인할수있었다. 지금까지 SOAR를이용한파일시스템강인성테스트프레임워크를통해신뢰성과견고성을자랑하는 EXT3 파일시스템과 JFS 파일시스템에대해서검증하고결과

SOAR : 저장장치를기반으로하는시스템의신뢰성분석도구개발 261 를분석하였다. 가장심각한쓰기실패에대한실험결과에서처럼디바이스드라이버영역에서는쓰기실패가발생했음을인지했음에도불구하고파일시스템영역뿐만아니라사용자영역까지실패정보를전달하지않는문제를확인하였다. 이는디바이스드라이버영역, 파일시스템영역, 사용자영역이명확하게계층구조를이루고있으며계층간의원활한정보교환이이루어지지않기때문이다. 파일시스템의물리적인오류에대한강인성여부를확인할명확한방법은지금까지존재하지않았다. SOAR의개발로인해복잡한구조를가지고있는파일시스템도간단하고명료하게물리적인오류에대한파일시스템의분석을진행할수있었다. 향후기존에개발된파일시스템보다견고하고, 논리적 / 물리적인오류에강인한파일시스템이개발된다면 SOAR를통해강인성검증을진행할수있을것이다. 6. 결론및향후연구방향본연구개발을통해서저장장치에서발생되는물리적인오류에대한심각성을살펴볼수있었다. 기존에존재하는저장장치의무결성검증도구는대부분시스템의논리적인오류와견고성만을검증하고있다. 그래서저장장치에발생되는물리적인오류에대한검증은할수없으며기존관련연구또한검증의신뢰성을보장할수없는수준이였다. 따라서기존도구와는다른방식의물리적인오류발생도구를제안하였다. 그리고이도구를이용해서어플리케이션에서부터파일시스템까지물리적인오류에대한검증과검증을위한테스트프레임워크를제안하였다. 도구의기능과제안을뒷받침하기위해 SOAR의물리적인오류를발생시키는 2가지기능과저장장치의원하는영역에접근하는다양한기법을통해멀티미디어플레이어, MP3플레이어, IOZONE벤치마킹, LMBENCH 벤치마킹, EXT3 파일시스템, JFS파일시스템의물리적인오류에대한강인성을검증하고결점을확인하였다. 이것은보다강인한시스템으로발전시킬수있는방향을제시한것이다. 디스크제조업체나시스템의강인성을확인하고싶은그룹이있다면 SOAR는매우편리하고유용하게사용될수있을것이다. 지금까지물리적인오류에대해서심각성은인정하였지만실제시스템내에서는적극적인관심을갖고있지않았다. 향후 SOAR를이용해서물리적인오류에강인한시스템을개발하고 SOAR를이용해서시스템의강인성을증명할생각이다. 또한 SOAR 의현실적이면서다각적인물리적인오류발생기법을이용해서기존에출시된시스템의강인성을확인할수 있는보다체계적인테스트프레임워크를개발할생각이다. 참고문헌 [1] Jake Adriaens, Dan Gibson, "A Software Layer for IDE Disk Fault Injection," System Lacking Originality Workshop 2005. [ 2 ] Daniel.P.Bpbet.and.Marco.Cesati, Understanding the Linux Kernel 2nd chapter 13: O rilly, 2002. [3] V. Prabhakaran, A. C. Arpaci-Dusseau, and R. H. Arpaci-Dusseau, "Model-Based Failure Analysis of Journaling File Systems," presented at Proceedings of the 2005 International Conference on Dependable Systems and Networks (DSN'05) Brighton, United Kingdom, 2005. [4] P. Vijayan, N. B. Lakshmi, A. Nitin, S. G. Haryadi, C. A.-D. Andrea, and H. A.-D. Remzi, "IRON file systems," presented at Proceedings of the twentieth ACM symposium on Operating systems principles (Brighton, United Kingdom, October 23-26, 2005), Brighton, United Kingdom, 2005. [5] Hard disk register & ide, http://hem.passagen. se/communication/ide.html. [6] Silberschatz., Galvin, and Gagne, OPERATING SYSTEM CONCEPTS chapter 2 WILEY, 2003. [7] The Guide to ATA/ATAPI documentation. "http:// www.stanford.edu/~csapuntz/ide.html". [ 8 ] S.M.A.R.T., "http://www.die.net/doc/linux/man/man8/ smartd.8.html". [9] Sector remapping, "http://www.storagereview.com/ guide2000/ref/hdd/perf/qual/featuresremap.html". [10] Harddisk register value & physical fault define "/usr/src/linux/include/linux/hdreg.h". [11] "EXT3fs Home Page, "http://sourceforge.net/projects/ext3sj". [12] A. Joakim, V. Jonny, F. Peter, and K. Johan, "GOOFI: Generic Object-Oriented Fault Injection Tool," in Proceedings of the 2001 International Conference on Dependable Systems and Networks: IEEE Computer Society, 2001, pp. 83-88. [13] "lmbench home page, http://www.bitmover.com/ lmbench/." [14] "IOzone Filesystem Benchmark, http://www.iozone. org." 김영진 2005년평택대학교컴퓨터과학과학사 2005년 8월~2007년 8월한양대학교공과대학전자컴퓨터통신공학부석사. 2007 년 9월~현재 NHN Corp. 관심분야는파일시스템, 임베디드시스템, 멀티미디어시스템, 운영체제

262 정보과학회논문지 : 시스템및이론제 35 권제 6 호 (2008.6) 원유집 1990 년서울대학교자연과학대학계산통계학과학사. 1992 년서울대학교자연과학대학계산통계학과석사. 1997 년 University of Minnesota 전산학박사. 1997 년 ~1999 년 Performance Analyst, Intel Corp. 1999 년 3 월 ~ 현재한양대학교공과대학전자컴퓨터통신공학부부교수. 관심분야는멀티미디어시스템, 운영체제, 컴퓨터네트워크 김락기 2006년부경대학교전자통신컴퓨터공학과학사. 2006년~2008년한양대학교공과대학전자컴퓨터통신공학부석사. 2008 년~현재삼성전자. 관심분야는운영체제, 파일시스템, 임베디드시스템