ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Ch15. 디스크 저장 장치, 기본 파일 구조, 해싱 및 최신 저장 아키텍처
    학교 수업/2-2 데이터베이스 기초 2021. 10. 30. 00:46
    반응형

    1. 메모리 계층 구조와 저장 장치

     

    데이터베이스는 물리적으로 레코드들의 파일 형태로 저장됨

     

    저장 장치 종류

    • 기본 저장 장치(Primary storage, 주기억장치) - CPU가 직접 처리할 수 있는 장치 - 메인 메모리와 캐시 메모리
    • 보조 저장 장치(Secondary storage, 보조기억장치) - 대용량 - 플래시 메모리, 자기 디스크, 광 디스크
    • 3차 저장 장치(Tertiary storage) - 오프라인 상태로 있다가 유저가 직접 로딩해야 그제서야 온라인으로 변하여 접근할 수 있는 방식 - 광 디스크, 마그네틱 테입, 테입 쥬크박스

    기본 저장 장치와 나머지 저장 장치의 큰 차이는 CPU가 직접 접근할 수 있느냐임

    위로 갈수록 비싸고 저용량이지만 빠르고, 아래로 갈수록 느리지만 대용량이고 쌈

     

     

     

    2. 데이터베이스 저장 구조

    물리적 데이터베이스 디자인 : 사용 가능한 여러 옵션 중에서 주어진 응용의 요구사항에 가장 적합한 특정 데이터 조작 기법

    가장 효율적으로 찾을 수 있는 그런 방식으로 저장되는 게 좋은 저장 방법임

     

     

    파일 구성 방법

    1. 주 파일 조직(기본 파일 조직, Primary File Organizations)
      heap file(or unordered file) - 파일의 끝에 새로운 레코드를 첨가함으로써 특별한 순서없이 레코드를 디스크에 저장
      sorted file(or sequential file) - 특정 필드 값(정렬키라 부름)의 순서로 레코드들을 저장
      hash file - 디스크 상의 레코드들의 위치를 알기 위해 특정 필드(해시키라 부름)에 적용된 해시 함수를 사용함
      다른 기본 파일 조직은 트리 구조를 사용한 B-trees라는 것도 있음
    2. 보조 파일 조직(혹은 보조 접근 구조, auxiliary access structure)
      기본 파일 조직에 이용되었던 필드 이외의 다른 필드들을 기반으로 하여 파일 레코드들을 효율적으로 접근할 수 있도록 함

     

    3. 보조 저장 장치

    디스크에 섹터(sector)를 저장하는 방법은 두 가지가 있음

    1) a fixed angle - 같은 각도에 있으면 동일한 용량을 가짐(안으로 갈수록 데이터 밀도가 높음) - 편리해서 많이 쓰임

    2) a uniform recording density - 밀도가 일정하여 너비에 맡게 데이터를 저장함

     

    자기 디스크

    - 디스크들이 회전하고 있음(고정식과 제거식이 있는데, 요즘엔 고정식을 사용함. 저장용량이 높기 때문)

    - 디스크 원반(plattter)는 PC는 3.5", 노트북은 2.5"가 많이 쓰임

     

    실린더 - 디스크 팩에서 여러 개의 디스크면 중에서 같은 크기의 지름을 갖는 트랙들(트랙수만큼 실린더가 존재함)

    실린더를 사용하면 아랫면의 내용을 읽을 때는 헤더가 움직이지 않아도 댐. 그래서 대용량의 트랙 경우에는 같은 층의 디스크 안쪽에 기록하지 않고, 아래층의 같은 실린더에 기록하게 됨. 다 차면 옆에 다음 실린더로 이동하여 기록함

     

    디스크 블록 - OS가 디스크 포맷팅을 하거나 초기화할 때, 동일한 크기의 트랙을 나눠놓는 명령(0.5 ~ 8KB)

    블록 사이에는 고정 크기의 블록 간 갭(interblock gap)이 존재하며, 여기엔 제어 정보(control information)을 저장하여 다음에 어떤 블록이 위치하는가를 알 수 있음

     

     

    디스크 주소법

    디스크 블록

    - 디스크를 임의 접근 저장 장치(random access addressable device)라고 함

    - 메인 메모리와 디스크 사이에 트랜스퍼 단위가 디스크 블록임

     

    블록의 하드웨어 주소는 두 가지 방법으로 줄 수 있음

    • (실린더 번호, 트랙번호 - 실린더 내에서 트랙이 할당된 면의 번호, 블록 번호 - 트랙 안의)
    • LBA(logical block address) : 0과 n 사이의 값을 가짐(블록에 차례대로 번호를 부여해서 접근함)

     

    실린더 주소법

    • 각 트랙의 기억 용량은 일정하다고 가정함
      • 기록 밀도의 변경
      • 파일에 할당된 섹터(혹은 트랙, 실린더)의 수를 변경하지 않고 디스크에 파일 재배치가 가능함

     

    섹터 방법

     

    버퍼 - 입력용일 때는 입력버퍼, 출력용일 때는 출력 버퍼

    클러스터 - 디스크 용량이 커지면 섹터를 하나하나 이름을 부여하면 이름이 너무 많아져서, 몇 개의 섹터를 묶어서 클러스터라고 부름. 클러스터 단위로 데이터 입출력을 함(버퍼 크기는 클러스터의 크기를 고려해야함)

     

     

    클러스터(cluster)

    • 일정 수의 연속된 섹터
    • 파일 관리자는 파일을 일련의 클러스터로 간주
      • FAT(File Allocation Table)를 이용하여 논리적 섹터를 물리적 클러스터에 연결
    • 클러스터의 크기는 시스템 관리자가 결정함

     

    익스텐트(extent)

    • 연속된 클러스터
    • 섹터, 트랙, 실린더 등으로 연속된 한 구역(ex 파일이 하나의 연속된 공간에 저장 ≡ 하나의 익스텐트로 구성)
    • 파일의 익스텐트 수 저장 파일의 분산도

     

    디스크 제어 방식 - SCSI, SATA, SAS

     

    데이터 전송 연산

    구성요소 - seek time, head activation time, data transfer time, rotational delay time

     

    데이터 전송 연산 시간 = 탐구 시간(seek time)  -> 5~10 msec

                                  + 헤드 활동 개시 시간 -> 0ms

                                  + 회전 지연 시간 -> 2msec(15,000 rpm)

                                  + 전송 시간

     

     

    대량 전송(bulk transfer)

    • 여러 개의 블록들을 전송하는 것
    • 디스크 블록을 하나 읽는데 필요한 시간은 9 ~ 60 msec임
    • 여러개의 블록을 읽을 때는 처음엔 위와 같지만, 다음엔 바로 옆에 붙어 있어서 각각 0.4~2 msec이 걸림
    • 디스크 제조 업체들이 대량 전송률을 제공함
    • 연속된 검색이 가능하도록 블록들을 위치시키는 것이 중요함

     

    4. 디스크에서 더 효율적인 데이터 접근

    1. 데이터 버퍼링 : CPU와 하드디스크 사이의 속도 차이를 보완
    2. 데이터를 디스크에 적절히 위치 : 연속된 위치에 두기
    3. 요청에 앞서 데이터 미리 읽기
    4. 입출력 요청에 대한 적절한 스케쥴링
    5. 기록을 임시로 저장할 로그 디스크의 사용
    6. 회복 목적으로 SSD 또는 플래시 메모리 사용

     

    5. SSD(반도체 디스크) 저장 장치

    주기억 장치와 자기디스크 형태의 회전형 보조 저장 장치 사이의 중간 계층으로 플래시 메모리를 사용하는데, 플래시 메모리를 SSD라고 함

     

    대용량이면 기업용 플래시 드라이브(EFDs, enterprise flash drives)라고 부름

     

    SSD는 컨트롤러와 플래시 메모리 카드들로 구성되고, NAND 플래시 메모리를 가장 많이 사용함

    그리고 표준 카드 기반의 형태 인자(form factor)로 mSATA와 M.2를 사용함

    인터페이스는 SATA express를 사용함

     

    HDD는 관련된 데이터들을 연속적으로 저장되어야 한다. 그러면 업데이트를 할 때 덮어쓰기(overwritten)을 많이 함

    SSD는 어느 위치에 엑세스를 해도 같은 시간에 접근하여 연속적으로 모아둘 필요가 없음. 하지만 읽고 쓸 수 있는 횟수가 제한되어 있음. 그리고 덮어쓰기를 하지 않고 새로운 공간에 기록을 하는데 이것을 wear-leveling이라고 함

     

     

    6. 자기 테이프 저장 장치

    디스크는 랜덤 엑세스 보조 기억 장치라면

    자기 테이프는 연속된 엑세스 장치임

    • n번째 블록을 읽으려면 n-1개의 블록을 지나가야함
    • 기억 공간의 활용을 위해 여러개의 블록을 하나의 블로킹(blocking)으로 처리함
    • 최근엔 백업용으로 사용

    감속-가속이 되고 있는 구간은 데이터 기록을 할 수 없어서 버리는 구간인데, 이게 블록과 블록 사이에서 일어남

    그래서 효율성을 위해 여러개의 블록을 하나로 처리하는 블로킹이 필요함

     

     

    7. CD-ROM

    반사된 곳을 이용하여 반사하냐 안하냐로 1과 0을 표시함

     

    물리적 특성

    • 중심에서 바깥까지 약 3마일의 단일 나선형 트랙으로 구성
    • 위치에 관계없이 저장 밀도 일정
    • 안에서 밖으로 순차 판독
    • 균일 선형 속도(CLV - Constant Linear Velocity) 방식

    DVD는 CD-ROM보다 저장용량이 큼

    BLUE-RAY는 DVD보다 저장용량이 큼

     

     

    반응형

    댓글

Designed by Tistory.