Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
minLevel1
maxLevel2
outlinefalse
typelist
printablefalse

bsr 설치 패키지는 Windows 와 Linux 용 패키지가 있으며, Linux 용은 RHEL(CentOS(RHEL) 6.4 이상 rpm 패키지와 패키지, Ubuntu 16.04 LTS 이상 deb 패키지, SUSE 패키지로 구분하여 배포합니다. 설치 패키지를 구하려면 맨텍 기술연구소로 문의하시기 바랍니다.(dev3@mantech기술연구소(bsr@mantech.co.kr)로 문의하시기 바랍니다.

Note

주의 사항

bsr 은 drbd 와 같이 설치해 운용할 경우 시스템 자원 사용에 대한 충돌이 발생합니다. 시스템에 drbd가 기존에 설치 되어 있었다면 이를 제거해야 합니다.

Windows

설치

Windows 용 인스톨러를 실행시키고 설치 위자드에서 안내하는 단계에 따라 손쉽게 설치할 수 있습니다. 설치가 완료되면 시스템을 리부팅해야 재시작해야 합니다.

설치

...

경로

설치가 성공적으로 완료되면 아래와 같이 디렉토리가 디렉터리가 구성됩니다.

bin

...

bsr 서비스를 포함한 바이너리 실행 파일 및 스크립트(bsrsupport 등) 파일들이 위치합니다.

etc

구성 파일 경로 입니다.

jre

설치 패키지를 위한 Java

...

런타임의 경로입니다.

...

bsrservice

bsr service 바이너리의 경로입니다.

bsr service 는 복제 수행을 위한 초기화 작업을 수행합니다. 서비스가 중단 될 경우 복제가 중단될 수 있기 때문에 서비스 제어에 주의를 요합니다.

...

log

bsr 로그 파일의 경로 입니다.

Info

Windows bsr 은 넷링크와 서비스 용도로 TCP 루프백 5678, 5679 포트를 사용합니다. 이 포트를 변경 하려면 다음 레지스트리 경로의 키 값을 변경하고 시스템을 재 시작 해야 합니다.

  • 경로: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\bsr\

  • 키: netlink_tcp_port, daemon_tcp_port

모듈 적재

Windows bsr 커널모듈은 시스템이 시작되어 OS 커널이 로드되는 이른 시점에 자동으로 적재 됩니다.

서비스 구성

bsr 설치 패키지에 의해 자동 구성 됩니다.

삭제

제어판의 프로그램 및 기능에서 삭제합니다. 삭제 후 시스템을 재 시작해야 합니다.

업데이트

업데이트는 구 버전 프로그램을 삭제한 후 신 버전 프로그램을 설치 하는 작업입니다.

bsr이 설치된 상태에서 신규 버전의 패키지를 재설치하면 재 설치하면 업데이트 설치가 자동으로 수행됩니다. 업데이트 후 시스템을 재시작해야 합니다.

...

Info

기존 버전을 제어판의 프로그램 및 기능에서 삭제하여 재설치를 하는 방식은 삭제 후 리부팅이 필수이기 때문에 번거로울 수 있고, 만약 삭제 후 (실수로) 리부팅 없이 재설치를 하면 심각한 문제가 발생할 수 있으므로 주의를 요합니다. 제어판에서 삭제 후 업데이트를 하는 방식은 권장하지 않습니다.

삭제

bsr의 삭제는 제어판의 프로그램 및 기능에서 bsr 패키지를 삭제할 수 있습니다. 삭제 후 머신을 리부팅해야 합니다.

Linux

리눅스는 커널모듈과 유틸리티 패키지를 구분하여 배포하기 때문에 각각 개별적으로 설치해야 하고 bsr 서비스를 별도로 구성해야 합니다.

설치

제어판에서 프로그램을 삭제한 후 재 설치 할 수도 있지만 삭제 후 시스템 재 시작을 반드시 해야 합니다. 만약 재 시작 없이 프로그램 재 설치를 바로 진행할 경우 비정상적인 설치로 인해 시스템 크래쉬가 발생하므로 주의해야 합니다.

Note

랜카드 교체

bsr 설치 이후 네트워크 랜카드의 교체가 있을 경우 bsrcon /nodelayedack <resource> 명령을 사용하여 수동으로 Disable TCP Delayed ACK 의 내용을 다시 적용해야 합니다. 이를 하지 않을 경우 성능 저하가 발생할 수 있습니다.

RHEL

커널패키지 호환성

윈도우즈의 ABI 상위 호환 정책과는 다르게, 리눅스에선 일반적으로 특정 버전의 리눅스 커널 패키지는 상위 커널 버전에 호환되지 않습니다. 커널 버전이 올라갈수록 새로운 기능과 개선 사항이 비호환적으로 추가되기 때문에, 이전 버전의 커널 패키지를 설치하면 호환성 문제가 발생할 수 있습니다. 패키지가 상위 버전 커널에서 우연히 설치가 되더라도 동작 중에 커널패닉 등 심각한 문제가 발생할 수 있습니다.

이처럼 bsr 도 특별하게 명시하지 않는 한 하위 버전 패키지의 상위 커널 호환을 보장하지 않으며 특정 커널 버전을 위해 빌드된 전용 버전의 bsr 패키지로 설치해야 합니다.

설치

유틸리티

Info

[root@bsr-01 bsrx86_64]# rpm -ivh /root/rpmbuild/RPMS/x86_64/bsr-utils-1.6-A3.el7.x86_64.rpm

커널모듈

Info

[root@bsr-01 bsr]# rpm -ivh kmod-bsr-1.6_3.10.0_2.6.32_754.24.3-PREALPHA3.el6.x86_64.rpm

...

_957-A3.el7.x86_64.rpm

bsr 커널모듈 설치는 시스템 재 시작을 요구하지 않습니다.

시큐어 부트

시큐어부트 구성을 고려하지 않을 경우 이 단계는 건너 뜁니다.

커널 모듈 설치 과정에 /etc/pki/mantech/ 경로에 공개키가 설치됩니다. 해당 공개키를 UEFI 콘솔에 등록(Enroll)하기 위해 먼저 다음과 같이 등록을 요청(import) 합니다.

Info

#mokutil --import /etc/pki/mantech/bsr_signing_key_pub.der

input password:

input password again:

비밀번호 지정 후 리부팅 합니다. 리부팅 시작 시점에 UEFI 콘솔에서 해당 공개키를 등록(Enroll)합니다.

설치 경로

/usr/sbin/

바이너리 실행 파일들(bsradm, bsrcon, bsrmeta, bsrmon, bsrsetup, bsrsupport, bsrwatch)이 위치합니다.

/usr/lib/bsr/

스크립트 파일(bsr service, notify)의 경로입니다.

/etc/bsr.d/

구성파일의 경로 입니다.

/var/log/bsr/

bsr 로그의 경로 입니다.

/usr/lib/modules/{kernel-version}.{version}.x86_64/extra/bsr/

bsr.ko 모듈 파일의 경로 입니다.

모듈 적재

bsr 커널 모듈을 적재합니다.

Info

# modprobe bsr

# lsmod |grep bsr

bsr                 52113408  0

libcrc32c              16384  4 nf_conntrack,nf_nat,bsr,xfs

Info

[root@bsr-01 x86_64bsr]# rpm -ivh /root/rpmbuild/RPMS/modinfo bsr
filename: /lib/modules/3.10.0-957.el7.x86_64/extra/bsr/bsr-utils-1.6.0-PREALPHA3.el6.x86_64.rpm

적재

bsr 모듈을 적재 합니다.

Info

[root@bsr-01 bsr]# modprobe bsr.ko
license: GPL
alias: block-major-147-*
license: GPL
version: 1.6-A3
description: bsr - Block Sync and Replication v1.6-A3
author: Man Technology Inc. bsr@mantech.co.kr
retpoline: Y
rhelversion: 7.6
srcversion: F4B39BD44212C22841949F8
depends: libcrc32c
vermagic: 3.10.0-957.el7.x86_64 SMP mod_unload modversions
signer: Man Technology Inc.: BSR Secure Boot Key
sig_key: D6:97:B5:89:F6:BC:A4:D5:28:02:25:57:4E:55:51:9F:F0:8F:EC:74
sig_hashalgo: sha256
parm: minor_count:Approximate number of bsr devices (1-255) (uint)
parm: disable_sendpage:bool
parm: allow_oos:DONT USE! (bool)
parm: debug_fast_sync:bool
parm: enable_faults:int
parm: fault_rate:int
parm: fault_count:int
parm: fault_devs:int
parm: two_phase_commit_fail:int
parm: usermode_helper:string

[root@bsr-01 x86_64]# bsradm -V
BSRADM_BUILDTAG=GIT-hash:\ 35649dbca524e37a7a8fcddb199db17efb8b7aba\ build\ by\ root@bsrc76,\ 2020-08-25\ 13:46:17
BSRADM_API_VERSION=2
BSR_KERNEL_VERSION_CODE=0x000000
BSR_KERNEL_VERSION=0.0.0
BSRADM_VERSION_CODE=0x000000
BSRADM_VERSION=1.6-A3

Note

시큐어부트와 관련하여 커널 모듈 적재에 실패할 경우 /wiki/spaces/B/pages/1634173020 문서를 참고하여 시큐어부트 코드서명 과정을 단계 별로 진행해 보세요.

서비스 구성

시스템이 시작될 때 항상 bsr을 bsr 리소스를 자동으로 기동(up) 시키려면 bsr 서비스를 구성해 두어야 합니다.

...

활성화 하고 svc-auto-up 옵션을 구성해야 합니다. svc-auto-up 의 기본값은 yes 입니다.

  • RHEL 6

    • chkconfig bsr on

    • service bsr start

  • CentOS RHEL 7 or Ubuntu

    • systemctl enable bsr

    • systemctl start bsr

Code Block
resource r0 {
        ...
        on hostname {
          options {
                svc-auto-up yes;
          }
        }
        ...
}

삭제

삭제는 다음의 과정을 거칩니다.

  • 리소스 중지

  • 서비스 중지

  • 커널 모듈 삭제

  • 유틸리티 삭제

Info

bsradm down all

systemctl stop bsr

rpm -e kmod-bsr

rpm -e bsr-utils

업데이트

업데이트는 이미 설치된 버전을 삭제하고 새 버전으로 재 설치하는 작업입니다.

먼저 제품을 삭제한 후 다음의 업데이트 과정을 차례로 수행합니다.

유틸리티 업데이트

Info

[root@bsr-01 bsr]# rpm -Uvh bsr-utils-1.6-A4.el7.x86_64.rpm

커널 모듈 업데이트

Info

[root@bsr-01 bsr]# rpm -Uvh kmod-bsr-1.6_3.10.0_957-A4.el7.x86_64.rpm

시큐어 부트

이 단계는 시큐어부트가 구성되어 있을 경우에만 해당합니다.

기존의 bsr 모듈 공개키가 이미 등록된 상태이면 관련 업데이트는 필요하지 않습니다.

만약 시큐어 부트를 위한 개인키-공개키가 갱신되었다면 시큐어 부트 설정 과정을 다시 수행해야 합니다.

Ubuntu

설치

필수 패키지

Ubuntu 패키지는 동적 커널모듈 지원(Dynamic Kernel Module Support(DKMS))을 사용하고 있으며 이를 위해 아래 패키지들의 설치를 필요로 합니다.

Info

root@ubuntu:/home/mantech# apt-get install git build-essential debhelper dkms docbook-xsl help2man python-all python-dbus python-gobject dh-systemd flex autoconf automake

os 버전에 따라 특정 패키지가 제공되지 않아 에러가 발생할 수 있습니다.

E: Package 'python-dbus' has no installation candidate

E: Unable to locate package python-gobject

E: Unable to locate package dh-systemd

에러가 발생하는 패키지들은 제외하고 설치를 다시 시도하십시오.

root@ubuntu:/home/mantech# apt-get install git build-essential debhelper dkms docbook-xsl help2man python-all flex autoconf automake

유틸리티

Info

root@ubuntu:/home/mantech# dpkg -i bsr-utils_1.6-A3_amd64.deb

커널모듈

설치 정보

설치 후 정상 설치 여부를 모듈 정보를 통해 확인 합니다.

Info
Info

root@ubuntu:/home/mantech# dpkg -i bsr-dkms_1.6-A3_all.deb

의존성 문제로 인해 설치에 실패할 경우 아래 명령을 통해 의존성 문제를 해결하고 재 시도 하면 됩니다.

Info

root@ubuntu:/home/mantech# apt-get -f -y install

bsr 커널모듈 설치는 시스템 재 시작을 요구하지 않습니다.

시큐어 부트

dkms 패키지는 설치 최종 단계에서 third-party drivers 를 위한 MOK 생성 및 코드서명을 자동으로 진행합니다.

시큐어부트 구성을 고려하지 않을 경우 이 단계는 건너 뜁니다.

생성된 공개키 등록을 위해 모듈 설치 중 아래와 같은 화면이 출력됩니다.

...

OK 선택 후, MOK 등록에 사용될 암호를 입력합니다.

...

시스템 리부팅 후 UEFI 콘솔에 진입하여, 공개 키를 시스템에 등록합니다.

...

Info

Enroll MOK → Countinue → Yes → 암호 입력 → Reboot

설치 경로

/usr/sbin/

바이너리 실행 파일들(bsradm, bsrcon, bsrmeta, bsrmon, bsrsetup, bsrsupport, bsrwatch)이 위치합니다.

/usr/lib/bsr/

스크립트 파일(bsr service, notify)의 경로입니다.

/etc/bsr.d/

구성파일의 경로 입니다.

/var/log/bsr/

bsr 로그의 경로 입니다.

/usr/lib/modules/{kernel-version}-generic/updates/dkms/

bsr.ko 모듈 파일의 경로 입니다.

모듈 적재

bsr 커널 모듈을 적재합니다.

Info

# modprobe bsr

# lsmod |grep bsr

bsr                 52113408  0

libcrc32c              16384  4 nf_conntrack,nf_nat,bsr,xfs

Info

[root@bsr-01 bsr]# modinfo bsr
filename: /lib/modules/23.610.320-754957.24.3el7.el6.x86_64/extra/bsr/bsr.ko
license: GPL
alias: block-major-147-*
license: GPL
version: 1.6.0-PREALPHA3A3
description: bsr - Block Sync and Replication v1.6.0-PREALPHA3A3
author: Man Technology Inc. dev3@mantech bsr@mantech.co.kr
retpoline: Y
rhelversion: 7.6
srcversion: 8A7DAFDEC0E6383AFB76501F4B39BD44212C22841949F8
depends: libcrc32c
vermagic: 23.610.320-754957.24el7.3.el6.x86_64 SMP mod_unload modversions
signer: Man Technology Inc.: BSR Secure Boot Key
sig_key: D6:97:B5:89:F6:BC:A4:D5:28:02:25:57:4E:55:51:9F:F0:8F:EC:74
sig_hashalgo: sha256
parm: minor_count:Approximate number of bsr devices (1-255) (uint)
parm: disable_sendpage:bool
parm: allow_oos:DONT USE! (bool)
parm: usedebug_fast_sync:bool
parm: enable_faults:int
parm: fault_rate:int
parm: fault_count:int
parm: fault_devs:int
parm: two_phase_commit_fail:int
parm: usermode_helper:string

[root@bsr-01 x86_64]# bsradm -V
BSRADM_BUILDTAG=GIT-hash:\ 35649dbca524e37a7a8fcddb199db17efb8b7aba\ build\ by\ root@bsrc76,\ 2020-08-25\ 13:46:17
BSRADM_API_VERSION=2
BSR_KERNEL_VERSION_CODE=0x000000
BSR_KERNEL_VERSION=0.0.0
BSRADM_VERSION_CODE=0x000000
BSRADM_VERSION=1.6-A3

Note

시큐어부트와 관련하여 커널 모듈 적재에 실패할 경우 /wiki/spaces/B/pages/3596976727 문서를 참고하여 시큐어부트 코드서명 과정을 단계 별로 진행해 보세요.

서비스 구성

시스템이 시작될 때 항상 bsr을 자동으로 기동 시키려면 bsr 서비스를 활성화 하고 svc-auto-up 옵션을 구성해야 합니다. svc-auto-up 의 기본값은 yes 입니다.

Info

systemctl enable bsr

systemctl start bsr

Code Block
resource r0 {
        ...
        on hostname {
          options {
                svc-auto-up yes;
          }
        }
        ...
}

삭제

삭제는 다음의 과정을 거칩니다.

  • 리소스 중지

  • 서비스 중지

  • 커널 모듈 삭제

  • 유틸리티 삭제

Info

bsradm down all

systemctl stop bsr

dpkg -r bsr-dkms

dpkg -r bsr-utils

업데이트

업데이트는 이미 설치된 버전을 삭제하고 새 버전으로 재 설치하는 작업입니다.

먼저 제품을 삭제한 후 다음의 업데이트 과정을 차례로 수행합니다.

유틸리티 업데이트

Info

root@ubuntu:/home/mantech# dpkg -i bsr-utils_1.6-A4_amd64.deb

커널 모듈 업데이트

Info

root@ubuntu:/home/mantech# dpkg -i bsr-dkms_1.6-A4_all.deb

시큐어 부트

이 단계는 시큐어부트가 구성되어 있을 경우에만 해당합니다.

기존의 bsr 모듈 공개키가 이미 등록된 상태이면 관련 업데이트는 필요하지 않습니다.

만약 시큐어 부트를 위한 개인키-공개키가 갱신되었다면 시큐어 부트 설정 과정을 다시 수행해야 합니다.

SUSE

설치

유틸리티

Info

# rpm -ivh bsr-utils-1.6.5.1_sles12-sp4_20230621151754.rpm

커널모듈

Info

# rpm -ivh bsr-kmp-default-1.6.5.1_sles12-sp4_4.12.14-94.41_20230621151754.rpm

Note

zypper 명령 사용 시 Signature verification failed 가 발생할 수 있으며, ignore 를 선택하고 설치를 진행합니다.

# zypper install bsr-kmp-default-1.6.5.1_sles12-sp4_4.12.14-94.41_20230621151754.rpm


bsr-kmp-default-1.6.5.1_sles12-sp4_4.12.14-94.41_20230621151754.rpm:
Package is not signed!

bsr-kmp-default-1.6.5.1_k4.12.14_94.41-1.x86_64 (Plain RPM files cache): Signature verification failed [6-File is unsigned]
Abort, retry, ignore? [a/r/i] (a): i

bsr 커널모듈 설치는 시스템 재 시작을 요구하지 않습니다.

시큐어 부트

시큐어부트 구성을 고려하지 않을 경우 이 단계는 건너 뜁니다.

커널 모듈 설치 과정에 /etc/pki/mantech/ 경로에 공개키가 설치됩니다. 해당 공개키를 UEFI 콘솔에 등록(Enroll)하기 위해 먼저 다음과 같이 등록을 요청(import) 합니다.

Info

#mokutil --import /etc/pki/mantech/bsr_signing_key_pub.der

input password:

input password again:

비밀번호 지정 후 리부팅 합니다. 리부팅 시점에 UEFI 콘솔에서 해당 공개키를 등록(Enroll)합니다.

설치 경로

/usr/sbin/

바이너리 실행 파일들(bsradm, bsrcon, bsrmeta, bsrmon, bsrsetup, bsrsupport, bsrwatch)이 위치합니다.

/usr/lib/bsr/

스크립트 파일(bsr service, notify)의 경로입니다.

/etc/bsr.d/

구성파일의 경로 입니다.

/var/log/bsr/

bsr 로그의 경로 입니다.

/lib/modules/{kernel-version}-default/updates/

bsr.ko 모듈 파일의 경로 입니다.

모듈 적재

bsr 커널 모듈을 적재합니다.

Info

# modprobe bsr

# lsmod |grep bsr

bsr                 52113408  0

libcrc32c              16384  4 nf_conntrack,nf_nat,bsr,xfs

Note

SUSE 에서는 supported 플래그가 없는 모듈 로드를 제한하고 있기 때문에 기본적으로 bsr 모듈 로드에 실패합니다.

# modprobe bsr

modprobe: ERROR: module 'bsr' is unsupported
modprobe: ERROR: Use --allow-unsupported or set allow_unsupported_modules 1 in
modprobe: ERROR: /etc/modprobe.d/10-unsupported-modules.conf
modprobe: ERROR: could not insert 'bsr': Operation not permitted

unsupported 모듈 로드를 허용하기 위해서 modprobe 수행 시 --allow-unsupported 옵션을 사용합니다.

# modprobe bsr --allow-unsupported

Info

[root@bsr-01 bsr]# modinfo bsr
filename: /lib/modules/3.10.0-957.el7.x86_64/extra/bsr/bsr.ko
license: GPL
alias: block-major-147-*
license: GPL
version: 1.6-A3
description: bsr - Block Sync and Replication v1.6-A3
author: Man Technology Inc. bsr@mantech.co.kr
retpoline: Y
rhelversion: 7.6
srcversion: F4B39BD44212C22841949F8
depends: libcrc32c
vermagic: 3.10.0-957.el7.x86_64 SMP mod_unload modversions
signer: Man Technology Inc.: BSR Secure Boot Key
sig_key: D6:97:B5:89:F6:BC:A4:D5:28:02:25:57:4E:55:51:9F:F0:8F:EC:74
sig_hashalgo: sha256
parm: minor_count:Approximate number of bsr devices (1-255) (uint)
parm: disable_sendpage:bool
parm: allow_oos:DONT USE! (bool)
parm: debug_fast_sync:bool
parm: enable_faults:int
parm: fault_rate:int
parm: fault_count:int
parm: fault_devs:int
parm: two_phase_commit_fail:int
parm: usermode_helper:string

[root@bsr-01 x86_64]# bsradm -V
BSRADM_BUILDTAG=GIT-hash:\ e3fff1406638405bef558c540c2622b24fc4e5f435649dbca524e37a7a8fcddb199db17efb8b7aba\ build\ by\ root@centos803root@bsrc76,\ 2020-0308-0925\ 0213:0246:0117
BSRADM_API_VERSION=2
BSR_KERNEL_VERSION_CODE=0x000000
BSR_KERNEL_VERSION=0.0.0
BSRADM_VERSION_CODE=0x0106000x000000
BSRADM_VERSION=1.6.0-PREALPHA3

삭제

다음은 bsr을 삭제하는 명령 예 입니다.

Info

rpm -e kmod-bsr

rpm -e bsr-utils-A3

Note

시큐어부트와 관련하여 커널 모듈 적재에 실패할 경우 Kernel Module Packages Manual을 참고하여 시큐어부트 코드서명 과정을 단계 별로 진행해 보세요.

서비스 구성

시스템이 시작될 때 항상 bsr을 자동으로 기동 시키려면 bsr 서비스를 활성화 하고 svc-auto-up 옵션을 구성해야 합니다. svc-auto-up 의 기본값은 yes 입니다.

Info

systemctl enable bsr

systemctl start bsr

Code Block
resource r0 {
        ...
        on hostname {
          options {
                svc-auto-up yes;
          }
        }
        ...
}

삭제

삭제는 다음의 과정을 거칩니다.

  • 리소스 중지

  • 서비스 중지

  • 커널 모듈 삭제

  • 유틸리티 삭제

Info

bsradm down all

systemctl stop bsr

rpm -e bsr-kmp-default

rpm -e bsr-utils

업데이트

업데이트는 이미 설치된 버전을 삭제하고 새 버전으로 재 설치하는 작업입니다.

먼저 제품을 삭제한 후 다음의 업데이트 과정을 차례로 수행합니다.

유틸리티 업데이트

Info

# rpm -ivh bsr-utils-1.6.5.1_sles12-sp4_20230621151754.rpm

커널 모듈 업데이트

Info

# rpm -ivh bsr-kmp-default-1.6.5.1_sles12-sp4_4.12.14-94.41_20230621151754.rpm

시큐어 부트

이 단계는 시큐어부트가 구성되어 있을 경우에만 해당합니다.

기존의 bsr 모듈 공개키가 이미 등록된 상태이면 관련 업데이트는 필요하지 않습니다.

만약 시큐어 부트를 위한 개인키-공개키가 갱신되었다면 시큐어 부트 설정 과정을 다시 수행해야 합니다.