DataBase

[DataBase] Physical Storage Systems

:) :) 2023. 6. 4. 22:09

https://www.db-book.com/

 

Database System Concepts - 7th edition

 

www.db-book.com

< 인터넷에 제공되어있는 Avi Silberschatz 외 2인, Database System Concepts - 7th edition, McGraw-Hill, 2019 에 관한 자료를 참조 >

 

 

Index

  • Overview of Physical Storage Media
    • 종류들
  • Storage Interfaces
    • 저장장치와 컴퓨터를 이어주는 주요 인터페이스
  • Magnetic Disks
    • 특성과 저장방법
  • Flash Memory
    • 특징들
  • RAID
    • Redundant Arrays of Independent Disks

 

Goal

  • 중요한 저장장치의 특성들
    • Magnetic disk
      • 자기 저장장치
    • Flash-based solid-state disks
      • 플래시 기반 SSD
  • 다중 저장장치를 이용하여 신뢰도가 높은 저장장치를 만드는 방법

 

Overview of Physical Storage Media

 물리적 저장장치의 분류 방법

  • 휘발성 저장장치
    • cache(캐시), main memory(메인 메모리, ex) RAM)
  • 비휘발성 저장장치
    • 전원공급이 중단되도 정보들이 유지됨
    • HDD, SDD, Flash Disk

 

저장장치의 선택에 영향을 주는 요소들

  • 접근 속도
  • 데이터 단위당 비용
    • 접근 속도와 데이터 단위비용은 일반적으로 trade-off, 상반되는 관계다.
  • 신뢰성

 

 

저장장치 계층

 상위의 계층일 수록 속도가 빠르며, 데이터 단위당 가격도 증가한다.

  • Primary storage
    • cache, main memory 등이 여기 속한다.
    • volatile, 휘발적이다(전원공급 중단시 기억정보들을 초기화).
  • Secondary storage or Online storage
    • flash memory( ex - flash memory 기반 SDD), magnetic disk( ex - HDD)
    • 비휘발적이다.
  • Tertiary storage or Offline storage
    • optical disk (광학 디스크; CD, DVD등이 여기 속함)
    • magnetic tapes
      • 자기 테이프, 대용량 데이터들을 장기간 저장하는데 주로 사용한다.
    • 비휘발적이다.

 

Storage Interfaces

 저장장치 인터페이스들이다.

 

  • HDD를 위한 인터페이스
    • SATA(Serial ATA)
      • SATA 3는 표변상으로 최대 초당 6GB의 데이터 전송속도를 지원한다. 그러나 실제로는(평균적으로는) 600MB/s 정도이다.
      • 추후 magnetic disk의 구조를 보면 알겠지만 platter의 중심에서 벗어난 sector일 수록 접근 속도가 느리다.
        • 따라서 최대속도와 평균속도에는 차이가 존재한다.
    • SAS(Serial Attached SCSI)
      • SAS 3는 초당 12GB의 데이터 전송속도를 지원한다.
  • SSD(solid-state disk)를 위한 인터페이스
    • NVMe(Non - Volatile Memory Express) interface
      • PCIe 커넥터를 위한 인터페이스이다. 적은 지연률에 높은 데이터 전송률을 제공한다.
      • 최대 24GB/s
  • 컴퓨터 시스템과 직접적으로 연결하는 디스크들을 위한 인터페이스
    • SAN(Storage Area Networks)
      • 많은 수의 디스크들이 많은 서버와 높은 속도의 네트워크 형태로 연결되어 있다.
    • NAS(Network Attached Storage)
      • 디스크 시스템의 인터페이스를 사용하는 대신 파일 시스템 규약(protocol)을 이용하여 네트워크화된 저장장치가 파일시스템 인터페이스를 제공한다.

 

Magnetic Disks

 자기 저장장치의 종류 중 HDD의 구조에 대해 배운다.

기본적으로, 정보의 읽기-쓰기 작업은 자기력을 이용해 실현된다.

 

자기디스크는

  •  head-disk assemble 이라는 가장 큰 집합체에서
    • 원판형태의 platter와 read-write head의 쌍 집합으로 구성되며
      • 다시 platter는 원 고리형태의 sector들로,
        • 다시 sector는 하나의 block 형태의 track으로 구성된다.
          • 하나의 sector에는 500~ 1000(원의 중심과 가까운 트랙에서)개의 track이, 1000 ~ 2000(원의 외부와 가까운 트랙에서)개의 track이 존재한다.
        • sector는 일반적으로 5만개 - 10만개의 track으로 구성되며
        • 일반적으로 512KB의 저장공간을 가진다.
    • 이러한 플래터는 read-write head와 같이 1~5개의 쌍이 중첩된 형태로 구성된다.
  • i-번째 실린더(Cylinder)는 모든 platter에서 i-번째 track의 집합 - 즉 원기둥 형태로 구성된다.
  • Disk controller가 존재하는데, 하드웨어와 컴퓨터 시스템 간 상호작용을 하게 해준다.
    • read-write head의 이동을 가능하게 하는 arm을 움직이는 역할을 한다.
    • checksum이라는 것을 계산하는데, 이는 저장된 데이터의 검증을 가능하게 한다.
      • checksum 비교 이후, 이전 checksum과 일치하지 않으면 데이터가 손실되었음을 유추할 수 있다. 따라서 HDD는 여러번의 비교 이후 값이 계속 변한 상태이면 데이터가 손실되었음을 알린다.
    • 손상된 섹터의 재배치를 가능하게 한다.

 

디스크의 성능 측정

  •  Access time(접근 시간)
    • read-write 요청을 받은 시간 부터, 데이터 전송 시작 시간을 Access time이라고 한다.
    • 접근 시간은 Seek time 과 Rotational latency의 합으로 계산할 수 있다.
    • Seek time
      • read-write head arm의 재배치까지 걸리는 시간이다.
      • Average seek time은 보통 worstcase의 1/2정도 된다.
      • 일반적으로 4~10 ms정도 걸린다.
    • Rotational latency
      • 재배치된 head에 원하는 섹터가 위치되기까지의 시간을 의미한다.
      • 일반적으로 4~11 ms 정도 걸린다.
      • 평균적인 지연속도(latency)는 위의 절반정도이다.
  • Data-transfer rate(데이터 전송률, 데이터 전송 속도)
    • 디스크에서 데이터가 검색 or 저장되는 속도를 의미한다.
    • 가장 inner track에서 25 ~ 200 MB/s의 전송률을 가진다.
  • MTTF(Mean time to failure)
    • 디스크 신뢰성을 측정하는 기준이다.
    • 디스크가 아무런 실패(ex - 데이터 손실)없이 동작되는 평균 시간을 의미한다.
    • 새것인 상태의 디스크는 MTTF가 57년 ~ 120년 정도 되나 시간이 지날 수록 디스크의 노후화로 인하여 일반적으로 3~5년의 기대수명을 가진다.

 

 

 

Flash Memory

  •  NAND flash
    • NOR flash보다 저렴해 더 많이 사용된다.
  • SSD(solid state disk)
    • NAND flash를 이용한 디스크이다.

 

RAID

 Redundant Arrays of Independent Disks

여러 개의 디스크를 하나로 묶어 하나의 논리적 디스크로 작동하게 하는 방법이다.

 

  • 높은 가용성, 높은 속도
    • 디스크를 병렬적으로 구현하여 위 장점을 실현가능하게 함.
  • 높은 신뢰성
    • 데이터를 중복적으로 저장하여 실패시 완전한 복구가 가능하게 함.

 

중복성을 이용하여 신뢰성 향상을 이뤄내는 법

  • Mirroring
    • shadowing 이라고도 한다.
    • 모든 디스크를 복제한다.
    • 하나의 논리 디스크는 두 개의 물리적 디스크로 구성되어 있다.
    • 모든 쓰기 작업에서 두 번의 작업을 해야한다. 읽기는 아무데서나 가능.
    • MTTR - Mead Time To Repair - 실패가 일어난 디스크가 데이터를 복구하는 것까지 걸리는 시간이다.
  • Parallelism
    • 병렬화라고 한다.
    • 이를 이용해 데이터 처리량을 증가시킬 수 있으며 많은 데이터 접근에 대한 반응시간을 감소할 수 있다.
    • Striping 기법을 사용한다.
      • Bit-level striping : 비트단위로 쪼개는 것을 의미한다.
        • 디스크가 8개가 있다면, 매 byte의 i번째 bit를 i번째 디스크에 저장하는 식이다.
        • 하나의 디스크보다 읽는 속도가 8배 빠르지만, 접근/검색 시간이 더 느리다.
        • 이제는 잘 사용되지 않는 기법이다.
      • Block - level striping
        •  N개의 디스크에 대해, i번째 블록은 (i mod n) + 1 디스크에 저장된다.
        • Bit 단위의 처리방법을 Block단위로 바꾼 것이다.

 

RAID levels

 parity bits라는 개념을 이용해 최소의 비용으로 중복성을 제공하는 세분화된 방법론에 관한 내용이다.

 

매 단계는 각기 다른 비용과 성능, 신뢰성을 가지고 있다.

 

  • RAID Level 0
    • Block striping을 한다.
    • non-redundant, 데이터 중복이 없다.
    • 데이터 손실 이슈가 중요하지 않다면 높은 성능으로 사용할 수 있다.
  • RAID Level 1
    • Block striping을 이용하여 Disk Mirroring을 한다.
      • 가장 좋은 쓰기성능을 제공한다.
      • 로그 파일을 데이터베이스에 저장할 때 주로 사용한다.
      • 2N개의 디스크가 필요하다.
  • RAID Level 5
    • 분할된 데이터가 N개의 디스크에 저장될 예정이었다면, 각 블록당 하나의 parity block을 집어넣어 구현한다. 따라서 N+1개의 디스크가 필요하다.
    • RAID Level 1보다 저장 비용이 낮다.
    • N번째 parity block은 같은 위치에 존재하는 다른 디스크의 데이터를 전부 가지고 있다.
    • 따라서 한 디스크에서 데이터 손실 발생 시 같은 위치에 존재하는 parity block의 정보를 통해 데이터 복구를 이뤄낼 수 있다.
    • 그러나 두 개이상의 디스크 고장 시 완벽한 복구가 불가능하다는 단점이 있다.

 

 

 

  • RAID Level 6
    • 다수의 parity 블록을 각 디스크에 삽입하는 기법이다.
    • Level 5보다 저장비용이 높으나, 다수의 디스크 고장에 대해 대응할 수 있는 장점이 있다.

 

RAID Level의 고려사항

  • 비용
  • 성능
  • 실패시 성능
  • 실패한 디스크 복구에 대한 성능

 

  • RAID Level 0
    • 일반적으로 데이터 안정성이 중요하지 않을 때 사용된다(빠르게 다른 소스에서 복구가능한 경우).
  • RAID Level 1
    • 쓰기 성능이 다른 단계보다 매우 좋다.
    • 많은 저장연산이 필요한 곳에 사용한다.
    • Level 1은 읽기/쓰기 연산은 2개의 블록에만 작동하지만 Level5~는 작동 블록이 최소 2개이기 때문에 성능이 좋다.
    • 그러나 Level 5보다 저장비용이 높다.
  • RAID Level 5
    • 순차적 데이터 저장에 적합하다.
  • RAID Level 6
    • 신뢰성이 가장 중요한 고려요소일 때 사용하면 된다.

 

 

 

 

 

 

 

 

 

'DataBase' 카테고리의 다른 글

[DataBase] Indexing  (0) 2023.06.05
[DataBase] Data Storage Structures  (0) 2023.06.05
[DataBase] Database Design Using the E-R Model  (1) 2023.06.03