SIOS SANless clusters

SIOS SANless clusters High-availability Machine Learning monitoring

  • Home
  • 제작품
    • SIOS DataKeeper for Windows
    • SIOS Protection Suite for Linux
  • 뉴스 및 이벤트
  • 서버 클러스터 단순화
  • 성공 사례
  • 저희에 게 연락
  • English
  • 中文 (中国)
  • 中文 (台灣)
  • 한국어
  • Bahasa Indonesia
  • ไทย

Archives for 12월 2018

Linux 용 SQL Server – 공용 미리보기 사용 가능

12월 21, 2018 by Jason Aw Leave a Comment

Linux 용 SQL Server – 공용 미리보기 사용 가능

이제 SQL Server v.Next에 대한 공개 미리보기를 사용할 수 있습니다. Microsoft는 마침내 Linux에 대한 지원을 추가했습니다.  자세한 내용은 아래 링크를 확인하십시오.   곧 고 가용성 기능을 다운로드하고 살펴볼 것입니다.  계속 지켜봐!

SQL Server v.Next 공개 미리보기 : https://www.microsoft.com/en-us/sql-server/sql-server-vnext-including-Linux 원본 SQL Server Linux 발표 : https://blogs.microsoft.com / blog / 2016 / 03 / 07 / announce-sql-server-on-linux / Linuxclustering의 허가를 얻어 복제했습니다.

Filed Under: 서버 클러스터 단순화 Tagged With: Linux 용 SQL Server

공유 저장 장치없이 Amazon EC2에서 Linux 장애 조치 클러스터 구성

12월 20, 2018 by Jason Aw Leave a Comment

단계별 방법 Linux 장애 조치 (failover) 클러스터를 구성하는 방법 공유 저장소가없는 Microsoft Azure IaaS에서 azure sanless

단계별 : 공유 저장 장치없이 Amazon EC2에서 Linux 장애 조치 (failover) 클러스터를 구성하는 방법 #amazon #aws #sanless #cluster

이 단계별 가이드에서는 아마존의 Elastic Compute Cloud (Amazon EC2)에 고 가용성, 2 노드 MySQL 클러스터 (미러링 모니터 서버)를 구성하는 데 필요한 모든 단계를 안내합니다.  가이드에는 적절한 스크린 샷, 셸 명령 및 코드 스 니펫이 모두 포함되어 있습니다.  아마 당신은 아마존 EC2에 익숙하고 이미 계정이 있다고 가정합니다.  그렇지 않다면 오늘 가입 할 수 있습니다.  기본적인 리눅스 시스템 관리 기술은 물론 가상 IP와 같은 기본적인 장애 조치 클러스터링 개념을 이해하고 있다고 가정합니다.

면책 조항 : 구름이 빠르게 움직이는 표적입니다. 따라서 기능 / 화면 / 버튼은 시간이 지남에 따라 바뀌므로 아래에서 보는 것과 약간 다를 수 있습니다.  이 가이드에서는 MySQL 데이터베이스의 가용성을 높이는 방법을 설명하지만 SAP, Oracle, PostgreSQL, NFS 파일 서버 등과 같은 다른 응용 프로그램이나 데이터베이스를 보호하기 위해이 정보와 프로세스를 확실히 적용 할 수 있습니다. 다음은 Amazon EC2에서 고 가용성 MySQL 데이터베이스를 만드는 고급 단계입니다.

  1. VPC (가상 사설망) 만들기
  2. 인터넷 게이트웨이 만들기
  3. 서브넷 생성 (가용성 영역)
  4. 경로 테이블 구성
  5. 보안 그룹 구성
  6. 인스턴스 실행
  7. 탄성 IP 생성
  8. 가상 IP에 대한 경로 항목 작성
  9. ENI의 소스 / 목적지 확인 사용 안함
  10. 액세스 키 ID 및 비밀 액세스 키 얻기
  11. Linux OS 구성
  12. EC2 API 도구 설치
  13. MySQL 설치 및 구성
  14. 클러스터 설치 및 구성
  15. 클러스터 연결 테스트

개요

이 기사에서는 단일 Amazon EC2 영역 내에 클러스터를 작성하는 방법에 대해 설명합니다.  클러스터 노드 (node1, node2 및 미러링 모니터 서버)는 최대한의 가용성을 위해 서로 다른 가용 영역을 유지합니다.  이는 또한 노드가 다른 서브넷에 상주 함을 의미합니다. 구성은 다음과 같습니다. AWS-Linux-MySQL다음 IP 주소가 사용됩니다.

  • node1 : 10.0.0.4
  • node2 : 10.0.1.4
  • 목격자 : 10.0.2.4
  • 가상 / "유동"IP : 10.1.0.10

가상 사설망 (VPC) 생성

먼저 가상 사설 클라우드 (VPC라고도 함)를 만듭니다. VPC는 아마존 클라우드 내의 고립 된 네트워크로, 여러분에게만 제공됩니다.  IP 주소 블록 및 서브넷, 경로 테이블, 보안 그룹 (예 : 방화벽) 등을 완벽하게 제어 할 수 있습니다.  Azure Iaas 가상 머신 (VM)을 가상 네트워크로 시작합니다. 메인 AWS 대시 보드에서 "VPC"를 선vpc1택하십시오. "Your VPCs"에서 화면의 오른쪽 상단에 적절한 영역을 선택했는지 확인하십시오.  이 안내서에서는 3 개의 가용 영역이있는 지역이기 때문에 "미국 서부 (오레곤)"지역이 사용됩니다.   지역 및 가용 영역에 대한 자세한 내용을 보려면 여기를 클릭하십시오vpc2. VPC에 이름을 지정하고 사용하려는 IP 블록을 지정하십시오.  이 가이드에서는 10.0.0.0/16이 사vpc3용됩니다. 이제 "VPC"화면에서 새로 생성 된 VPC를 볼 수 있습니다. vpc4  

인터넷 게이트웨이 만들기

그런 다음 인터넷 게이트웨이를 만듭니다.  인스턴스 (VM)가 인터넷과 통신 할 수있게하려면이 작업이 필요합니다. 왼쪽 메뉴에서 인터넷 게이트웨이를 선택하고 인터넷 게이트웨이 만들기 버튼을 클릭하십시오.  이름을 지정하고 만들기 : 다인터넷 게이트웨이 1음으로 인터넷 게이트웨이를 VPC에 연결합니다. 인터넷 게이트웨이 2VPC를 선택하고 첨부를 클릭합니다. 인터넷 게이트웨이 3

서브넷 생성 (가용성 영역)

그런 다음 3 개의 서브넷을 만듭니다.  각 서브넷은 자체 가용 영역에 상주합니다.  3 개의 인스턴스 (VM : node1, node2, witness)는 별도의 서브넷 (따라서 가용 영역)으로 실행되어 가용성 영역의 실패가 클러스터의 여러 노드를 제거하지 않도록합니다. 미국 서부 (오레곤) 지역, uska-west-2에는 3 개의 가용 영역 (us-west-2a, us-west-2b, us-west-2c)이 있습니다.  3 개의 가용 영역 각각에 하나씩 3 개의 서브넷을 생성합니다. VPC Dashboard에서 Subnets로 이동 한 다음 Creat서브넷 1e Subnet : 첫 번째 서브넷에 이름 ( "Subnet1")을 지정하고 가용성 영역 us-west-2a를 선택하고 네트워크 블록서브넷 2 (10.0.0.0/24)을 정의합니다. us-west-2b : 가용성서브넷 3 영역에서 세 번째 서브넷을 작성하기 위해 반복합니다. us-west–서브넷 42c : 완료되면 3 개의 서브넷이 생성되었고, 각각 다른 CIDR 블록이 생성되었는지 확인하고 가용성이 서로 다른지 확인합니다. 영역 (아래 참조) : 서브넷 5

경로 테이블 구성

VPC의 라우팅 테이블을 업데이트하여 이전 단계에서 만든 인터넷 게이트웨이로 외부로 보내는 트래픽을 보냅니다.  VPC 대시 보드에서 Route Tables를 선택합니다.   경로 탭으로 이동하면 기본적으로 하나의 경로 만 존재하므로 VPC 내에서만 트래픽이 허용됩니다. 편집 : 노선 표 1다른 경로 추가 :노선 표 2 새 경로의 대상은 "0.0.0.0/0"(인터넷)이고 대상은 인터넷 게이트웨이를 선택하십시오.  그런 다음 저장을 클노선 표 3릭합니다. 다음으로 세 개의 서브넷을 경로 테이블과 연결합니다.   "서브넷 연결"탭을 클릭하고 편집 : 모노선 표 4든 3 개의 서브넷 옆에있는 상자를 선택하고노선 표 5 저장 : 3 개의 서브넷이 주 경로 테이블과 연결되어 있는노선 표 6지 확인합니다. 나중에 다시 돌아와 경로 테이블을 업데이트합니다. 트래픽이 클러스터의 가상 IP와 통신 할 수있는 경로를 정의하지만, 이는 Linux 인스턴스 (VM)가 생성 된 후에 수행해야합니다.

보안 그룹 구성

들어오는 SSH 및 VNC 트래픽을 허용하도록 보안 그룹 (가상 방화벽)을 편집하십시오.  둘 다 나중에 클러스터 소프트웨어의 설치 / 구성은 물론 Linux 인스턴스를 구성하는 데 사용됩니다. 왼쪽 메뉴에서 "보안 그룹"을 선택한 다음 "인바운드 규칙"탭을 클릭하십시오.  편집 : SSH 보안 그룹 1(포트 22) 및 VNC 모두에 대한 규칙 추가를 클릭하십시오.  VNC는 일반적으로 사용자가 구성하는 방법에 따라 5900의 포트를 사용하기 때문에이 가이드에서는 5900-5910 포트 범위를 엽니 다.  VNC 설정에 따라 구성하십시오. 보안 그룹 2  

인스턴스 실행

이 가이드에서는 3 개의 인스턴스 (가상 컴퓨터)를 프로비저닝 할 예정입니다.  처음 두 VM ( "node1"및 "node2")은 MySQL 데이터베이스 및 관련 리소스를 온라인 상태로 가져 오는 클러스터 노드로 작동합니다.  세 번째 VM은 스플릿 브레인에 대한 추가 보호를 위해 클러스터의 감시 서버 역할을합니다. 최대한의 가용성을 보장하기 위해 모든 3 개의 VM이 단일 영역 내의 서로 다른 가용 영역으로 배포됩니다.  이는 각 인스턴스가 다른 서브넷에 상주 함을 의미합니다. 기본 AWS 대시 보드로 이동하여 EC2 : launch-instance1

"노드 1"생성

첫 번째 인스턴스 ( "node1")를 만듭니다.  인스턴스 시작 : Llaunch-instance2inux 배포를 선택하십시오.  나중에 사용되는 클러스터 소프트웨어는 RHEL, SLES, CentOS 및 Oracle Linux를 지원합니다.  이 안내서에서 우리는 RHEL launch-instance37.X를 사용할 것입니다.  이 가이드의 목적 및 비용을 최소화하기 위해 무료 티어 자격이되므로 t2.micro 크기가 사용되었습니다.  인스턴스 크기 및 가격에 대한 자세한 내용은 여기를 참조하십시오. launch-instance4 그런 다음 인스턴스 세부 정보를 구성합니다.  중요 :이 첫 번째 인스턴스 (VM)를 "Subnet1"로 시작하고 서브넷 (10.0.0.0/24)에 유효한 IP 주소를 정의하십시오 – 서브넷의 첫 번째 사용 가능한 IP이기 때문에 10.0.0.4 이하가 선택됩니다.  참고 : AWS의 특정 서브넷에서 .1 / .2 / .3은 예약되어있어 사용할 수 없습니다. launch-instance5 그런 다음 클러스터 노드에 추가 디스크를 추가하십시오 ( "node1"과 "node2"모두에서 수행됩니다).  이 디스크는 MySQL 데이터베이스를 저장하고 나중에 노드간에 복제됩니다. 참고 : 추가 디스크를 "감시 (witness)"노드에 추가 할 필요가 없습니다.  "node1"및 "node2". 새 볼륨 추가를 클릭하고 원하는 크기로 입launch-instance6력하십시오. 인스턴스의 태그 정의 Nolaunch-instance7de1 : 인스턴스를 기존 보안 그룹과 연결하십시오. 그러면 이전에 작성된 방화벽 규칙이 활성화됩니다.launch-instance8 시작을 클릭하launch-instance9십시오. 중요 : 이것이 첫 번째 인스턴스 인 경우 AWS 환경에서 새 키 쌍을 만들어야합니다.  개인 키 파일은 리눅스 인스턴스로 SSH 할 때 필요하므로 안전한 위치에 저장해야합니다 launch-instance10

"노드 2"생성

위의 단계를 반복하여 두 번째 Linux 인스턴스 (node2)를 만듭니다.  Node1과 정확하게 구성하십시오.  그러나 "Subnet2"(us-west-2b 가용성 영역)에 배포해야합니다.  Subnet2의 IP 범위는 10.0.1.0/24이므로 여기서 10.0.1.4의 IP가 사launch-instance11용됩니다. 노드 2에도 두 번째 디스크를 추가해야합니다.  Node1에 추가 한 디스크와 동일한 크기 여야합니다. 두 번째launch-instance12 인스턴스에 태그를 지정하십시오. "노드 2": launch-instance13

"증인"을 창조하십시오

위의 단계를 반복하여 세 번째 Linux 인스턴스 (미러링 모니터)를 만듭니다.  두 번째 디스크를 추가 할 필요가없는 경우를 제외하고는 Node1과 Node2와 똑같이 구성하십시오.이 인스턴스는 클러스터의 미러링 모니터 역할을 수행하며 MySQL을 온라인 상태로 만들지 않습니다. "Subnet3"(us-west-2c 가용성 영역)에 배포해야합니다.  Subnet2의 IP 범위는 10.0.2.0/24이므로 여기서 10.0.2.4의 Ilaunch-instance14P가 사용됩니다. 참고 : 기본 디스크 구성은 감시 노드에 적합합니다.  두 번째 디스크는 필요하지 않습니다launch-instance15. 감시 노드에 태그 지정 : launch-instance16

3 가지 인스턴스를 제공하는 데 약간의 시간이 걸릴 수 있습니다.  완료되면 EC2 콘솔에서 실행중인 것으로 표시됩니다. launch-instance17

탄성 IP 생성

그런 다음 외부 세계의 인스턴스에 연결하는 데 사용되는 공용 IP 주소 인 Elastic IP를 작성하십시오.  왼쪽 메뉴에서 Elastic IPs를 선택한 다음 "Allocate New Addresselastic-ip1"를 클릭하십시오 : 새로 생성 된 Elastic IP를 선택하고 마우스 오른쪽 버튼으로 클릭 한 elastic-ip2다음 "Associate Address"를 선택탄성 ip3하십시오 :이 탄성 IP를 Node1에 연결하십시오 : 당신은 그들에게 인터넷 접속이 가능하거나 직접 SSH / VNC를 할 수 있기를 원합니다.

가상 IP에 대한 경로 항목 작성

이 시점에서 3 개의 인스턴스가 모두 생성되었으며 클러스터의 가상 IP가 작동하려면 경로 테이블을 한 번 더 업데이트해야합니다.  이 다중 서브넷 클러스터 구성에서 가상 IP는 VPC에 할당 된 CIDR 범위 밖에 있어야합니다. 클러스터의 가상 IP (10.1.0.10)로 기본 클러스터 노드 (노드 1)로 트래픽을 보낼 새 경로를 정의하십시오. VPC Dashboard에서 Route Tables를 선택하고 Edit를 클릭하십시오.  목적지가 Node1 인 "10.1.0.10/32"에 대한 경로를 추가하십시오. 경로 - 테이블 - 인스턴스 - 생성 후

ENI의 소스 / 목적지 확인 사용 안함

그런 다음 클러스터 노드의 ENI (Elastic Network Interfaces)에 대한 소스 / 대상 확인을 비활성화합니다. 이는 인스턴스가 클러스터의 가상 IP 주소에 대한 네트워크 패킷을 허용하기 위해 필요합니다. 모든 ENI에 대해이 작업을 수행하십시오. "네트워크 인터페이스"를 선택하고 ENI를 마우스 오른쪽 버튼으로 클릭 한 다음 "소스 / 목적지 변경 변경"을 선택하십시오. disable-source-dest-check1 "Disabled"를 선택하십시오 : disable-source-dest-check2

액세스 키 ID 및 비밀 액세스 키 얻기

이 안내서의 뒷 부분에서 클러스터 소프트웨어는 AWS CLI (Command Line Interface)를 사용하여 클러스터의 가상 IP에 대한 경로 테이블 항목을 조작하여 활성 클러스터 노드로 트래픽을 리디렉션합니다.  이 기능을 사용하려면 AWS CLI가 올바르게 인증 될 수 있도록 액세스 키 ID와 비밀 키를 얻어야합니다. EC2 대시 보드의 오른쪽 상단에서 이름을 클릭하고 드롭 다운에서 "보안 자격증 명"을 선택하십시오. 표의 액세스 키 1"액세스 키 (액세스 키 ID 및 비밀 키)"섹션을 펼친 다음 확인을 클릭하십시오. "새 액세스 키 만들기".  키 파일을 다운로드하고 안전한 위치에 파일을 저장하십시오. 액세스 키 2

Linux OS 구성

리눅스 인스턴스에 연결 :

SSH를 통해 새로 생성 된 Linux 인스턴스에 연결하려면 인스턴스를 마우스 오른쪽 단추로 클릭하고 "연결"을 선택하십시오.  인스턴스에 연결하기위한 지시 사항이 표시됩니다.  이전 단계에서 생성 / 다운로드 한 비공개 키 파일이 필요합연결 1니다 : connect2예 : 여기에 EC2 대시 보드를 잠시 동안두고 손을 명령 줄에서 더럽힐 것입니다. Linux 관리자는이를 사용해야합니다. 지금까지. AWS (또는 기본 "ec2-user"계정 중 하나)의 Linux VM에 루트 암호가 제공되지 않으므로 일단 연결하면 "sudo"명령을 사용하여 루트 권한을 얻습니다.

$ sudo su -

/ etc / hosts 편집

DNS 서버를 이미 설치하지 않은 경우 세 서버 모두에서 호스트 파일 항목을 만들어 이름별로 서로 올바르게 해결할 수 있습니다. / etc / hosts 파일의 끝에 다음 행을 추가하십시오.

10.0.0.4 node1
10.0.1.4 node2
10.0.2.4 목격자
10.1.0.10 mysql-vip

SELinux 사용 안 함

/ etc / sysconfig / linux를 편집하고 "SELINUX = disabled"로 설정하십시오 :

# vi / etc / sysconfig / selinux

#이 파일은 시스템상의 SELinux 상태를 제어합니다.
# SELINUX =은 다음 세 가지 값 중 하나를 취할 수 있습니다.
# enforcing - SELinux 보안 정책이 시행됩니다.
# permissive - SELinux는 강제가 아닌 경고를 출력합니다.
# disabled - SELinux 정책이로드되지 않습니다.
SELINUX = 비활성화 됨
# SELINUXTYPE = 다음 두 값 중 하나를 취할 수 있습니다.
# targeted - 타겟 프로세스가 보호되고,
# mls - 다단계 보안 보호.
SELINUXTYPE = 타겟팅 됨

호스트 이름 설정

기본적으로이 Linux 인스턴스는 "ip-10-0-0-4.us-west-2.compute.internal"과 같은 서버의 IP 주소를 기반으로하는 호스트 이름을 갖습니다. 호스트 이름을 "정상적인"방법으로 수정합니다 (예 : / etc / sysconfig / network 편집 등). 다시 부팅 할 때마다 원래 상태로 되돌아갑니다 !! 재부팅 후에 실제로 호스트 이름을 정적으로 유지하는 방법을 설명하는 AWS 토론 포럼에서 위대한 스레드를 발견했습니다. 여기 세부 정보 : https://forums.aws.amazon.com/message.jspa?messageID=560446 "/etc/cloud/cloud.cfg"파일에 호스트 이름을 설정하는 모듈을 주석 처리하십시오. 다음 모듈은 #을 사용하여 주석 처리 될 수 있습니다.

# - set_hostname
# - update_hostname

다음으로 / etc / hostname에서도 호스트 이름을 변경하십시오.

클러스터 노드 재부트

3 개의 인스턴스를 모두 재부팅하여 SELinux를 비활성화하고 호스트 이름 변경 사항을 적용합니다.

VNC (및 관련 패키지) 설치 및 구성

Linux 서버의 GUI에 액세스하고 나중에 클러스터를 설치 및 구성하려면 VNC 서버와 기타 필요한 패키지 (클러스터 소프트웨어에는 redhat-lsb 및 patch rpms가 필요함)를 설치하십시오.

# yum groupinstall "X 윈도우 시스템"
# yum groupinstall "GUI가있는 서버"
# yum install tigervnc-server xterm wget unzip 패치 redhat-lsb
# vncpasswd

RHEL 7.x / CentOS7.x : 다음 URL은 RHEL 7 / CentOS 7에서 VNC 서버를 실행하는 데 유용한 지침입니다. https://www.digitalocean.com/community/tutorials/how-to-install-and -configure-vnc -gnome-desktop-on-centos-7에 대한 원격 액세스 주 :이 예제 구성은 디스플레이 2 (: 2, 일명 포트 5902) 및 루트 (안전하지 않음)에서 VNC를 실행합니다.  적절하게 조정하십시오!

# cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:2.service
# vi /etc/systemd/system/vncserver@:2.service


[서비스]
유형 = 분기
# /tmp/.X11-unix 환경의 기존 파일 정리
ExecStartPre = / bin / sh -c '/ usr / bin / vncserver -kill % i> / dev / null 2> & 1 || : '
ExecStart = / sbin / runuser -l root -c "/ usr / bin / vncserver % i -geometry 1024x768"
PIDFile = / root / .vnc / % H % i.pid
ExecStop = / bin / sh -c '/ usr / bin / vncserver -kill % i> / dev / null 2> & 1 || : '


# systemctl daemon-reload
# systemctl enable vncserver @ : 2.service
# vncserver : 2 기하학 1024x768

RHEL / CentOS 6.x 시스템의 경우 :

# vi / etc / sysconfig / vncservers

      VNCSERVERS = "2 : root"
      VNCSERVERARGS [2] = "- 형상 1024x768"

# service vncserver start
# chkconfig vncserver on

VNC 클라이언트를 열고 <ElasticIP : 2>에 연결하십시오.  당신이 그것을 얻을 수 없다면, 아마도 당신의 리눅스 방화벽이 방해가 될 것입니다.  여기에서 사용중인 VNC 포트 (포트 5902)를 열거 나 현재는 방화벽을 비활성화하십시오 (생산 환경에는 권장하지 않음).

# systemctl stop firewalld
# systemctl disable firewalld

 

"데이터"디스크 파티션 및 포맷

linux 인스턴스가 시작되고 응용 프로그램 데이터를 저장하기 위해 각 클러스터 노드에 추가 디스크가 추가되면 우리는 보호합니다.  이 경우 MySQL 데이터베이스가됩니다. 두 번째 디스크는 / dev / xvdb로 나타나야합니다.  "fdisk -l"명령을 실행하여 확인할 수 있습니다.  / dev / xvda (OS)가 이미 사용중인 것을 볼 수 있습니다.

# fdisk -l

디스크 / dev / xvda : 10.7GB, 10737418240 바이트, 20971520 섹터 단위 = 1 * 512 = 512 바이트 섹터 크기 (논리 / 물리적) : 512 바이트 / 512 바이트 I / O 크기 (최소 / 최적) : 512 바이트 / 512 바이트 디스크 레이블 유형 : gpt # 시작 종료 크기 유형 이름 1 2048 4095 1M BIOS 부팅 parti 2 4096 20971486 10G Microsoft 기본 디스크 / dev / xvdb : 2147MB, 2147483648 바이트, 4194304 섹터 Units = 1 * 512 = 512 바이트 섹터 크기 (논리적 / 물리적) : 512 바이트 / 512 바이트 I / O 크기 (최소 / 최적) : 512 바이트 / 512 바이트 여기에서는 파티션 (/ dev / xvdb1)을 만들고 포맷하고 기본값 MySQL의 위치는 / var / lib / mysql이다.  "node1"및 "node2"모두에서 다음 단계를 수행하십시오.

# fdisk / dev / xvdb
fdisk에 오신 것을 환영합니다 (util-linux 2.23.2).

변경 사항은 사용자가 쓰기 전까지 만 메모리에 남아 있습니다.
쓰기 명령을 사용하기 전에주의하십시오.

장치에 인식 된 파티션 테이블이 없습니다.
디스크 식별자 0x8c16903a를 사용하여 새 DOS 디스크 레이블 만들기.

명령 (m 도움말) : n
파티션 유형 :
   p 기본 (0 기본, 0 확장, 4 무료)
   확장 된
선택 (기본 p) : p
파티션 번호 (1-4, 기본값 1) : 1
첫 번째 섹터 (2048-4194303, 기본값 2048) : <enter>
기본값 2048 사용
마지막 섹터, 섹터 또는 크기 {K, M, G} (2048-4194303, 기본값 4194303) : <enter>
기본값 사용 4194303
Linux 유형의 Partition 1 및 크기 2 GiB가 설정 됨

명령 (m 도움말) : w
파티션 테이블이 변경되었습니다!

파티션 테이블을 다시 읽으려면 ioctl ()을 호출하십시오.
디스크 동기화 중.

# mkfs.ext4 / dev / xvdb1 # mkdir / var / lib / mysql node1에서 파일 시스템을 마운트하십시오.

# mount / dev / xvdb1 / var / lib / mysql

EC2 API 도구 설치

클러스터 소프트웨어가 나중에 라우트 테이블을 조작하여 가상 IP에 대한 연결을 가능하게 할 수 있도록 EC2 API 도구 (EC2 CLI)가 각 클러스터 노드에 설치되어야합니다. 다음 URL은 이것을 설정하는 훌륭한 지침서입니다. http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/set-up-ec2-cli-linux.html 다음은 주요 단계입니다 : 다운로드, unzip 및 CLI 도구를 표준 위치 (/ opt / aws)로 이동합니다.

# wget http://s3.amazonaws.com/ec2-downloads/ec2-api-tools.zip
# unzip ec2-api-tools.zip
# mv ec2-api-tools-1.7.5.1 / / opt / aws /
# export EC2_HOME = "/ opt / aws"

java가 아직 설치되지 않은 경우 ( "which java"를 검사하여 실행), 다음을 설치하십시오.

# yum install java-1.8.0-openjdk

예 (RHEL 7.2 시스템의 기본 구성 기준).  적절하게 조정)

# export JAVA_HOME = "/ usr / lib / jvm / java-1.8.0-openjdk-1.8.0.71-2.b15.el7_2.x86_64 / jre /"

AWS Access Key와 AWS Secret Key가 필요합니다.  이 값은 나중에 클러스터 설정 중에 필요할 것이므로이 값을 편리하게 유지하십시오! 자세한 내용은 다음 URL을 참조하십시오. https://console.aws.amazon.com/iam/home?#security_credential

# export AWS_ACCESS_KEY = your-aws-access-key-id
# export AWS_SECRET_KEY = 당신의 aws-secret-key

Test CLI 유틸리티 기능 :

# / opt / aws / bin / ec2-describe-regions

지역 eu-west-1 ec2.eu-west-1.amazonaws.com
지역 ap-southeast-1 ec2.ap-southeast-1.amazonaws.com
지역 ap-southeast-2 ec2.ap-southeast-2.amazonaws.com
지역 eu-central-1 ec2.eu-central-1.amazonaws.com
지역 ap-northeast-2 ec2.ap-northeast-2.amazonaws.com
지역 ap-northeast-1 ec2.ap-northeast-1.amazonaws.com
지역 us-east-1 ec2.us-east-1.amazonaws.com
지역 sa-east-1 ec2.sa-east-1.amazonaws.com
지역 us-west-1 ec2.us-west-1.amazonaws.com
지역 us-west-2 ec2.us-west-2.amazonaws.com

 

MySQL 설치 및 구성

다음으로, MySQL 패키지를 설치하고, 샘플 데이터베이스를 초기화하고, MySQL의 "root"비밀번호를 설정하십시오.  RHEL7.X에서는 MySQL 패키지가 MariaDB 패키지로 대체되었습니다.

"node1"에서 :

# yum install mariadb mariadb-server
# mount / dev / xvdb1 / var / lib / mysql
# / usr / bin / mysql_install_db --datadir = "/ var / lib / mysql /"--user = mysql
# mysqld_safe --user = root --socket = / var / lib / mysql / mysql.sock --port = 3306 --datadir = / var / lib / mysql --log &
#
# # 참고 :이 다음 명령은 모든 호스트의 원격 연결을 허용합니다.  생산을위한 좋은 생각이 아닙니다!
# echo "사용자 집합 업데이트 Host = '%'여기서 Host = 'node1'; 플러시 권한 | mysql mysql
#
# # MySQL의 루트 암호를 'SIOS'로 설정
# echo "update user set Password = PASSWORD ( 'SIOS') 여기서 User = 'root'; mysql mysql

MySQL 구성 파일을 만듭니다. 이를 데이터 디스크에 저장합니다 (나중에 /var/lib/mysql/my.cnf에 복제됩니다).  예:

# vi /var/lib/mysql/my.cnf

[mysqld]
datadir = / var / lib / mysql
소켓 = / var / lib / mysql / mysql.sock
pid-file = / var / run / mariadb / mariadb.pid
사용자 = 루트
포트 = 3306
# 보안 위험을 방지하려면 심볼릭 링크를 비활성화하는 것이 좋습니다.
기호 링크 = 0
 
[mysqld_safe]
log-error = / var / log / mariadb / mariadb.log
pid-file = / var / run / mariadb / mariadb.pid 
 
[고객]
사용자 = 루트
암호 = SIOS

원본 MySQL 구성 파일이있을 경우 옆으로 이동하십시오.

# mv /etc/my.cnf /etc/my.cnf.orig

"노드 2"에서 :

"node2"에서는 MariaDB / MySQL 패키지 만 설치하면됩니다.  다른 단계는 필요하지 않습니다.

[root @ node2 ~] # yum install mariadb mariadb-server

클러스터 설치 및 구성

이제 클러스터를 설치하고 구성 할 준비가되었습니다.  이 안내서에서는 Linux 용 SIOS Protection Suite (일명 SPS-Linux)가 클러스터링 기술로 사용됩니다.  고 가용성 페일 오버 클러스터링 기능 (LifeKeeper)과 블록 레벨 데이터 복제 (DataKeeper)를 단일 통합 솔루션으로 제공합니다.  SPS-Linux를 사용하면 EC2 인스턴스의 경우처럼 클러스터 노드에 공유 저장소가 없음을 의미하는 "공유되지 않음"클러스터라는 "SANLess"클러스터를 배포 할 수 있습니다.

Linux 용 SIOS Protection Suite 설치

모든 3 개의 VM (node1, node2, witness)에서 다음 단계를 수행하십시오. SPS-Linux 설치 이미지 파일 (sps.img)을 다운로드하고 평가판 라이센스를 얻거나 영구 라이센스를 구입하십시오.  자세한 내용은 SIOS에 문의하십시오. 당신은 그것을 루프백 (loopback) 마운트 할 것이고 루트 ( "root su"를 얻기 위해 "sudo su -"라고 쓰는 것) 안에 "setup"스크립트를 실행시킬 것이다. 예를 들면 :

# mkdir / tmp / install
# mount -o loop sps.img / tmp / install
# cd / tmp / install
# ./설정

설치 스크립트 중에 여러 가지 질문에 대답하라는 메시지가 표시됩니다.  거의 모든 화면에서 Enter 키를 눌러 기본값을 적용합니다.  다음 예외에 유의하십시오.

  • "High Availability NFS"라는 화면에서 고 가용성 NFS 서버를 만들지 않으므로 "n"을 선택할 수 있습니다
  • 설치 스크립트가 끝날 때까지 평가판 라이센스 키를 지금 설치하거나 나중에 설치하도록 선택할 수 있습니다. 나중에 라이센스 키를 설치하므로이 시점에서 "n"을 안전하게 선택할 수 있습니다
  • "설정"의 마지막 화면에서 화면에 표시된 목록에서 설치하려는 ARK (응용 프로그램 복구 키트, 즉 "클러스터 에이전트")를 선택하십시오.
    • ARK는 "node1"과 "node2"에서만 필요합니다.  "증인"에 설치할 필요가 없습니다.
    • 위쪽 / 아래쪽 화살표를 사용하여 목록을 탐색하고 스페이스 바를 눌러 다음을 선택하십시오.
      • lkDR – Linux 용 DataKeeper
      • lkSQL – LifeKeeper MySQL RDBMS 복구 키트
    • 그러면 "node1"및 "node2"에 다음과 같은 추가 RPM이 설치됩니다.
      • steeleye-lkDR-9.0.2-6513.noarch.rpm
      • steeleye-lkSQL-9.0.2-6513.noarch.rpm

Witness / Quorum 패키지 설치

LifeKeeper (steeleye-lkQWK)를위한 Quorum / Witness Server 지원 패키지는 LifeKeeper 코어의 기존 장애 조치 프로세스와 결합하여 전체 네트워크 장애가 공통적으로 발생할 수있는 상황에서보다 높은 수준의 신뢰성으로 시스템 장애 조치를 수행 할 수 있습니다. 이는 효과적으로 "스플릿 브레인"상황의 위험을 크게 줄이면서 장애 극복을 수행 할 수 있음을 의미합니다. 모든 3 개 노드 (node1, node2, witness)에 Witness / Quorum rpm을 설치합니다.

# cd / tmp / install / quorum
# rpm -Uvh steeleye-lkQWK-9.0.2-6513.noarch.rpm

모든 3 노드 (node1, node2, witness)에서 / etc / default / LifeKeeper를 편집하고 NOBCASTPING = 1로 설정합니다. Witness 서버 ( "witness")에서만 / etc / default / LifeKeeper를 편집하고 WITNESS_MODE = off / none

EC2 복구 키트 패키지 설치

SPS-Linux는 여러 가용 영역 및 지역의 노드간에 자원이 장애 조치 할 수 있도록하는 특정 기능을 제공합니다. 여기서 EC2 복구 키트 (즉, 클러스터 에이전트)는 경로 테이블을 조작하여 가상 IP에 대한 연결이 활성 클러스터 노드로 라우팅되도록합니다. EC2 rpm (node1, node2)을 설치하십시오.

# cd / tmp / install / amazon
# rpm -Uvh steeleye-lkECC-9.0.2-6513.noarch.rpm

라이센스 키 설치

3 개 노드 모두에서 "lkkeyins"명령을 사용하여 SIOS에서 얻은 라이센스 파일을 설치하십시오.

# / opt / LifeKeeper / bin / lkkeyins <경로 _ 파일> / <파일 이름> .lic

LifeKeeper 시작

3 개 노드 모두에서 "lkstart"명령을 사용하여 클러스터 소프트웨어를 시작하십시오.

# / opt / LifeKeeper / bin / lkstart

LifeKeeper GUI에 대한 사용자 권한 설정

3 개의 노드 모두에서 새 Linux 사용자 계정을 만듭니다 (예 :이 예에서는 "tony").  / etc / group을 편집하고 "tony"사용자를 "lkadmin"그룹에 추가하여 LifeKeeper GUI에 대한 액세스 권한을 부여하십시오.  기본적으로 "root"만이 그룹의 구성원이며 여기에 루트 암호가 없습니다.

# useradd tony
# passwd tony
# vi / etc / group

lkadmin : x : 1001 : root, tony

LifeKeeper GUI 열기

node1의 Elastic IP (공용 IP) 주소에 VNC 연결을 설정하십시오.  위에 나온 VNC 구성에 따라 앞에서 지정한 VNC 암호를 사용하여 <Public_IP> : 2에 연결합니다.  로그인 한 후 터미널 창을 열고 다음 명령을 사용하여 LifeKeeper GUI를 실행하십시오.

# / opt / LifeKeeper / bin / lkGUIapp &

첫 번째 클러스터 노드 ( "node1")에 연결하라는 메시지가 나타납니다.  VM 생성 중에 지정된 Linux 사용자 ID와 암호를 입력하십시오lk-gui-connect1 : 다음, 다음 스크린 샷에서 강조 표시된 "서버에 연결"단추를 클릭하여 "node2"와 "witness"모두에 연결하십시오. 이제 lk-gui-connect2GUI에서 3 개의 모든 서버를 볼 수 있습니다. 온라인 상태이고 건강하다는 것을 나타내는 녹색 체크 표시 아이콘 : lk-gui-connect3

통신 경로 생성

"node1"을 마우스 오른쪽 버튼으로 클릭하고 Comm Path 생통신 경로 1성을 선택하십시오. "node2"와 "witness"를 선택하고 마법사를 따르십시오.  그러면 다음 사이에 통신 경로가 만들어집니다.

  • 노드 1 및 노드 2
  • 노드 1 및 증인

통신 경로 2 노드 2와 감시 사이에 통신 경로를 생성해야합니다.   "node2"를 마우스 오른쪽 단추로 클릭하고 통신 경로 작성을 선택하십시오.  마법사를 따라 원격 서버로 "witness"를 선택하통신 경로 3십시오. 다음과 같은 통신 경로가 생성되었습니다 :

  • node1 <-> node2
  • 노드 1 <-> 목격자
  • 노드 2 <-> 목격자

서버 앞의 아이콘이 녹색 "확인 표시"에서 노란색 "위험 신호"로 바뀌 었습니다.  이는 노드간에 단일 통신 경로 만 있기 때문입니다. VM에 여러 개의 NIC가있는 경우 (여러 NIC가있는 Azure VM을 만드는 방법에 대한 정보는 여기에서 찾을 수 있지만이 기사에서 다루지는 않음) 각 서버간에 중복 통신 경로를 만듭니다. 통신 경로 4 경고 아이콘을 제거하려면보기 메뉴로 이동하여 "Comm Path Redundancy Warning"을 선택 해제합니다통신 경로 5. 결과 : 통신 경로 6

통신 경로 확인

"lcdstatus"명령을 사용하여 클러스터 자원의 상태를보십시오.  # / opt / LifeKeeper / bin / lcdstatus -q -d node1 MACHINE NETWORK ADDRESSES / DEVICE STATE PRIO node2 TCP 10.0.0.4/ 다음 명령을 실행하여 각 노드에서 다른 두 서버에 대한 통신 경로를 올바르게 작성했는지 확인하십시오. 10.0.1.4 ALIVE 1 감시 서버 TCP 10.0.0.4/10.0.2.4 ALIVE 1 # / opt / LifeKeeper / bin / lcdstatus -q -d node2 MACHINE NETWORK ADDRESSES / DEVICE STATE PRIO node1 TCP 10.0.1.4/10.0.0.4 ALIVE 1 증인 TCP 10.0.1.4/10.0.2.4 ALIVE 1 # / opt / LifeKeeper / bin / lcdstatus -q -d 감시 기계 네트워크 주소 / 장치 상태 프리 노드 node1 TCP 10.0.2.4/10.0.0.4 ALIVE 1 node2 TCP 10.0.2.4/10.0.1.4 살아있는 1

데이터 복제 클러스터 리소스 (예 : 거울)

그런 다음 / var / lib / mysql 파티션을 node1 (원본)에서 node2 (대상)로 복제 할 데이터 복제 자원을 만듭니다.  "녹색 더하기"아이콘을 클릭하여 새 리소스를 만데이터 복제 1듭니다. 마법사의 지시에 따르십시오 :

복구 키트를 선택하십시오 : 데이터 복제
스위치 백 유형 : 지능형
서버 : node1
계층 구조 유형 : 기존 파일 시스템 복제
기존 마운트 지점 : / var / lib / mysql
데이터 복제 리소스 태그 : datarep-mysql
파일 시스템 리소스 탭 : / var / lib / mysql
비트 맵 파일 : (기본값)
비동기 복제 사용 : 아니요

리소스가 생성 된 후 "확장"(백업 서버 정의) 마법사가 나타납니다.  다음 선택 항목을 사용하십시오.

대상 서버 : node2
스위치 백 유형 : 지능형
템플릿 우선 순위 : 1
목표 우선 순위 : 10
대상 디스크 : / dev / xvdb1
데이터 복제 리소스 태그 : datarep-mysql
비트 맵 파일 : (기본값)
복제 경로 : 10.0.0.4/10.0.1.4
마운트 포인트 : / var / lib / mysql
루트 태그 : / var / lib / mysql

클러스터는 다음과 같습니다. 데이터 복제 2

가상 IP 생성

그런 다음 가상 IP 클러스터 리소스를 만듭니다.  "녹색 더하기"아이콘을 클릭하여 새 리소스를 만가상 IP1듭니다. 마법사를 따라 다음을 선택하여 IP 리소스를 만듭니다.

복구 키트 선택 : IP
스위치 백 유형 : 지능형
IP 자원 : 10.1.0.10
넷 마스크 : 255.255.255.0
네트워크 인터페이스 : eth0
IP 리소스 태그 : ip-10.1.0.10

다음 선택 항목으로 IP 자원을 확장하십시오.

스위치 백 유형 : 지능형
템플릿 우선 순위 : 1
목표 우선 순위 : 10
IP 자원 : 10.1.0.10
넷 마스크 : 255.255.255.0
네트워크 인터페이스 : eth0
IP 리소스 태그 : ip-10.1.0.10

이제 클러스터는 미러 및 IP 자원을 모두 생성하여 다음과 같이 나타납니다. cluster-after-mirror-and-vip

IP 자원에 대한 Ping 목록 구성

기본적으로 SPS-Linux는 브로드 캐스트 핑을 수행하여 IP 리소스의 상태를 모니터링합니다.  많은 가상 및 클라우드 환경에서 브로드 캐스트 핑은 작동하지 않습니다.  이전 단계에서 / etc / default / LifeKeeper에 "NOBCASTPING = 1"을 설정하여 브로드 캐스트 핑 검사를 해제했습니다. 대신 핑 목록을 정의 할 것입니다.  이것은이 IP 자원에 대한 IP 상태 점검 중에 ping 될 IP 주소의 목록입니다.   이 가이드에서는 미러링 모니터 서버 (10.0.2.4)를 핑 목록에 추가합니다. IP 자원 (ip-10.1.0.10)을 마우스 오른쪽 단추로 클릭하고 등록 정보를aws-ping-list1 선택하십시오. 처음에는 우리의 10.1.0.0 서브넷에 대해 핑 목록이 구성되어 있지 않습니다.   "Ping List 수정"aws-ping-list2을 클릭하십시오 : "10.0.2.4"(미러링 모니터 서버의 IP 주소)를 입력하고 "주소 추가"를 클릭 한aws-ping-list3 다음 "목록 저장"을 클릭하십시오 : IP 속성 패널로 돌아가서 10.0.2.4가 핑 목록에 추가되었습니다.  확인을 클릭하여 창을 닫습니다. aws-ping-list4

MySQL 자원 계층 만들기

그런 다음 MySQL 클러스터 리소스를 만듭니다.  MySQL 자원은 MySQL 데이터베이스의 중지 / 시작 / 모니터링을 담당합니다. MySQL 리소스를 생성하기 전에 데이터베이스가 실행 중인지 확인하십시오.  "ps -ef | grep sql "을 확인하십시오. 그것이 달리고 있다면, 대단합니다 – 할 일이 없습니다.  그렇지 않으면 데이터베이스 백업을 시작하십시오.

# mysqld_safe --user = root --socket = / var / lib / mysql / mysql.sock --port = 3306 --datadir = / var / lib / mysql --log &

생성하려면 "녹색 더하기"아이콘을 클릭하여 새 리소스를 만듭니다. 마법사를 따라 다음을 선택하여 IP 리소스를 만듭니다.

복구 키트 선택 : MySQL 데이터베이스
스위치 백 유형 : 지능형
서버 : node1
my.cnf의 위치 : / var / lib / mysql
MySQL 실행 파일의 위치 : / usr / bin
데이터베이스 태그 : mysql

다음 선택 사항으로 IP 자원을 확장하십시오.

대상 서버 : node2
스위치 백 유형 : 지능형
템플릿 우선 순위 : 1
목표 우선 순위 : 10

결과적으로 클러스터는 다음과 같습니다.  데이터 복제 리소스가 자동으로 데이터베이스 아래로 이동 (종속성이 자동으로 생성 됨)되어 데이터베이스 전에 항상 온라인 상태로 유지되는지 확인합니다. aws-after-mysql-resource1

장애 조치시 라우팅 테이블을 관리하는 EC2 리소스 생성

SPS-Linux는 여러 가용 영역 및 지역의 노드간에 자원이 장애 조치 할 수 있도록하는 특정 기능을 제공합니다. 여기서 EC2 복구 키트 (즉, 클러스터 에이전트)는 경로 테이블을 조작하여 가상 IP에 대한 연결이 활성 클러스터 노드로 라우팅되도록합니다. 생성하려면 "녹색 더하기"아이콘을 클릭하여 새 리소스를 만듭니다. 마법사를 따라 다음 선택 항목으로 EC2 리소스를 만듭니다.

복구 키트 선택 : Amazon EC2
스위치 백 유형 : 지능형
서버 : node1
EC2 홈 : / opt / aws
EC2 URL : ec2.us-west-2.amazonaws.com
AWS 액세스 키 : (이전에 얻은 액세스 키 입력)
AWS 비밀 키 : (이전에 얻은 비밀 키 입력)
EC2 자원 유형 : RouteTable (백엔드 클러스터)
IP 자원 : ip-10.1.0.10
EC2 리소스 태그 : ec2-10.1.0.10

다음 선택 사항으로 IP 자원을 확장하십시오.

대상 서버 : node2
스위치 백 유형 : 지능형
템플릿 우선 순위 : 1
목표 우선 순위 : 10
EC2 리소스 태그 : ec2-10.1.0.10

클러스터는 다음과 같습니다.  EC2 리소스가 IP 리소스 아래에 있음을 확인하십시오. aws-after-ec2-resource1

IP 자원과 MySQL 데이터베이스 자원 사이의 의존 관계 생성

IP 리소스와 MySQL 데이터베이스 리소스 사이에 의존성을 생성하여 그룹으로 함께 장애 조치합니다.  "mysql"자원을 마우스 오른쪽 버튼으로 클릭하고 "Create Dependen생성 의존성 1cy"를 선택하십시오 : 다음 화면에서 "ip-10.1.0.10"자원을 종속성으로 선택하십시오.  다음을 클릭하고 마법사를 계속 진행합니다.생성 의존성 2이 시점에서 SPS-Linux 클러스터 구성이 완료되었습니다.  리소스 계층 구조는 다음과 같습니다. 생성 - 의존성 3

클러스터 연결 테스트

이제 Amazon EC2 및 클러스터 구성이 모두 완료되었습니다! 클러스터 리소스는 현재 노드 1에서 활성화되어 있습니다. 미러링 모니터 서생성 - 의존성 3버 (또는 다른 Linux 인스턴스가있을 경우 다른 Linux 인스턴스)에서 미러링 모니터 서버 ( "sudo su -")로 클러스터에 대한 연결을 테스트하여 루트 액세스를 얻습니다.   필요한 경우 mysql 클라이언트를 설치하십시오.

[root @ witness ~] # yum -y mysql을 설치합니다.

클러스터에 MySQL 연결을 테스트하십시오.

[root @ witness ~] # mysql --host = 10.1.0.10 mysql -u root -p

다음 MySQL 쿼리를 실행하여 활성 클러스터 노드의 호스트 이름을 표시합니다.

MariaDB [mysql]> @@ hostname을 선택하십시오;
 ------------ 
| @@ 호스트 이름 |
 ------------ 
| node1 |
 ------------ 
1 행 세트 (0.00 초)
MariaDB [mysql]>

LifeKeeper GUI 사용, 노드 1 -> 노드 2에서의 장애 복구 "를 참조하십시오.  node2 아래의 mysql 리소스를 마우스 오른쪽 단추로 클릭하고 "서비스 중 …"을 선택aws-failover1하십시오. 장애 조치가 완료된 후 MySQL 쿼리를 다시 실행하십시오.  다음과 같은 MySQL 쿼리를 실행하여 활성 클러스터 노드의 호스트 이름을 표시하고 "node2"가 활성 상태인지 확인합니다.

MariaDB [mysql]> @@ hostname을 선택하십시오;
오류 2006 (HY000) : MySQL 서버가 사라졌습니다.
연결되지 않았습니다. 다시 연결하려고합니다 ...
연결 ID : 12
현재 데이터베이스 : mysql
 ------------ 
| @@ 호스트 이름 |
 ------------ 
| 노드 2 |
 ------------ 
1 행 세트 (0.53 초)
MariaDB [mysql]>

  Linux 장애 조치 (Failover) 클러스터 구성에 대한 단계별 가이드가 있습니다. 공유 저장 장치가없는 Amazon EC2에서 자세한 내용을 보려면 Linuxclustering의 허가를 받아 복제하십시오.

Filed Under: 서버 클러스터 단순화 Tagged With: AWS, Linux 장애 조치 클러스터, MySQL

공유 저장소가없는 Microsoft Azure IaaS의 Linux 장애 조치 클러스터

12월 19, 2018 by Jason Aw Leave a Comment

단계별 : Linux 장애 조치 (failover) 클러스터를 구성하는 방법 공유 저장소가없는 Microsoft Azure IaaS # azure #sanless

이 단계별 가이드에서는 Microsoft Azure IaaS (인프라로 서비스)에서 고 가용성 2 노드 MySQL 클러스터 (미러링 모니터 서버)를 구성하는 데 필요한 모든 단계를 수행합니다.  가이드에는 적절한 스크린 샷, 셸 명령 및 코드 스 니펫이 모두 포함되어 있습니다.  필자는 귀하가 Microsoft Azure에 익숙하며 Azure 계정이 이미 가입되어 있다고 가정합니다.  그렇지 않은 경우 오늘 무료 계정에 가입 할 수 있습니다.  기본적인 리눅스 시스템 관리 기술은 물론 가상 IP와 같은 기본적인 장애 조치 클러스터링 개념을 이해하고 있다고 가정합니다.

면책 조항 : 하늘빛은 빠르게 움직이는 표적입니다.  점점 더 좋아지고 있습니다! 따라서 기능 / 화면 / 버튼은 시간이 지남에 따라 바뀌므로 아래에서 보는 것과 약간 다를 수 있습니다.  이 가이드에서는 MySQL 데이터베이스의 가용성을 높이는 방법을 설명하지만 SAP, Oracle, PostgreSQL, NFS 파일 서버 등과 같은 다른 응용 프로그램이나 데이터베이스를 보호하기 위해이 정보와 프로세스를 확실히 적용 할 수 있습니다. 다음은 Microsoft Azure IaaS에서 고 가용성 MySQL 데이터베이스를 만드는 고급 단계입니다.

  1. 자원 그룹 작성
  2. 가상 네트워크 만들기
  3. 저장소 계정 만들기
  4. 가용성 집합에 가상 컴퓨터 만들기
  5. VM 고정 IP 주소 설정
  6. 클러스터 노드에 데이터 디스크 추가
  7. VNC 액세스를 허용하는 인바운드 보안 규칙 만들기
  8. Linux OS 구성
  9. MySQL 설치 및 구성
  10. 클러스터 설치 및 구성
  11. 내부로드 밸런서 만들기
  12. 클러스터 연결 테스트

개요

이 기사에서는 Shared Storage가없는 Microsoft Azure IaaS에서 Linux 장애 조치 클러스터를 구성하는 단계에 대해 설명합니다. 단일 Azure 영역 내에 클러스터를 만드는 방법을 설명합니다.  클러스터 노드 (node1, node2 및 미러링 모니터 서버)는 새로운 Azure Resource Manager (ARM) 덕분에 가용성 세트 (3 개의 다른 오류 도메인 및 업데이트 도메인)에 상주합니다. 우리는 새로운 Azure Resource Manager를 사용하여 모든 리소스를 생성 할 것입니다. 구성은 다음과 같습니다. 클러스터 다이어그램다음 IP 주소가 사용됩니다.

  • node1 : 10.0.0.4
  • node2 : 10.0.0.5
  • 목격자 : 10.0.0.6
  • 가상 / "유동"IP : 10.0.0.99
  • MySQL 포트 : 3306

자원 그룹 작성

먼저, 자원 그룹을 작성하십시오.  리소스 그룹에는 클러스터 배포와 관련된 다양한 개체 (가상 컴퓨터, 가상 네트워크, 저장소 계정 등)가 모두 포함됩니다.  여기서는 새로 생성 된 Resource Group "클러스터 리소스"를 호출합니다. 리소스 그룹 1 지역 선택시주의하십시오.  모든 리소스는 동일한 지역 내에 있어야합니다.  여기서는 모든 것을 "미국 서부"지역에 배치 할 것입니다. 리소스 그룹 2

가상 네트워크 생성 (VNet)

가상 네트워크를 만드는 것은 공유 스토리지가없는 Microsoft Azure IaaS에서 Linux 장애 조치 클러스터를 구성하는 다음 단계입니다. 가상 네트워크는 Azure 클라우드 내의 고립 된 네트워크로, 사용자 전용입니다.  IP 주소 블록 및 서브넷, 라우팅, 보안 정책 (방화벽), DNS 설정 등을 완벽하게 제어 할 수 있습니다.  Azure Iaas 가상 머신 (VM)을 가상 네트워크로 시작합니다. 가상 네트워크 1 새 가상 네트워크의 이름 ( "가상 네트워크")을 지정하고 가상 네트워크 2이전 단계에서 생성 된 리소스 그룹 ( "cluster-name")을 선택했는지 확인하십시오. 자원").  가상 네트워크는 리소스 그룹과 동일한 지역에 있어야합니다.  우리는 IP 주소와 서브넷 값을 기본값으로 남겨 둘 것입니다. 가상 네트워크 3

저장소 계정 만들기

가상 머신을 프로비저닝하기 전에 저장 될 스토리지 계정을 만들어야합니다. 스토리지 계정 1 다시 한 번, 옵션이 제공 될 때마다 배포 모델로 Resource Manager를 선택하십시오. 다음저장 용량 계정 2으로 새 스토리지 계정에 이름을 지정하십시오.  스토리지 계정 이름은 Azure의 * ALL *에서 고유해야합니다.  Azure Storage에 저장하는 모든 객체에는 고유 한 URL 주소가 있습니다. 스토리지 계정 이름은 해당 주소의 하위 도메인을 구성합니다.)이 예에서는 스토리지 계정 "linuxclusterstorage"를 호출하지만 사용자가 직접 설정할 때와 다른 것을 선택해야합니다. 요구 사항 및 예산에 따라 스토리지 유형을 선택하십시오.  이 안내서의 목적 상, "표준 -RSRS"(즉, 표준 LRS)를 선택했습니다. 로컬 이중화)을 사용하여 비용을 최소화하십시오. 새 저장소 계정이 동일한 위치 (이 예에서는 "West US")의 1 단계에서 만든 리소스 그룹 ( "클러스터 리소스")에 추가되었는지 확인하십시오. 스토리지 계정 3

가용성 집합에 가상 컴퓨터 만들기

이 가이드에서는 3 개의 가상 시스템을 프로비저닝 할 것입니다.  처음 두 VM ( "node1"및 "node2"라고 부름)은 MySQL 데이터베이스와 관련 리소스를 온라인 상태로 가져 오는 클러스터 노드로 작동합니다.  세 번째 VM은 스플릿 브레인에 대한 추가 보호를 위해 클러스터의 감시 서버 역할을합니다. 최대한의 가용성을 보장하기 위해 3 개의 VM이 모두 동일한 가용성 세트에 추가되어 서로 다른 오류 도메인 및 업데이트 도메인에있게됩니다.

"노드 1"VM 만들기

첫 번째 VM ( "node1")을 만듭니다.  이 가이드에서는 CentOS 6.X를 사용합니vm1 만들기다. Resource Manager 배포 모델을 사용해야합니다.  기본적으로 VM을 선택해야합니다. VMvm2 만들기에 나중에 시스템에 SSH하기 위해 사용될 호스트 이름 ( "node1") 및 사용자 이름 / 암호를 지정하십시오.  이 VM을 리소스 그룹 ( "클러스터 리소스")에 추가하고 다른 모든 리소스와 동일한 영역에 상주하는지 확인하십시오. 그런 다음vm3 만들기 인스턴스 크기를 선택하십시오.  사용 가능한 다양한 인스턴스 크기에 대한 자세한 내용을 보려면 여기를 클릭하십시오. 이 안내서에서는 Node1과 Node2에 대해 "A3 Standard"를 사용하여 생산 작업량을 실행하지 않으므로 비용을 최소화합니다.  미러링 모니터 서버에 대해 더 작은 "A1 Standard"크기를 사용했습니다.  자신에게 가장 적합한 인스턴스 크기를 선택하십시오. vm4 만들기 바깥 세상에서 VM에 연결할 수 있으려면 공인 IP 주소를 설정하십시오.  나중에 SSH 및 VNC를 시스템에 추가 할 수 있도록이 작vm5 만들기업을 수행했습니다. 중요 : 기본적으로 VM은 가용성 세트에 추가되지 않습니다.  설정 화면에서 새 가용성 세트를 만들 때 "cluster-availability-set"이라고합니다.  Azure Resource Manager (ARM)를 사용하면 3 개의 오류 도메인으로 가용성 세트를 생성 할 수 있습니다.  기본 값은 다음과 같습니다. VMvm6 만들기 등록 정보를 검토하고 확인을 클릭하여 첫 번째 VM을 만듭니다. vm7 만들기

"node2"및 "witness"VM 만들기

위의 두 단계를 반복하여 VM을 두 개 더 만듭니다.  나는 또 다른 "A3 표준"크기의 VM 인 "node2"와 "A1 Standard"크기의 VM 인 "witness"를 만들었습니다. 유일한 차이점은 이러한 VM을 방금 생성 한 가용성 세트 ( "클러스터 가용성 세트")에 추가한다는 것입니다. 3 개의 VMvm8 만들기을 프로비저닝하는 데 약간의 시간이 걸릴 수 있습니다.  완료되면 Azure 포털의 가상 머신 화면에 VM이 표시됩니다. vm9 만들기

VM 고정 IP 주소 설정

VM은 다음 IP 주소로 설정됩니다.

  • node1 : 10.0.0.4
  • node2 : 10.0.0.5
  • 목격자 : 10.0.0.6

각 VM에 대해이 단계를 반복하십시오.  VM을 선택하고 네트워크 인터페이스 편집 V고정 IP 주소 1M과 관련된 네트워크 인터페이스를 선택하고 IP 주소를 편집하십시오.  "정적"을 선택하고 원하는 IP 주소를 지정하십시오 : 고정 IP 주소 2

클러스터 노드에 데이터 디스크 추가

다음으로 클러스터 노드 ( "node1"및 "node2")에 디스크를 추가해야합니다.  이 디스크는 MySQL 데이터베이스를 저장하고 나중에 노드간에 복제됩니다. 참고 : 추가 디스크를 "감시 (witness)"노드에 추가 할 필요가 없습니다.  "node1"및 "node2". VM을 편집하고 디스크를 선택한 다음 새 디스크를 연결하십시두 번째 디스크 1오. 작업 유형에 따라 디스크 유형 (표준 또는 프리미엄 SSD)과 크기를 선택하십시오.  여기서는 두 클러스터 노드 모두에 10GB 표준 디스크를 만듭니다.  호스트 캐싱이 진행되는 한 "없음"또는 "읽기 전용"캐싱이 좋습니다.  데이터 유실 가능성이 있으므로 "읽기 / 쓰기"사용을 권장하지 않습니다. 두 번째 디스크 2

VNC 액세스를 허용하는 인바운드 보안 규칙 만들기

VM이 NSG (Network Security Group)의 일부인 경우 VM을 생성하는 동안 VM을 비활성화하지 않으면 기본적으로 "Azure 방화벽"에서 열리는 유일한 포트는 SSH (포트 22)입니다.  나중에이 가이드에서 VNC를 사용하여 "node1"의 데스크탑에 액세스하고 GUI를 사용하여 클러스터를 구성 할 것입니다.  인바운드 보안 규칙을 만들어 VNC 액세스를 엽니 다.  이 가이드에서는 포트 5902가 사용됩니다.  VNC 구성에 따라 조정하십시오. 가상 시스템 -> (node1 선택) -> 네트워크 인터페이스 -> (NIC 선택) -> 네트워크 보안 그룹 -> (NSG 선택) -> 인바운드 보안 규칙 -> 추가 인바운드 보안 규칙 1

Linux OS 구성

여기 Azure 포털을 잠시 떠나서 커맨드 라인에서 손을 더럽힐 곳이 있습니다. 리눅스 관리자는 지금까지 익숙해 져야합니다.  Azure에서 Linux VM에 대한 루트 암호가 제공되지 않으므로 VM 생성 중에 지정된 사용자로 로그인하면 "sudo"명령을 사용하여 루트 권한을 얻습니다.

$ sudo su -

/ etc / hosts 편집

DNS 서버를 이미 설치하지 않은 경우 세 서버 모두에서 호스트 파일 항목을 만들어 이름별로 서로 올바르게 해결할 수 있습니다. / etc / hosts 파일의 끝에 다음 행을 추가하십시오.

10.0.0.4 node1
10.0.0.5 노드 2
목격자 10.0.0.6
10.0.0.99 mysql-vip

SELinux 사용 안 함

/ etc / sysconfig / linux를 편집하고 "SELINUX = disabled"로 설정하십시오 :

# vi / etc / sysconfig / selinux

#이 파일은 시스템상의 SELinux 상태를 제어합니다.
# SELINUX =은 다음 세 가지 값 중 하나를 취할 수 있습니다.
# enforcing - SELinux 보안 정책이 시행됩니다.
# permissive - SELinux는 강제가 아닌 경고를 출력합니다.
# disabled - SELinux 정책이로드되지 않습니다.
SELINUX = 비활성화 됨
# SELINUXTYPE = 다음 두 값 중 하나를 취할 수 있습니다.
# targeted - 타겟 프로세스가 보호되고,
# mls - 다단계 보안 보호.
SELINUXTYPE = 타겟팅 됨

클러스터 가상 IP가 작동하도록 iptables 구성

중요 : 클러스터 가상 IP에 연결하여 IP 자원을 모니터링하려면 몇 가지 iptables 규칙을 설정해야합니다.  참고 : 10.0.0.99는 클러스터에서 사용할 가상 IP이고 3306은 MySQL을 사용하는 기본 포트입니다. node1 (10.0.0.4)에서 다음 명령을 실행하십시오.

# iptables --flush
# iptables -t nat -A PREROUTING -p tcp --dport 3306 -j DNAT 
~ 목적지 10.0.0.99:3306
# iptables -t nat -A POSTROUTING -p icmp -s 10.0.0.99 -j SNAT 
--to-source 10.0.0.4
# service iptables save
# chkconfig iptables on

노드 2 (10.0.0.5)에서 다음 명령을 실행하십시오.

# iptables --flush
# iptables -t nat -A PREROUTING -p tcp --dport 3306 -j DNAT 
~ 목적지 10.0.0.99:3306
# iptables -t nat -A POSTROUTING -p icmp -s 10.0.0.99 -j SNAT 
--to-source 10.0.0.5
# service iptables save
# chkconfig iptables on

VNC (및 관련 패키지) 설치 및 구성

Linux 서버의 GUI에 액세스하려면 클러스터를 나중에 구성하려면 클러스터 노드에 VNC 서버를 설치하십시오.  내 설치에서는 "node1"에서만이 작업을 수행했습니다.

# yum은 tigervnc-server xterm을 설치합니다.
# vncpasswd
# vi / etc / sysconfig / vncservers

      VNCSERVERS = "2 : root"
      VNCSERVERARGS [2] = "- 형상 1024x768"

# service vncserver start
# chkconfig vncserver on

랩톱 / 데스크톱에서 VNC 클라이언트를 열고 클러스터 노드의 공용 IP에 연결하여 연결을 테스트하십시오.

클러스터 노드 재부트

SELinux가 비활성화되고 이전에 추가 한 두 번째 디스크가 감지되도록 클러스터 노드를 재부트합니다. "node1"및 "node2"만 재부팅해야합니다.

"데이터"디스크 파티션 및 포맷

이 안내서의 6 단계 ( "클러스터 노드에 데이터 디스크 추가")에서 우리는 다음과 같이 수행했습니다. 보호 할 응용 프로그램 데이터를 저장하기 위해 각 클러스터 노드에 여분의 디스크를 추가했습니다.  이 경우 MySQL 데이터베이스가됩니다. Azure IaaS에서 Linux 가상 머신은 디스크에 대해 다음과 같은 배열을 사용합니다.

  • / dev / sda – OS 디스크
  • / dev / sdb – 임시 디스크
  • / dev / sdc – 첫 번째 데이터 디스크
  • / dev / sdd – 두 번째 데이터 디스크
  • …
  • / dev / sdj – 8 번째 데이터 디스크

이 가이드의 6 단계에서 추가 한 디스크는 / dev / sdc로 표시되어야합니다.  "fdisk -l"명령을 실행하여 확인할 수 있습니다.  / dev / sda (OS)와 / dev / sdb (temporary)는 이미 디스크 파티션을 가지고 있으며 사용 중임을 알 수 있습니다.

# fdisk -l

디스크 / dev / sdb : 306.0 GB, 306016419840 바이트
255 헤드, 63 섹터 / 트랙, 37204 실린더
단위 = 16065 * 512 = 8225280 바이트의 실린더
섹터 크기 (논리 / 물리) : 512 바이트 / 512 바이트
I / O 크기 (최소 / 최적) : 512 바이트 / 512 바이트
디스크 식별자 : 0xd3920649

장치 부팅 시작 끝 블록 ID 시스템
/ dev / sdb1 * 1 37205 298842112 83 Linux

디스크 / dev / sdc : 10.7GB, 10737418240 바이트
255 헤드, 63 섹터 / 트랙, 1305 실린더
단위 = 16065 * 512 = 8225280 바이트의 실린더
섹터 크기 (논리 / 물리) : 512 바이트 / 512 바이트
I / O 크기 (최소 / 최적) : 512 바이트 / 512 바이트
디스크 식별자 : 0x00000000

디스크 / dev / sda : 32.2GB, 32212254720 바이트
255 헤드, 63 섹터 / 트랙, 3916 실린더
단위 = 16065 * 512 = 8225280 바이트의 실린더
섹터 크기 (논리 / 물리) : 512 바이트 / 512 바이트
I / O 크기 (최소 / 최적) : 512 바이트 / 512 바이트
디스크 식별자 : 0x000c23d3

장치 부팅 시작 끝 블록 ID 시스템
/ dev / sda1 * 1 3789 30432256 83 Linux
/ dev / sda2 3789 3917 1024000 82 Linux 스왑 / Solaris

  여기서 파티션 (/ dev / sdc1)을 만들고, 포맷하고, MySQL의 기본 위치 인 / var / lib / mysql에 마운트합니다.  "node1"및 "node2"모두에서 다음 단계를 수행하십시오.

# fdisk / dev / sdc
명령 (m 도움말) : n
명령 동작
확장 된
p 주 파티션 (1-4)
피
파티션 번호 (1-4) : 1
첫 번째 실린더 (1-1305, 기본값 1) : <enter>
기본값 1 사용
마지막 실린더, 실린더 또는 크기 {K, M, G} (1-1305, 기본값 1305) : <Enter>
기본값 1305 사용
 
명령 (m 도움말) : w
파티션 테이블이 변경되었습니다!
파티션 테이블을 다시 읽으려면 ioctl ()을 호출하십시오.
디스크 동기화 중.
[root @ node1 ~] #

# mkfs.ext4 / dev / sdc1
# mkdir / var / lib / mysql

node1에서 파일 시스템을 마운트하십시오.

# mount / dev / sdc1 / var / lib / mysql

MySQL 설치 및 구성

다음으로, MySQL 패키지를 설치하고, 샘플 데이터베이스를 초기화하고, MySQL의 "root"비밀번호를 설정하십시오.

"node1"에서 :

# yum -y mysql mysql-server를 설치한다.
# / usr / bin / mysql_install_db --datadir = "/ var / lib / mysql /"--user = mysql
# mysqld_safe --user = root --socket = / var / lib / mysql / mysql.sock --port = 3306 
--datadir = / var / lib / mysql --log &
#
# # 참고 :이 다음 명령은 모든 호스트의 원격 연결을 허용합니다.  
생산을위한 좋은 생각이 아닙니다!
# echo "사용자 집합 업데이트 Host = '%'여기서 Host = 'node1'; 플러시 권한 | mysql mysql
#
# # MySQL의 루트 암호를 'SIOS'로 설정
# echo "update user set Password = 패스워드 ( 'SIOS') 여기서 User = '루트'; 플러시 권한" 
| mysql mysql

MySQL 구성 파일을 만듭니다. 이를 데이터 디스크에 저장합니다 (나중에 /var/lib/mysql/my.cnf에 복제됩니다).  예:

# vi /var/lib/mysql/my.cnf

[mysqld]
datadir = / var / lib / mysql
소켓 = / var / lib / mysql / mysql.sock
pid-file = / var / lib / mysql / mysqld.pid
사용자 = 루트
포트 = 3306
# 보안 위험을 방지하려면 심볼릭 링크를 비활성화하는 것이 좋습니다.
기호 링크 = 0
 
[mysqld_safe]
log-error = / var / log / mysqld.log
pid-file = / var / run / mysqld / mysqld.pid
 
[고객]
사용자 = 루트
암호 = SIOS

/ etc에있는 원본 MySQL 구성 파일을 삭제합니다 (있는 경우).

# rm /etc/my.cnf

"노드 2"에서 :

"node2"에서는 MySQL 패키지 만 설치하면됩니다.  다른 단계는 필요하지 않습니다.

[root @ node2 ~] # yum -y mysql mysql-server를 설치합니다.

클러스터 설치 및 구성

이제 클러스터를 설치하고 구성 할 준비가되었습니다.  이 안내서에서는 Linux 용 SIOS Protection Suite (일명 SPS-Linux)가 클러스터링 기술로 사용됩니다.  고 가용성 페일 오버 클러스터링 기능 (LifeKeeper)과 블록 레벨 데이터 복제 (DataKeeper)를 단일 통합 솔루션으로 제공합니다.  SPS-Linux를 사용하면 Azure VM의 경우처럼 클러스터 노드에 공유 저장소가 없다는 의미의 "공유되지 않음"클러스터 인 "SANLess"클러스터를 배포 할 수 있습니다.

Linux 용 SIOS Protection Suite 설치

모든 3 개의 VM (node1, node2, witness)에서 다음 단계를 수행하십시오. SPS-Linux 설치 이미지 파일 (sps.img)을 다운로드하고 평가판 라이센스를 얻거나 영구 라이센스를 구입하십시오.  자세한 내용은 SIOS에 문의하십시오. 당신은 그것을 루프백 (loopback) 마운트 할 것이고 루트 ( "root sudo su -"를 사용하여 루트 쉘을 얻는다) 안에 "setup"스크립트를 실행할 것입니다. 예를 들면 :

# mkdir / tmp / install
# mount -o loop sps.img / tmp / install
# cd / tmp / install
# ./설정

설치 스크립트 중에 여러 가지 질문에 대답하라는 메시지가 표시됩니다.  거의 모든 화면에서 Enter 키를 눌러 기본값을 적용합니다.  다음 예외에 유의하십시오.

  • "High Availability NFS"라는 화면에서 고 가용성 NFS 서버를 만들지 않으므로 "n"을 선택할 수 있습니다
  • 설치 스크립트가 끝날 때까지 평가판 라이센스 키를 지금 설치하거나 나중에 설치하도록 선택할 수 있습니다. 나중에 라이센스 키를 설치하므로이 시점에서 "n"을 안전하게 선택할 수 있습니다
  • "설정"의 마지막 화면에서 화면에 표시된 목록에서 설치하려는 ARK (응용 프로그램 복구 키트, 즉 "클러스터 에이전트")를 선택하십시오.
    • ARK는 "node1"및 "node2"에만 필요합니다.  "증인"에 설치할 필요가 없습니다.
    • 위쪽 / 아래쪽 화살표를 사용하여 목록을 탐색하고 스페이스 바를 눌러 다음을 선택하십시오.
      • lkDR – Linux 용 DataKeeper
      • lkSQL – LifeKeeper MySQL RDBMS 복구 키트
    • 그러면 "node1"및 "node2"에 다음과 같은 추가 RPM이 설치됩니다.
      • steeleye-lkDR-9.0.2-6513.noarch.rpm
      • steeleye-lkSQL-9.0.2-6513.noarch.rpm

Witness / Quorum 패키지 설치

LifeKeeper (steeleye-lkQWK) 용 Quorum / Witness Server 지원 패키지는 LifeKeeper 코어의 기존 장애 조치 프로세스와 결합하여 전체 네트워크 장애가 자주 발생할 수있는 상황에 대한보다 높은 수준의 신뢰성으로 시스템 장애 조치를 수행 할 수 있습니다. 이는 효과적으로 "스플릿 브레인"상황의 위험을 크게 줄이면서 장애 극복을 수행 할 수 있음을 의미합니다. 모든 3 개 노드 (node1, node2, witness)에 Witness / Quorum rpm을 설치합니다.

# cd / tmp / install / quorum
# rpm -Uvh steeleye-lkQWK-9.0.2-6513.noarch.rpm

모든 3 노드 (node1, node2, witness)에서 / etc / default / LifeKeeper를 편집하고 NOBCASTPING = 1로 설정합니다. Witness 서버 ( "witness")에서만 / etc / default / LifeKeeper를 편집하고 WITNESS_MODE = off / none

라이센스 키 설치

3 개 노드 모두에서 "lkkeyins"명령을 사용하여 SIOS에서 얻은 라이센스 파일을 설치하십시오.

# / opt / LifeKeeper / bin / lkkeyins <경로 _ 파일> / <파일 이름> .lic

LifeKeeper 시작

3 개 노드 모두에서 "lkstart"명령을 사용하여 클러스터 소프트웨어를 시작하십시오.

# / opt / LifeKeeper / bin / lkstart

LifeKeeper GUI에 대한 사용자 권한 설정

3 개 노드 모두에서 / etc / group을 편집하고 "tony"사용자 (또는 VM 작성 중에 지정한 사용자 이름)를 "lkadmin"그룹에 추가하여 LifeKeeper GUI에 대한 액세스 권한을 부여하십시오.  기본적으로 "root"만이 그룹의 구성원이며 root 암호가 없습니다 :

# vi / etc / group

lkadmin : x : 1001 : root, tony

LifeKeeper GUI 열기

node1의 공용 IP 주소에 VNC 연결을 설정하십시오.  위에서 설명한 VNC 및 인바운드 보안 규칙 구성에 따라 앞에서 지정한 VNC 암호를 사용하여 <Public_IP> : 2에 연결합니다.  로그인 한 후 터미널 창을 열고 다음 명령을 사용하여 LifeKeeper GUI를 실행하십시오.

# / opt / LifeKeeper / bin / lkGUIapp &

첫 번째 클러스터 노드 ( "node1")에 연결하라는 메시지가 나타납니다. lk-gui-connect3

 

  

  •  
  •  

    

  •  
  •  
  •  

       

 

  

  

  

 
 
 
 
 
 
 
 
 

  

 
 
 
 
 
 
 
 
 
 

  

 

  

 
 
 
 
 
 

 

 
 
 
 
 
 
 

 

          

 

   

 
 
 
 
 
 

 

 
 
 
 

   

 

       

 

               

클러스터 연결 테스트

  

 

 

 

 

 
  
 
  
 
  
 
 

   

 
 
  
 
 
  
 
  
 
  
 
 

 

Filed Under: 서버 클러스터 단순화 Tagged With: MySQL, 공유 스토리지가없는 Microsoft Azurea의 Linux 장애 조치 클러스터

Open-iSCSI 초 기자 소프트웨어를 사용하여 iSCSI 대상에 연결하는 방법 안내서

12월 18, 2018 by Jason Aw Leave a Comment

단계별 : Open-iSCSI 초 기자 소프트웨어를 사용하여 iSCSI 대상에 연결

이 기사에서는 기존 iSCSI 대상 (서버)에 연결하기 위해 Open-iSCSI 초 기자 (클라이언트)를 구성하는 방법을 설명합니다.  이 기사에서는 iSCSI 대상을 설정하는 방법을 실제로 검토하지 않겠습니다. 현재 환경에서 사용할 수있는 iSCSI 대상이 없다면 OpenFiler를 살펴보십시오.

이 안내서에서는 CentOS 6.5 시스템을 iSCSI 초기화 프로그램 (클라이언트)으로 사용하고 기존 iSCSI 대상에 연결합니다.

Open-iSCSI 소프트웨어 설치

내 CentOS 6.5 시스템에서 열린 iscsi 개시 프로그램 패키지는 기본적으로 설치되지 않습니다.  다음 명령을 실행하여 시스템에 패키지가 설치되어 있는지 확인할 수 있습니다 : [root @ linux ~] # rpm -qa | grep iscsi-initiator-utils iscsi-initiator-utils 패키지가 아직 설치되지 않은 경우 "yum"명령을 사용하여 설치하십시오 : [root @ linux ~] # yum install iscsi-initiator-utils

iSCSI 서비스 시작

iscsi-initiator-utils pack을 설치 한 후 iscsid 서비스를 시작하고 시스템이 부팅 할 때마다 iscsid 및 iscsi 서비스가 자동으로 시작되도록 구성하십시오. [root @ linux ~] # /etc/init.d/iscsid start [root @ linux ~] # chkconfig iscsid on [root @ linux ~] # chkconfig iscsi on

iSCSI 대상 검색

iSCSI 대상 서버 (즉, iSCSI SAN)의 모든 iSCSI 대상을 검색하려면 iscsiadm 명령을 사용하십시오.  이 경우 OpenFiler를 실행하는 서버) : [root @ linux ~] # iscsiadm -m 검색 -t sendtargets -p 192.168.197.201 192.168.197.201:3260,1 iqn.2006-01.com.openfiler : tsn.target1 참고 : 내 예에서 iSCSI 대상 (SAN)의 호스트 이름은 "openfiler.mydomain.com"이고 IP 주소는 192.168.197.201입니다

iSCSI 대상에 로그인하고 부팅시 자동 로그인 구성

[root @ linux ~] # iscsiadm -m node -T iqn.2006-01.com.openfiler : tsn.target1 -p 192.168.197.201 --login [root @ linux ~] # iscsiadm -m node -T iqn.2006 -01.com.openfiler : tsn.target1 -p 192.168.197.201 --op update -n node.startup -v automatic iSCSI 세션이 활성 상태인지 확인합니다. [root @ linux ~] # iscsiadm -m session tcp : [1] 192.168. 197.201 : 3260,1 iqn.2006-01.com.openfiler : tsn.target1 iSCSI 대상이 [root @ linux ~] # (cd / dev / disk / by-path; ls -l * iscsi * ip-192.168.197.201 : 3260-iscsi-iqn.2006-01.com.openfiler : tsn.target1-lun-0 -> awk '{FS = ""; 인쇄 $ 9 ""$ 10 ""$ 11} ./../sdc 이는 iSCSI 대상이 시스템의 / dev / sdc에 매핑되었음을 알려줍니다.  여기에서 원하는대로 표준 파티션 / 포맷 명령 (fdisk, mkfs 등)을 사용하여 디스크를 설정하십시오! Open-iSCSI 초 기자 소프트웨어를 사용하여 iSCSI 대상에 연결하는 방법을 알고 싶다면 Linux 클러스터링의 허가를 받아 복제 된 블로그를 읽어보십시오.

Filed Under: 서버 클러스터 단순화 Tagged With: iscsi 개시자를여십시오.

클러스터 아키텍처에서 SPoF를 제거하는 모범 사례

12월 16, 2018 by Jason Aw Leave a Comment

클러스터 아키텍처에서 SPoF를 제거하는 모범 사례

클러스터 아키텍처에서 SPoF를 제거하는 모범 사례

체인이 가장 약한 링크만큼이나 강력하기 때문에 고 가용성 클러스터의 효율성은 배포 내에 존재하는 단일 장애 지점 (SPOF)으로 인해 제한됩니다.  절대 최고 수준의 가용성을 보장하려면 SPOF를 제거해야합니다.  이러한 약한 링크를 클러스터에서 제거하는 간단한 방법이 있습니다.

첫 걸음 걸음

클러스터 아키텍처에서 SPoF를 제거해야 할 때 서버, 네트워크 연결 및 저장 장치에 특히주의를 기울여 존재하는 모든 SPOF를 식별 할 수 있습니다.  최신 서버에는 중복 및 오류 수정 메모리, 하드 디스크 전체에 걸친 데이터 스트라이핑 및 대부분의 하드웨어 구성 요소를 SPOF로 제거하는 여러 CPU가 함께 제공됩니다.   그러나 소프트웨어 및 사람의 실수로 인해 서버 또는 응용 프로그램이 중단 될 수 있습니다.  서버 및 핵심 애플리케이션의 상태를 모니터링하고 장애 발생시 자동 복구 조치를 취하는 고 가용성 클러스터 솔루션을 배치하면이 SPOF가 제거됩니다.  모든 클러스터링 솔루션은 서버 기능을 검증하기위한 기본적인 ping 테스트를 제공합니다. 그러나 고급 기능 만이 애플리케이션 상태를 추적하고 탐지 된 오류를 자동으로 복구 할 수 있습니다.  이러한 수준의 탐지 및 복구로 다운 시간을 최소화 할 수 있습니다. 중복성을 위해 클러스터의 모든 구성 요소를 설계하는 것은 가동 시간을 극대화하는 데 가장 중요합니다.  스토리지 연결은 흔히 SPOF를 나타내며 다중 경로 지정은 모든 공유 스토리지 구성으로 구성되는 것이 중요합니다.  Linux DM Multipath (DM-MPIO)는 경로 장애시 대체 경로에 대한 블록 I / O의 재 라우팅을 제공합니다. 이렇게하면 잠재적 인 SPOF로서 서버에서 스토리지로의 경로에있는 모든 구성 요소가 제거되고 장애가 발생할 경우 자동 복구가 제공됩니다.

더 많은 것을 할 수있는 것

그러나 다중 경로 지정으로 구성된 경우에도 공유 스토리지 / SAN은 위치하는 물리적 데이터 센터처럼 단일 실패 지점을 나타냅니다.  추가 보호 기능을 제공하려면 사이트 간 클러스터링과 함께 중요한 데이터의 오프 사이트 복제를 배포해야합니다.  사이트 간의 네트워크 중복성과 결합 된이 최적의 솔루션은 클러스터 아키텍처에서 SPoF를 제거합니다. 실시간 복제를 통해 비즈니스 크리티컬 데이터의 최신 사본을 항상 사용할 수 있습니다. 이 오프 사이트를 백업 데이터 센터 또는 클라우드 서비스에 적용하면 화재, 정전 등으로 인해 발생할 수있는 주요 데이터 센터 중단을 방지 할 수 있습니다. 애플리케이션 레벨 모니터링 및 자동 복구, 공유 스토리지를위한 다중 경로 지정 및 오프 사이트 보호를위한 데이터 복제를 사용하면 클러스터 아키텍처 내에서 잠재적 인 단일 장애 지점 (Single Point of Failure)이 제거됩니다.  클러스터 아키텍처 및 배포 중에 이러한 구성 요소에주의를 기울이면 최대한의 가동 시간을 보장 할 수 있습니다.

클러스터 아키텍처에서 SPoF를 제거하는 최선의 방법을 찾고 있습니다. 로켓 과학이 아닙니다. 우리와 채팅하십시오. Linux 클러스터링의 허가를 받아 복제했습니다.

Filed Under: 서버 클러스터 단순화 Tagged With: 클러스터 아키텍처에서 spof 제거

  • 1
  • 2
  • 3
  • Next Page »

최근 게시물

  • Nutanix 환경에서 고가용성 솔루션을 선택하기 위한 10가지 고려 사항
  • 내 서버는 일회용인가요? 고가용성 소프트웨어가 클라우드 모범 사례에 어떻게 적용되는가?
  • 재난에 취약한 세상을 위한 데이터 복구 전략
  • DataKeeper와 Baseball: 재해 복구에 대한 전략적 접근
  • SQL Server 가동 중지 위험에 대한 예산 책정

가장 인기있는 게시물

우리의 메일 링리스트에 가입하세요

Copyright © 2025 · Enterprise Pro Theme on Genesis Framework · WordPress · Log in