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
- Magnetic disk
- 다중 저장장치를 이용하여 신뢰도가 높은 저장장치를 만드는 방법
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의 데이터 전송속도를 지원한다.
- SATA(Serial ATA)
- SSD(solid-state disk)를 위한 인터페이스
- NVMe(Non - Volatile Memory Express) interface
- PCIe 커넥터를 위한 인터페이스이다. 적은 지연률에 높은 데이터 전송률을 제공한다.
- 최대 24GB/s
- NVMe(Non - Volatile Memory Express) interface
- 컴퓨터 시스템과 직접적으로 연결하는 디스크들을 위한 인터페이스
- SAN(Storage Area Networks)
- 많은 수의 디스크들이 많은 서버와 높은 속도의 네트워크 형태로 연결되어 있다.
- NAS(Network Attached Storage)
- 디스크 시스템의 인터페이스를 사용하는 대신 파일 시스템 규약(protocol)을 이용하여 네트워크화된 저장장치가 파일시스템 인터페이스를 제공한다.
- SAN(Storage Area Networks)
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의 저장공간을 가진다.
- 다시 sector는 하나의 block 형태의 track으로 구성된다.
- 다시 platter는 원 고리형태의 sector들로,
- 이러한 플래터는 read-write head와 같이 1~5개의 쌍이 중첩된 형태로 구성된다.
- 원판형태의 platter와 read-write head의 쌍 집합으로 구성되며
- 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단위로 바꾼 것이다.
- Bit-level striping : 비트단위로 쪼개는 것을 의미한다.
RAID levels
parity bits라는 개념을 이용해 최소의 비용으로 중복성을 제공하는 세분화된 방법론에 관한 내용이다.
매 단계는 각기 다른 비용과 성능, 신뢰성을 가지고 있다.
- RAID Level 0
- Block striping을 한다.
- non-redundant, 데이터 중복이 없다.
- 데이터 손실 이슈가 중요하지 않다면 높은 성능으로 사용할 수 있다.
- RAID Level 1
- Block striping을 이용하여 Disk Mirroring을 한다.
- 가장 좋은 쓰기성능을 제공한다.
- 로그 파일을 데이터베이스에 저장할 때 주로 사용한다.
- 2N개의 디스크가 필요하다.
- Block striping을 이용하여 Disk Mirroring을 한다.
- 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 |