DataBase

[DataBase] 06. Physical Storage System

lumana 2024. 6. 25. 03:47

데이터베이스는 본질적으로 data storage system입니다

 

 

물리적 저장 매체의 분류

  • Volatile storage: 전원이 꺼지면 내용이 손실됨
    • non-safe
    • ex) memory
  • Non-volatile storage:
    • 전원이 꺼져도 내용이 지속됨
    • 2차 및 3차 storage 포함, 배터리 백업된 main-memory 포함
  • 저장 매체 선택에 영향을 미치는 요소:
    • 데이터 접근 속도
    • 데이터 단위당 비용
    • reliability(신뢰성)

Storage Hierarchy

  • Primary storage: 가장 빠른 매체지만 volatile (cache, main memory)
  • Secondary storage: 다음 계층, non-volatile, 적당히 빠른 접근 시간
    • on-line storage라고도 함
    • 예: flash memory, magnetic disks
  • Tertiary storage: 가장 낮은 계층, non-volatile, 느린 접근 시간
    • 예: magnetic tape, optical storage

Storage Interfaces

  • Storage 인터페이스 표준
    • Storage는 보통 컴퓨터 시스템에 직접 연결됨
      • SATA (Serial ATA)
        • SATA 3는 최대 6 gigabits/sec의 데이터 전송 속도 지원
    • SAS (Serial Attached SCSI)
      • SAS 버전 3는 12 gigabits/sec 지원
    • NVMe (Non-Volatile Memory Express) 인터페이스
      • PCIe 커넥터를 사용하여 더 낮은 대기 시간과 더 높은 전송 속도 지원
      • 최대 24 gigabits/sec의 데이터 전송 속도 지원
    • Storage Area Networks (SAN): 많은 디스크가 고속 네트워크를 통해 여러 서버에 연결됨
    • Network Attached Storage (NAS): networked storage는 디스크 시스템 인터페이스 대신 네트워크 파일 시스템 프로토콜을 사용하여 파일 시스템 인터페이스 제공

NAS와 SAN의 비교

 

Magnetic Hard Disk Mechanism

Magnetic Disks

  • Read-Write head
  • 플래터 표면이 원형 tracks으로 나누어짐
  • 각 트랙은 sectors로 나누어짐
    • sector는 읽거나 쓸 수 있는 데이터의 가장 작은 단위
    • sector 크기는 보통 512 bytes
    • 트랙당 일반적인 sector 수
      • 500에서 1000 (inner track)에서 1000에서 2000 (outer track)까지
  • 섹터를 읽거나 쓰려면
    • Disk arm이 올바른 트랙에 head를 위치시킴
    • Platter가 계속 회전하며 데이터는 헤드 아래를 지나가면서 읽거나 씀
  • Head-disk assemblies
    • 단일 spindle에 여러 디스크 플래터 (보통 1~5개)
    • 각 플래터에 하나의 헤드, coomon arm에 장착
  • 실린더 i는 모든 플래터의 i번째 트랙으로 구성됨
  • Disk controller
    • 컴퓨터 시스템과 디스크 드라이브 하드웨어 사이의 인터페이스
    • (디스크 내에서 조그만한 CPU 역할을 한다고 생각하면 된다)
      • 섹터를 읽거나 쓰기 위한 명령을 수락
      • 디스크 암을 올바른 트랙으로 이동시키고 실제로 데이터를 읽거나 쓰는 작업을 시작
      • 쓰기 후 섹터를 다시 읽어 성공적으로 쓰기가 완료되었는지 확인
      • 불량 섹터 재매핑 수행

Performance Measures of Disks

Access time

  • 데이터를 읽거나 쓰기 위한 요청이 발행된 순간부터 데이터 전송이 시작될 때까지 걸리는 시간
  • Seek time
    • arm을 올바른 트랙 위로 재배치하는 데 걸리는 시간
      • 일반적인 디스크에서 4에서 10 밀리초
  • Rotational latency
    • 섹터가 헤드 아래로 나타나도록 접근하는 데 걸리는 시간
      • 일반적인 디스크에서 4에서 11 밀리초
  • 전체 지연 시간은 디스크 모델에 따라 5에서 20 밀리초

Data-transfer rate

  • 디스크에서 데이터를 검색하거나 디스크에 데이터를 저장할 때의 속도
    • 최대 속도는 초당 25에서 200MB

Performance Measures

Disk block

  • storage 할당 및 검색을 위한 논리적 단위
  • 보통 4에서 16킬로바이트
    • 작은 블록: 디스크에서 더 많은 전송
    • 큰 블록: 부분적으로 채워진 블록으로 인한 공간 낭비

Sequential access pattern (1, 2, 3, 4, ...)

  • 연속적인 요청은 연속적인 디스크 블록에 대해 발생
  • 디스크 탐색은 첫 번째 블록에 대해서만 필요

Random access pattern(1, 999, 3, 100, ...)

  • 연속적인 요청은 디스크 어디에서나 블록에 대해 발생할 수 있음
  • 각 접근은 탐색을 필요로 함
  • 탐색에 많은 시간이 소요되므로 전송 속도는 낮음

I/O operations per second (IOPS)

  • 디스크가 초당 지원할 수 있는 random block 읽기 수
  • 현재 세대의 magnetic disks에서 초당 50에서 200 IOPS

Flash Storage

NAND flash

  • Storage로 널리 사용됨
  • 페이지 단위 읽기 필요 (페이지: 4KB 또는 8KB)
    • 페이지 읽기 시간은 20에서 100 마이크로초
    • sequential read와 random read 간 큰 차이 없음
  • 페이지는 한 번만 쓸 수 있음
    • rewrite를 위해서는 지워야 함

Solid state disks

  • SSD(solid-state drive)는 플래시 메모리를 사용하여 데이터를 영구적으로 저장하는 solid-state 저장 장치
  • computer storage 계층에서 2차 저장소로서 작동한다
  • SATA를 사용하면 초당 최대 500MB, NVMe PCIe를 사용하면 초당 최대 3GB 전송 속도

NAND flash Overview

  • Erase는 erase block 단위로 발생
    • 2에서 5밀리초 소요
    • erase block은 보통 256KB에서 1MB
  • 논리적 페이지 주소를 물리적 페이지 주소로 remapping하여 erase 대기 시간 회피
  • Flash translation table은 mapping을 추적
    • flash page의 label 필드에 저장됨
    • Flash translation layer에 의해 remapping 수행
  • 100,000에서 1,000,000번의 지우기 후에 erase block은 신뢰할 수 없게 되며 사용할 수 없음
    • Wear leveling

remapping 예시 - Sector Mapping(교수님이 강조하신 부분)

 

Database to Flash memory(교수님이 강조하신 부분)

Flash Storage

Nand Gate에는 life cycle이 있다. nand gate가 고장나면 data consistency가 보장되지 않는다.

Wear leveling

  • 플래시 메모리 (SSD)와 같은 지울 수 있는 저장 매체의 수명을 연장하는 기술

  • Wear leveling은 많이 쓰여진 블록에서 데이터를 가져와 적게 쓰여진 블록으로 재배치
  • 이론적으로, 이는 디스크 전체에 쓰기를 분산시켜 디스크 수명을 연장

Storage Class Memory

3D-Xpoint memory 기술

  • Intel에 의해 개발된 비휘발성 메모리 (NVM) 기술
  • Intel Optane으로 제공
    • SSD 인터페이스는 2017년부터 출시됨
      • 플래시 SSD보다 낮은 지연 시간을 허용
  • 2018년에 발표된 비휘발성 메모리 인터페이스
    • words에 대한 직접 접근을 지원하며, 메인 메모리 속도에 가까운 속도

  • (volatile 속성인 DRAM + persistence를 보장해주는 power를 합쳤다고 보면된다. 속도와 수명을 모두 챙긴 기술)

RAID

RAID: Redundant Arrays of Independent Disks

  • 다수의 디스크를 관리하여 단일 디스크의 뷰를 제공하는 디스크 조직 기술
    • 여러 디스크를 병렬로 사용하여 높은 용량과 고속 제공
    • 데이터를 중복 저장하여 높은 신뢰성 제공, 따라서 디스크가 고장 나더라도 데이터 복구 가능
  • N개의 디스크 중 일부가 고장 날 가능성은 특정 단일 디스크가 고장 날 가능성보다 훨씬 높음
    • 다수의 디스크가 있는 경우 데이터 손실을 방지하기 위해 중복을 사용하는 기술이 중요

RAID 0: block striping; non-redundant

  • RAID0에서는 두 개 이상의 드라이브가 하나의 단일 드라이브처럼 동작합니다.
  • 그러나, RAID0은 보호 기능을 제공하지 않습니다.
  • 장점:
    • RAID0은 중복이 없기 때문에 하드 드라이브 공간을 최대한 활용합니다.
    • 높은 성능
  • 단점:
    • 보호 기능 없음

 

  • (A와 B를 동시에, C와 D를 동시에, ..... 저장가능하기 때문에 high performance)

RAID 1: Mirrored disks with block striping

  • RAID 1에서는 하드 드라이브가 서로의 mirror 역할을 합니다.
    • 이는 중복성(redundancy)을 제공합니다.
  • RAID 0과 달리 드라이브의 전체 결합된 공간을 사용하는 것이 아니라, RAID 1은 중복성을 위해 절반의 공간만 사용합니다.
    • 두 하드 드라이브는 동일한 크기여야 합니다.
  • 장점:
    • Redundancy
  • 단점:
    • 공간 효율성이 낮음

RAID 5: Block-interleaved Distributed Parity

  • RAID5는 distriubted parity(분산 패리티)를 사용한 block-level striping으로 구성됩니다.
  • 단일 드라이브가 실패할 경우, distributed parity로부터 계산하여 데이터 손실 없이 후속 읽기가 가능합니다.
    • RAID 5는 최소 세 개의 디스크가 필요합니다.
  • data와 parity를 모든 디스크에 분할합니다.

  • RAID 5에서 lost data를 재구성하는 것은 매우 간단합니다:
    • 남아 있는 데이터와 parity 정보를 XOR 연산하여 수행합니다, 왜냐하면:
      • A XOR B = Parity
      • A XOR Parity = B
      • B XOR Parity = A

Improvement of Reliability via Redundancy

Redundancy

  • 디스크 장애에서 손실된 정보를 재구성하는 데 사용할 수 있는 추가 정보를 저장합니다.
    • 예: Mirroring or shadowing
      • 모든 디스크를 복제
        • 논리적 디스크는 두 개의 물리적 디스크로 구성됩니다.
      • 모든 쓰기는 두 디스크에서 수행됩니다.
        • 읽기는 어느 디스크에서나 수행할 수 있습니다.
      • 한 쌍의 디스크 중 하나가 고장 나면, 데이터는 여전히 다른 디스크에서 사용할 수 있습니다.
        • 디스크가 고장 나고 시스템이 복구되기 전에 미러 디스크도 고장 나야 데이터 손실이 발생합니다.
          • 위 경우의 발생 확률은 매우 작습니다. (화재나 전기 과전압과 같은 dependent failure modes를 제외하고)

RAID Types

RAID 구현 방식

  • Software RAID
    • "Software RAID"에서는 모든 configuration이 운영 체제에 의해 처리됩니다.
      • RAID 구현은 전적으로 소프트웨어에서 수행되며, 특별한 하드웨어 지원이 필요 없습니다.
      • 소프트웨어 RAID의 장점은 매우 저렴하다는 것입니다. 추가 하드웨어를 구매할 필요가 없고, 대부분의 운영 체제에 포함된 소프트웨어로 RAID를 관리할 수 있습니다.
      • 단점 중 하나는 자체 하드웨어로 관리되지 않기 때문에 컴퓨터의 자원을 소모한다는 점입니다.
  • Hardware RAID
    • "Hardware RAID"에서는 RAID 구성에 관한 모든 정보가 하드웨어 인터페이스 카드에 의해 처리됩니다.
      • 하드웨어 RAID의 장점은 모든 것이 인터페이스 카드에 의해 처리되기 때문에, 컴퓨터가 RAID를 실행하기 위해 메모리나 CPU 성능을 사용할 필요가 없다는 것입니다.

Optimization of Disk-Block Access

Buffering

  • 디스크 블록을 캐시하기 위한 메모리 내 버퍼

Read-ahead

  • 곧 요청될 것을 예상하여 트랙에서 추가 블록을 읽음
  • (요청한 것 플러스 알파로 한 번에 많이 읽어옴)

Disk-arm-scheduling

  • 스케줄링 알고리즘은 디스크 암 이동을 최소화하도록 블록 요청을 재정렬합니다.
    • 엘리베이터 알고리즘
      • 평균 디스크 탐색 시간을 계산하는 방법의 예:
        • 대기 중인 디스크 요청 목록 (트랙 번호 순으로 나열): 100, 50, 10, 20, 75
        • 목록은 오름차순으로 정렬해야 합니다: 10, 20, 50, 75, 100

File organization

(가장 성능 향상이 큰 방법임)

  • 파일의 블록을 가능한 연속적인 방식으로 할당
  • 파일이 조각화될 수 있음
    • 예: 디스크의 여유 블록이 분산되어 있고 새로 생성된 파일이 디스크 전체에 분산된 블록을 가질 경우
    • 조각화된 파일에 대한 순차적 접근은 disk arm의 이동을 증가시킴
  • 일부 시스템은 파일 시스템을 최적화하여 파일 접근 속도를 높이기 위해 조각 모음 유틸리티를 갖추고 있음

'DataBase' 카테고리의 다른 글

[DataBase] 08. Transaction Recovery  (0) 2024.06.26
[DataBase] 07. Data Storage Structure  (0) 2024.06.25
[DataBase] 05. E-R Model  (0) 2024.06.25
[DataBase] 04. Intermediate SQL  (0) 2024.06.15
[DataBase] 03. Introduction to SQL(2)  (0) 2024.06.15