IT/AIX&Linux

[하루 5분 AIX] LVM 과 Device 3부

뜻밖의 행복 2014. 2. 18. 21:39
반응형

안녕하세요?

뜻밖의 행운입니다.

 

지금 쓰는 이 포스팅이 몇 년뒤에도 검색되어 많은 분들한테 읽혔으는 하는 바람이 있습니다.

그리고 이 포스팅을 썼던 시점에는 카드 3사에서 개인정보 유출건이 발생하여

제가 있는 곳도 보안의 엄청난 폭풍우가 몰아쳐 관련 작업들을 하느라 정신이 없는 한 때입니다.

 

빨리 AIX 관련 포스팅 진도를 빼고 싶은데

어찌되었든 빼먹는일은 없도록 계속해서 진행하겠습니다.

 

LVM을 이해하기 위해 필수적으로 알아야 할

PV에 대해서 한번 자세히 알아보도록 할까요?

 

PV는 물리적 볼륨의 약자인것은 이제 모두들 아실겁니다.

물리적 볼륨이기에 우리 손으로 만질 수 있는 저장 장치가 바로 PV가 될텐데요

흔히 DASD(Direct Access storage device) 라고도 합니다.

 

대부분의 PV는 현재까지는 HDD가 대세입니다.

이제 서서히 SDD도 보이긴 하나 아직까지도 가격 때문에 HDD가 많이 사용되고 있지요

 

그래서 보통 PV하면 HDD 즉 하드디스크로 생각하면 됩니다.

이 하드디스크의 물리적 구조를 알고 나면 LVM을 이해 하는데 있어 아주 유용합니다.

 

특히!!!

 

성능향상 부분에 있어서 매우 큰 도움이 되지요~

나중에 AIX 7.1을 다루며 SDD도 살짝 보도록 하겠습니다.

 

일단 빨리 HDD 물리적 구조에 대해 알아 보도록 할까요?

 

1. 속속들이 알고 싶은 그 HDD~

 

 

AIX의 LVM을 이해하는데 있어서 HDD에서는 딱 3부분만 기억해주시면 됩니다.

그리고 그것만 다루도록 하겠습니다.

HDD에 대해 너무 깊게 다루는것은 원래 이야기 하고자 하는 주제와 너무 멀리 떨어져 가는듯 하여

 

1. 데이터가 저장되는 부분인 둥근 원판 platter

2. platter 를 빠르게 돌려주는 spindle

3. platter에 저장된 데이터를 읽는 Arm (사실 Arm 달린 head가 읽는 것이지만 여기서는 Arm, head를 통틀어

Arm이라 하겠습니다.)

 

위의 3가지 입니다.

 

 

Arm이 위아래로 움직이며 빙글빙글 돌아가는 platter 위에 데이터를 저장하기도 하고 읽기도 합니다.

따라서 platter의 회전 속도가 빠르면 HDD의 성능은 좋아지게 됩니다.

 

그럼 또 다른 방법은 없을까요?

네 바로 Arm 이 위 그림에서 한개인데 이것을 2개 3개 4개 여러개로 늘려주면 아무래도 데이터를 읽고 쓰는

Arm 이 많은 숫자만큼 동시에 작업을 하니 빠르지 않을까요?

 

사실 HDD를 분해해보면 platter 가 위 아래로 여러개가 있을 경우 Arm 도 위아래로 여러개가 있긴 있습니다만

우리가 사실상 AIX에서 늘려줄 방법은 없습니다. 

 

명령어로 HDD의 회전속도를 늘려줄 방법은 없습니다.

명령어로 Arm의 갯수를 늘려줄 방법은 없습니다.

 

하지만 VG를 1개의 PV가 아닌 여러개의 PV로 구성할 경우

속도 향상을 시킬 수 있는 방법이 있습니다.

 

raid0 이라고 대답하신분은 센스가 넘치시는 분입니다.

PV가 여러개라는 것은 HDD가 여러개라는 것 아무래도 HDD 갯수가 여러개면 일을 나눠서 할 수 있으니

그만큼 속도에 이점이 있겠지요?

 

세상에 얻기만 하면 좋은데

HDD 여러개로 성능향상을 도모했더니 잃는 것이 있었습니다.

 

뭘까요?

 

2. PV가 여러개인 VG안에서 LV를 만들때 선택 할 수 있다네~

 

HDD 3개 즉 PV3개로 구성된 VG가 1개 있다고 가정을 해보겠습니다.

이 VG에 LV를 만드는데 설정할 수 있는 옵션이 있습니다.

여러 PV에 걸쳐서 만들것이냐 하나의 PV나 최소의 PV를 이용해서 LV를 만들것이냐?

 

이것을 왜 선택가능하게 했고 여러 PV걸쳐 LV를 만드는것과 하나의 PV에만 LV를 만드는것에

차이는 무엇이 있을까요?

 

우선 위 그림중에서 맨위의 data처럼 LV를 여러개의 PV에 구성해서 만들면 어떤 일이 일어날까요?

해당 LV에서 data를 읽어올때 3개의 PV가 나눠서 data를 읽어올 가능성이 큽니다.

따라서 혼자 일하는 것보다 여럿이 일하는 것이 일을 금방 끝내는 만큼

I/O 의 속도가 빨라질 것입니다.

 

속도는 빨라지지만 무엇을 희생해서 속도가 빨라지는 것일까요?

 raid0을 아시는 분이라면 raid0의 치명적 단점이 무엇인지 아실겁니다.

네 그 단점과 똑같습니다.

여러개의 PV에 걸쳐서 LV를 만들었는데 저기 3개중에 PV 1개라도 망가질 경우

백업이 없을시 data를 다 날린다고 생각하시면 됩니다.

 

마치 대학교때 발표과제가 3명이서 나눠서 했는데 한명은 자료조사 한명은 ppt 만들기 한명은 발표

이 중에 한명이라도 빠지면 그 조별 과제는 망한것인것처럼 그 와 비슷하다고 보면 됩니다.

 

이와 반면에 LV를 하나의 PV에만 할당해서 데이터를 나눠서 담을경우에는

하나의 PV가 고장이 나면 그 고장난 PV에 있는 LV만 접근이 안될 뿐 다른 PV에 있는 LV에는 접근이 되서

아무래도 더 안정적입니다.

 

그럼 AIX에서는 어떤 명령어를 입력하면 어떤식으로 구성이 되어있는지 알 수 있을까요???

 


반응형