update가 늦어져서 죄송합니다. test 서버가 말썽을 부려서 ^^;; 오늘부터 다시 시작입니다.!!


 


Mirroring와 Stripping은 각각 RAID1번과 RAID0번의 Array Disk구조를 갖는 것을 말한다. Array는 전통적으로 쓰여오던 Single Disk와는 달리 여러 개의 디스크를 묶어 하나의 논리적인 디스크로 활용하며, 디스크와 데이터의 구조에 따라 RAID0~5 까지 6단계의 Level로 구분 된다. 또한 RAID는 각 Level이 갖는 특성에 따라 데이터의 복사본을 유지하거나 데이터가 깨졌을 경우 일정한 수학공식에 의해 데이터를 복구하는 두 가지의 데이터 복구에 대한 옵션 중 하나를 갖을 수 있으며 각 시스템의 업무 특성에 따라 선택하여 사용할 수 있다.


(※ RAID에 대한 자세한 설명은 웹사이트에서 발췌한 자료를 일부 수정하여 별첨으로 첨부해 놓았습니다 )


 


1. Mirroring(RAID Level 1)


   미러링은 현재 시스템에서 사용하고 있는 데이터의 복사본을 만들어 원본 데이터가 손상되었을 경우 사본으로 대체하여 시스템의 고


   가용성을 높이는 것을 말한다. 따라서 사본의 개수가 늘어날 수록 데이터의 신뢰도가 높아지는 장점을 갖고 있으나, 사본의 개수가 늘


   어 날 수록 디스크의 개수가 늘어나 비용이 증가하는 단점을 갖고 있다.


 


   Mirroring은 RAID Level 1에 속하고,HP-UX에서 Mirroring을 사용하기 위해서는 HP MirrorDisk/UX가 설치되어 있어야 한다.


 


   그림 13.1은 root volume인 vg00 볼륨그룹에 있는 lvol에 Mirroring을 설치하기 전 필요한 사전정보를 확인하는 것이다.


  


   ㉠ ioscan -funC disk : mirroring에 사용할 disk를 ioscan 명령을 사용하여 확인한다.


   ㉡ vgdisplay -v vg00|grep -i 'pv name' : vg00 볼륨그룹을 구성하고 있는 PV를 확인한 결과 vg00은 /dev/dsk/c0t0d0인


                                                                     디스크 하나로 구성되어 있음을 알 수 있다.


   ㉢ vgdisplay -v vg00|grep -i 'lv name' : vg00 볼륨그룹에 생성되어 있는 lvol을 확인한다. 현재 vg00은 lvol1~5까지의 5개의


                                                                    lvol로 구성되어 있으며, 이번 강좌에서는 부팅디스크에 대한 미러링을 생성할 예정


                                                                    이므로 kernel(/stand)이 들어있는 lvol1, Primary swap이 있는 lvol2 그리고 / 디렉


                                                                    토리가 있는 lvol3을 미러링으로 구성하도록 한다. 


 



<그림 13.1> root volume vg00에 Mirroring을 설치하기 위한 사전정보 수집


 

   그림 13.2는 lvol1을 lvdisplay명령으로 출력한 것이다. 현재 미러링이 설치되어 있지 않기 때문에 "Mirror copies"가 0으로 표시되어


   있고, 현재 vg00이 하나의 PV만 사용하고 있기 때문에 "distribution of logical volume"에는 현재 extent가 /dev/dsk/c0t0d0 디스크


   하나에만 분포되어 있음을 나타내고 있다. 그리고 마지막 "Logical extents"에도 마찬가지로  extent가 /dev/dsk/c0t0d0에 분포되어


   있음을 나타낸다.



   ㉠ Mirror copies : lvol의 mirroring 여부를 나타낸다. mirror copies란의 숫자는 사본의 개수로 사본이 없을 경우 0, 있을 경우에는


                                사본의 개수를 나타낸다.


   ㉡ Distribution of logical volume : lvol이 사용하고 있는 PV를 나타낸다. Mirroring 사용여부와 상관없이 lvol이 사용하고 있는


                                                          PV가 나타난다. 예를 들어 lvol1이 vg00에 속해있고 vg00에 100MB의 PV 2개가 할당된 상태


                                                          에서는 distribution of logical volume란에 vg00에 할당된 100MB의 PV 2개가 출력된다.


   ㉢ Logical extents : lovl에 있는 extent들이 어느 PV에 할당되어 있는지 출력한다. Mirroring을 설치할 경우 쌍으로 나타난다.




<그림 13.2> lvol1의 extent 분포



   그림 13.3과 13.4는 vg00 볼륨그룹에 미러링 디스크를 추가하는 예이다. 앞서 말한 바와 같이 vg00의 lvol1~3까지 세 개의 lvol에 대해


   부팅이 가능하도록 미러링을 구성한다.



   ㉠ pvcreate -B -f /dev/rdsk/c0t3d0 : 미러링 구성을 위해 준비해둔 c0t3d0 디스크에 부팅이 가능하도록 -B 옵션을 주어 PV를


                                                               생성한다. -B 옵션을 줄 경우 물리볼륨 생성 시 부팅 area를 생성한다.


   ㉡ pvcreate -B -f /dev/rdsk/c0t4d0 : c0t4d0 디스크도 마찬가지로 부팅 area를 가진 PV를 생성한다.


   ㉢ vgextend /dev/vg00 /dev/dsk/c0t3d0 : vg00 볼륨그룹에 속한 lvol의 미러링을 구성할 것이므로 vg00에 미러링을 하기 위


                                                                       한 볼륨을 vgextend 명령을 통해 vg00볼륨그룹에 포함시킨다.


   ㉣ vgextend /dev/vg00 /dev/dsk/c0t4d0 : vg00 볼륨그룹에 속한 lvol의 미러링을 구성할 것이므로 vg00에 미러링을 하기 위


                                                                       한 볼륨을 vgextend 명령을 통해 vg00볼륨그룹에 포함시킨다.


   ㉤ mkboot /dev/rdsk/c0t3d0 : mkboot 명령은 해당 디스크에 LIF영역을 생성한다.


   ㉥ mkboot -a "hpux (;0)/stand/vmunix /dev/rdsk/c0t3d0 : 생성된 LIF 영역에 AUTO 파일을 설치한다.



   ※ LIF (Logical Interchange Format) : Boot Area에 저장되어있는 파일들은 ls나 cat과 같은 일반적인 UNIX 명령어로는 직접 볼 수


       없는 LIF(Logical Interchange Format)란 파일들인데, LIF는 시스템의 부팅 초기 단계에 파일시스템(최하 Run Level 1에서 Active)


       이 아직 초기화되지 않은 상태에서 사용하기 위해 HP에서 만든 아주 작은 파일시스템이라 할 수 있고, 이 LIF에 속하는 파일들에는


       ISL(Initial System Loader), AUTO 파일, HPUX 유틸리티, IOMAP 다이어그램 등이 있다.



   ※ AUTO File : HP-UX의 부팅 순서는 PDC -> ISL -> hpux -> Kernel Load의 순서대로 진행된다. 최초 PDC가 H/W self test를 완료


       하면 PDC는 stable storage에서 부팅디스크의 경로를 알아내어 ISL을 Load하고 PDC에 의해 기동된 ISL은 AUTO 파일을 사용하


       여 거기서 발견된 실행 문자열의 문법을 분석하여 2차 loader인 HPUX를 실행하고, hpux에 의해 2차 커널이 Load되면 제어권을 커


       널에게 넘기고 부팅이 완료된다.


       Boot Area의 LIF 파일 중 하나인 AUTO 파일에는 ISL이 자동 부팅을 수행하는데 필요한 문자열을 가지고 있는 파일로 HPUX 유틸


       리티의 첫번째 필드인 실행 문자열이 들어 있다.




<그림 13.3> 미러링을 위한 물리볼륨 생성 및 부팅 정보생성



   미러링을 위해 디스크에 PV를 설치하고 부팅 Area 및 부팅 정보를 기록한 후 실제로 미러링을 설정한다. lvol에 대한 미러링 설정 시


   에는 lvextend 명령에 -m 옵션과 함께 추가할 볼륨그룹과 추가할 물리볼륨을 기술한 후 실행하면 된다.


   그림 13.4는 lvol1~3에 대한 미러링 설정에 대한 예이고, lvol1과 lvol2는 한 개의 사본을 그리고 lvol3은 2개의 사본을 갖도록 설치한


   다.



   ㉠ lvextend -m 1 /dev/vg00/lvol1 /dev/dsk/c0t3d0 : /dev/dsk/c0t0d0 디스크 하나로 구성되어 있던 lvol1에 /dev/dsk/


                                                                                       c0t3d0 디스크로 미러링을 생성한다. -m 옵션은 미러링을 뜻하고


                                                                                       옆에 숫자 1은 사본의 개수를 뜻한다.


   ㉡ lvextend -m 1 /dev/vg00/lvol2 /dev/dsk/c0t3d0 : lvol2도 lvol1과 마찬가지로 미러링을 생성한다.


   ㉢ lvextend -m 2 /dev/vg00/lvol3 /dev/dsk/c0t3d0 /dev/dsk/c0t4d0 : lvol3은 lvol1,2와 달리 사본을 두 개 생성한다.


                                                                                       따라서 -m 옵션 옆에 두 개를 뜻하는 숫자 2를 기술하고 물리볼륨의


                                                                                       경로를 두 개 써준다.




<그림 13.4> lvol1~3에 대한 미러링 디스크 생성



   미러링 생성 완료 후 그림 13.5와 같이 lvlnboot 명령으로 root 볼륨그룹 정보를 갱신하고, 미러링 디스크가 부팅디스크로 등록되었는


   지, root 및 swap 논리볼륨이 미러링 된 디스크에 모두 표시되는지 확인한다.



   ㉠ lvlnboot -R : /dev/vg00의 정보를 갱신한다.


   ㉡ lvlnboot -v : LVM의 BDRA 정보를 출력하여 디스크의 미러링 및 미러링 디스크가 모두 부팅디스크로 표시되는지 확인한다.




<그림 13.5> root 볼륨그룹 정보 갱신 및 확인



   mkboot 명령을 설명할 때 말한 바와 같이 HP-UX는 부팅 시에 stable storage에서 부팅디스크의 경로를 읽어 부팅디스크에서 ISL을


   Load한다. 따라서 현재 루트볼륨그룹을 부팅이 가능하도록 미러링을 생성하였으므로 부팅 시 사용이 가능하도록 stable storage에


   미러링된 디스크의 경로를 기록하여 둔다. 그림 13.6은 setboot 명령으로 stable storage에 미러링된 디스크의 경로를 설정하는 예이


   다. 이 때, 주의할 점은 setboot명령에 기록하는 디스크의 경로는 파일시스템의 경로가 아닌 H/W Path를 기록해야 한다.


   이것은 부팅 시에는 당연히 파일시스템이 마운트되어 있지 않기 때문에 파일시스템의 경로를 인식할 수 없다. 따라서 파일시스템 경


   로가 아닌 H/W Path를 사용한다.




<그림 13.6> stable storage에 부팅경로 추가



   stable storage에 부팅경로 추가 후 vi 편집기를 사용하여 /stand/bootconf파일에 미러링 디스크의 경로를 기록한다.




<그림 13.7> /stand/bootconf 파일 수정



   그림 13.8는 미러링 생성 후 lvol3을 lvdisplay 명령으로 디스플레이 한 것이다. 그림에서 보는 바와 같이 미러링이 설치되기 전과 달리


   Mirror copies가 2로 두 개의 사본이 생성되었음을 나타내고 있고, 기존 한 개의 볼륨에 분포되던 LV 또한 세 개의 볼륨에 걸쳐 분포


   되어 있음을 나타내고 있다.




<그림 13.8> 미러링 설정 후 lvol3의 lvdisplay 결과



   그림 13.9도 그림 13.8 lvdisplay 명령과 같은 것으로 결과물이 한 화면에 나오도록 편집하기 위해 편집하여 올린 것이다. 실제 명령을


   실행하면 13.8와 13.9의 그림은 lvdisplay 명령의 하나의 결과물로 출력된다.



   그림 13.9을 보면 Logical extents가 미러링 생성하기 전에는 PV1에만 분포했으나 미러링 사본 두 개를 생성한 후 결과는 아래와 같이


   PV1/PV2/PV3 세 개의 볼륨에 분포되어 있는 것을 알 수 있다. 따라서 하나의 데이터에 대하여 세 개의 extent가 존재하게 되므로 세


   개의 extent가 모두 깨지지 않는한 데이터는 미러링 되어 보존될 수 있고, 서비스 또한 지속적으로 가능하게 된다.




<그림 13.9> 미러링 설정 후 lvol3의 lvdisplay 결과



2. Mirroring의 축소 및 제거


   장애처리를 위해 급히 여유 디스크가 필요하거나, 서비스 종료에 따라 테스트로 이용하기 위해 더 이상 미러링이 필요 없는 경우 등등


   미러링의 제거가 필요한 경우 lvreduce명령으로 간단히 제거할 수 있다. 그러나 미러링이라 할 지라도 Storage에는 데이터가 들어있


   기 마련이므로 신중에 신중을 기하여 작업을 하도록 한다.



   그림 13.10은 2개의 사본을 갖고 있는 lvol3 루트 볼륨의 미러링 사본 중 한 개를 축소하는 예이다.



   ㉠ lvreduce -m 1 /dev/vg00/lvol3 /dev/dsk/c0t3d0 : 2개의 사본을 갖고 있는 lvol3에서 /dev/dsk/c0t3d0 디스크에 존재하


                                                                                        하는 사본을 제거한다. -m 옵션 뒤에 주는 사본의 개수를 0으로 하면


                                                                                        미러링은 완전히 제거된다.




<그림 13.10> 미러링의 축소



   그림 13.11은 lvol축소 후 lvol3을 lvdisplay 명령으로 display한 것이다. 그림을 보면 Mirror copies의 수가 2에서 1로 감소되었고


   Distribution of logical volume에도 두 개의 PV만 나타나는 것을 볼 수 있다.




<그림 13.11> 미러링 축소 후 lvol3의 정보



   lvreduce명령의 실행과 함께 lvol3의 미러링은 축소 또는 제거된다. 그러나 그림 13.12와 같이 lvm구성정보에는 여전히 1개의 원본과


   2개의 사본으로 쓰이던 PV가 vg00볼륨 그룹에 속해있는 것을 볼 수 있다. vg00에 속한 PV는 미러링에 쓰일 수도 있고, 다른 lvol을


   만들어 사용이 가능하다. 또한 다른 시스템에서 사용하거나 사용하지 않기 위해서는 vgreduce명령으로 볼륨 그룹에서 해당 PV를


   제거하여 재 사용하면 된다.




<그림 13.12> 미러링 축소 후 LVM 구성정보

LVM의 Mirroring 설치 및 제거 (HP-UX)

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다