나의 즐겨찾기 | 블로그홈 | 바로가기 바로가기 | 로그인
헬렐레... @@~*
블로그  |  사진갤러리  |  동영상갤러리 방명록  |   즐겨찾기 추가
Ants (argonat)
프로필     
2009 12월
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
최근 댓글 전체
해당 oracle 커널..
엄청나군
많은 도움이 되었네요 ..
네이버 블로그로 퍼갑니..
주로 사용하는 운영체제..
최근 참조글 전체
Elavil withd..
Brutal porno..
Krystal stea..
Tera patrick..
Midi natale.
전체 글보기(30)
기본폴더
HP-UX
Linux
Windows
잡담
스크랩
HanRSS 로 구독하기Fish 로 구독하기
개설일 : 2005/01/04
 

Hand on LVM note 7.

LVM Mirroring Policy.에 대한 정리
HP-UX에서 미러링된 LVM을 관리하는 옵션으로 세가지 정책을 제공한다.
일단 간단하게 정리하면, Mirror Scheduling Policy, Mirror Consistency Recovery Policy, Mirror Allocation Policy이렇게 3가지이다.

각각 간단히 설명하면 1. Mirror Scheduling Policy는 미러된 여러개의 디스크중 어느 data read/write를 어떻게 어느 디스크를 먼저할 것인가에 대한 정책이다.
2. Mirror Consistency Recovery Policy는 system crash가 발생하여 데이터가 손상 시, 어떻게 복구할 것인가, 두 디스크를 동기화 시킬 것인가에 대한 정책이다.
3. Mirror Allocation Policy는 미러 생성시 어느 디스크에 미러를 생성할 것인가, 디스크 단위, 콘트롤러 단위등 어떤 디스크들을 서로 미러할 것이가에 대한 것이다.

1. Mirror Scheduling Policy ; Parallel, Sequential방식의 두 가지로 나뉘어 진다.
 Parallel방식 : write request시 두 개의 디스크에 동시에 기록한다. 마찬가지로 read request시에는 응답이 빠른 디스크의 정보를 읽게 된다. 장점으로는 Performance가 매우 좋다. 하지만 system crash 시 두 개의 디스크 모두 부분적인 data를 기록하게 될 가능성이 크다.

 Sequential방식 : 첫번째 디스크에 먼저 기록하고, 다음 디스크를 기록하게 된다. read request시에도 첫번째 디스크에서만 읽게 된다. 장점으로는 data curruption의 위험이 적다. 반면 단점은 performance가 떨어진다는 것이다.
# lvcreate -L 32 -n data -m 1 -d p vg01    ; Parallel방식의 Mirror LV 생성
# lvchange -d p /dev/vg01/data              ; Parallel방식으로 Scheduling Policy 변경
# lvcreate -L 32 -n data -m 1 -d s vg01    ; Sequential방식 Mirror LV생성
# lvchange -d s /dev/vg01/data              ; Sequential방식으로 변경
# lvdisplay -v /dec/vg01/data                 ; Scheduling Policy 확인하기
    """""""
    schdule parallel

    """""""

2. Mirror Consistency Recovery Policy ; Mirror간의 inconsistent발생시 resynchronized방식, None/NOMWC/MWC등의 정책종류가 있다.
일단 NONE는 아무런 정책을 설정하지 않는 것이다, 즉 inconsistent발생시 자동으로 동기화를 하지 않는다.
# lvcreate -L 32 -n data -m 1 -M n -c n vg01

 NOMWC
 : System crash후 "nomwcsyncd"데몬이 LV전체에 대해 resynchronized를 하게된다.
LV의 용량이 큰 경우 시간이 오래 걸리는 단점이 있다.
# lvcreate -L 32 -n data -m 1 -M n -c y vg01

 MWC : System crash시 기록하지 못한 extend만 resynchronized하게 된다.
기록하지 못한 extend를 mark하기 위해 MWC방식을 사용할 때는 kernel memory에 각 VG 별로 32-entry MWC table를 가지게 된다. 이 MWC안에 각각의 LV를 256K의 LTGs(Logical Track Groups)로 나누어서 write request를 추적하게 된다.
write request 가 pending될때는 LTG에 "dirty"로 mark하게되고 write request가 완료되면 해당 LTG에 "clean" mark를 하게된다.
또한 system crash후 rebooting시에 대비하여 disk의 VGRA영역에 MCR(Mirror Consystency Recovery Aera)을 기록하게된다. 이 MCR은 MWC와 대칭되는 개념으로 MWC기록된 LTG는 그대로 MCR에 기록되게 된다. rebooting시 이 정보에 기초해 resynchronized를 하게 된다.
단점으로는 Runtime Overhead가 조금 발생하게 된다. 장점은 Recovery속도가 빠르다.
# vlcreate -L 32 -n data -m 1 -M y vg01 
# umount /data
# lvchange -M y /dev/vg01/data        ; lvchange로 정책을 변경할 경우 umount 반드시 필요
# mount /data


3. Mirror Allocation Policy
; LV mirror을 생성시 physical extent를 어느 디스크에 할당할 것인가에 대한 정책 Non-strict Policy, Strict Policy(different disk), Strict Policy(different PVG)의 세 가지 정책이 있다.
 Non-strict policy : 같은 디스크의 physical extent에 mirror를 할당하는 것이다.
# lvcreate -L 32 -n data -m 1 -s n vg01

 Strict policy(different disk) : 서로 다른 디스크에 PE를 할당하는 것
# lvcreate -L 32 -n data -m 1 -s y vg01

 Strict policy(different PVG) : 서로 다른 PVG(Pisical Volume Group)에 속해 있는 디스크에 미러의 PE를 할당한는 것
# lvcreate -L 32 -n data -m 1 -s g vg01


Strict Policy(diferent PVG)에 대해서는 좀더 살펴볼 필요가 있다. 위의 경우과 같이 4개의 디스크가 있다면 (좌에서 우로, 위에서 아래로)disk들을 1,2,3,4로 호칭한다면 1,3또는 2,4번과 같이 의도한 것과는 다르게 미러링이 구성될 수도 있을 것이다. 이것을 제어해줄 수 있는 설정파일이 "/etc/lvmpvg"라는 파일이다. 이 파일에서 여러개의 디스크가 VG에 속해 있을때 각각 디스크의 PVG를 구분해 줄 수 있다.
ex> /etc/lvmpvg의 예
# vi /etc/lvmpvg

VG /dev/vg00
PVG controller0
/dev/dsk/c0t1d0
/dev/dsk/c0t2d0
PVG controller1
/dev/dsk/c1t1d0
/dev/dsk/c1t2d0

그리고 각 Mirror Allocation Policy의 확인은 아래의 명령어로 할 수 있다.
# lvdisplay /dev/dsk/data

'''''''''''''''
Allocation strict

'''''''''''''''

아심 2008.04.18  05:06  [164.125.65.140]

많은 도움이 되었네요 ^^
처음 LV를 생성하는데, 우연찮게 검색에 있어 들어왔는데 행운이네요.

답글쓰기

댓글쓰기

댓글쓰기 입력폼

포스트 목록 닫기

목록보기