본문으로 바로가기

디스크IO 분산 / 디스크IO 중요성 / 디스크 IO 란?

category IT/DB 2019. 2. 28. 14:11


디스크 IO 란 무엇인가. 

간단하다. 우리가 데이터를 작성 하고 변경 할적에 디스크 즉 HDD 에 그것이 저장되는 것을 말한다. 

그럼 이것이 왜 중요한가, 


지금부터 알아보도록 하겠다. 


 먼저 오라클 스토리지의 구조부터 파악해보자 


오라클 스토리지의 구조는 7단계로 나누어져 있다 . 

 

OS Blosk -> DB Block -> Extent -> Segment -> Table space -> Datafile 



위와 같은 7가지로 나누어져 있으며 각 레벨에서의 정의도 위와 같다

 

DB 를 하는대 OS Level 의 IO 및

OS 단에서 이루어 지는 작업 까지 알아야 하나...

라는 생각을 할수도 있지만, 알아야 한다.

알아야 요청할수 있고, 알아야 문재가 생겼을때

해결할수가 있기 때문이다.

 

 

디스크 IO 분산의 장단점이다.

위의 그림에서 보다싶이, 디스크 IO 를 분산 시키는 것만으로도

DB 성능을 올릴수도 있다.

반대로 IO 분산을 잘하지 못하였을경우

많은 양의 table 을 분산 시켜야 하므로,

디스크 장애 발생시 table 전체의 장애로 확대 될 수도 있다.

이러한 문제점을 방지 하기 위하여, 디스크 IO 분산을 하는 것이다.

 

그렇다면, 디스크 IO 분산은 어떤 식으로 해야 할까?

 

 

위 그림 처럼 디스크 IO 분산 법칙에 따른 분산 을 하는 것이 좋다.

거기에 더해, 논리적 볼륨 striping 기법을 적용 하여,

안전한 디스크 IO 를 유지 하는 것이 바람직하다.

 

그럼 여기서 또하나의 질문이 발생한다,

 

논리적 볼륨 striping 이란 무엇이며,

이것을 확인 하는 방법은 어떠한 것들이 있을까?

 

 

 

위 사진이 논리적 볼륨 striping 의 표현 사진이다.

 

위 숫자 들은 데이터가 저장되는 순서를 표현한 것이며,

위와 같은 Round Robin 방식으로 반복 할당 하는것이 중요하다.

 

그럼 여기에서 논리적 볼륨 확인 방법을 알아보자.

 

논리적 볼륨 확인 방법

# lvdisplay –v /dev/vg01/lvol1

   - Stripes xx  = (xx 개의 디스크로 Striping)

   - Stripe Size xxxx = (xxxx Striping Size)

 

파일 시스템 확인

#dbf

 

위와 같은 방식으로 파일 시스템 및 논리적 볼륨 의 상태를 확인 가능하다.

 

마지막으로,

Segment Extent Striping 구성 및 장점 이다.

 

구성 하는 방법은 아래와 같다.

 

 

이에 따른 장점이다.