...
Info |
---|
가상화 환경의 thin provisioning 구성 방식은 복제를 구성하는 환경에 부적합 합니다. 복제는 정합성 유지를 위해 볼륨의 전체 영역에 대한 데이터 변경 분을 지속 추적해야 하는데 thin provisioning 환경에선 볼륨의 사용량에 따라 볼륨의 물리적 공간을 늘이거나 줄이는 등 능동적으로 조절하기 때문에 게스트 OS 에 설치된 복제 에이전트는 볼륨의 전체영역에 대한 지속적인 추적을 할 수 없게 됩니다. 이와 같은 이유로 가상화 환경에서 thin provision 방식으로 복제를 구성할 경우 문제가 될 수 있습니다. 이와 다른 옵션인 thick provisioning 방식은 볼륨의 전체 영역을 고정적으로 할당하는 방식이기 때문에 기존의 복제 운영 개념에 부합합니다. 가상화 환경에서 볼륨을 구성할 경우 thick provisioning 구성방식만 사용해야 합니다. |
메타 볼륨
BSR은 bsr은 복제를 운영하기 위해 필요한 부가 정보들을 별도의 비휘발성 저장공간에 보관하고 이 데이터를 실시간 쓰고 읽는 작업을 복제 중에 동시에 수행합니다. 이러한 부가정보를 메타 데이터라고 하고 이를 기록하는 저장장치 볼륨을 메타 볼륨이라고 합니다. 메타 볼륨은 복제 볼륨에 1:1 대응하도록 준비해야 하며, 크기는 1 node 복제를 기준으로 1TB 당 약 33MB의 공간을 요구합니다. 예를 들어 1:2 복제, 3TB 복제 볼륨의 경우 2 * 3 * 33MB = 198MB 크기의 메타 볼륨이 필요합니다.
메타 데이터는 위치하는 경로에 따라 복제볼륨과 같은 디스크 장치에 있을 경우 내부메타(Internal Meta)라고 하며, 복제볼륨이 아닌 다른 외부 디스크에 메타데이터가 위치할 경우 외부메타(External Meta)라고 합니다. 내부메타는 별도의 디스크 장치를 준비할 필요가 없는 장점이 있지만 성능 상으로는 서로 다른 디스크로 I/O를 수행하는 외부메타 방식이 조금이라도 더 유리합니다. 내부메타는 다음의 예와 같이 구성 파일에서 internal 키워드로 기술하면 BSR이 bsr이 초기화 시점에 복제 볼륨을 파티셔닝하고 구분된 메타 영역 내에서 메타데이터를 자동으로 생성하는 방식입니다. internal 키워드는 Linux 환경에서만 제공합니다.
...
외부 메타 디스크는 메타디스크로 사용할 장치를 구성파일에 몇 가지 방식으로 지정할 수 있으며 운영체제에 따라 Windows 에선 마운트 포인트로, Linux 에서는 디스크 장치의 장치명으로 지정합니다. 그리고 BSR 에선 bsr에선 가상디스크 장치에 대한 메타볼륨을 지원하여 별도의 물리적인 디스크 장치가 없더라도 가상의 볼륨을 메타 볼륨으로 사용할 수 있습니다. 가상볼륨장치는 Windows 에선 VHD, Linux 에선 Loop 장치로 준비해야 하며 가상장치가 준비되면 외부메타 디스크로 간주하고 사용할 수 있습니다.
...
Note |
---|
메타 디스크 볼륨은 일반적인 파일시스템으로 포맷하지 않고 RAW 파일시스템 상태로 준비해야 합니다. |
네트워크
BSR은 bsr은 복제셋 구성 시 전용선의 사용을 권장하지만 절대적인 것은 아닙니다. 전용선이나 back-to-back 연결, Gigabit 이더넷 연결이 가장 합리적인 선택이지만, 스위치 장비를 넘어서 복제를 할 경우엔 라우터를 통한 처리율과 지연률등의 성능 문제를 감안해야 합니다.
BSR의 bsr의 리소스는 통상 7788 이상의 TCP 수신대기 포트를 사용하며 각각의 리소스는 포트를 다르게 설정해야 하고 로컬 방화벽에서 해당 리소스에서 설정한 포트를 허용해야 합니다. 물론 다른 응용 프로그램에서 BSR의 bsr의 TCP 포트를 사용하지 못하도록 구성 되어야 합니다.
다음은 네트워크 관련 설정의 예 입니다.
BSR 호스트들은 bsr호스트들은 전용 네트워크 인터페이스 eth1을 사용하고 IP주소는 10.1.1.31 및 10.1.1.32으로 할당 합니다.
BSR에서 bsr에서 TCP포트 7788 부터 7799를 사용 합니다.
로컬 방화벽에서 호스트들 간에 인바운드 및 아웃바운드 포트 모두 허용 설정 합니다.
...
리소스 작성은 위에서 언급한 구성요소들을 구성파일에 기술하는 과정입니다. 즉, 노드(호스트) 정보와 볼륨, 연결 정보를 정해진 구역(섹션)내에서 속성에 맞는 키워드들을 통해 구성파일에 기술하면 됩니다.
BSR의 bsr의 모든 구성 파일은 설치경로의 하위 etc 디렉터리에 위치합니다. 그리고 BSR bsr 명령어들은 모두 내부적으로 %BSR_PATH%의 etc 경로에서 구성파일을 로드합니다. 먼저 etc 디렉터리에서 drbdbsr.conf를 생성합니다. drbdbsr.conf 파일의 일반적인 내용은 아래와 같습니다.
Info |
---|
include "drbdbsr.d/global_common.conf"; |
우선 관례적으로 BSR의 bsr의 전역(global), 공통(common) 섹션을 기술하는 설정파일을 /etc/drbdbsr.d/global_common.conf 파일로 지정합니다. 그리고 모든 .res 파일들을 포함하도록 하여 리소스 별로 구성파일을 분리해서 관리할 수 있도록 합니다.
...
이 섹션은 전역적으로 한번 만 사용 할 수 있으며, 일반적으로 /etc/drbdbsr.d/global_common.conf 파일 안에 있습니다. 단일 파일로 구성한다면 구성 파일의 맨 상단에 작성하면 됩니다.
...
이 섹션에서는 모든 리소스에 공통적인 속성으로 설정할 수 있는 설정값을 제공하며 보통 /etc/drbdbsr.d/global_common.conf 에서 작성합니다. 물론 리소스 개별적으로 각각의 속성 옵션을 정의 할 수도 있습니다.
...
한 개의 리소스 구성 파일명은 보통 /etc/drbdbsr.d/<resource>.res 형태로 생성합니다. 여기서 사용된 리소스 이름은 리소스파일 내에서 명시해야 합니다. 이름을 정하는 것은 임의로 식별 가능하게 명명하지만 US-ASCII 형식이어야 하며 공백문자를 포함해선 안됩니다. 또한 모든 리소스 구성에는 <host> 하위 섹션이 두 개 이상 있어야 합니다. 다른 모든 구성 설정은 Common 섹션으로부터 상속되거나 BSR 의 bsr의 기본값으로 설정됩니다. 양쪽 호스트에 공통적인 값을 가진 옵션은 <host>의 상위 <resource> 섹션 부분에서 한 번에 바로 지정해도 되는데 다음 예제처럼 기술하여 간소화 시킬 수 있습니다.
...
다음의 예는 최소한의 설정으로 구성하는 Windows bsr 구성파일 예시 입니다.
/etc/drbdbsr.d/global_common.conf
|
/etc/drbdbsr.d/r0.res
|
...