고가용성을 보장하기 위해 이중화 계획 선택 방법

고가용성을 보장하기 위해 이중화 계획 선택 방법

2022-06-01 last update

7 minutes reading PostgreSQL Security MySQL Scaling Conceptual

소개


이 문서의 첫 번째 섹션에서는 VPS를 액세스할 수 있습니다.
본고는 불필요한 개념을 탐구할 것이다.중복 데이터는 백업이 아니지만 데이터에 액세스하는 주요 방법을 사용할 수 없을 때 페일오버를 제공합니다.
시스템에서 복제를 구현하는 방법은 주로 데이터를 어떻게 사용하는지, 어떤 고장을 방지하는지, 방문자가 서버와 어떻게 상호작용하는지에 달려 있습니다.

RAID 이중화


가장 일반적인 복제 유형은 RAID일 수 있습니다.RAID는 개별 디스크의 이중화된 어레이를 나타냅니다.이것은 대부분의 설정에서 디스크가 어떤 방식으로 서로 미러링된다는 것을 의미한다.
가장 기본적인 중복 RAID 구현은 RAID 1 어레이입니다.이 유형의 어레이는 한 디스크를 다른 디스크로 미러링합니다.즉, 한 디스크에 장애가 발생하면 다른 디스크는 여전히 서비스를 제공하고 데이터를 쓸 수 있습니다.시스템은 모든 데이터 위치에서 데이터를 읽을 수 있기 때문에 이런 유형의 진열은 읽는 속도를 높일 수 있다.
이 예도 RAID와 중복 설정이 백업에 적합하지 않은 이유를 설명하는 좋은 예입니다.파일을 삭제하면 영원히 사라집니다.변경할 때마다 두 디스크에 즉시 적용됩니다.
RAID 복제는 낮은 수준에서 구현되므로 Digital Ocean VPS에서 RAID 구현을 제어할 수 없습니다.

블록 레벨 이중화


이중화를 제공하는 또 다른 방법은 전체 블록 구조를 대칭복사하는 것이다.DRBD 또는 분산 복제 블록 장치는 여러 블록 장치를 이중화하는 방법입니다.
이것은 미러링된 RAID 어레이와 유사하게 보일 수 있으며 어떤 면에서는 그렇습니다.차이점은 복사가 발생하는 위치에 있다.RAID를 사용하면 애플리케이션 수준 이하에서 이중화가 발생합니다.RAID 카드 또는 RAID 소프트웨어는 물리적 스토리지 디바이스를 관리하고 애플리케이션에 단일 모양새 디바이스를 제공합니다.
한편, DRBD는 완전히 다르게 구성됩니다.DRBD 설정에서 각 하드웨어 스택은 완전히 미러링됩니다.애플리케이션 인터페이스도 미러링됩니다.이것은 응용 프로그램의 고장을 처리할 수 있다는 것을 의미한다. 완전히 독립된 기계가 있기 때문에 데이터의 복사본을 처리할 수 있기 때문이다.첫 번째 서버에 전원 장애가 발생하면 두 번째 서버는 여전히 유효하게 실행됩니다.

SQL 복제


중요한 데이터가 SQL 데이터베이스(MySQL, MariaDB, PostgreSQL 등)에 저장되면 내장된 복제 기능을 활용할 수 있습니다.이러한 기능은 운영 서버가 다운될 때 페일오버 시스템을 제공하는 데 사용됩니다.

주종 복제


기본 SQL 복제 유형은 마스터 구성입니다.이 장면에서 당신은 메인 데이터베이스 서버를 가지고 있습니다. 이것은'메인'서버라고 합니다.이 서버는 모든 쓰기 및 업데이트를 수행합니다.이 서버에서 온 데이터는 보조 서버로 계속 복사됩니다.이 서버는 읽을 수 있지만 쓸 수 없습니다.
이 설정을 사용하면 여러 대의 컴퓨터에서 읽을 수 있습니다. 이것은 응용 프로그램의 성능을 현저하게 향상시킬 수 있습니다.
이러한 성능 향상은 장점이지만 주종 복제를 설정하는 주요 원인 중 하나는 페일오버를 처리하기 위해서입니다.운영 서버를 사용할 수 없는 경우에도 보조 서버에서 데이터를 읽을 수 있습니다.또한 운영 서버가 장기간 오프라인 상태인 경우 보조 서버를 주 서버로 전환할 수 있습니다.
실제로 주된 복제는 우리가 중복과 백업이 어떻게 서로 보완되는지 이해하기 시작한 분야이다.마스터 구성에서 데이터를 마스터 장치에서 마스터 장치로 복사할 수 있습니다.그런 다음 복제를 일시적으로 비활성화하여 보조 서버에서 정보를 일관되게 유지할 수 있습니다.여기에서 당신은 모든 적당한 백업 메커니즘을 사용하여 데이터베이스를 백업할 수 있습니다.
explored different solutions for backing up data에 대한 자세한 내용을 보려면 여기를 클릭하십시오.이 링크를 참조하십시오.

운영 / 운영 복제


두 번째 복제 형식은 주-주복제라고 한다.이 구성을 사용하면 두 서버에 모두 마스터 기능을 사용할 수 있습니다.이것은 모든 서버가 쓰기와 업데이트를 받아들일 수 있고 변경 사항을 다른 서버로 전송할 수 있다는 것을 의미한다.이런 설정은 주종 설정의 장점을 계승하지만 부하 균형 메커니즘을 통해 쓰기 조작을 정확하게 분포하면 쓰기 성능을 향상시킬 수 있다.
이것은 한 서버가 다운되면 다른 서버가 실행되고 요청을 받아들일 준비를 하고 있다는 것을 의미한다.구성이 더욱 복잡하지만 문제가 발생할 때의 페일오버는 주종군더기 없이 복잡하지 않다. 왜냐하면 데이터베이스에서 주종 데이터베이스로 전환할 필요가 없기 때문이다.
운영 서버 중 하나를 오프라인으로 설정하면 백업 메커니즘과 함께 사용할 수도 있습니다.백업이 정상적으로 실행될 수 있도록 정적 데이터베이스를 유지해야 하기 때문에 백업이 끝날 때까지 데이터를 수정하거나 쓰지 않도록 해야 합니다.
how to configure MySQL master-slave replication에 대한 자세한 내용은 여기를 클릭하십시오.

예비 대안으로 배포


분포식 시스템은 전통적인 불필요한 설정의 많은 장점을 제공했다.
위의 미러 RAID 레벨(RAID 1)을 보았습니다.또 다른 일반적인 RAID 레벨은 RAID 5입니다.이 RAID는 여러 드라이브에 걸쳐 데이터를 배포하고 각 드라이브에 걸쳐 데이터 패리티를 기록합니다.이것은 하나의 드라이브가 사망하면 다른 드라이브의 짝짓기 정보를 조합하여 모든 종류의 업무를'재구성할 수 있다는 것을 의미한다.
이것은 서로 다른 디스크 간에 데이터를 분배하는 방법을 제공하고 단일 디스크 고장도 처리할 수 있다.
분산 시스템은 하드웨어를 기반으로 할 필요가 없다.그리고 상당히 많은 데이터베이스와 다른 소프트웨어 솔루션은 분포식 데이터를 관건적인 특성으로 설계했다.
이 방면의 한 예는 Riak, 분포식 데이터베이스이다.Riak 노드는 모두 동일합니다.서로 다른 부품 사이에는 주종 관계가 없다.데이터베이스에 저장된 대상은 복제된 것이기 때문에 이 방면에 전통적인 군더더기가 존재한다.
그러나 모든 노드가 전체 데이터베이스를 포함하는 것은 아니다.반대로 데이터는 고르게 노드 사이에 분포된다.복사된 객체는 하드웨어 장애 시 가용성을 제공하기 위해 서로 다른 노드에 배치됩니다.
데이터베이스에서 이 개념을 실현하는 또 다른 좋은 예는 Cassandra다.그것은 Riak와 같은 원칙을 바탕으로 하지만 다른 방식으로 실현된다.

결론


보시다시피 여러 가지 불필요한 옵션이 있습니다. 모든 옵션은 각자의 장점과 단점을 가지고 있습니다.이것은 주로 당신이 예측하고자 하는 문제와 당신이 시스템의 어떤 부분적인 고장이 받아들일 수 없다고 생각하는지에 달려 있다.네가 상상한 바와 같이, 이러한 기술의 결합은 언젠가는 더욱 전면적인 안전망을 만들어 낼 것이다.
이 때, 중복 설정이 백업을 대체할 수 없다는 것을 볼 수 있을 것입니다.중복 시스템은 항상 실행되고 항상 변경 사항을 미러링해야 하며 이는 구성된 모든 지점에서 데이터를 쉽게 제거할 수 있습니다.
데이터 무결성 및 액세스가 중요한 애플리케이션의 경우 이중화와 백업이 매우 중요합니다.올바른 구현은 사용자가 제품을 항상 사용할 수 있도록 보장하며 중요한 데이터는 손실되지 않습니다.