NCache 고가용성 및 정기 유지 관리

이 비디오는 방법을 보여줍니다 NCache 100% 가동 시간과 데이터 안정성을 제공하여 데이터 가용성을 높게 유지합니다. 이 특정 데모에서는 실행 중인 캐시 클러스터에서 캐시 서버 노드를 시작 및 중지하고 방법을 보여 드리겠습니다. NCache 다운타임이나 데이터 손실 없이 클라이언트 애플리케이션을 위해 성공적으로 처리합니다.

오늘은 '네트워크에서 고가용성을 달성하는 방법'에 대해 이야기하겠습니다. NCache 그리고 어떻게 NCache 고가용성을 제공합니다.' 아시다시피, NCache 다운타임을 용납할 수 없는 미션 크리티컬 애플리케이션에 사용됩니다.

다음은 여러 서버의 캐시 클러스터를 사용하는 응용 프로그램 서버 팜이 있고 여러 데이터 소스가 있는 그림입니다. 그리고 이들은 일반적으로 최소 XNUMX개 이상의 캐시 서버입니다.

NCache 미션 크리티컬 애플리케이션에 사용
NCache 미션 크리티컬 애플리케이션에 사용

그리고 NCache 당신에게 제공 동적 캐시 클러스터링, 애플리케이션을 중지하지 않고 런타임에 캐시 서버를 추가하거나 제거할 수 있습니다. NCache PXNUMXP 아키텍처를 가지고 있습니다. 그리고 오늘 영상으로 보여드리겠습니다.

파티션-복제 토폴로지를 사용할 것입니다. 여기에서 시작하여 더 많은 서버를 계속 추가하고 이 토폴로지에서 모든 서버에 하나의 파티션이 있는 것을 볼 수 있습니다. 따라서 하나의 서버로 시작하면 파티션이 하나뿐이고 복제본도 동일한 파티션에 있거나 복제본이 없을 수 있으며 두 번째 서버를 추가하면 두 개의 파티션이 생깁니다. 따라서 캐시의 전체 데이터는 각각 절반씩 분할되고 각 파티션은 다른 서버에 복제됩니다.

캐싱 토폴로지: 파티션 복제 캐시

그런 다음 세 번째 서버를 추가하면 세 개의 파티션이 생기고 동일한 데이터가 세 개의 파티션으로 나뉩니다. 이제 각 파티션에는 데이터의 절반이 아닌 XNUMX/XNUMX의 데이터가 있으며 각 파티션은 다른 서버에 백업됩니다. 그래서, 이것이 제가 보여드릴 것입니다.

런타임 시 클라이언트 및 서버 추가

제품으로 빠르게 이동하여 보여드리겠습니다. 사용할 캐시 서버가 세 개 있습니다. 하나부터 시작해서 계속 추가하겠습니다. 그런 다음 클라이언트가 하나 있습니다. 실제로 지금 클라이언트 컴퓨터에 앉아 있습니다. 그래서 이것을 클릭하고 NCache 웹 관리자, 웹 기반 관리 도구입니다. 그리고 현재는 이렇게 NCache 설치할 때 온다 NCache. 그래서 설치하신대로 NCache 이 세 서버 모두에서 각 서버에는 설치된 'democache'가 있습니다. 이제 실제로 데모 캐시를 시작하겠습니다. 그러면 데모 캐시가 시작되는 것을 볼 수 있습니다.

캐시 시작
캐시 시작

시작되면 그에 대한 통계도 열고 모니터 캐시도 수행합니다. 모니터링은 저에게 아주 좋은 대시보드를 제공합니다. 서버 대시보드가 ​​있고 보고서 대시보드가 ​​있습니다. 보고서 대시보드는 통계 창과 매우 유사합니다. 그래서 그냥 서버대시보드에 붙이고 여기에 두겠습니다. 이제 이 작업을 실행했으므로 이제 클라이언트를 실행해야 합니다.

NCache Powershell 기반 스트레스 테스트 도구와 함께 제공됩니다. 그래서 단어를 입력해 보겠습니다. NCache. Powershell 관리가 있으므로 'Test-stress'를 실행하고 바로 여기에서 볼 수 있듯이 'democache'라는 내 캐시 이름을 지정합니다.테스트 스트레스 데모캐시'. 캐시 이름은 대소문자를 구분하지 않으므로 원하는 방식으로 입력할 수 있습니다.

스트레스 테스트 도구
스트레스 테스트 도구

응용 프로그램을 시작할 때 이것은 내 스트레스 테스트 도구입니다. 이것이 존재하는 이유는 테스트를 시작하기 위해 프로그래밍을 할 필요가 없기 때문입니다. NCache. 이 스트레스 테스트 도구를 통해 스트레스를 시뮬레이션할 수도 있습니다. 이것이 스트레스 테스트 도구라고 불리는 이유입니다. 그러나 이것이 귀하의 응용 프로그램이라고 상상해보십시오.

이제 통계 창으로 이동하면 약 400개의 항목이 계속 증가하는 것을 볼 수 있습니다. 한 클라이언트로부터 초당 약 981개 또는 약 1000개의 요청이 있습니다.

통계 창
통계 창

이제 두 번째 클라이언트 응용 프로그램을 실행하겠습니다. 따라서 여러 스트레스 테스트 도구 인스턴스를 시작하거나 죄송합니다 Powershell 인스턴스를 시작하여 여러 클라이언트를 계속 추가할 수 있습니다. 그래서 여기 오면 다시 말하지만 테스트 스트레스 데모캐시. 이렇게 하면 이제 카운트 또는 요청이 거의 두 배가 된 것을 볼 수 있습니다. 왜냐하면 이 그림에서 보듯이 각 클라이언트는 자신의 트랜잭션 부하를 서버에 싣고 있기 때문에 서버의 트랜잭션 용량이 거의 두 배가 되었습니다. 또한 여기에서 내 서버 대시보드에서 하나의 노드 캐시 클러스터에 연결된 두 개의 클라이언트가 있음을 볼 수 있습니다.

두 번째 클라이언트 추가
두 번째 클라이언트 추가

따라서 현재 사용하고 있는 클러스터에는 서버가 하나만 있습니다. 자, 이제 실생활에서 일어나는 일이 용량이 증가하고 최소 XNUMX개의 캐시 서버를 권장한다고 가정해 보겠습니다. 따라서 여기에서 실행 중인 캐시 서버가 하나만 있어서는 안 됩니다. 하지만 저는 한 개로 시작하고 싶었기 때문에 런타임에 두 개의 서버를 추가하여 보여드릴 수 있습니다.

이제 다음으로 할 일은 두 번째 캐시 서버를 추가하는 것입니다. 추가할 두 번째 캐시 서버는 117입니다. 계속해서 117을 추가라고 하겠습니다. 추가되었지만 중지되었습니다. 여기를 클릭하고 시작이라고 말하겠습니다. 그러면 서버 노드가 시작됩니다.

두 번째 캐시 서버 추가
두 번째 캐시 서버 추가

여기에서 시작하면 두 번째 노드가 여기 저기 추가되는 것을 볼 수 있습니다. 그리고 캐시 카운트가 떨어진 카운트. 캐시 카운트가 실제로 그렇게 두 배였다는 것을 보여주지 않았습니다. 이제 두 개의 서버이므로 캐시 카운트가 떨어지고 초당 트랜잭션 요청이 절반으로 나뉩니다. 요청의 절반이 이 캐시 서버에서 처리되고 있기 때문에 절반은 이 캐시 서버에서 처리되고 있습니다. 그래서 이렇게 카운트가 떨어졌습니다.

통계

그래서 이제 응용 프로그램을 중지하지 않고 캐시 서버를 추가했습니다. 여기에서 스트레스 테스트 도구가 실행되고 있고 여기에서도 실행되고 있는 것을 볼 수 있습니다. 전혀 문제가 없습니다. 이제 일어난 일은 내 파티션, 즉 하나의 서버였지만 지금은 두 개의 서버 클러스터입니다. 따라서 파티션 1500, 파티션 XNUMX가 있고 모든 파티션이 다른 서버에 백업됩니다. 그래서 그것이 무엇인지 보여드리겠습니다. 여기 파티션 XNUMX이 있습니다. 이렇게 많은 항목이 있고 복제본이 바로 여기에 있습니다. 보시다시피 이것은 이것과 거의 같은 양입니다. 그리고 이것은 나의 파티션 XNUMX입니다. 약 XNUMX개 정도 있고 여기에 백업되어 있습니다.

비동기 복제

이제 이 복제는 비동기식입니다. 따라서 이 수치가 항상 정확한 것은 아닙니다. 하지만 거래를 중단해도 결국은 정확해집니다.

좋아요. 이제 트랜잭션 로드가 계속 증가한다고 가정해 보겠습니다. 사업이 잘 되고 있고 트랜잭션 용량을 늘려야 해서 서버를 더 추가해야 합니다. 클라이언트를 더 추가할 수도 있습니다. 그렇게 될 것이기 때문입니다.

첫 번째는 더 많은 클라이언트를 추가한다는 것입니다. 가장 먼저 할 일은 더 많은 클라이언트, 더 많은 애플리케이션 서버를 추가하는 것이기 때문입니다. 그리고 그 결과 트랜잭션 부하가 높아집니다. 이 트랜잭션 부하가 증가할 것입니다. 서버당 1182개가 아닌 800개가 되었고 실제로는 1200개가 되어서 훨씬 더 많아졌습니다.

더 높은 트랜잭션 부하
더 높은 트랜잭션 부하

따라서 트랜잭션 부하는 계속해서 증가합니다. 여기서도 볼 수 있습니다. 각 서버에서 초당 요청을 볼 수 있습니다. 서버를 더 추가함에 따라 분산되고 있으며 증가하고 있습니다.

이제 더 많은 클라이언트를 추가했으므로 어느 시점에서 트랜잭션 용량이 최대치에 도달했거나 각 서버에 있는 메모리의 저장 용량이 최대치에 도달했기 때문에 캐시 서버가 느려지기 시작했음을 알게 될 것입니다. 따라서 서버를 하나 더 추가해야 합니다.

어쨌든 내가 말했듯이 최소 두 대의 서버를 권장합니다. 따라서 최소한 프로덕션 환경에 단일 서버 클러스터가 있어서는 안 됩니다. 고가용성을 제공하지 않기 때문입니다. 따라서 최소 XNUMX개가 있고 이 XNUMX개의 용량 제한에 도달하면 세 번째 서버를 추가해야 합니다.

세 번째 서버는 어떻게 추가합니까? 바로 여기 157 세 번째 서버가 있습니다. 바로 여기로 와서 서버를 추가한다고 하면 157입니다. 그래서 여기로 와서 157을 추가하겠습니다. 여기로 와서 이것을 선택하고 시작이라고 말하겠습니다.

세 번째 캐시 서버 추가
세 번째 캐시 서버 추가

내가 시작하면이 1800이 내려갈 것입니다. 세 번째 서버가 시작되자마자 로드를 공유할 것입니다. 보세요, 각각 약 1100개로 줄었습니다.

부하 공유
부하 공유

이제 두 개가 아닌 세 개의 서버가 있고 여기에서 보여드린 것처럼 세 개의 서버가 있으면 세 개의 파티션이 있기 때문입니다. 따라서 이 두 파티션의 데이터는 세 개의 파티션으로 더 나뉩니다.

따라서 이제 각 파티션에는 다른 서버에 대한 복제본이 있으며 데이터가 실제로 배포되는 방식입니다. 따라서 애플리케이션이나 캐시를 중지하지 않고 더 많은 서버를 추가할 수 있음을 보여 주었습니다. 그래서 모든 것이... 내 말은 응용 프로그램이 이 변경 사항에 영향을 받지 않고 더 많은 서버를 추가한다는 것입니다. NCache 그렇게 할 수 있습니다.

좋아요. 이제 서버도 다운해야 할 때가 왔습니다. 서버를 다운시키는 방법에는 두 가지가 있습니다. 하나는 용량을 줄이고 있기 때문에 영구적으로 중단시키는 것입니다. 계절 사업이기 때문에 XNUMX개의 서버에서 XNUMX개의 서버로 줄어들고 있을지도 모릅니다. 연휴 기간 동안 사용 시간이 가장 많았으며 이제 다시 기본값인 더 작은 구성으로 돌아가게 됩니다. 따라서 이러한 서버 중 일부는 실제로 제거될 것입니다. 계속해서 그렇게 합시다.

여기에서 서버 157을 제거하겠습니다. 따라서 서버 157을 선택하고 중지라고 말할 것입니다. 먼저 중지하겠습니다. 이제 보시다시피 제가 멈추면 이 카운트는 줄어들고 이 카운트는 더 늘어날 것입니다. 보세요, 다시 각각 약 2000개로 갔습니다. 이는 데이터가 이것에서 이것으로 이동했음을 의미합니다.

런타임 시 서버 제거/중지
런타임 시 서버 제거/중지

기본적으로 XNUMX개 파티션 구성에서 XNUMX개 파티션 구성으로 전환했습니다. 여기서 각 파티션을 볼 수 있듯이 각 파티션이 복제됩니다. 따라서 이 파티션은 바로 여기에 복제되고 이 파티션은 바로 여기에 복제됩니다. 좋습니다. 그리고 보시다시피 응용 프로그램에 영향을 미치지 않습니다.

따라서 필요한 용량이 변경되어 용량을 늘리거나 서버를 중단해야 하기 때문에 서버를 추가해야 하는 상황을 거의 처리할 수 있습니다. 실제로 계절적 사용으로 인해 필요한 용량이 변경되었습니다.

유지 관리 모드

우리가 유지 관리 모드라고 부르는 또 다른 상황이 있습니다. 서버를 중단해야 하지만 용량이 감소해서가 아니라 일부 유지 관리를 수행해야 하기 때문입니다. 일부 운영 체제 패치 등을 적용해야 한다고 가정해 보겠습니다. 따라서 XNUMX분, XNUMX분, XNUMX분 동안 서버를 다운시켜야 합니다. 그러나 캐시에는 엄청난 양의 데이터가 있습니다. 우리 고객은 각 서버에 수십 기가바이트의 데이터를 가지고 있습니다. 따라서 XNUMX, XNUMX, XNUMX, XNUMX개의 서버 클러스터가 있고 결합된 각 서버에 수십 기가바이트의 데이터가 있는 경우 서버를 다운시키는 것은 실제로 성능에 영향을 미칩니다. 이제 파티션을 다시 분할해야 하는 경우 세 개의 파티션에서 두 개의 파티션으로 이동하려면 많은 상태 전송을 수행한 다음 다시 추가해야 합니다. 그래서 우리는 유지 관리 모드라는 기능을 생각해 냈습니다. NCache 괜찮습니다. 이 서버를 중단하지만 캐시를 다시 분할하지 않기를 바랍니다. 이것을 XNUMX개의 파티션 노드로 유지합니다. 파티션 XNUMX, 파티션 XNUMX 및 여기에 있는 복제본 XNUMX은 파티션 XNUMX이 됩니다. 그리고 이것은 활성 상태를 유지합니다. 임시조치입니다. 작업이 끝나면 이 노드를 다시 가져오고 이 그림으로 다시 돌아갑니다.

유지 관리 모드 캐시 서버 다운
유지 관리 모드 캐시 서버 다운

어떻게 할 수 있는지 보여드리겠습니다. 그래서 저는 우선 다시 XNUMX개의 서버 구성을 달성할 것입니다. 이것을 추가할 것입니다. 제거했다고 가정하고 이제 다시 추가합니다. 제거했어야 했는데 그냥 막았네요. 하지만 다시 추가하겠습니다. 저는 다시 XNUMX노드 클러스터에 있습니다. 내 데이터는 고르게 분포되어 있습니다.

유지 관리 모드 캐시 서버 다운
유지 관리 모드 캐시 서버 다운

내 트랜잭션 부하가 고르게 분산되고 여기에서도 볼 수 있습니다. 사실 이것은 아직 보여주지 않고 있습니다. 하지만 어쨌든. 그래서 일단 이걸 가지고 있으면 이제 유지 보수를해야합니다. 그래서 저는 여기 와서 말할 것입니다. 좋습니다. 각 노드에는 각각 약 1200개의 항목이 있다는 것을 기억하십시오.

따라서 두 개의 노드 클러스터로 가져오려면 각 노드에서 최대 2000개 이상의 항목이 있어야 합니다.

유지 관리를 위한 중지 노드
유지 관리를 위한 중지 노드

이 버튼을 클릭하면 얼마나 오래 유지 관리를 하시겠습니까? 분명히 이 타임아웃은 매우 중요합니다. NCache 더 이상 유지 보수가 아니라고 가정합니다. 지금까지 노드를 다시 추가하지 않으면 NCache 는 방금 보여드린 다른 제거된 것과 같이 실제로 영구적으로 제거했다고 가정하고 실제로 캐시를 제거하고 다시 분할할 것입니다.

유지 관리를 위한 중지 노드
유지 관리를 위한 중지 노드

하지만 이 기간 내에 다시 추가하고 구성 가능한 기간인 경우 이 기간 내에 다시 추가하면 NCache 방금 보여드린 것처럼 파티션을 재분할하지 않고 해당 파티션, 해당 복제본을 임시 파티션 모드로 유지합니다. 자, 이제 그만하자고 말하겠습니다. 자, 여기 1300, 1300, 1470으로 오자. 그리고 이제 이것은 완전히 사라졌다. 하지만 이 수치는 올라가지 않았습니다. 왜? 복제본 중 하나가 활성 파티션이 되었기 때문입니다. 이 사진을 통해서는 어떤 것인지 알 수 없지만 카운트가 올라가지 않은 사실은 복제품이 여전히 거기에 있다는 것입니다. 이 복제본은 활성 파티션이 되었습니다. 이제 서버 XNUMX에는 파티션 XNUMX과 파티션 XNUMX이 있고, 서버 XNUMX에는 파티션 XNUMX와 패시브 복제본 XNUMX이 있고, 서버 XNUMX은 다운되어 유지 관리를 위해 중단해야 합니다.

유지 관리 모드 캐시 서버 다운
유지 관리 모드 캐시 서버 다운

이제 이동하여 유지 관리를 수행합니다. 패치를 적용하고 이제 완료되었습니다. 이제 다시 가져오려고 합니다. 다시 여기로 와서 다시 추가할 필요도 없습니다. 중지되었기 때문에 다시 시작한다고 말하면 됩니다. 그리고 그 모든 과정에서 응용 프로그램은 중단 없이 계속 실행되었습니다. 따라서 이러한 모든 변경에는 애플리케이션 중단이 필요하지 않습니다. 그래서, 다시 시작하라고 말할 것입니다. 그리고 제가 시작이라고 말하면 이제 지켜보세요. 이것은 다시 제자리를 찾을 것이고 다시 데이터를 따라잡을 것입니다. 그러면 이전과 같은 수준으로 다시 돌아온 것을 볼 수 있을 것입니다.

런타임 시 노드 시작

결론

보시다시피 런타임에 영구적으로 노드를 추가 및 제거하고 예약된 유지 관리를 위해 일시적으로 노드를 제거하는 방법을 모두 시연했습니다. 이것이 내 데모의 끝입니다. 나는 당신에게 그것을 보여주고 싶었습니다 NCache 고가용성을 제공합니다. 애플리케이션을 다운시킬 필요가 없는 100% 가동 시간입니다. 응용 프로그램에 중단이 없습니다.

다음에 무엇을할지?

 
© 저작권 Alachisoft 2002 - . 판권 소유. NCache 는 Diyatech Corp.의 등록상표입니다.