IT/Unix & Linux

[AIX] LV zero offset 설정 - DS_LVZ

슈다루냥 2019. 5. 31.

안녕하세요. 슈다 입니다.

AIX의 VG는 Origianl, Big, Scalable 3가지 Type이 존재합니다.

       VG Type 확인 :  https://syuda.tistory.com/38?category=863170

 

기존 버전의 Oracle은 AIX의 LV를 Raw device로 인식하여 사용합니다.

OS는 DB에서 사용될 LV를 생성해야 하는데요,

VG Type에 따라 LV생성시 옵션이 추가되거나 생략될 수 있습니다.

 

일반적으로 Big VG에서 Raw device용 LV를 생성할 때,  "-T O"  옵션을 사용하여 zero offset 설정을 하여 사용합니다.

zero offset 사용하는 이유는, DB에서 Raw device를 읽을 때, LV의 첫번째 Byte부터 읽어들이게 하기 위함으로 이해하시면 되겠습니다.

 

만약 Migration을 위해 새로운 서버에 VG를 구성하고, Migration용 LV를 생성하였는데

1. 해당 LV가 모두 zero offset 설정이 되어있거나

2. Scalable VG의 LV로 생성되어 있다면 (Scalabe VG는 기본적으로 zero offset으로 생성됨)

기존의 zero offset 설정이 된 LV와 설정되지 않은 LV가 같이 존재하는 VG를 Migration용 VG에 dd copy 등으로 Migration 작업 시 DB기동이 되지 않는 경우가 발생할 수 있습니다.

간단히 말해 기존 VG의 LV정보와 신규 VG의 LV정보가 다르다는 것으로 이해하면 되겠지요.

이를 해결하거나 방지하기 위해 아래 명령으로 LV의 zero offset 을 확인할 수 있습니다.

 

- Zero offset 확인방법

* LV name : data_lv

# lslv data_lv |grep DEVICESUBTYPE

  DEVICESUBTYPE:       DS_LVZ

 

위 명령의 결과처럼 DEVICESUBTYPE: DS_LVZ 항목이 확인되면 해당 LV는 zero offset 설정된 것입니다.

설정되지 않았다면 DEVICESUBTYPE 항목이 출력되지 않습니다.

Migration의 원본VG와 타켓VG의 LV속성을 비교하여 동일하게 설정하하면 해당 현상을 방지할 수 있습니다.

 

다만 위 경우처럼 하나의 VG에 LV속성이 다른 경우는 흔치 않을 것으로 생각됩니다.

또한 Scalable VG는 zero offset으로 LV가 생성되니 위 문제를 염려하지 않아도 될 것입니다.

반응형