16.3.2.2. 공유 저장소 고가용성 구성
다음 절차에서는 브로커 클러스터의 공유 저장소 고가용성을 구성하는 방법을 보여줍니다.
사전 요구 사항
공유 스토리지 시스템은 실시간 및 백업 브로커에 액세스할 수 있어야 합니다.
- 일반적으로 SAN(Storage Area Network) 또는 NFS(네트워크 파일 시스템) 서버를 사용하여 공유 저장소를 제공합니다. 지원되는 네트워크 파일 시스템에 대한 자세한 내용은 Red Hat AMQ 7 지원 구성 을 참조하십시오.
- JDBC 기반 지속성을 구성한 경우 지정된 데이터베이스를 사용하여 공유 저장소를 제공할 수 있습니다. JDBC 지속성을 구성하는 방법을 알아보려면 JDBC 지속성 구성을 참조하십시오.
절차
클러스터의 브로커를 라이브 백업 그룹으로 그룹화합니다.
대부분의 경우 라이브 백업 그룹은 라이브 브로커와 백업 브로커라는 두 개의 브로커로 구성되어야 합니다. 클러스터에 6개의 브로커가 있는 경우 3개의 라이브 백업 그룹이 필요합니다.
하나의 라이브 브로커와 하나의 백업 브로커로 구성된 첫 번째 라이브 백업 그룹을 생성합니다.
-
라이브 브로커의 <
broker-instance-dir> /etc/broker.xml
구성 파일을 엽니다. 를 사용하는 경우:
공유 저장소를 제공하는 네트워크 파일 시스템에서 라이브 브로커의 페이징, 바인딩, 저널 및 대용량 메시지 디렉터리가 백업 브로커가 액세스할 수 있는 공유 위치를 가리키는지 확인합니다.
<configuration> <core> ... <paging-directory>../sharedstore/data/paging</paging-directory> <bindings-directory>../sharedstore/data/bindings</bindings-directory> <journal-directory>../sharedstore/data/journal</journal-directory> <large-messages-directory>../sharedstore/data/large-messages</large-messages-directory> ... </core> </configuration>
공유 저장소를 제공하는 데이터베이스는 마스터 및 백업 브로커 모두 동일한 데이터베이스에 연결할 수 있고
broker.xml
구성 파일의database-store
요소에 지정된 구성과 동일한 구성이 있는지 확인합니다. 예제 구성은 다음과 같습니다.<configuration> <core> <store> <database-store> <jdbc-connection-url>jdbc:oracle:data/oracle/database-store;create=true</jdbc-connection-url> <jdbc-user>ENC(5493dd76567ee5ec269d11823973462f)</jdbc-user> <jdbc-password>ENC(56a0db3b71043054269d11823973462f)</jdbc-password> <bindings-table-name>BINDINGS_TABLE</bindings-table-name> <message-table-name>MESSAGE_TABLE</message-table-name> <large-message-table-name>LARGE_MESSAGES_TABLE</large-message-table-name> <page-store-table-name>PAGE_STORE_TABLE</page-store-table-name> <node-manager-store-table-name>NODE_MANAGER_TABLE<node-manager-store-table-name> <jdbc-driver-class-name>oracle.jdbc.driver.OracleDriver</jdbc-driver-class-name> <jdbc-network-timeout>10000</jdbc-network-timeout> <jdbc-lock-renew-period>2000</jdbc-lock-renew-period> <jdbc-lock-expiration>15000</jdbc-lock-expiration> <jdbc-journal-sync-period>5</jdbc-journal-sync-period> </database-store> </store> </core> </configuration>
HA 정책에 공유 저장소를 사용하도록 실시간 브로커를 구성합니다.
<configuration> <core> ... <ha-policy> <shared-store> <master> <failover-on-shutdown>true</failover-on-shutdown> </master> </shared-store> </ha-policy> ... </core> </configuration>
failover-on-shutdown
- 이 브로커가 정상적으로 중지되면 이 속성은 백업 브로커가 활성화되어 있어야 하는지를 제어합니다.
-
백업 브로커의 <
broker-instance-dir> /etc/broker.xml
구성 파일을 엽니다. 를 사용하는 경우:
공유 저장소를 제공하는 네트워크 파일 시스템에서 백업 브로커의 페이징, 바인딩, 저널 및 대용량 메시지 디렉터리가 라이브 브로커와 동일한 공유 위치를 가리키는지 확인합니다.
<configuration> <core> ... <paging-directory>../sharedstore/data/paging</paging-directory> <bindings-directory>../sharedstore/data/bindings</bindings-directory> <journal-directory>../sharedstore/data/journal</journal-directory> <large-messages-directory>../sharedstore/data/large-messages</large-messages-directory> ... </core> </configuration>
-
공유 저장소를 제공하는 데이터베이스는 마스터와 백업 브로커 모두 동일한 데이터베이스에 연결하고
broker.xml
구성 파일의database-store
요소에 지정된 구성과 동일한 구성을 둘 다 수행할 수 있도록 합니다.
HA 정책에 공유 저장소를 사용하도록 백업 브로커를 구성합니다.
<configuration> <core> ... <ha-policy> <shared-store> <slave> <failover-on-shutdown>true</failover-on-shutdown> <allow-failback>true</allow-failback> <restart-backup>true</restart-backup> </slave> </shared-store> </ha-policy> ... </core> </configuration>
failover-on-shutdown
- 이 브로커가 실시간이 된 다음 정상적으로 중지되면 이 속성은 백업 브로커(원래 라이브 브로커)가 활성화되어 대신되어야 하는지를 제어합니다.
allow-failback
장애 조치가 발생하고 백업 브로커가 실시간 브로커에 대해 인수한 경우 이 속성은 백업 브로커가 다시 시작되고 클러스터에 다시 연결할 때 백업 브로커가 원래 라이브 브로커로 실패할지 여부를 제어합니다.
참고failback은 실시간 백업 쌍(단일 백업 브로커와 연결된 라이브 브로커)을 위한 것입니다. 라이브 브로커가 여러 백업으로 구성된 경우 failback이 발생하지 않습니다. 대신 장애 조치(failover) 이벤트가 발생하면 백업 브로커가 활성 상태가 되고 다음 백업이 백업됩니다.Instead, if a failover event occurs, the backup broker will become live, and the next backup will become its backup. 원래의 라이브 브로커가 다시 온라인 상태가 되면 현재 활성 상태인 브로커에 백업이 있기 때문에 failback을 시작할 수 없습니다.
restart-backup
-
이 속성은 백업 브로커가 라이브 브로커로 다시 실패한 후 자동으로 다시 시작되는지 여부를 제어합니다. 이 속성의 기본값은
true
입니다.
-
라이브 브로커의 <
- 클러스터의 나머지 live-backup 그룹에 대해 2단계를 반복합니다.