bsr 설치 패키지는 Windows 와 Linux 용 패키지가 있으며, Linux 용은 RHEL(CentOS) 6.4 이상 rpm 패키지, Ubuntu 16.04 LTS 이상 deb 패키지, SUSE 패키지로 구분하여 배포합니다. 설치 패키지를 구하려면 맨텍 기술연구소(bsr@mantech.co.kr)로 문의하시기 바랍니다.
주의 사항
bsr 은 drbd 와 같이 설치해 운용할 경우 시스템 자원 사용에 대한 충돌이 발생합니다. 시스템에 drbd가 기존에 설치 되어 있었다면 이를 제거해야 합니다.
Windows
설치
Windows 용 인스톨러를 실행시키고 설치 위자드에서 안내하는 단계에 따라 손쉽게 설치할 수 있습니다. 설치가 완료되면 시스템을 재시작해야 합니다.
설치 경로
설치가 성공적으로 완료되면 아래와 같이 디렉터리가 구성됩니다.
bin
bsr 서비스를 포함한 바이너리 실행 파일 및 스크립트(bsrsupport 등) 파일들이 위치합니다.
etc
구성 파일 경로 입니다.
jre
설치 패키지를 위한 Java 런타임의 경로입니다.
log
bsr 로그 파일의 경로 입니다.
Windows bsr 은 넷링크와 서비스 용도로 TCP 루프백 5678, 5679 포트를 사용합니다. 이 포트를 변경 하려면 다음 레지스트리 경로의 키 값을 변경하고 시스템을 재 시작 해야 합니다.
경로: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\bsr\
키: netlink_tcp_port, daemon_tcp_port
모듈 적재
Windows bsr 커널모듈은 시스템이 시작되어 OS 커널이 로드되는 이른 시점에 자동으로 적재 됩니다.
서비스 구성
bsr 설치 패키지에 의해 자동 구성 됩니다.
삭제
bsr의 삭제는 제어판의 프로그램 및 기능에서 bsr 패키지를 삭제할 수 있습니다. 삭제 후 시스템을 재 시작해야 합니다.
업데이트
업데이트는 구 버전 프로그램을 삭제한 후 신 버전 프로그램을 설치 하는 작업입니다.
bsr이 설치된 상태에서 신규 버전의 패키지를 재 설치하면 업데이트 설치가 자동으로 수행됩니다. 업데이트 후 시스템을 재시작해야 합니다.
제어판에서 프로그램을 삭제한 후 재 설치 할 수도 있지만 삭제 후 시스템 재 시작을 반드시 해야 합니다. 만약 재 시작 없이 프로그램 재 설치를 바로 진행할 경우 비정상적인 설치로 인해 시스템 크래쉬가 발생하므로 주의해야 합니다.
랜카드 교체
bsr 설치 이후 네트워크 랜카드의 교체가 있을 경우 bsrcon /nodelayedack <resource> 명령을 사용하여 수동으로 Disable TCP Delayed ACK 의 내용을 다시 적용해야 합니다. 이를 하지 않을 경우 성능 저하가 발생할 수 있습니다.
RHEL
커널패키지 호환성
윈도우즈의 ABI 상위 호환 정책과는 다르게, 리눅스에선 일반적으로 특정 버전의 리눅스 커널 패키지는 상위 커널 버전에 호환되지 않습니다. 커널 버전이 올라갈수록 새로운 기능과 개선 사항이 비호환적으로 추가되기 때문에, 이전 버전의 커널 패키지를 설치하면 호환성 문제가 발생할 수 있습니다. 패키지가 상위 버전 커널에서 우연히 설치가 되더라도 동작 중에 커널패닉 등 심각한 문제가 발생할 수 있습니다.
이처럼 bsr 도 특별하게 명시하지 않는 한 하위 버전 패키지의 상위 커널 호환을 보장하지 않으며 특정 커널 버전을 위해 빌드된 전용 버전의 bsr 패키지로 설치해야 합니다.
설치
유틸리티
[root@bsr-01 x86_64]# rpm -ivh bsr-utils-1.6-A3.el7.x86_64.rpm
커널모듈
[root@bsr-01 bsr]# rpm -ivh kmod-bsr-1.6_3.10.0_957-A3.el7.x86_64.rpm
리눅스의 커널모듈 설치는 시스템 재 시작을 요구하지 않습니다.
시큐어 부트
시큐어부트 구성을 고려하지 않을 경우 이 단계는 건너 뜁니다.
커널 모듈 설치 과정에 /etc/pki/mantech/ 경로에 공개키가 설치됩니다. 해당 공개키를 UEFI 콘솔에 등록(Enroll)하기 위해 먼저 다음과 같이 등록을 요청(import) 합니다.
#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 커널 모듈을 적재합니다.
# modprobe bsr
# lsmod |grep bsr
bsr 52113408 0
libcrc32c 16384 4 nf_conntrack,nf_nat,bsr,xfs
[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:\ 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
시큐어부트와 관련하여 커널 모듈 적재에 실패할 경우 /wiki/spaces/B/pages/1634173020 문서를 참고하여 시큐어부트 코드서명 과정을 단계 별로 진행해 보세요.
서비스 구성
시스템이 시작될 때 항상 bsr을 자동으로 기동 시키려면 bsr 서비스를 활성화 하고 svc-auto-up 옵션을 구성해야 합니다. svc-auto-up 의 기본값은 yes 입니다.
RHEL 6
chkconfig bsr on
service bsr start
RHEL 7 or Ubuntu
systemctl enable bsr
systemctl start bsr
resource r0 { ... on hostname { options { svc-auto-up yes; } } ... }
삭제
삭제는 다음의 과정을 거칩니다.
리소스 중지
서비스 중지
커널 모듈 삭제
유틸리티 삭제
bsradm down all
systemctl stop bsr
rpm -e kmod-bsr
rpm -e bsr-utils
업데이트
업데이트는 이미 설치된 버전을 삭제하고 새 버전으로 재 설치하는 작업입니다.
먼저 제품을 삭제한 후 다음의 업데이트 과정을 차례로 수행합니다.
유틸리티 업데이트
[root@bsr-01 bsr]# rpm -Uvh bsr-utils-1.6-A4.el7.x86_64.rpm
커널 모듈 업데이트
[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))을 사용하고 있으며 이를 위해 아래 패키지들의 설치를 필요로 합니다.
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
유틸리티
root@ubuntu:/home/mantech# dpkg -i bsr-utils_1.6-A3_amd64.deb
커널모듈
root@ubuntu:/home/mantech# dpkg -i bsr-dkms_1.6-A3_all.deb
의존성 문제로 인해 설치에 실패할 경우 아래 명령을 통해 의존성 문제를 해결하고 재 시도 하면 됩니다.
root@ubuntu:/home/mantech# apt-get -f -y install
리눅스의 커널모듈 설치는 시스템 재 시작을 요구하지 않습니다.
시큐어 부트
dkms 패키지는 설치 최종 단계에서 third-party drivers 를 위한 MOK 생성 및 코드서명을 자동으로 진행합니다.
시큐어부트 구성을 고려하지 않을 경우 이 단계는 건너 뜁니다.
생성된 공개키 등록을 위해 모듈 설치 중 아래와 같은 화면이 출력됩니다.
OK 선택 후, MOK 등록에 사용될 암호를 입력합니다.
시스템 리부팅 후 UEFI 콘솔에 진입하여, 공개 키를 시스템에 등록합니다.
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 커널 모듈을 적재합니다.
# modprobe bsr
# lsmod |grep bsr
bsr 52113408 0
libcrc32c 16384 4 nf_conntrack,nf_nat,bsr,xfs
[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:\ 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
시큐어부트와 관련하여 커널 모듈 적재에 실패할 경우 /wiki/spaces/B/pages/3596976727 문서를 참고하여 시큐어부트 코드서명 과정을 단계 별로 진행해 보세요.
서비스 구성
시스템이 시작될 때 항상 bsr을 자동으로 기동 시키려면 bsr 서비스를 활성화 하고 svc-auto-up 옵션을 구성해야 합니다. svc-auto-up 의 기본값은 yes 입니다.
systemctl enable bsr
systemctl start bsr
resource r0 { ... on hostname { options { svc-auto-up yes; } } ... }
삭제
삭제는 다음의 과정을 거칩니다.
리소스 중지
서비스 중지
커널 모듈 삭제
유틸리티 삭제
bsradm down all
systemctl stop bsr
dpkg -r bsr-dkms
dpkg -r bsr-utils
업데이트
업데이트는 이미 설치된 버전을 삭제하고 새 버전으로 재 설치하는 작업입니다.
먼저 제품을 삭제한 후 다음의 업데이트 과정을 차례로 수행합니다.
유틸리티 업데이트
root@ubuntu:/home/mantech# dpkg -i bsr-utils_1.6-A4_amd64.deb
커널 모듈 업데이트
root@ubuntu:/home/mantech# dpkg -i bsr-dkms_1.6-A4_all.deb
시큐어 부트
이 단계는 시큐어부트가 구성되어 있을 경우에만 해당합니다.
기존의 bsr 모듈 공개키가 이미 등록된 상태이면 관련 업데이트는 필요하지 않습니다.
만약 시큐어 부트를 위한 개인키-공개키가 갱신되었다면 시큐어 부트 설정 과정을 다시 수행해야 합니다.
SUSE
설치
유틸리티
# rpm -ivh bsr-utils-1.6.5.1_sles12-sp4_20230621151754.rpm
커널모듈
# rpm -ivh bsr-kmp-default-1.6.5.1_sles12-sp4_4.12.14-94.41_20230621151754.rpm
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
리눅스의 커널모듈 설치는 시스템 재 시작을 요구하지 않습니다.
시큐어 부트
시큐어부트 구성을 고려하지 않을 경우 이 단계는 건너 뜁니다.
커널 모듈 설치 과정에 /etc/pki/mantech/ 경로에 공개키가 설치됩니다. 해당 공개키를 UEFI 콘솔에 등록(Enroll)하기 위해 먼저 다음과 같이 등록을 요청(import) 합니다.
#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 커널 모듈을 적재합니다.
# modprobe bsr
# lsmod |grep bsr
bsr 52113408 0
libcrc32c 16384 4 nf_conntrack,nf_nat,bsr,xfs
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
[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:\ 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
시큐어부트와 관련하여 커널 모듈 적재에 실패할 경우 /wiki/spaces/B/pages/1634173020 문서를 참고하여 시큐어부트 코드서명 과정을 단계 별로 진행해 보세요.
서비스 구성
시스템이 시작될 때 항상 bsr을 자동으로 기동 시키려면 bsr 서비스를 활성화 하고 svc-auto-up 옵션을 구성해야 합니다. svc-auto-up 의 기본값은 yes 입니다.
systemctl enable bsr
systemctl start bsr
resource r0 { ... on hostname { options { svc-auto-up yes; } } ... }
삭제
삭제는 다음의 과정을 거칩니다.
리소스 중지
서비스 중지
커널 모듈 삭제
유틸리티 삭제
bsradm down all
systemctl stop bsr
rpm -e bsr-kmp-default
rpm -e bsr-utils
업데이트
업데이트는 이미 설치된 버전을 삭제하고 새 버전으로 재 설치하는 작업입니다.
먼저 제품을 삭제한 후 다음의 업데이트 과정을 차례로 수행합니다.
유틸리티 업데이트
# rpm -ivh bsr-utils-1.6.5.1_sles12-sp4_20230621151754.rpm
커널 모듈 업데이트
# rpm -ivh bsr-kmp-default-1.6.5.1_sles12-sp4_4.12.14-94.41_20230621151754.rpm
시큐어 부트
이 단계는 시큐어부트가 구성되어 있을 경우에만 해당합니다.
기존의 bsr 모듈 공개키가 이미 등록된 상태이면 관련 업데이트는 필요하지 않습니다.
만약 시큐어 부트를 위한 개인키-공개키가 갱신되었다면 시큐어 부트 설정 과정을 다시 수행해야 합니다.