Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

리소스를 생성하고 삭제하기 까지의 전반적인 관리작업과 구성파일의 주요 설정에 대해 설명합니다.

리소스 생성

리소스 생성은 앞 절에서 설명한 리소스 구성파일을 준비하는 작업입니다. 구성파일을 작성했다면 리소스를 생성한 것으로 간주합니다. bsr 에서는 이 과정을 사용자가 수작업으로 수행해야 하며 이를 위한 별도의 CLI 나 API 는 제공 되지 않습니다.

한 번 구성파일을 작성하여 리소스가 생성되면 구성파일이 삭제 되기 전 까지는 해당 리소스가 생성된 상태로 계속 유지되고, 구성파일을 삭제해야 만 노드 상의 리소스를 완전히 삭제할 수 있습니다.

메타 초기화

리소스가 생성되면 최초 기동을 위해 메타디스크를 초기화 해야 합니다. 메타 디스크의 초기화는 다음의 명령으로 수행합니다Describes the overall management tasks from creating to deleting resources, and the main settings in the configuration file.

Create Resource

Resource creation is the preparation of the resource configuration file described in the previous section. If you have created a configuration file, it is assumed that you have created a resource. In bsr, this process must be performed manually by the user. No separate CLI or API is provided for this.

Once the resource is created by writing the configuration file once, the resource remains in the created state until the configuration file is deleted, and the resource on the node can be completely deleted only by deleting the configuration file.

Initialize Meta

When the resource is created, the meta disk must be initialized for the first start. Initialization of the meta disk is performed with the following command.

Code Block
>bsradm create-md r0
initializing activity log
NOT initializing bitmap
Writing meta data...
New bsr meta data block successfully created.

메타초기화는 복제를 위해 필요한 부가 정보들을 메타디스크 상에서 초기화하는 작업으로 리소스를 최초 기동하기 전 한번 만 수행하면 됩니다. 만일 메타를 초기화 하지 않고 리소스를 기동할 경우 비정상적인 운영상황이 되므로 주의해야 합니다.

메타초기화가 완료되면 리소스를 기동할 준비가 된 상태 입니다.

리소스 기동

bsradm up 명령을 통해 리소스를 기동할 수 있습니다. up 은 내부적으로 다음의 과정을 순차적으로 수행하여 리소스를 기동합니다.

...

리소스를 위한 메모리 등의 자원을 할당합니다.

...

복제 볼륨을 적재하고 구성파일에 지정된 옵션들을 리소스에 설정합니다.

...

Meta-initialization is the process of initializing additional information necessary for replication on the meta disk, and only needs to be performed once before starting the resource for the first time. If you start the resource without initializing the meta, it will cause abnormal operation.

When meta-initialization is complete, the resource is ready to be started.

Resource up

You can start a resource with the bsradm up command. up internally starts the resource by sequentially performing the following process.

  • Allocate resources such as memory, worker threads for resources.

  • Load the replication volume and set the options specified in the configuration file to the resource.

  • Connect to the other node through the network.

Code Block
>bsradm up r0
>bsradm status r0
r0 role:Secondary
  disk:Inconsistent
  node0 role:Secondary
    peer-disk:Inconsistent
Info

bsr 의 상태는 bsradm status 명령으로 조회할 수 있습니다. 이와 관련한 자세한 내용은 조회의 내용을 참고하세요.

리소스 할당

리소스를 위한 메모리를 할당하고 초기화 합니다.

볼륨 적재

리소스에 구성된 볼륨을 복제볼륨으로 적재(attach)하고 메타디스크의 정보를 조회하여 로드하고 구성파일에 설정된 옵션들을 적용합니다. 볼륨의 적재는 별도의 attach 명령으로도 개별 수행할 수 있습니다.

복제 연결

적재된 볼륨을 피어노드의 리소스 볼륨과 연결합니다. 연결이 수립되면 복제 상태는 Established 가 되고 복제를 시작하기 위한 대기상태가 됩니다. 만일 피어 노드가 연결을 아직 준비하고 있지 않았다면 로컬의 리소스는 연결 시도 중(Connecting) 상태를 유지합니다. 복제 연결은 개별 connect 명령으로도 수행할 수 있습니다.

리소스 up 의 과정이 위 절차에 따라 순차적으로 모두 수행되었을 때 리소스 기동에 대한 성공으로 간주 합니다. 리소스 기동의 과정 중 일부 절차가 실패할 경우 리소스 기동이 중단될 수 있습니다. 이럴 경우 리소스의 상태를 확인하고 bsr 로그와 에러 메시지 등을 통해 문제를 파악할 수 있습니다.

승격

리소스는 Primary 또는 Secondary 역할을 가질 수 있습니다. Primary 역할의 리소스는 볼륨 장치에 제한 없이 접근하여 데이터를 읽고 쓸 수 있지만 Secondary 역할의 리소스는 사용자 계층으로부터의 볼륨장치로의 접근이 완전히 차단되고 Primary 로 부터 수신한 데이터만 장치에 반영하는 역할을 수행합니다.

...

The status of bsr can be retrieved with the bsradm status command. For more information on this, please refer to the inquiry.

Allocate resource

Allocate and initialize memory and worker threads for resources.

Attach volume

The volume configured in the resource is attached to the replication volume, the information of the meta disk is queried and loaded, and the options set in the configuration file are applied. attaching can also be performed individually with a separate bsradm attach command.

connect to peer node

Associate the attached volume with the peer node's resource volume. When the connection is established, the replication status becomes Established and standby to start replication. If the peer node has not yet prepared a connection, the local resource remains in the Connecting state. Replication connections can also be done with individual bsradm connect commands.

When the process of resource up is all performed sequentially according to the above procedure, it is regarded as a success in resource startup. If some procedures in the process of resource startup fail, resource startup may be interrupted. In this case, you can check the status of the resource and identify the problem through bsr log and error message.

Promotion

Resources can have primary or secondary roles. Resources in the primary role can read and write data by accessing the volume device without restriction, but resources in the secondary role completely block access to the volume device from the user layer and reflect only the data received from the primary to the device.

When the resource is started, the default role is Secondary and can be switched to the Primary role by user command. This is called promotion.

Code Block
bsrdadm primary <resource>

초기 동기화

...

Initial synchronization

When the resource is initially started, the disk is in the Inconsistent state of both nodes, and this state is basically a state where the disk cannot be promoted. Therefore, the initial promotion of the resource is promoted by the forced option, and after the forced promotion, the initial synchronization is automatically performed. Forced promotion is performed as follows.

Code Block
bsrdadm primary --force <resource>
Info

마운트 동작 관련

마운트 동작에 대한 Windows 와 Linux OS 간 차이가 있습니다. 리눅스에선 볼륨을 사용하기 위한 마운트 과정이 수동으로 요구되지만, 윈도우즈 환경에선 볼륨에 대한 마운트가 운영체제의 쉘 수준에서 자동으로 수행되기 때문에 별도의 마운트 명령 작업이 필요치 않습니다. 따라서 리눅스에선 승격 후 볼륨을 사용하기 위한 마운트 동작이 추가로 필요합니다.

강등

...

About mount operation

There is a difference between Windows and Linux OS for mount behavior. In Linux, the mounting process to use the volume is required manually, but in the Windows environment, mounting of the volume is performed automatically at the shell level of the operating system, so no separate mount command is required. Therefore, Linux requires an additional mount operation to use the volume after promotion.

Demotion

The transition from Primary role to Secondary role is called demotion.

Code Block
bsradm secondary <resource>
Info

리눅스의 경우 강등을 수행하기 전 볼륨에 대한 마운트 해제의 과정이 요구됩니다. 윈도우즈 환경에선 강등명령 내부적으로 마운트 해제를 선 수행하기 때문에 별도의 마운트 해제 과정이 필요치 않습니다.

마운트 해제와 리소스 강등은 bsr의 명령 동작 중 가장 부하가 큰 작업으로 Secondary 로 역할을 전환하는 것과 함께 복제 계류 중인 데이터들을 타깃 측으로 모두 반영하는 작업을 수반합니다. 이는 복제 소스와 타깃 간의 데이터 정합성을 일치시키기 위한 기본 동작 구조로, 강등이 완료된 시점의 Primary 와 Secondary 간의 데이터 정합성을 보장하는 동작입니다. 따라서 마운트 해제, 강등을 수행하는 절차에선 복제 계류중인 데이터를 타깃에 모두 반영하는데 따르는 일정 정도의 대기시간을 염두에 두어야 합니다.

...

수동절체

수동 절체를 위한 절차는 다음과 같습니다.

...

On Linux, unmounting of the volume is required before performing a demotion. In the Windows environment, there is no need for a separate unmounting process since the unmount command is performed internally.

Unmounting and demotion of resources entails switching the role to Secondary as the heaviest task among the command operations of bsr, and reflecting all data pending replication to the target side. This is the basic operation structure for matching data consistency between the replication source and the target. This operation ensures data consistency between the primary and secondary at the time of demoting. Therefore, in the process of unmounting and demoting, it is necessary to keep in mind a certain amount of latency that is required to reflect all pending data to the target.

Info

manually fail-over

The procedure for manual transfer is as follows.

  1. Stop all applications or services using the bsr device on the primary node, and demote the resource to secondary (after umounting the volume on Linux).

    Code Block
    bsradm secondary <resource>
  2. primary로 승격시키고자 하는 노드에서 다음 명령을 실행합니다. (리눅스에선 볼륨을 mount 하여) 서비스를 재개합니다Execute the following command on the node you want to promote to primary. Restart the service (after mounting the volume on Linux case).

    Code Block
    bsradm primary <resource>

리소스 중지

bsradm down 명령을 통해 리소스를 중지할 수 있습니다. down 은 리소스 앞서 설명한 up 과정의 역순에 따라 중지가 수행하고 만약 리소스가 승격된 상태 였다면 강등을 먼저 수행합니다. 즉 리소스 강등, 복제 단절, 볼륨 분리(detach), 리소스 해제의 순으로 down 합니다.

리눅스에선 볼륨에 대한 umount 를 선행합니다.

Resource down

You can stop the resource with the bsradm down command. down stops in the reverse order of the up process described above, and if the resource was in the promoted state, demotes first. In short, resource demotion, replication disconnection, volume detach, and resource release in the following order.

Info

On Linux, umount for volumes must be preceded.

Code Block
bsradm down <resource>

리소스 강등

리소스가 승격된 상태였다면 먼저 강등을 수행합니다.

복제 단절

복제 연결을 단절하여 복제를 중단합니다. 연결 단절은 disconnect 개별 명령으로도 수행할 수 있습니다.

만약 동기화나 복제가 진행 중일 때 복제 단절을 시도할 경우 단절은 일정 시간 동안 유예될 수 있습니다. 이것은 복제를 단절하는 명령이 로컬과 피어노드에게 모두 전달되는 명령이기 때문에 이미 복제를 위해 버퍼링된 데이터 양이 많을 경우 순차적처리 구조에 따라 명령전달이 지연될 수 있기 때문입니다. 이러한 지연을 무시하고 싶을 경우에는 --force 옵션을 통해 로컬에서 강제로 연결을 단절할 수도 있습니다. 강제로 단절하게 되면 연결을 빠르게 끊을 수는 있으나 복제나 동기화를 위한 계류중인 데이터들이 모두 버려지게 되므로 해당 데이터들에 대한 OOS(Out-Of-Sync) 가 발생할 수 있다는 점은 고려해야 합니다.

볼륨 분리

복제 볼륨으로 적재했던 볼륨을 분리하고 메타디스크에 관련 정보를 기록합니다. 분리(detach)는 개별 명령으로 수행할 수 있으나 Primary 리소스의 볼륨에 대한 분리는 허용되지 않습니다.

...

demotion

If the resource was promoted, demote it first.

disconnect

The replication is stopped by disconnecting the connection. Disconnection can also be performed with the disconnect individual command.

If synchronization or replication is in progress and the replication is attempted to be disconnected, the disconnection may be suspended for a period of time. This is because the command to cut off replication is delivered to both the local and peer nodes, so if there is a large amount of data already buffered for replication, the command delivery may be delayed depending on the sequential processing structure. If you want to ignore this delay, you can also force a disconnect locally by using the --force option. If the connection is forcibly disconnected, the connection can be quickly disconnected, but all pending data for replication or synchronization will be discarded, so it should be considered that out-of-sync (OOS) of the data can occur.

detach

Detach the volume that was loaded as a clone volume and record the relevant information on the metadisk. Detach can be done as a separate command, but detach of the primary resource's volume is not allowed.

Info

In bsr, separating the primary resource's volume is considered a dangerous operation because it leads to a failure. We removed the volume detach of the primary resource at the code level. Of course, detach of the Secondary resource is allowed.

리소스 해제

리소스를 위해 할당 했던 자원들을 해제합니다.

...