1 / 50

File Structures 강의

File Structures 강의. File Structures. 강의 내용 파일의 기본 개념 (Ch. 1 in “ 파일 구조” ) 파일 저장 장치 (Ch. 2 in “ 파일 구조” ) 파일의 입출력 제어 (Ch. 3 in “ 파일 구조” ) 순차 파일 (Ch. 4 in “ 파일 구조” ). 파일 저장 장치의 특성. File Structures. 저장 장치 (storage device) 저장 매체 (medium) + 매체에 데이터를 저장하고 검색하기 위한 장치 (device)

zavad
Télécharger la présentation

File Structures 강의

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. File Structures 강의 File Structures • 강의 내용 • 파일의 기본 개념 (Ch. 1 in “파일 구조”) • 파일 저장 장치 (Ch. 2 in “파일 구조”) • 파일의 입출력 제어 (Ch. 3 in “파일 구조”) • 순차 파일 (Ch. 4 in “파일 구조”)

  2. 파일 저장 장치의 특성 File Structures • 저장 장치 (storage device) • 저장 매체(medium) + 매체에 데이터를 저장하고 검색하기 위한 장치(device) • 예: physical disk + disk controller • 저장 매체 (storage media) • 데이터를 저장하는 물리적 재료 (physical disk) • 소멸성(volatile) vs. 비소멸성(nonvolatile)  disk vs. memory • 접근 장치 (access device or access mechanism) • 데이터를 판독(read)하거나 기록(write)하는 장치 (혹은 방법) • 예: disk controller(driver), tape driver

  3. 저장 장치 (memory & storage) File Structures • 1차 저장 장치 (primary storage) • 주기억 장치 (main memory) • 데이터 액세스 시간이 일정하고 (디스크 등에 비해) 매우 빠름 • 프로그램/데이터 처리를 위한 작업 공간 • 캐시 메모리 (cache memory) • 주기억 장치의 성능을 향상 시키기 위한 목적으로, CPU Chipset 내에 구현되기도 함 • 주기억 장치 보다 빠른 액세스 속도를 가지며, 최근에는 캐시 메모리 자체도Primary(L1 Cache,일반적으로 CPU 내부에 장착),Secondary(L2 Cache,일반적으로 마더보드에 장착)로 구분되기도 함 • 2차 저장 장치 (secondary storage) • 자기 디스크 (magnetic disk) • 데이터 액세스 시간일 일정하지 않고 (메모리에 비해) 액세스 시간이 느림 • 용량이 크고 싸서 주로 파일의 저장에 사용됨 • 저장된 데이터는 주기억 장치를 거쳐(메모리에 올라 와) CPU에 의해 처리됨 • 광 디스크(optical disk), 자기 테이프(magnetic tape) 등

  4. 저장 장치의 유형 (1/5) File Structures • 캐시 메모리 (cache memory) • 가장 빠르고 가장 비싼 저장 장치 • SRAM(Static Random Access Memory)을 주로 사용함 • 일부 캐시(L1 Cache)의 경우는 CPU Chipset 내에 구현되어 고성능을 보장함 • 현재 수십 KB ~ 수 MB 수준의 용량이 제공됨 • 주기억 장치 (main memory) • 프로그램 실행과 이에 필요한 데이터 유지 공간 (프로그램이 로딩되는 공간이며, 프로그램이 사용하는 데이터가 로딩되는 공간이기도 함) • DRAM(Dynamic Random Access Memory)을 주로 사용함 • 저용량, 소멸성(데이터 저장에는 부적함) • 현재 수백 MB ~ 수십 GB 수준의 용량이 제공됨

  5. 저장 장치의 유형 (2/5) File Structures 캐시 메모리의 역할

  6. 저장 장치의 유형 (3/5) File Structures • 플래시 메모리 (flash memory) • 고밀도, 고성능 메모리로서 비소멸성(nonvolatile)의 특성을 가짐 • 주기억 장치와 비슷한 액세스 속도를 보임 • 핸드폰, MP3 Player, PDA 등에서 디스크/메모리 역할을 수행함 • 현재 수 MB ~ 수 GB 수준의 용량이 제공됨

  7. 저장 장치의 유형 (4/5) File Structures • 자기 디스크 (magnetic disk) • 데이터(파일) 저장 장치의 주된 매체로 사용되고 있음 • 데이터 처리와 기록을 위해서는 주기억 장치를 거쳐야 함 (버퍼를 통해서 이루어짐) • 고용량이며, 비소멸성의 특징을 가짐 • 현재 수십 GB ~ 수십 TB 수준의 용량이 제공됨 (disk array를 구성하여 사용)

  8. 저장 장치의 유형 (5/5) File Structures • 광 디스크 (optical disk) • 광학적으로 저장, 레이저로 판독 • 용량이 크고, 보존 기간이 긴 특성을 가짐 • CD-ROM, CD-R, CD-RW • DVD(digital video disk)-ROM, DVD-R(Recordable), DVM-RAM • 자기 테이프 (magnetic tape) • 데이터의 백업과 보존을 위한 저장 매체 • 순차 접근이 적용되는 대표적인 저장 장치 • 테이프 쥬크 박스 (대용량 데이터 저장 가능) • 은행, 통신 등에서는 주기적인 백업을 위하여자기 테이프를 널리 활용함

  9. 캐시 메모리 메인 메모리 플래시 메모리 자기 디스크 광 디스크 자기 테이프 저장 장치의 계층 File Structures 고 저 비용 접근 속도 저 고

  10. 하드 디스크 (Hard Disk) (1/5) File Structures • 자기 디스크의 종류 • 하드 디스크(hard disk): 1955년 IBM에서 개발 – 초기 5MB • 유연한 디스크(flexible disk): floppy disk, diskette (~1.44 MB)

  11. 하드 디스크 (Hard Disk) (2/5) File Structures 판독/기록 헤드 하드 디스크의 물리적 구성 (I) 스핀들 자기 코팅된알루미늄 원반 접근 암

  12. 하드 디스크 (Hard Disk) (3/5) File Structures 하드 디스크의 물리적 구성 (II)

  13. 하드 디스크 (Hard Disk) (4/5) File Structures • 하드 디스크의 논리적 구성 • 갭(gap): 자기화되지 않은 영역으로서 섹터를 구분하는 구분자 역할을 함 • 트랙(track): 갭(gap)으로 분리된 (하나의 원을 구성하는) 섹터들로 구성 • 섹터(sector): 기록과 판독 작업의 최소 단위 (block 크기에 대응됨) • 실린더: 여러 디스크로 디스크 팩(disk pack)이 형성되었을 때, 지름이 같은 트랙의 모음 track cylinder gap sector

  14. 하드 디스크 (Hard Disk) (5/5) File Structures • 데이터 액세스 시간의 구분 • 디스크에서 데이터를 읽거나, 디스크에 데이터를 쓰기 위해서는1) 원하는 실린더(또는 트랙)을 찾아야 하고 (디스크 헤드의 좌우 이동),2) 원하는 섹터를 찾아야 하며 (디스크 회전 이동),3) 원하는 양 만큼 데이터를 전송해야 한다. • Seek time(= s): 원하는 데이터가 있는 실린더(혹은 트랙)에 디스크 헤드를 위치 시키는데 걸리는 시간 • Rotational latency( = r): 실린더를 찾은 후, 원하는 섹터에 헤드를 위치시키기 위해 디스크가 회전하는 시간 • Transfer time(= t): 섹터(와 갭)들이 헤드 밑을 회전하며 데이터를 전송하는 시간 • Transfer rate: 초당 데이터가 전송되는 속도 (MBps)  파일 시스템(혹은 저장 시스템)의 설계자는 seek time과 rotational time을 최소화하도록 데이터 구조의 설계를 진행하여야 함 (clustering, locality, …)

  15. < 표 4.2 > 디스크 구동기 특성 --------------------------------------------------------------------------------------------------------------------- 제조업자 전송 속도 평균 실린더 수 트랙 수 색터 수 바이트 수 및 상표명 (바이트/초) 탐색시간 (실린더) (트랙) (트랙) removable disks Burrough B9484 425 K 30 ms 406 20 60 10,800 DEC RP07 1.5 M 23 ms 630 32 50 25,600 IBM 3330 806 K 30 ms 404 19 - 13,030 IBM 3380 3 M 16 ms 885 15 - 47,476 HP 3933 1.2 M 24 ms 1,321 13 92 23,552 fixed disks Burrough B9370-2 300 K - 100 2 100 10,000 DEC R503 250 K - 64 1 64 4,096 IBM 2305 3 M - 32 12 - 14,136 winchester disks Miniscribe 4020 500 K 120 ms 480 4 56 8,192 Maxtor XT1140 500 K 30 ms 918 15 56 8,192 floppy disks Shugart SA850(8") 40 K 91 ms 77 2 26 6,656 TEAC FD-55F(5.25") 20 K 94 ms 80 2 16 4,096

  16. 플로피 디스크 (Floppy Disk) File Structures • 유연한 디스크(flexible) 저장 장치 • 1970년경 IBM에서 개발 • 직경: 5¼ inch, 3½ inch • 회전 속도: 360 rpm (c.f., 5400 ~ 10K rpm in hard disks) • 과거(수년 전): 네트워크가 연결되지 않은 컴퓨터 간의 파일 이동을 위한 가장 유용한 장치로 각광 받았음 (한 장에 1K원대) • 현재?: 용량 및 액세스 속도 문제로 인하여 CD-ROM 및 USB Driver에 그 자리를 거의 빼앗긴 상태임 (열 장에 수K원대)

  17. 블로킹 (Blocking) (1/7) File Structures • 블록(block) • 데이터 전송의 단위 (디스크와 메모리 사이의 최소 전송 단위) • 트랙 길이 = b x B • b = number of blocks in a track • B = block size (블록 크기) • 블록 크기  트랙 길이 • 블록은 일반적으로 하나 (혹은 몇 개)의 섹터로 구성(매핑)됨

  18. 블로킹 (Blocking) (3/7) File Structures • 블로킹 (blocking) • 기억 공간과 I/O 효율을 위하여, 몇 개의 논리적 레코드를 하나의 물리적 레코드(블록)에 저장시키는 것(즉, 여러 레코드들을 하나의 블록에 저장시키는 것을 블로킹이라 함) • 블로킹 인수 (blocking factor) Bf = B/R • B = 블록 크기(block size) • R = 레코드 크기 (fixed or variable) • 블로킹은 I/O 시간을 감소시키는 장점(bulk read & write)이 있는 반면에, 1) 불필요한 레코드들을 함께 읽어오는 오버헤드와,2) fragmentation에 의해 저장 공간이 감소하는 단점이 있음

  19. 버퍼링 . 프로그램의 논리적 레코드에 대한 연산과 블록킹 사이의 문제를 조정하는 소프트웨어 인터페이스 . 버퍼링 인터페이스는 비블럭킹 루틴과 블록킹 루틴의 두가지가 있다. - 블록킹 루틴: 프로그램에서 논리적인 레코드를 쓸 때, 주기억장치 버퍼에 한 블록 단위로 모으는 인터페이스. - 비 블록킹 루틴: 버퍼에 읽어들인 한 블록내의 논리적인 레코드를 프로그램에 하나씩 전달하는 인터페이스 . 버퍼링 관련 연산 - 물리적 읽기 : 보조기억장치의 물리적 블록을 버퍼로 읽는 것 - 논리적 읽기 : 버퍼로부터 논리적 레코드를 읽는 것 - 논리적 쓰기 : 한 블록 크기의 버퍼에 논리적 레코드를 쓰는 것 - 물리적 쓰기 : 버퍼가 찼을 때 그 블록을 보조 기억 장치에 물리적으로 출력하는 것

  20. 비블럭킹 루틴 - 비블럭킹 루틴은 컴퓨터 입출력 채널에 의해 실행 - CPU는 입출력 채널에게 지정된 장치를 액세스하게 하고, 자신은 데이타를 처리 수행 - 프로그램에 의한 입력 명령은 버퍼가 빌 때까지 논리적 읽기를 하며, n의 배수 번째 (n 은 블럭킹 인수) 입력 명령시 물리적 읽기로 변환된다. - 비블럭킹 루틴의 처리 단계 1. 버퍼가 비어있지 않으면 6으로 간다. 2. CPU가 입력 요구를 한다. 3. 입출력 채널은 장치 제어기가 입력 요구에 의해 지정된 장치를 가리키도록 지시한다. 4. 장치 제어기는 입력이 요구된 정보의 위치를 찾아서 지정된 장치로부터 정보를 읽어들여 주 기억장치에 있는 버퍼로 보낸다. 5. 입출력 채널은 버퍼가 찰 때까지 기다렸다가 입력이 끝났음을 CPU에 알린다. 이 때 버퍼의 위치 지정자는 1로 한다. 6. 위치 지정자가 가리키는 구성요소를 프로그램으로 보낸다. 7. 위치 지정자를 증가시킨다. 8. CPU는 프로그램을 계속 실행한다.

  21. 버퍼링 입력 예제(화일의 브럭킹 인수가 10이라고 가정) 1) 프로그램의 첫 번째 입력시에 버퍼를 논리적으로 접근한다. 2) 버퍼가 비어 있으므로 파일로부터 하나의 블록을 주기억장치의 버 퍼로 읽어 들인후, 버퍼의 첫 레코드를 프로그램에 입력한다.

  22. 3) 나머지 9개의 입력 명령은 주기억장치 버퍼를 논리적으로 읽음으로써 처리한다.

  23. 4) 11번째 입력시 버퍼를 논리적으로 접근하여 버퍼가 해당 레코드가 없음을(버퍼가 비어있음을) 확인한다. 파일로부터 다음 블록을 버퍼로 가져온후 11번째 레코드를 프로그램에 입력한다.

  24. 블럭킹 루틴 - 입출력 채널에 의해 비 블록킹 루틴과 비슷하게 실행됨 - 블럭킹 루틴의 처리 단계 1. 버퍼가 가득 차지 않았으면 6번으로 간다. 2. CPU가 출력 요구를 한다. 3. 입출력 채널은 장치 제어기가 출력 요구에 의해 지정된 장치를 가리키도록 지시한다. 4. 장치 제어기는 버퍼에서부터 지정된 장치에 블럭을 쓴다. 5. 입출력 채널은 버퍼 전체가 그 장치에 쓰여질 때까지 기다려서 출력 명령이 끝났음을 CPU에 알린다. 6. 다음 구성요소 프로그램으로부터 위치 지시자가 가리키는 버퍼 의 공간에 저장된다. 7. 위치 지시자를 증가시킨다. 8. CPU는 그 프로그램을 계속 실행한다.

  25. 버퍼링 출력 예제(화일의 브럭킹 인수가 10이라고 가정) 1) 프로그램의 처음 9개의 출력 명령은 주기억장치 버퍼에 논리적 쓰기를 이용해 처리한다.

  26. 2) 10번째 출력 명령은 10개의 논리적 레코드로 구성된 블록을 물리적으로 보조 기억장치에 출력한다.

  27. 3) 11번째 출력 명령은 새로운 버퍼에 논리적 쓰기를 이용해서 위와 동일한 방법으로 처리한다.

  28. 블로킹 인수에 대한 영향 블록킹 인수가 클수록 물리적 액세스 수가 적어진다. 블록킹 인수는 논리적 레코드의 길이와 물리적 블록의 크기에 종속됨 블록이 클수록 한 블록을 접근하는데 드는 시간이 많이 소요된다. 블록 크기에 대한 고려 사항 1) 주기억장치의 크기 - 큰 주기억장치 공간이 필요하다. 한 블록의 크기는 사용할 수 있는 주기억장치의 크기보다 클 수 없다. 2) 주기억장치를 가장 많이 사용하는 프로그램의 크기 - 프로그램은 블록 공간 뿐만 아니라 내부 데이터와 내부 명령을 위한 주기억장치 공간도 필요하다. 사용할 프로그램이 차지할 공간이 크면 블록을 위한 공간이 줄어든다. 블로킹 (Blocking) (3/7)

  29. 3) 파일에 대한 액세스 형태 - 한 블록내의 레코드들을 가능한한 전부 사용해야 블록킹 효과를 얻을 수 있다. 큰 블록은 순차 접근시 효율적이다. - 블록내의 일부분을 수정시 전체 블록을 접근한다. 따라서 큰 블록은 수정 시간이 길어지는 부담(overhead) 초래 - 블록이 클수록 다음 레코드를 접근할 확률이 적어진다. : 임의 접근시 레코드를 연속적으로 접근하지 않는다. : 프로그램 파일의 경우 순차적만 접근되지는 않는다. : swapping 발생 가능 4) 외부 기억 장치의 특성 - 실린더-트랙 구조에서는 한 트랙 크기를 블록으로 지정 - 섹터 어드레싱 방식에서는 한 섹터를 블록으로 지정 블로킹 (Blocking) (3/7)

  30. 블로킹 (Blocking) (2/7) File Structures • 블록 크기 • 과거: 512 bytes, 1024 bytes, 2048 bytes • 현재: 4096 bytes, 8192 bytes, more … • 단, 너무 크면 불필요한 데이터 전송 및 메모리 효율성 저하가 발생 • 예를 들어, 블록 크기가 8KB이면, 1 byte를 저장하려 해도 8KB가 필요할 수 있고, 1 byte만 전송하려 해도 8KB를 전송해야 한다.

  31. 블로킹 (Blocking) (4/7) File Structures • 블로킹 방법 • 고정 길이 블로킹 (for fixed length records) • 신장된(spanning) 가변 길이 블로킹:가변 길이 레코드를 지원하되, 한 레코드가 인접한 블록에 걸쳐 저장될 수 있음 • 비신장된 가변 길이 블로킹:가변 길이 레코드를 지원하되, 한 레코드는 반드시 하나의 블록에 저장되어야 함

  32. 블로킹 (Blocking) (5/7) File Structures R1 R2 R3 R4 트랙 1 R5 R6 R7 R8 트랙 2 고정 길이 블로킹 R1 R2 R3 R4 R4 R5 R6 트랙 1 R6 R7 R9 R9 R10 R11 R12 R13 트랙 2 신장된 가변 길이 블로킹 R1 R2 R3 R4 R5 트랙 1 R6 R7 R8 R9 R10 트랙 2 비신장 가변 길이 블로킹

  33. 블로킹 (Blocking) (6/7) File Structures • 레코드와 블록 • 고정 길이 블로킹: 길이만 알면 레코드 구분이 가능함(n번째 레코드 시작 = n x R or (n-1) x R) • 가변 길이 블로킹 • 분리 표시: 레코드 끝 마크 (end-of-record marker) 삽입 • 각 레코드 앞에 길이 지시자 (length indicator) 관리 • 위치 테이블(position table) 관리  저장 시스템에서는 attribute에 대해서는 길이 지시자를 관리하고,record에 대해서는 위치 테이블을 관리하는 hybrid 방법을 주로 사용함 • 레코드 설계 시 고려 사항 • 메모리 바이트 주소 특성(4-byte 단위, 8-byte 단위) • 레코드 헤더의 관리 (a) 학생 레코드 레이아웃 (b) 레코드 헤더가 추가된 학생 레코드 레이아웃

  34. 블로킹 (Blocking) (7/7) File Structures • 블로킹의 고려 사항 • 적재 밀도 (loading density)  설계 과정의 관점 • 갱신을 위한 자유 공간 (free space) 할당 (레코드의 삽입 및 크기 증가를 고려하여 일정 비율의 dummy space를 파일 생성 초기에 유지함) • 실제 데이터 저장 공간에 대한 (자유 공간을 포함한) 총 공간과의 비율 • 균형 밀도 (equilibrium density) 운용 과정의 관점 • 레코드 자체의 확장과 축소에 따른 레코드의 이동 빈도, 단편화 등의 척도 • 상당히 긴 기간 동안 시스템을 운용하고 안정시킨 뒤에 예상되는 저장 밀도 • 집약성 (locality) • 논리적으로 연관된 레코드들이 물리적으로 가깝게 위치하는 정도 • 예: 학번이 유사한 학생의 레코드는 동일 블록 내에 있거나 근접한 블록에 존재하는 경우, 집약성이 강하다(strong)고 이야기함

  35. 기타 저장 장치 (1/2) File Structures • 자기 테이프 (magnetic tape) • 카세트 테이프를 생각하면 되며, 대표적인 순차 접근 장치로서, 주로 백업 장치로서 많이 활용됨 • QIC (Quarter-Inch Cartridge) • 가장 오래된 형태 • 용량: 7 ~ 70 GB, 전송률: 4 ~ 6 MBps • DAT (Digital Audio Tape)  가장 많이 쓰이는 유형 • (초기에) 음향 기기용으로 개발 • 폭: 4 mm, 용량: 4 ~ 40 GB, 전송률: 4 ~ 6 Mbps • DLT (Digital Linear Tape) • 고용량: 10 ~ 80 GB, 고전송률: 12 MBps

  36. 기타 저장 장치 (1/2) File Structures • 자기 테이프 (magnetic tape) • 순차 액세스 기억장치 • 플라스틱에 산화제2철(ferric-oxide) 코팅: Mylar • 두께 : 0.002″ • 길이 : 1,200 ft, 2,400 ft • 폭 : 0.15″, 0.25″, 0.5″ • 릴(reel) : 10 ½″

  37. 자기 테이프 저장 장치 구조 • 테이프 구동기, 판독/기록 헤드 • 속도 : 75 ~ 225 inches/sec (forward, backward)

  38. 기타 저장 장치 (2/2) File Structures • 광 디스크 (optical disk) • 레이저를 사용하여 금속성 표면에 정보를 저장함 • CD-ROM • 장점: 가격이 저렴하고, 대량 생산이 가능하며, 보존성이 뛰어남 • 단점: 디스크보다는 느리며, 임의 액세스가 신속하지 못함 • CD-R: CD Recordable (한번 기록한 후에는 CD-ROM과 동일함) • CD-RW: CD Read/Write (여러 번 기록이 가능함) • DVD: Digital Video Disk • 양면 사용, 밀도와 저장 방식 개선 • CD(~700 MB)의 7배 이상의 용량: 4.7 ~ 17 GB

  39. RAID (1/11) File Structures • RAID (Redundant Arrays of Inexpensive Disks) • RAID 개념의 근원은 1988년 SIGMOD에 발표된 Patterson, Gibson, Katz의 논문이다. • 사용하는 디스크 개수가 증가하면 이로 인한 장애 발생 빈도가 증가할 수 있는데, RAID는 이러한 문제를 해결하여 신뢰성을 높인다. • 또한, 작은 용량의 디스크 여러 개를 묶어 하나의 논리적 디스크를 제공하여 경제성을 높이며, 입출력을 분산시켜 성능을 향상시킨다.

  40. RAID (2/11) File Structures • 중복을 통한 신뢰성 개선 • 디스크 장애율 (MTTF: Mean Time To Failure) • 단일 디스크 = 100,000시간 (11.4년) • 100개의 디스크 어레이(한 개라도 장애가 날 확률)= 100,000/100 = 1,000시간(41.66일) • 신뢰성 문제 해결을 위하여 디스크(혹은 데이터)의 중복을 수행 • 일반적으로 Mirroring(이중화, Shadowing)을 적용 • Mirroring된 디스크 어레이의 MTTF  (106)2시간  57,000년 • 실제로는 (자연재해, 전원 중단 등으로 인하여) Mirroring된 두 디스크에동시에 장애가 발생하는 경우가 종종 있음

  41. RAID (3/11) File Structures • 병렬성을 통한 성능의 개선 • Data Striping을 통해서 전송률을 개선 (예: 동일 파일을 여러 디스크에 분산 저장) • Bit-level Striping: 각 Byte의 Bit를 여러 디스크 상에 분할 저장 • 8개의 디스크로 구성된 어레이의 경우: i번째 Bit는 i번째 디스크에 저장 (i = 0~7) 최대 8배의 액세스 속도 향상 • 4개의 디스크로 구성된 어레이의 경우: i번째 및 (i+4)번째 Bit를 i번째 디스크에 저장 (i = 0~3) 최대 4배의 액세스 속도 향상 • Block-level Striping: 한 파일의 블록들이 여러 디스크 상에 분할 저장 • n개의 디스크 어레이인 경우: 한 파일의 i번째 블록이 (i%n)번째 디스크에 저장 (i = 0~(n-1)) Logical Disk KANGWON! K W G ! Physical Disks A O N N

  42. RAID (4/11) File Structures • RAID의 레벨 • 많은 수의 소형 디스크를 사용하여 성능과 신뢰성을 높이고자 하는 목적에서 여러 종류의 레벨을 사용한다. • RAID는 0, 1, 2, 3, 4, 5의 여섯 레벨로 크게 나누어진다. • 레벨은 어떤 척도의 높고 낮음을 의미하기 보다는 각 레벨이 서로 다른 용도를 위하여 최적화된 시스템이라 볼 수 있다. • 즉, 응용에 따라서, 사용 용도에 따라서 적당한 레벨을 선택해야 하는 것이다.

  43. RAID (9/11) File Structures RAID 레벨에 따른 디스크 형성의 예제 (a) RAID 0 : 비중복 스트리핑 C C C C (b) RAID 1 : 미러 디스크 P P P (c) RAID 2 : 메모리 스타일 오류 수정 코드 P P (d) RAID 3 : 비트-인터리브된 패러티 (e) RAID 4 : 블록 인터리브된 패러티 P P P P P (f) RAID 5 : 블록 인터리브된 분산 패리티

  44. RAID (5/11) File Structures • RAID 0 (비중복 스트라이핑) • 장애 대비를 위하여 여분의 공간을 가지지 않는다. 신뢰성이 떨어진다. • 데이터의 빠른 입출력을 위하여 데이터를 여러 디스크에 분산하여 저장하는 Striping 방법을 사용한다. 성능이 매우 뛰어나다. • 결과적으로, RAID 0는 신뢰성은 별로 중요치 않더라도, 매우 뛰어난 성능이 필요한 경우에 사용된다.

  45. RAID (6/11) File Structures • RAID 1 (디스크 미러링) • 두 개의 디스크에 동일한 데이터를 저장하는 Mirroring 기법을 사용하는 구조이다. • 읽을 때 빠르나, 쓸 때는 약간 느리다  당연한 결과! (두 디스크에 동시에 쓰거나, 하나에 먼저 쓰고 다른 하나를 나중에 쓰는 방법 사용) • 신뢰성은 높으나 저장 용량 당 단가가 비싸다. • RAID 2 (메모리 스타일 오류 정정 코드) • Bit-level striping을 수행하되 오류 정정을 위하여 여분의 디스크를 관리한다. • 에러 검출 능력이 없는 디스크를 위해 Hamming 오류정정코드를 사용한다. • 그러나, 실제로 SCSI 드라이브는 에러 검출 능력을 제공하므로, 이 레벨은 별로 쓰이지 않는다.

  46. RAID (7/11) File Structures • RAID 3 (bit-interleaved parity),RAID 4 (block-interleaved parity) • Disk Array가 N+1 구조를 가지며, N은 데이터용으로 1은 패리티용으로 사용된다. • 데이터는 N개의 디스크에 분산(striping)되어 저장되고, 이들에 대한 패리티가 한 개의 디스크에 저장된다. • 한 개의 디스크에 오류가 생기면 나머지 디스크들과 패리티용 디스크를 사용하여 데이터 복구가 가능하다. • 데이터를 바이트 단위로 분산하여 저장하는 방법이 RAID 3이고, 블록 단위로 분산하여 저장하는 방법이 RAID 4이다. • 읽을 때는 RAID 0에 해당하는 빠른 속도이나,패리티 갱신으로 인하여 쓸 때는 RAID 0보다 느리다.

  47. RAID (8/11) File Structures • RAID 5 (block-interleaved distributed parity) • 패리티 정보를 모든 드라이브에 분산하여 저장한다. • 이는 패리티 디스크가 병목을 일으키는 현상을 방지하기 위해서다. • 쓸 때는 RAID 3이나 4에 비하여 빠르나, 읽을 때는 느리다.

  48. RAID (10/11) File Structures • RAID 사용 시 장애 대처 및 디스크 교체 • RAID 1~5는 시스템 운용 중에 디스크의 교체가 가능하다. • 교체 중간에(혹은 고장난 디스크가 있는 동안에)는 RAID 1의 경우 미러된 디스크로, RAID 2~5의 경우 여러 디스크의 도움을 받아 서비스를 진행할 수 있다. • 또한, 교체를 하면 다른 디스크들의 도움으로 원래의 데이터를 자동 복구할 수 있다. • 결국, RAID 1~5의 경우 하나의 디스크 장애에 대해서는 서비스 중단이 발생하지 않는다고 볼 수 있다.

  49. RAID (11/11) File Structures • RAID 레벨의 선택 기준 • RAID 0: 데이터 손실이 중요치 않은 고성능 응용에서 사용 • RAID 1: 높은 신뢰성 및 장애 시 빠른 복구가 필요한 경우에 사용 • RAID 2, 4: 레벨 3, 5에 포함됨 (RAID 2  RAID 3, RAID 4  RAID 5) • RAID 3, 5: 고성능을 요하는 동시에, 적정 수준의 신뢰성도 요구되는 경우 • 지금까지 설명한 바와 같이 RAID는 응용의 목적에 맞도록 레벨을 선택한다. • RAID 1을 사용하는 경우, I/O 속도 향상을 위하여 데이터를 여러 디스크에 적절히 분배하여 저장하는 strategy가 필요하다. • 아니면, RAID 0+1(or RAID 10, 레이드 일영), 즉 striping & mirroring을 사용하여 신뢰성과 성능을 높일 수도 있다.( 통신 분야에서 많이 사용하는 방법)

More Related