IT/AIX&Linux

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

뜻밖의 행복 2014. 3. 13. 21:30
반응형

안녕하세요?

뜻밖의 행운입니다.

 

지난시간에 이어서 바로

pvid의 신비와 특징에 대해 계속 알아보도록 하겠습니다.

 

 

 

 

1. PVID odm에서 우선인가? hdisk 내 정보가 우선인가?

 

 

 

[root@lpar51]$ odmget CuAt | grep -p pvid
CuAt:
        name = "hdisk0"
        attribute = "pvid"
        value = "00c8750f550f8d5d0000000000000000"
        type = "R"
        generic = "D"
        rep = "s"
        nls_index = 11

CuAt:
        name = "hdisk1"
        attribute = "pvid"
        value = "00c8750f7929554d0000000000000000"
        type = "R"
        generic = "D"
        rep = "s"
        nls_index = 11

CuAt:
        name = "hdisk2"
        attribute = "pvid"
        value = "00c8750fef8a4e290000000000000000"
        type = "R"
        generic = "D"
        rep = "s"
        nls_index = 11

 

우리가 실험하고 있는 hdisk1 의 pvid를 다시한번

ODM에서 확인을 해보겠습니다.

ODM에서 왜 CuAt 항목을 조회하는지는 ODM 편을 보신분이라면 짐작 하실겁니다.

무엇의 약자인지도 당연히 알고 계시겠지요?

 

odmget CuAt | grep -p pvid 명령어로 확인하니

 

hdisk1의 pvid가 무엇인지 확인이 되었습니다.

 


[root@lpar51]$ dd if=/dev/zero of=/dev/hdisk1 bs=1M count=100
100+0 records in.
100+0 records out.
[root@lpar51]$ lquerypv -h /dev/hdisk1                      
00000000   00000000 00000000 00000000 00000000  |................|
00000010   00000000 00000000 00000000 00000000  |................|
00000020   00000000 00000000 00000000 00000000  |................|
00000030   00000000 00000000 00000000 00000000  |................|
00000040   00000000 00000000 00000000 00000000  |................|
00000050   00000000 00000000 00000000 00000000  |................|
00000060   00000000 00000000 00000000 00000000  |................|
00000070   00000000 00000000 00000000 00000000  |................|
00000080   00000000 00000000 00000000 00000000  |................|
00000090   00000000 00000000 00000000 00000000  |................|
000000A0   00000000 00000000 00000000 00000000  |................|
000000B0   00000000 00000000 00000000 00000000  |................|
000000C0   00000000 00000000 00000000 00000000  |................|
000000D0   00000000 00000000 00000000 00000000  |................|
000000E0   00000000 00000000 00000000 00000000  |................|
000000F0   00000000 00000000 00000000 00000000  |................|

 

dd if=/dev/zero of=/dev/hdisk1 bs=1M count=100 명령어로
hdisk에 있던 pvid를 날리는 방법 저번 시간에 봐서 알고 있는 내용이지요?

 

 lquerypv -h /dev/hdisk1 로 확인해보니

PVID가 들어가는 부분이 0으로 깔끔하게 되어 있는것을 확인 할 수 있습니다. ^^

 

 

 

자 그럼 ODM에서 한번 확인을 해볼까요?

pvid에서 값이 0으로 바뀌어있는지

 

 


[root@lpar51]$ odmget CuAt | grep -p pvid                   
CuAt:
        name = "hdisk0"
        attribute = "pvid"
        value = "00c8750f550f8d5d0000000000000000"
        type = "R"
        generic = "D"
        rep = "s"
        nls_index = 11

CuAt:
        name = "hdisk1"
        attribute = "pvid"
        value = "00c8750f7929554d0000000000000000"
        type = "R"
        generic = "D"
        rep = "s"
        nls_index = 11

CuAt:
        name = "hdisk2"
        attribute = "pvid"
        value = "00c8750fef8a4e290000000000000000"
        type = "R"
        generic = "D"
        rep = "s"
        nls_index = 11


[root@lpar51]$ chdev -l hdisk1 -a pv=yes
hdisk1 changed

 

[root@lpar51]$ lspv                                         
hdisk0          00c8750f550f8d5d                    rootvg          active             
hdisk1          00c8750fb82383a9                    None                               
hdisk2          00c8750fef8a4e29                    sharedvg 


 hdisk에서 pvid 정보를 지우고

odmget CuAt | grep -p pvid 로 pvid를 확인한 결과

ODM에는 그대로 예전 pvid 정보가 남아 있습니다.

 

그렇다면 이상태에서 chdev -l hdisk1 -a pv=yes 로

pvid를 갱신시키면 어떤일이 벌어질까요?

 

hdisk내에서는 pvid 정보가 없으니

ODM에서 pvid를 hdisk에 심어줄까요?

아니면 AIX에서 hdisk에 새로운 pvid를 심어줄까요?

 

결과는 이미 위에 나와있습니다.

 

hdisk1          00c8750fb82383a9 

 

pvid가 변한것을 확인 할 수 있습니다.

즉 ODM에 있던 기존 정보가 hdisk에 박히는 것이 아니라

hdisk에 있는 pvid를 ODM에서 가져가서 자기 안에서 업데이트를 하는 것을 알 수 있습니다.

 

2. ODM에서 pvid 정보가 날아가면 어떻할까?

 

 이번에는 반대로 ODM에서 PVID가 날아가면 어떤 일이 발생될까요? 

 

 

[root@lpar51]$ odmget CuAt | grep -p pvid
CuAt:
        name = "hdisk0"
        attribute = "pvid"
        value = "00c8750f550f8d5d0000000000000000"
        type = "R"
        generic = "D"
        rep = "s"
        nls_index = 11

CuAt:
        name = "hdisk1"
        attribute = "pvid"
        value = "00c8750fb82383a90000000000000000"
        type = "R"
        generic = "D"
        rep = "s"
        nls_index = 11

CuAt:
        name = "hdisk2"
        attribute = "pvid"
        value = "00c8750fef8a4e290000000000000000"
        type = "R"
        generic = "D"
        rep = "s"
        nls_index = 11

 

 

odmget CuAt | grep -p pvid

으로 확인해보니 모든 hdisk의 pvid가 잘 박혀 있는 것을 볼 수 있습니다.

 

[root@lpar51]$ lspv
hdisk0          00c8750f550f8d5d                    rootvg          active             
hdisk1          00c8750fb82383a9                    None                               
hdisk2          00c8750fef8a4e29                    sharedvg
                           
[root@lpar51]$ odmdelete -o CuAt -q"attribute=pvid"
0518-307 odmdelete: 3 objects deleted.

 

[root@lpar51]$ odmget CuAt | grep -p pvid         
[root@lpar51]$ lspv
hdisk0          none                                None                               
hdisk1          none                                None                               
hdisk2          none                                None                            

 

lspv 명령어로 우선 현재 상태를 확인 했습니다.

그리고 과감하게 odm에서 pvid 정보가 날아가게끔

odmdelete -o CuAt -q"attribute=pvid" 명령어를 사용했습니다.

그러니까 운영서버라면 절망적일 결과가 떴네요?>

 

ODM에서 PVID를 날리면 어떻게 될까요?

바로 lspv로 확인 해보겠습니다.

 

PVID는 물론 rootvg와 shardvg 등 VG 정보까지 날아가버렸습니다.

이것을 어째야 할까요?

 

hdisk안에 있는것과는 달리

ODM에서 지우니 바로 상태가 반영이 됩니다.

 

[root@lpar51]$ cfgmgr

[root@lpar51]$ lspv
hdisk0          none                                None                               
hdisk1          none                                None                               
hdisk2          none                                None    

 

cfgmgr을 돌리면 아직 hdisk안에 있는 pvid를 가지고 올까요?

네 결과는 사실 바로 확인이 됩니다.

pvid는 복구가 되지 않습니다.

 

그렇다면 어떻게 해야할까요?

 

 

[root@lpar51]$ lquerypv -h /dev/hdisk1
00000000   C9C2D4C1 00000000 00000000 00000000  |................|
00000010   00000000 00000000 00000000 00000000  |................|
00000020   00000000 00000000 00000000 00000000  |................|
00000030   00000000 00000000 00000000 00000000  |................|
00000040   00000000 00000000 00000000 00000000  |................|
00000050   00000000 00000000 00000000 00000000  |................|
00000060   00000000 00000000 00000000 00000000  |................|
00000070   00000000 00000000 00000000 00000000  |................|
00000080   00C8750F B82383A9 00000000 00000000  |..u..#..........|
00000090   00000000 00000000 00000000 00000000  |................|
000000A0   00000000 00000000 00000000 00000000  |................|
000000B0   00000000 00000000 00000000 00000000  |................|
000000C0   00000000 00000000 00000000 00000000  |................|
000000D0   00000000 00000000 00000000 00000000  |................|
000000E0   00000000 00000000 00000000 00000000  |................|
000000F0   00000000 00000000 00000000 00000000  |................|

 

[root@lpar51]$ chdev -l hdisk1 -a pv=yes
hdisk1 changed

 

[root@lpar51]$ lspv
hdisk0          none                                None                               
hdisk1          00c8750fb82383a9                    None                               
hdisk2          none                                None      

 

lquerypv -h /dev/hdisk1 명령어로 확인해보니
디스크에는 다행히 pvid가 남아있습니다.

사실 예상했던 대로입니다.

ODM에서만 지웠기 때문에 당연히 hdisk에는 남아 있어야 겠죠?

 

그렇다면 ODM을 한번 hdisk안의 정보와 한번 sync를 맞춰주면 왠지 복구 될것 같기도 합니다.

아까 hdisk 관련 정보를 ODM에 업데이트 하는 명령어를 잠깐 본것 같습니다.

chdev -l hdisk1 -a pv=yes 를 한번 돌려볼까요?

 

돌리고 나니까 hdisk1을 복구가 되었습니다.

하지만 hdisk1은 원래 소속된 VG가 없었는데

hdisk0과 hdisk2는 어떻게 해야 할까요?

 

똑같은 방법으로 복구가 과연 될까요?          

 

 

                    
[root@lpar51]$ chdev -l hdisk0 -a pv=yes
hdisk0 changed

[root@lpar51]$ chdev -l hdisk2 -a pv=yes
hdisk2 changed

[root@lpar51]$ lspv
hdisk0          00c8750f550f8d5d                    rootvg          active             
hdisk1          00c8750fb82383a9                    None                               
hdisk2          00c8750fef8a4e29                    sharedvg          

 

chdev -l hdisk0 -a pv=yes, chdev -l hdisk2 -a pv=yes 를 각각 한번씩 돌렸더니
다행히 정상적으로 복구 된것을 확인 할 수 있었습니다.

어떻게 VG까지 복구가 된것일까요?

 

PVID만 있다고 어떻게 VG정보까지 복구가 된것일까?

 

그 답은 아래 명령어를 한번 보시는 것으로 대신하겠습니다.

 

[root@lpar51]$ odmget -q name=rootvg CuAt  

CuAt:
        name = "rootvg"
        attribute = "vgserial_id"
        value = "00c8750f00004c000000013d550f8daa"
        type = "R"
        generic = "D"
        rep = "n"
        nls_index = 637

CuAt:
        name = "rootvg"
        attribute = "timestamp"
        value = "5320d0110b7329bf"
        type = "R"
        generic = "DU"
        rep = "s"
        nls_index = 0

CuAt:
        name = "rootvg"
        attribute = "auto_on"
        value = "n"
        type = "R"
        generic = "DU"
        rep = "l"
        nls_index = 638

CuAt:
        name = "rootvg"
        attribute = "pv"
        value = "00c8750fb82383a90000000000000000"
        type = "R"
        generic = ""
        rep = "sl"
        nls_index = 0

CuAt:
        name = "rootvg"
        attribute = "quorum"
        value = "n"
        type = "R"
        generic = ""
        rep = "sl"
        nls_index = 0       

 

주황색 글씨만 보면 pvid가 생기면서 어떻게 VG 정보까지 가져왔는지를 짐작하셨을 겁니다.

 

PVID의 특성 그리고 ODM의 기능을 이번 예제를 통해 간접적으로 좀더 이해하셨으리라 믿습니다. ^^

PVID 하나 설명하는데 이렇게 여러 회를 거치게되네요 ^^

 

다음시간에 계속 이어서 하도록 하겠습니다.

 

다시한번 말씀드리지만 AIX에서 LVM을 마스터 하면 절반이상을 다안다고 말씀하셔도 될 정도로

중요하고 가장 많은 작업을 하게 되는 친구입니다. ^^

 

다음시간에는 어쩌면 오랜만에 실전 AIX를 할 수도 있겠습니다.

아니면 둘다 하던지 ^^



반응형