레플리케이션(컴퓨팅)
Replication (computing)컴퓨팅에서의 레플리케이션에는 소프트웨어나 하드웨어 컴포넌트 등의 용장 자원 간의 일관성을 확보하기 위해 정보를 공유하여 신뢰성, 폴트 톨러런스 또는 접근성을 향상시킵니다.
용어집
컴퓨팅에서의 레플리케이션은 다음을 의미합니다.
- 데이터 리플리케이션: 동일한 데이터가 여러 스토리지 디바이스에 저장됩니다.
- 계산 리플리케이션: 같은 계산 태스크가 여러 번 실행됩니다.계산 태스크는 다음과 같습니다.
- 공간 내에서 리플리케이트되어 별도의 디바이스에서 작업이 실행됨
- 1대의 디바이스에서 작업이 반복적으로 실행되는 시간 내에 리플리플리케이션:
공간 내 또는 시간 내 복제는 [1]스케줄링 알고리즘에 링크되는 경우가 많습니다.
복제된 엔티티에 대한 액세스는 일반적으로 복제되지 않은 단일 엔티티에 대한 액세스로 통일됩니다.복제 자체는 외부 사용자에게 투명해야 합니다.장애 시나리오에서는 서비스 [2]품질과 관련하여 복제본의 페일오버는 가능한 한 숨겨야 합니다.
컴퓨터 사이언티스트에 의하면, 레플리케이션은 다음의 어느쪽인가를 나타내고 있습니다.
- 모든 복제본에서 동일한 요청을 처리하여 수행되는 활성 복제
- 패시브 복제: 단일 복제본의 모든 요청을 처리하고 결과를 다른 복제본으로 전송
모든 요청을 처리하기 위해 리더 선택을 통해 하나의 리더 복제본이 지정되면 시스템은 고가용성 클러스터에서 주로 사용되는 프라이머리 백업 또는 프라이머리 복제 방식을 사용합니다.이에 비해 복제품이 요청을 처리하고 새로운 상태를 배포할 수 있는 경우 시스템은 다중 프라이머리 또는 다중 마스터 방식을 사용합니다.후자의 경우 분산 잠금 관리자 등의 분산 동시성 제어를 사용해야 합니다.
로드 밸런싱은 여러 계산의 로드를 여러 머신에 분산하고 장애 발생 시 단일 계산을 폐기할 수 있기 때문에 작업 복제와 다릅니다.그러나 로드 밸런싱에서는 데이터 복제(특히 멀티 마스터 복제)를 내부적으로 사용하여 데이터를 머신 간에 분산하는 경우가 있습니다.
백업은 저장된 데이터 복사본이 [3]장기간 변경되지 않은 상태로 유지된다는 점에서 복제와 다릅니다.반면 복제본은 자주 업데이트되고 기록 상태가 빠르게 손실됩니다.레플리케이션은 분산 시스템의 전체 영역에서 가장 오래되고 중요한 토픽 중 하나입니다.
데이터 리플리케이션과 계산 리플리케이션 모두 착신 이벤트를 처리하기 위한 프로세스가 필요합니다.데이터 복제 프로세스는 수동적이며 저장된 데이터를 유지하고 읽기 요청에 응답하며 업데이트를 적용하기 위해서만 작동합니다.계산 복제는 보통 폴트 톨러런스를 제공하기 위해 수행되며, 한 구성 요소에 장애가 발생하면 작업을 인계합니다.두 경우 모두 복제본이 동일한 이벤트를 동일한 순서로 보고 일관된 상태를 유지하며 모든 복제본이 쿼리에 응답할 수 있도록 하는 것이 기본 요구 사항입니다.
분산 시스템에서의 레플리케이션 모델
데이터 레플리케이션에는 다음과 같은 3가지 모델이 있으며, 각각 고유한 속성과 성능을 가지고 있습니다.
- 트랜잭션 복제: 데이터베이스 등의 트랜잭션 데이터 복제에 사용됩니다.원카피 시리얼라이저빌리티 모델이 채용되어 트랜잭션시스템이 보증하려고 하는 전체적인 ACID(원자성, 일관성, 격리, 내구성) 속성에 따라 복제된 데이터에 대한 트랜잭션의 유효한 결과를 정의합니다.
- 스테이트 머신의 레플리케이션:복제된 프로세스는 결정론적 유한 오토마톤이며 모든 이벤트의 원자 브로드캐스트가 가능하다고 가정합니다.이는 분산된 합의를 기반으로 하며 트랜잭션 복제 모델과 많은 공통점을 가지고 있습니다.이것은, 액티브한 레플리케이션의 동의어로 잘못 사용되는 경우가 있습니다.스테이트 머신의 레플리케이션은, 통상, 복수의 후속의 Paxos 알고리즘으로 구성된 리플리케이트 로그에 의해서 실장됩니다.이것은 구글의 Chubby 시스템에 의해 대중화되었고, 오픈 소스 Keyspace 데이터 [4][5]스토어의 핵심이다.
- 가상 동기화: 메모리 내 데이터를 복제하거나 작업을 조정하기 위해 협력하는 프로세스 그룹이 포함됩니다.모형은 프로세스 그룹이라고 하는 분산 엔티티를 정의합니다.프로세스는 그룹에 가입할 수 있으며 그룹 구성원에 의해 복제된 데이터의 현재 상태를 포함하는 체크포인트가 제공됩니다.그런 다음 프로세스는 그룹에 멀티 캐스트를 전송할 수 있으며 수신 멀티 캐스트를 동일한 순서로 볼 수 있습니다.멤버십 변경은 그룹 내 프로세스에 새로운 "멤버십 뷰"를 제공하는 특수한 멀티캐스트로 처리됩니다.
데이터베이스 리플리케이션
데이터베이스 복제는 많은 데이터베이스 관리 시스템(DBMS)에서 사용할 수 있습니다.일반적으로 원본과 복사본 간의 프라이머리/레플리카 관계에 있습니다.프라이머리는 업데이트를 로그에 기록하고, 업데이트는 복제본으로 파급됩니다.각 복제본은 업데이트를 성공적으로 수신했다는 메시지를 출력하므로 후속 업데이트를 전송할 수 있습니다.
다중 마스터 복제에서는 업데이트를 임의의 데이터베이스 노드에 제출한 후 다른 서버로 리플루할 수 있습니다.이는 종종 바람직하지만 비용과 복잡성이 상당히 증가하여 상황에 따라서는 실용적이지 않을 수 있습니다.다중 마스터 복제에서 가장 일반적인 문제는 트랜잭션 충돌 방지 또는 해결입니다.대부분의 동기(또는 열성) 레플리케이션솔루션은 경합 방지를 실행하는 반면 비동기(또는 느림) 솔루션에서는 경합 해결을 수행해야 합니다.예를 들어, 2개의 노드에서 같은 레코드가 동시에 변경되었을 경우, 열성적인 복제 시스템은 커밋을 확인하기 전에 경합을 검출하고 트랜잭션 중 하나를 중단합니다.느린 복제 시스템에서는 두 트랜잭션 모두 재동기화 중에 충돌 해결을 [6]커밋하고 실행할 수 있습니다.이러한 경합을 해결하려면 트랜잭션의 타임스탬프, 원본 노드의 계층 또는 모든 노드에서 일관되게 결정하는 훨씬 더 복잡한 논리를 사용합니다.
수평 및 수직으로 확장하면 데이터베이스 복제가 더욱 복잡해집니다.수평 스케일업은 더 많은 데이터 복제본이 있는 반면 수직 스케일업은 더 먼 거리에 데이터 복제본이 있습니다.수평 스케일업으로 인해 발생하는 문제는 멀티레이어 멀티뷰 액세스 프로토콜을 통해 해결할 수 있습니다.수직 스케일업의 초기 문제는 주로 인터넷 신뢰성과 성능 [7][8]향상으로 해결되었다.
데이터베이스 서버 간에 데이터를 복제하여 데이터베이스 시스템 전체에서 정보가 일관되게 유지되고 사용자가 DBMS에서 어떤 서버를 사용하고 있는지 알 수 없는 경우 시스템은 복제 투과성을 보인다고 합니다.
그러나 복제 투명성을 항상 확보할 수 있는 것은 아닙니다.데이터가 데이터베이스에 복제되면 CAP 정리 또는 PACELC 정리에 의해 제약됩니다.NoSQL 이동에서는 일반적으로 가용성(A), 파티션 허용 범위(P) 등 원하는 다른 속성과 교환하여 데이터 일관성이 저하됩니다.서비스 프로바이더와 사용자 간의 Service Level Agreement(SLA; 서비스레벨 어그리먼트)로서 기능하는 다양한 데이터 정합성 모델도 개발되고 있습니다.
디스크 스토리지 리플리케이션
액티브(실시간) 스토리지 레플리케이션은, 통상, 블록 디바이스의 업데이트를 복수의 물리 하드 디스크에 배포하는 것으로 실장됩니다.이렇게 하면 파일 시스템 코드가 블록 디바이스 드라이버 계층보다 높은 레벨에서 작동하므로 운영 체제에서 지원되는 파일 시스템을 변경하지 않고 복제할 수 있습니다.하드웨어(디스크 어레이 컨트롤러) 또는 소프트웨어(디바이스 드라이버)에 실장됩니다.
가장 기본적인 방법은 로컬로 연결된 디스크에 일반적인 디스크 미러링입니다.스토리지 업계는 정의를 좁히기 때문에 미러링은 로컬(단거리) 작업입니다.리플리케이션은 컴퓨터 네트워크를 통해 확장할 수 있기 때문에 디스크는 물리적으로 멀리 떨어진 장소에 배치할 수 있으며 일반적으로 프라이머리/레플리카 데이터베이스 리플리케이션 모델이 적용됩니다.레플리케이션의 목적은, 1개의 장소에서 발생할 가능성이 있는 장해나 재해에 의한 피해를 방지하는 것, 또는 그러한 이벤트가 발생했을 경우의 데이터 리커버리 능력을 향상시키는 것입니다.리플리케이션의 경우, 지연 시간은 사이트의 간격이나 사용할 수 있는 레플리케이션의 종류를 결정하기 때문에, 중요한 요인입니다.
이러한 사이트 간 복제의 주요 특징은 비동기식 복제 또는 동기식 복제를 통해 쓰기 작업을 처리하는 방법입니다.동기식 복제는 쓰기 작업에서 대상 서버의 응답을 기다려야 하지만 비동기식 복제는 그렇지 않습니다.
동기 리플리케이션은 로컬 스토리지와 리모트 스토리지 양쪽에서 승인될 때까지 쓰기 작업이 완료되었다고 간주되지 않는 원자성 쓰기 작업을 통해 "데이터 손실 없음"을 보장합니다.대부분의 애플리케이션은 추가 작업을 진행하기 전에 쓰기 트랜잭션이 완료될 때까지 대기하기 때문에 전반적인 성능이 크게 저하됩니다.기본적으로 최소 지연 시간은 빛의 속도에 따라 결정되므로 거리에 비례하여 성능이 저하됩니다.10km 거리의 경우 가장 빠른 왕복에는 67μs가 소요되지만 로컬 캐시된 전체 쓰기는 약 10~20μs로 완료됩니다.
비동기 리플리케이션에서는, 기입 조작은, 로컬 스토리지에서 확인되는 대로 완료되는 것으로 간주됩니다.원격 스토리지는 약간의 지연으로 업데이트됩니다.퍼포먼스는 대폭 향상되지만 로컬 스토리지에 장애가 발생했을 경우 리모트 스토리지에 최신 데이터 복사가 유지되지 않을 수 있습니다(최신 데이터는 손실될 수 있습니다).
일반적으로 반동기 복제는 로컬 스토리지에서 확인되고 원격 서버에서 수신 또는 기록되면 쓰기 작업이 완료된 것으로 간주됩니다.실제 리모트 쓰기는 비동기적으로 실행되므로 퍼포먼스는 향상되지만 리모트 스토리지는 로컬 스토리지에 비해 뒤떨어지기 때문에 로컬 스토리지 [citation needed]장애 시에도 내구성(즉, 매끄러운 투명성)을 보장할 수 없습니다.
특정 시점 복제는 primary 스토리지 대신 복제되는 정기적인 스냅샷을 생성합니다.이는 전체 볼륨이 아니라 변경된 데이터만 복제하기 위한 것입니다.이 방법을 사용하여 복제되는 정보가 적기 때문에 광섬유 회선이 아닌 iSCSI나 T1 등의 저렴한 대역폭 링크를 통해 복제될 수 있습니다.
실장
많은 분산 파일 시스템은 복제를 사용하여 내결함성을 보장하고 단일 장애 지점을 방지합니다.
많은 상용 동기 리플리케이션 시스템은 리모트 레플리카에 장애가 발생하거나 접속이 끊겼을 때 정지하지 않고 데이터 손실을 전혀 보증하지 않는 동작으로 로컬에서 계속 동작하며 원하는 제로 리커버리 포인트 목표를 달성하지 못하고 있습니다.
Wide Area Network(WAN; 광역 네트워크) 최적화 기술을 적용하여 지연에 의해 부과되는 제한에 대처할 수 있습니다.
파일 기반 리플리케이션
파일 기반 복제는 스토리지 블록 수준이 아닌 논리적 수준(즉, 개별 데이터 파일)에서 데이터 복제를 수행합니다.이를 수행하는 방법은 여러 가지가 있으며, 거의 전적으로 소프트웨어에 의존합니다.
커널 드라이버로 캡처
커널 드라이버(특히 필터 드라이버)를 사용하면 파일 시스템 기능에 대한 콜을 대행 수신하여 발생한 액티비티를 캡처할 수 있습니다.이는 실시간 활성 바이러스 검사기가 사용하는 것과 동일한 유형의 기술을 사용합니다.이 수준에서는 파일 열기, 쓰기, 삭제 등의 논리 파일 작업이 캡처됩니다.커널 드라이버는, 이러한 커맨드를 다른 프로세스(통상은 네트워크를 개입시켜 다른 머신에 송신해, 소스 머신의 조작을 모방합니다.블록 레벨 스토리지 복제와 마찬가지로 파일 레벨 복제도 동기 모드와 비동기 모드를 모두 허용합니다.동기 모드에서는 소스 시스템에서 쓰기 작업이 보류되며 대상 시스템이 성공적인 복제를 승인할 때까지 허용되지 않습니다.동기 모드는 몇 가지 솔루션이 존재하지만 파일 복제 제품에서는 덜 일반적입니다.
파일 레벨의 레플리케이션 솔루션을 사용하면, 파일의 장소와 타입에 근거해 레플리케이션에 관한 정보에 근거해 결정을 내릴 수 있습니다.예를 들어 비즈니스 가치가 없는 임시 파일이나 파일 시스템의 일부를 제외할 수 있습니다.전송되는 데이터는 보다 세분화될 수 있습니다.어플리케이션이 100바이트를 쓸 경우 완전한 디스크 블록(일반적으로 4,096바이트) 대신 100바이트만 전송됩니다.이것에 의해, 소스 머신으로부터 송신되는 데이터의 양과 타겟 머신의 스토리지 부하가 큰폭으로 경감됩니다.
이 소프트웨어 전용 솔루션의 단점으로는 운영체제 수준에서 구현과 유지보수를 해야 하는 요건과 기계의 처리능력에 대한 부담이 증가합니다.
파일 시스템 저널 복제
데이터베이스 트랜잭션 로그와 마찬가지로 많은 파일 시스템에는 작업을 저널링할 수 있는 기능이 있습니다.저널은 정기적으로 또는 스트리밍을 통해 실시간으로 다른 머신으로 전송할 수 있습니다.레플리카측에서는, 저널을 사용해 파일 시스템의 변경을 재생할 수 있습니다.
주목할 만한 구현 중 하나는 Microsoft의 System Center Data Protection Manager(DPM)로, 2005년에 출시되었으며 정기적인 업데이트를 수행하지만 실시간 [citation needed]복제를 제공하지 않습니다.
배치 리플리케이션
이는 소스 및 대상 파일 시스템을 비교하여 대상이 소스와 일치하는지 확인하는 프로세스입니다.주요 이점은 이러한 솔루션이 일반적으로 무료이거나 저렴하다는 것입니다.단점은 동기화 프로세스가 상당히 시스템 집약적이며 결과적으로 이 프로세스는 일반적으로 자주 실행되지 않는다는 것입니다.
주목할 만한 구현 중 하나는 rsync입니다.
파일 내의 레플리케이션
페이징 운영체제에서는 회전 지연을 줄이기 위해 페이징 파일 내의 페이지가 트랙 내에서 복제되는 경우가 있습니다.
IBM의 VSAM에서는 회전 대기 시간을 줄이기 위해 인덱스 데이터가 트랙 내에서 복제되는 경우가 있습니다.
복제를 사용하는 또 다른 예는 시스템의 여러 노드가 동일한 메모리 페이지를 공유하는 분산 공유 메모리 시스템에 나타납니다.이는 보통 각 노드에 이 페이지의 개별 복사본(복제)이 있음을 의미합니다.
프라이머리 백업 및 멀티 프라이머리 리플리케이션
레플리케이션에 대한 기존의 접근방식은 프라이머리 백업 모델에 근거하고 있습니다.프라이머리 백업 모델에서는 디바이스 또는 프로세스가 1개 이상의 다른 프로세스 또는 디바이스를 일방적으로 제어합니다.예를 들어 프라이머리는 몇 가지 계산을 수행하여 업데이트 로그를 백업(스탠바이) 프로세스로 스트리밍하고 프라이머리에 장애가 발생했을 때 처리를 인계할 수 있습니다.이 방법은 데이터베이스 복제에 일반적으로 사용됩니다. 그러나 장애 발생 시 로그의 일부가 손실될 경우 백업이 프라이머리와 동일한 상태가 아니므로 트랜잭션이 손실될 수 있습니다.
프라이머리 백업스킴의 약점은 1개만 실제로 작업을 수행한다는 것입니다.폴트 톨러런스는 향상되지만 동일한 백업 시스템을 사용하면 비용이 두 배로 증가합니다.이러한 이유로 1985년부터 분산 시스템 연구 커뮤니티는 데이터 복제의 대체 방법을 모색하기 시작했습니다.이 작업의 성장으로 복제품 그룹이 협력할 수 있는 체계가 등장하여 각 프로세스가 백업 역할을 하면서 워크로드의 공유를 처리할 수 있게 되었습니다.
컴퓨터 사이언티스트 Jim Gray는 트랜잭션 모델 하에서 멀티 프라이머리 레플리케이션 스킴을 분석하여 "복제의 위험과 해결책"[9][10]이라는 접근법에 회의적인 널리 인용된 논문을 발표했습니다.그는 데이터베이스가 nn개의 분리된 하위 데이터베이스로 취급될 수 있도록 데이터가 어떤 자연스러운 방식으로 분할되지 않는 한 동시성 제어 충돌은 심각한 성능 저하를 초래하고 복제 그룹의 속도가 n의 함수로서 느려질 수 있다고 주장했다.그레이는 가장 일반적인 접근법이 O(n†)와 같이 확장되는 열화를 초래할 가능성이 높다고 제안했다.데이터를 분할하는 솔루션은 데이터에 실제로 자연스러운 분할 키가 있는 경우에만 사용할 수 있습니다.
1985-1987년에 가상 동기 모델이 제안되어 널리 채택된 표준으로 등장했습니다(IS Toolkit, Horus, Transis, Ensemble, Totem, Spread, C-Ensemble, Phoenix 및 Quicksilver 시스템에서 사용되었으며 CORBA 내결함성 컴퓨팅 표준의 기초가 되었습니다).가상 동기화를 사용하면 프로세스 그룹이 협력하여 요청 처리의 일부 측면을 병렬화하는 다중 프라이머리 접근 방식을 사용할 수 있습니다.이 스킴은 일부 형식의 메모리 내 데이터에만 사용할 수 있지만 그룹 크기의 선형 속도 향상을 제공할 수 있습니다.
많은 현대 제품들이 비슷한 계획을 지원한다.예를 들어, Spread Toolkit은 동일한 가상 동기 모델을 지원하며 멀티 프라이머리 복제 스킴을 구현하기 위해 사용할 수 있습니다.또, 이러한 방법으로 C-Ensemble 또는 Quicksilver를 사용할 수도 있습니다.WANdisco에서는 네트워크상의 모든 노드가 완전 복사 또는 복제이므로 네트워크상의 모든 노드가 동시에 활성화 되어 있는 액티브한 레플리케이션이 가능합니다.이 스킴은 Wide Area Network(WAN; 와이드 에리어 네트워크상의 모든 노드가 동시에 활성화 되어 있습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ 만수리, 나즈메, 골람, 호신 다스트하이비파드, 에산만수리."데이터 그리드의 데이터 가용성을 개선하기 위한 데이터 복제와 스케줄링 알고리즘의 조합", Journal of Network and Computer Applications (2013)
- ^ V. 안드로니쿠, K. 마모라스, K.Tserpes, D.Kyriazis, T. Varvarigou, "Grid 환경에서의 동적 QoS 인식 데이터 복제", Elsevier 차세대 컴퓨터 시스템 - The International Journal of Grid Computing and eScience, 2012
- ^ "Backup and Replication: What is the Difference?". Zerto. February 6, 2012.
- ^ Marton Trencseni, Attila Gazso (2009). "Keyspace: A Consistently Replicated, Highly-Available Key-Value Store". Retrieved 2010-04-18.
- ^ Mike Burrows (2006). "The Chubby Lock Service for Loosely-Coupled Distributed Systems". Archived from the original on 2010-02-09. Retrieved 2010-04-18.
- ^ "Replication -- Conflict Resolution". ITTIA DB SQL™ User's Guide. ITTIA L.L.C. Archived from the original on 24 November 2018. Retrieved 21 October 2016.
- ^ Dragan Simic; Srecko Ristic; Slobodan Obradovic (April 2007). "Measurement of the Achieved Performance Levels of the WEB Applications With Distributed Relational Database" (PDF). Electronics and Energetics. Facta Universitatis. p. 31–43. Retrieved 30 January 2014.
- ^ Mokadem Riad; Hameurlain Abdelkader (December 2014). "Data Replication Strategies with Performance Objective in Data Grid Systems: A Survey" (PDF). Internal journal of grid and utility computing. Underscience Publisher. p. 30–46. Retrieved 18 December 2014.
- ^ 레플리케이션과 솔루션의 위험성
- ^ 1999년 ACM SIGMOD International Conference on Management of Data: SIGMOD '99, 필라델피아, PA, 미국; 1999년 6월 1~3일, 제 28권; 페이지 3.