Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

First, let's take a look at the configuration type of bsr and explain the necessary components according to the configuration.

Configuration type

bsr provides a flexible way to replicate your company's critical data in a variety of ways.

1:1 Mirror

As a general mirroring configuration method for redundancy within the local network, the synchronous configuration is common for protocols, but there is no restriction on protocol settings.

1:N Mirror

This is a configuration in which a 1:1 mirror is extended to N nodes with N node replication configuration within the local network. Synchronous configuration is general, but there are no restrictions on protocol settings.

1:1 DR

Asynchronous protocol should be used as a disaster recovery(DR) replication configuration over the WAN area, and the transmission buffer and congestion mode must be set. WAN replication can maximize replication performance by linking with a replication accelerator (DRX).

1:N Mirror & DR

It is a mixed configuration of mirroring configuration of local network and remote disaster recovery replication of WAN. Local mirror is synchronous and WAN remote replication is asynchronous. For WAN replication, it is necessary to set the transmission buffer and congestion mode, and it is recommended to interwork the replication accelerator (DRX).

Shared-Disk DR

This is a method of replicating through the WAN by configuring the shared disk of the main operation site as the source and configuring the target as a disaster recovery node. The 2 nodes accessing the shared disk of the main site are configured as Active-Standby to configure the DR node as the 2nd Standby node. The Active-Standby node sets the same virtual IP address (VIP) to perform mutually exclusive operations for resource up, and the DR-side node receives data from the Active or Standby node in association with the primary site through this VIP.

As a WAN disaster recovery configuration, asynchronous protocol operation and replication accelerator (DRX) interworking should be considered.

N:1 Mirror

This is a method of configuring the target node of resources located in different source nodes into one node. In terms of individual resources, it is a 1:1 mirror configuration, but is defined as an N:1 mirror in terms of overall topology operation.

Local Migration

This configuration replicates the local source volume to the local target volume through multi-resource configuration within the local. Used for live migration.

Configuration component

In order to establish replication, the source and target nodes, the volume to be replicated on nodes, and the network for the communication channel between the nodes(hosts) must be configured. In addition, these components are described in a configuration file as a resource unit to define a replication cluster.

Node

Basically, an operation node and a standby node must be prepared, and the standby node can operate as N nodes. At least two nodes are required for replication.

Node is a term that is distinguished from host, but it is not strictly distinguished here, and is described as a host only when a distinction is needed.

Volume

Data volume

Storage units of the same size must be prepared on all cluster nodes. If configuring a volume of a different size, the minimum target node's volume size must be larger than the source node's volume size.

The volume must be formatted with an appropriate file system according to the operating system, and uses file systems such as NTFS/ReFS and ext/xfs provided by Windows and Linux. Depending on the partitioning method, the volume can be a logical drive or device of MBR, GPT, or extended partition, and can be configured to include all dynamic disks in RAID format such as span, stripe, and mirror. If the volume is already formatted and contains important data, you can use the existing volume as it is without needing to format the volume, obviously.

  • The volume for replication should not have paging file settings for virtual memory operation. If there is a paging file setting, umount to the volume cannot be performed.

  • The maximum size of a replication volume supported by bsr is theoretically 1 PB, and a volume larger than 10 TB is generally considered as a large volume.

The method of configuring thin provisioning in a virtualized environment is not suitable for the environment in which replication is configured. In order to maintain consistency, replication requires continuous tracking of data changes over the entire area of the volume. In a thin provisioning environment, the volume's physical space is actively adjusted by increasing or decreasing the volume's physical space. Therefore, the replication agent installed in the guest OS cannot continuously track the entire area of the volume. For this reason, configuring replication in a thin provision method in a virtualized environment can be problematic.

Another option, the thick provisioning method, is a method that allocates the entire area of the volume in a fixed manner, so it conforms to the existing concept of replication operation. When configuring volumes in a virtualized environment, only the thick provisioning configuration should be used.

Meta Volume

bsr keeps additional information necessary to operate replication in a separate non-volatile storage space and simultaneously writes and reads this data during replication. This additional information is called meta data, and the storage volume that records it is called meta volume. The meta volume must be prepared to correspond 1: 1 to the replication volume, and the size requires about 33MB of space per 1TB based on 1 node replication. For example, for a 1: 2 replication, 3TB replication volume, you need a meta volume with size of 2 * 3 * 33MB = 198MB.

Meta data is classified into internal meta if it is on the same disk device as the replica volume, or external meta if metadata is located on an external disk other than the replica volume.

The internal meta has the advantage of not having to prepare a separate disk device, but in terms of performance, the external meta method of performing I / O to different disks is more advantageous. Internal meta is described by the internal keyword in the configuration file as shown in the following example, where bsr partitions the replication volume at initialization time and automatically generates metadata within the delimited meta area. The internal keyword is provided only in the Linux environment.

Internal Meta

resource r0 {
...
meta-disk internal;
...
}

The external meta disk can specify the device to be used as the meta disk in the configuration file in several ways, depending on the operating system, as the mount point in Windows, and as the device name of the disk device in Linux. In addition, bsr supports meta-volumes for virtual disk devices, so virtual volumes can be used as meta volumes even if there is no separate physical disk device. Virtual volume device must be prepared separately as VHD on Windows and Loop device on Linux and can be used in the same way as an external meta disk.

The following is an example of configuration for an external metadisk.

External Meta - Windows Letter Mount Point

resource r0 {
...
meta-disk m;
...
}

External Meta - Windows GUID Mount Point

resource r0 {
...
meta-disk "\\\\?\\Volume{d41d41d8-17fb-11e6-bb93-000c29ac57ee}\\";
...
}

External Meta - Windows GUID Mount Point + VHD

resource r0 {
...
meta-disk "\\\\?\\Volume{ed8a8f02-18b3-11e6-91b4-000c29ac57f8}\\" "c:\r0_meta.vhd"
...
}

가상디스크는 파일디스크의 일종으로 한번 구성하여 마운트 시켰다 하더라도 시스템이 재 시작 될 경우 자동으로 재마운트 하지 않습니다. 따라서 bsr은 구성파일에 기술한 가상디스크 파일의 절대경로를 통해 시스템 재 시작 시 자동으로 마운트하도록 조치합니다. 이 과정은 bsr 서비스와 스크립트를 통해 자동 처리합니다.

External Meta - Linux device name

resource r0 {
...
meta-disk /dev/sdc1;
...
}

External Meta - Linux loop device

resource r0 {
...
meta-disk /dev/loop0 /bsr_meta/r0_meta;
...
}

메타 디스크 볼륨은 일반적인 파일시스템으로 포맷하지 않고 RAW 파일시스템 상태로 준비해야 합니다.

네트워크

bsr은 복제셋 구성 시 전용선의 사용을 권장하지만 절대적인 것은 아닙니다. 전용선이나 back-to-back 연결, Gigabit 이더넷 연결이 가장 합리적인 선택이지만, 스위치 장비를 넘어서 복제를 할 경우엔 라우터를 통한 처리율과 지연률등의 성능 문제를 감안해야 합니다.

bsr의 리소스는 통상 7788 이상의 TCP 수신대기 포트를 사용하며 각각의 리소스는 포트를 다르게 설정해야 하고 로컬 방화벽에서 해당 리소스에서 설정한 포트를 허용해야 합니다. 물론 다른 응용 프로그램에서 bsr의 TCP 포트를 사용하지 못하도록 구성 되어야 합니다.

다음은 네트워크 관련 설정의 예 입니다. 

  • bsr호스트들은 전용 네트워크 인터페이스 eth1을 사용하고 IP주소는 10.1.1.31 및 10.1.1.32으로 할당 합니다. 

  • bsr에서 TCP포트 7788 부터 7799를 사용 합니다.

  • 로컬 방화벽에서 호스트들 간에 인바운드 및 아웃바운드 포트 모두 허용 설정 합니다.

리소스 작성

리소스 작성은 위에서 언급한 구성요소들을 구성파일에 기술하는 과정입니다. 즉, 노드(호스트) 정보와 볼륨, 연결 정보를 정해진 구역(섹션)내에서 속성에 맞는 키워드들을 통해 구성파일에 기술하면 됩니다.

bsr의 모든 구성 파일은 설치경로의 하위 etc 디렉터리에 위치합니다. 그리고 bsr 명령어들은 모두 내부적으로 %BSR_PATH%의 etc 경로에서 구성파일을 로드합니다. 먼저 etc 디렉터리에서 bsr.conf를 생성합니다. bsr.conf 파일의 일반적인 내용은 아래와 같습니다.

include "bsr.d/global_common.conf";
include "bsr.d/*.res";

우선 관례적으로 bsr의 전역(global), 공통(common) 섹션을 기술하는 설정파일을 /etc/bsr.d/global_common.conf 파일로 지정합니다. 그리고 모든 .res 파일들을 포함하도록 하여 리소스 별로 구성파일을 분리해서 관리할 수 있도록 합니다.

몇 가지 약속된 구역을 기준으로 속성을 기술하는데 이 구역을 섹션이라고 합니다. 섹션은 최상위 구역으로 Global, Common, Resource 섹션이 있으며, 각 섹션내에서 속셩 별 하위 섹션들이 있습니다. 여기서는 주요한 섹션과 일부 기본적인 속성에 대해서만 설명합니다. 구성파일과 관련한 자세한 내용은 부록의 구성파일을 참고하세요.

Global 섹션

이 섹션은 전역적으로 한번 만 사용 할 수 있으며, 일반적으로 /etc/bsr.d/global_common.conf 파일 안에 있습니다. 단일 파일로 구성한다면 구성 파일의 맨 상단에 작성하면 됩니다.

이 섹션에 포함되는 구성은 명령어 타임아웃, ip 유효성 검사 등 사용자 인터페이스와 관련 있는 옵션들입니다.

Common 섹션

이 섹션에서는 모든 리소스에 공통적인 속성으로 설정할 수 있는 설정값을 제공하며 보통 /etc/bsr.d/global_common.conf 에서 작성합니다. 물론 리소스 개별적으로 각각의 속성 옵션을 정의 할 수도 있습니다.

<Common> 섹션이 반드시 있어야 되는건 아니지만, 둘 이상의 리소스를 사용하는 경우에는 꼭 사용할 것을 권장합니다. 그렇지 않으면, 재사용되는 옵션들에 의해 복잡해질 수 있습니다. 예를들어, <Common> 섹션에서 <net> {protocal C;}를 설정할 경우 모든 리소스는 별도의 옵션이 지정되지 않는 한 이 옵션을 상속합니다.

Resource 섹션

한 개의 리소스 구성 파일명은 보통 /etc/bsr.d/<resource>.res 형태로 생성합니다. 여기서 사용된 리소스 이름은 리소스파일 내에서 명시해야 합니다. 이름을 정하는 것은 임의로 식별 가능하게 명명하지만 US-ASCII 형식이어야 하며 공백문자를 포함해선 안됩니다. 또한 모든 리소스 구성에는 <host> 하위 섹션이 두 개 이상 있어야 합니다. 다른 모든 구성 설정은 Common 섹션으로부터 상속되거나 bsr의 기본값으로 설정됩니다. 양쪽 호스트에 공통적인 값을 가진 옵션은 <host>의 상위 <resource> 섹션 부분에서 한 번에 바로 지정해도 되는데 다음 예제처럼 기술하여 간소화 시킬 수 있습니다.

각 노드의 노드 id(node-id) 의 지정은 필수사항 입니다.

resource r0 {
  disk      d;
  meta-disk f;
  on alice {
    address   10.1.1.31:7789;
    node-id 0;
  }
  on bob {
    address   10.1.1.32:7789;
    node-id 1;
  }
}

구성 예제

단순 구성

다음의 예는 최소한의 설정으로 구성하는 Windows bsr 구성파일 예시 입니다.

/etc/bsr.d/global_common.conf

global {
}
common {
  net { 
    protocol C;
  }
}

/etc/bsr.d/r0.res

resource r0 {
  on alice {  
    disk      d;
    address   10.1.1.31:7789;
    meta-disk f;
    node-id 0;  
  }
  
  on bob {  
    disk      d;
    address   10.1.1.32:7789;
    meta-disk f;
    node-id 1;
  }
  
}

1:2 Mesh

resource r0 {
	device	e minor 2;
	disk	e;
	meta-disk f;

	on store1 {
		address   10.1.10.1:7100;
		node-id   0;
	}
	on store2 {
		address   10.1.10.2:7100;
		node-id   1;
	}
	on store3 {
		address   10.1.10.3:7100;
		node-id   2;
	}
	
	connection-mesh {
		hosts     store1 store2 store3;
  	}
}

1:2 개별 연결 구성

resource r0 {

	volume 0 {
		device    e  minor 2;
		disk      e;
		meta-disk f;
	}

  	on store1 {
		node-id   0;
  	}

  	on store2 {
		node-id   1;
  	}
  	on store3 {
		node-id   2;
  	}


	connection {
		host store1 address 10.10.0.245:7789;
		host store2 address 10.10.0.252:7789;
	}
	connection {
		host store2 address 10.10.0.252:7789;
		host store3 address 10.10.0.247:7789;
	}
	connection {
		host store1 address 10.10.0.251:7789;
		host store3 address 10.10.0.247:7789;
	}
}

floating peer 구성

resource r0 {

	floating 200.200.200.6:7788 {
		device	d minor 1;
		disk	d;
		meta-disk	n;
		node-id  0;
	}

	floating 200.200.200.7:7788 {
		device	d minor 1;
		disk	d;
		meta-disk	n;
		node-id  1;
	}
}
resource r0 {

	floating 10.10.0.251:7788 {
		device	e minor 2;
		disk	e;
		meta-disk	f;
		node-id  0;
	}

	floating 10.10.0.252:7788 {
		device	e minor 2;
		disk	e;
		meta-disk	f;
		node-id  1;
	}
	floating 10.10.0.253:7788 {
		device	e minor 2;
		disk	e;
		meta-disk	f;
		node-id  2;
	}


	
	connection {
		address 10.10.0.251:7788;
		address 10.10.0.252:7788;
	}
	connection {
		address 10.10.0.251:7788;
		address 10.10.0.253:7788;
	}
	connection {
		address 10.10.0.252:7788;
		address 10.10.0.253:7788;
	}
	

}

2:1 복제 구성

store1

resource r0 {
	device    e  minor 2;
	disk      e;
	meta-disk f;

  	on store1 {
		node-id   0;
  	}

  	on store3 {
		node-id   2;
  	}

	connection {
		host store1 address 10.10.0.245:7789;
		host store3 address 10.10.0.247:7789;
	}
}


store2

resource r1 {
	device    e  minor 2;
	disk      e;
	meta-disk f;

  	on store2 {
		node-id   1;
  	}

  	on store3 {
		node-id   2;
  	}

	connection {
		host store2 address 10.10.0.246:7790;
		host store3 address 10.10.0.247:7790;
	}
}

store3

resource r0 {
	device    e  minor 2;
	disk      e;
	meta-disk f;

  	on store1 {
		node-id   0;
  	}

  	on store3 {
		node-id   2;
  	}

	connection {
		host store1 address 10.10.0.245:7789;
		host store3 address 10.10.0.247:7789;
	}
}


resource r1 {
	device    g  minor 4;
	disk      g;
	meta-disk h;

  	on store2 {
		node-id   1;
  	}

  	on store3 {
		node-id   2;
  	}

	connection {
		host store2 address 10.10.0.246:7790;
		host store3 address 10.10.0.247:7790;
	}
}


주의 사항

Windows

볼륨

  • 복제 볼륨은 온라인(마운트)된 상태로 레터가 할당되어 있어야 합니다.

  • 메타디스크 볼륨은 레터 또는 GUID로 지정되어 있어야 하며, RAW 포맷 상태로 준비해야 합니다. 특정 파일 시스템(예: NTFS)으로 포맷할 경우 메타 볼륨 초기화 시점에 권한 문제로 인한 초기화 오류가 발생합니다.

  • 디스크 볼륨 크기

    • 볼륨의 크기는 반드시 소스 노드 볼륨의 크기보다 타깃 노드 볼륨의 크기가 같거나 커야 합니다.

    • 여기서 볼륨의 크기는 포맷한 이후의 파일시스템의 크기가 아닌 파티션의 크기를 의미하며 다음과 같이 powershell 명령라인에서 구할 수 있습니다.

Windows PowerShell
Copyright (C) 2014 Microsoft Corporation. All rights reserved.

PS C:\Users\sekim>gwmi -Query "SELECT * from Win32_DiskPartition"

NumberOfBlocks : 488392704
BootPartition : False
Name : 디스크 4번, 파티션 0번
PrimaryPartition : True
Size : 250057064448
Index : 0

NumberOfBlocks : 716800
BootPartition : True
Name : 디스크 0번, 파티션 0번
PrimaryPartition : True
Size : 367001600
Index : 0

NumberOfBlocks : 487675904
BootPartition : False
Name : 디스크 0번, 파티션 1번
PrimaryPartition : True
Size : 249690062848
Index : 1

NumberOfBlocks : 976766976
BootPartition : False
Name : 디스크 5번, 파티션 0번
PrimaryPartition : True
Size : 500104691712
Index : 0

NumberOfBlocks : 1953519616
BootPartition : False
Name : 디스크 2번, 파티션 0번
PrimaryPartition : True
Size : 1000202043392
Index : 0

NumberOfBlocks : 976766976
BootPartition : False
Name : 디스크 3번, 파티션 0번
PrimaryPartition : True
Size : 500104691712
Index : 0

NumberOfBlocks : 488392704
BootPartition : False
Name : 디스크 1번, 파티션 0번
PrimaryPartition : True
Size : 250057064448
Index : 0

노드

  • 구성파일 host 섹션에 호스트 이름을 기술해야 합니다.(floating peer 방식은 예외)

  • 구성파일 host 섹션에 node-id 항목이 기술되어 있어야 합니다.

네트워크

  • 미러링 주소와 포트에 대한 로컬 방화벽 예외정책을 추가해야 합니다.

  • NIC 에 설정된 네트워크 주소가 net 섹션의 IP 주소로 기술되어야 합니다.

IP 주소 구성 잔재 오류

운영 상황에 따라 기존에 설정했었던 IP 주소 정보를 변경한 후 리소스를 기동(up) 할 때 “There are multiple host sections for this node“ 와 같은 오류가 발생할 수 있습니다. 이것은 Windows에서 랜카드에 설정했던 IP 주소 정보가 레지스트리에 남아 있어서 IP 주소 인식 오류가 발생하는 문제로 다음 레지스트리의 항목을 수동으로 수정하여 해결할 수 있습니다.

  • HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces 키 하부의 인터페이스 키에 설정된 IP 주소 잔재를 변경하려는 IP 주소로 설정합니다.

  • No labels