본문 바로가기

전공/데이터베이스

[데이터베이스] 저장 장치 관리 및 인덱싱: 물리적 저장 장치 구조

 

저장 장치 계층(Storage Hierarchy)


 

Database System Concepts by Silbershatz A. & Korth H. F. & Sudarshan S.

 

 

1. 캐시(cache)

: 저장 장치 중 가장 빠르고 비싸고, 크기가 상대적으로 작은 저장 장치이다.

 

 

2. 메인 메모리(main memory)

: 연산에 사용할 데이터를 저장하기 위한 저장 장치이다. 휘발성 메모리이다.

 

 

3. 플래시 메모리(flash memory)

: 비휘발성 메모리이다.

SSD(solid-state drive) - 내부적으로 플래시 메모리를 사용해서 저장하지만 자기 디스크와 유사한 인터페이스를 제공한다.

 

 

4. 자기 디스크 저장 장치(magnetic-disk storage)

: 온라인으로 장기간 데이터를 저장하기 위한 저장 장치 이다. 비휘발성 메모리이다. 

하드 디스크 드라이브(hard disk drive, HDD)라고도 한다.

 

 

5. 광학 저장 장치(optical storage)

: 레이저 광원을 사용하여 데이터를 쓰고 다시 읽는 광학 저장 매체이다.

 

 

6. 테이프 저장 장치(tape storage)

: 주로 데이터 백업과 보관용으로 사용한다.

 

 

 

 

 

자기 디스크(Magnetic Hard Disk)


 

- 디스크의 물리적 특성

 

Database System Concepts by Silbershatz A. & Korth H. F. & Sudarshan S.

 

 

플래터(platter)는 납작한 원형이고, 디스크의 양쪽 표면은 자기적인 물질로 덮여 있고, 정보는 이 표면에 기록된다. 플래터의 앞, 뒷면에 모두 정보를 저장할 수 있고, 자기 디스크는 보통 1개에서 5개의 플래터로 구성된다. 

 

 

디스크 표면은 트랙(track)으로 나뉘고, 하나의 플래터는 보통 5만개에서 10만개의 트랙으로 구성된다.

 

 

트랙은 다시 섹터(sector)로 나뉘고, 이는 디스크로부터 읽고 쓸 수 있는 정보의 가장 작은 단위로 보통 512바이트이다. 하나의 트랙은 보통 500개에서 1000개의 섹터로 구성된다.

 

 

판독-기록 헤드(read-write head)섹터 위에 정보를 읽고 저장하는 데 사용된다.

 

 

모든 판독-기록 헤드는 디스크 암(disk arm)이라는 하나의 어셈블리(assembly)에 연결되어 있어서 다 같이 움직이므로, 한 개의 헤드가 i번째 트랙에 있을 때, 다른 헤드들 또한 다른 판의 i번째 트랙 위에 있다.

이때 모든 디스크 판의 i번째 트랙을 i번째 실린더(cylinder)라고 한다.

 

따라서 크기가 큰 테이블을 저장할 때 헤드를 옮기는 것은 비효율적이므로, 다른 플래터의 같은 위치의 트랙에 저장한다.

 

 

 

- 디스크 성능 측정

 

접근 시간(access time)읽거나 쓰기 요구를 받았을 때부터 데이터가 전송되기 시작할 때까지의 시간이다.

 

디스크의 특정 섹터에 있는 데이터에 접근하기 위해서는 먼저 헤드를 정확한 트랙 위로 옮겨야 하는데, 이때 걸리는 시간을 탐색 시간(seek time)이라고 한다. 이는 보통 4밀리초에서 10밀리초 사이의 값을 가진다.

 

그 후 원하는 섹터가 헤드 아래에 위치해 접근할 때까지 회전해야 하는데, 이때 걸리는 시간을 회전 지연 시간(rotational delay(latency))이라고 한다. 이는 보통 4밀리초에서 11밀리초 사이의 값을 가진다.

 

 

데이터 전송 속도(data-transfer rate)데이터를 디스크로부터 검색하거나 디스크에 저장될 수 있는 속도이다. (디스크 -> 메인 메모리)

이는 보통 50 ~ 200메가바이트 사이의 값을 가진다.

 

 

 

 

 

 

디스크 블록 접근(Disk-Block Access)


 

블록(block) 데이터 전송의 기본 단위로 보통 4에서 16킬로바이트 사이의 크기를 가진다.

(섹터의 크기가 512바이트라 했을때, 각각 8개와 32개의 섹터로 하나의 블록이 구성된다.)

 

블록의 크기가 작으면, 전송이 더 많이 발생하고, 블록의 크기가 크면, 공간의 낭비가 더 많이 발생한다.

(trade-off 관계)

 

 

 

- 디스크 블록 접근 최소화

 

디스크 암 스케줄링(disk-arm-scheduling) 처리할 수 있는 접근 수를 최대한 증가시키는 방식으로 트랙 접근 순서를 정한다.

 

일반적으로 승강기 알고리즘(elevator algorithm)을 사용한다. 이는 일반 승강기의 작동 방식과 같다.

 

암이 디스크의 안쪽에서 바깥 방향으로 움직이고 있다고 가정하면,

 

움직이는 방향에 접근 요청이 있는 트랙이 있으면 그 트랙에 멈춰서 요청을 처리하고, 요청이 없을 때까지 바깥 방향으로 움직인다.

 

요청이 없는 트랙에 도달하면, 방향을 전환하여 디스크의 바깥에서 안쪽 방향으로 움직이며 요청을 처리한다.