The Abstention Protocol: RCA for Clos Fabrics
이 논문은 노이즈가 많은 텔레메트리 환경에서 안정적이고 설명 가능하며 단조적인 장애 원인 규명을 달성하기 위해, 불안정한 점수 기반 융합을 결정론적인 PAM 방식의 절제 대수(abstention algebra)로 대체한 대규모 Clos 패브릭용 프로덕션 근본 원인 분석 시스템인 CoreSec을 소개한다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
현대 클라우드 컴퓨팅의 거대하고 웅성거리는 아키텍처 속에서, 데이터는 단 하나의 파이프를 통해 흐르는 것이 아니라 광범로하게 펼쳐진 다층적인 연결망을 통해 흐릅니다. 모든 건물이 로컬 네이버후드 스위치에 연결되어 있고, 이 스위치는 다시 디스트릭트 허브에 연결되며, 이 허브는 최종적으로 중앙 스파인(spine)에 연결되는 도시를 상상해 보십시오. '클로스 패브릭(Clos fabric)'이라 알려진 이 구조는 수백만 대의 서버가 놀라운 속도와 중복성을 갖추고 서로 통신할 수 있게 해줍니다. 만약 한 경로가 막히면, 트래픽은 단순히 다른 경로를 찾아냅니다. 이러한 설계 덕분에 시스템은 매우 탄력적입니다. 느슨한 케이블, 깜빡이는 불빛, 혹은 짧은 소프트웨어 오류와 같은 매일 발생하는 수천 건의 작고 무작위적인 결함들을 사용자가 전혀 눈치채지 못하는 사이에 흡수할 수 있습니다. 그러나 이러한 지속적인 배경 소음은 시스템을 운영하는 엔지니어들에게 심각한 문제를 야기합니다. 특정 서비스가 고객에게 장애를 일으킬 때, 시스템에는 수백 개의 경고가 들어옵니다. 문제는 고장 난 부품을 찾는 것이 아니라, 그 많은 고장 난 부품 중 실제로 특정 장애를 일으킨 원인이 무엇인지 파악하는 것입니다.
수년 동안 이 퍼즐을 해결하는 표준적인 방법은 모든 경고 신호에 점수를 부여하는 것이었습니다. 케이블에 오류 횟수가 높으면 높은 점수를 주었습니다. 스위치가 재부팅되면 점수를 부여했습니다. 시스템은 이 점수들을 모두 더했고, 총점이 가장 높은 개체가 문제의 원인으로 지목되었습니다. 이 방식은 네트워크가 조용할 때는 충분히 잘 작동했지만, 하이퍼스케일 환경에서는 종종 실패했습니다. 항상 배경 소음이 존재하기 때문에, 시스템은 실제로 아무런 문제가 없을 때도 '범인'을 찾아내거나, 점수 차이가 너무 미미하여 판가름하기 어려울 때 엉뚱한 장치를 범인으로 몰아세우곤 했습니다. 엔지니어들은 한 종류의 오류를 잡기 위해 점수를 미세 조정하려고 노력하면, 의도치 않게 다른 유형의 오류를 잡아내는 능력을 망가뜨리게 된다는 사실을 발견했습니다. 그 결과, 자동화된 복구 작업이 허위 경보에 의해 트리거되어 상황을 개선하기보다 오히려 악화시키는 불확식성의 순환이 발생했습니다.
이를 해결하기 위해 마이크로소프트의 한 팀은 의사 결정의 근본적인 논리를 바꾸는 '코어섹(CoreSec)'이라는 새로운 시스템을 개발했습니다. 이 새로운 시스템은 점수를 합산하는 대신, 보안 시스템이 사람의 신원을 확인하는 것과 유사하게 일련의 엄격하고 독립적인 검증 절차로 조사를 수행합니다. 보안이 철저한 건물에서 경비원은 비밀번호, 지문, 그리고 카드 키를 요구할 수 있습니다. 만약 비밀번호가 누락되었다면, 경비원은 추측하지 않고 단순히 입장을 거부하며 프로세스를 중단합니다. 코어섹은 이러한 '기권(abstention)' 논리를 네트워크 장애에 적용합니다. 이 시스템은 서로 다른 유형의 데이터에 특정 역할을 부여합니다. 어떤 신호들은 필수적입니다. 만약 결정적인 증거가 누락되었거나 최신 상태가 아니라면, 시스템은 결정을 내리기를 거부합니다. 반면 어떤 신호들은 그 자체로 충분합니다. 만약 특정하고 부정할 수 없는 오류가 발견된다면, 시스템은 조사를 즉시 중단하고 원인을 바로 지목합니다.
이 시스템은 다섯 가지 서로 다른 조사를 병렬적으로 실행하며, 각 조사는 서버를 연결하는 개별 케이블부터 전체 패브릭을 지탱하는 거대한 스파인 스위치에 이르기까지 네트워크의 서로 다른 계층을 살펴봅니다. 각 조사는 특정 원인에 대해 투표할 수 있는 충분한 증거를 가졌는지 결정하기 위해 자신만의 규칙 세트를 사용합니다. 증거가 명확하면 투표하고, 증거가 부족하거나 모순되면 기권합니다. 이것은 매우 중요한 변화입니다. 기존 시스템에서는 답을 알지 못하더라도 컴퓨터가 반드시 승자를 선택해야만 했습니다. 하지만 새로운 시스템에서는 무지를 인정하는 것 자체가 유효하고 유용한 결과가 됩니다. 시스템이 기권할 때, 시스템은 엔지니어들에게 "아직 확신할 수 없습니다"라고 알리며, 어떤 데이터가 누락되었는지에 대한 명확한 요약과 함께 사건을 넘겨줍니다. 이는 시스템이 잘못된 확신을 가지고 섣불리 판단하여 불필요하고 잠재적으로 해로운 자동 복구를 트리거하는 것을 방지합니다.
다섯 가지의 병렬 조사가 완료되면, 두 번째 논리 계층이 개입하여 그 결과들을 결합합니다. 이 논리는 네트워크의 물리적 형태를 이해하고 있습니다. 만약 단일 스위치가 고장 나면 몇 대의 서버에 영향을 줄 수 있지만, 더 높은 수준의 허브가 고장 나면 많은 스위치가 동시에 이상 징现象을 보이는 연쇄 반응이 일어난다는 것을 알고 있습니다. 시스템은 어떤 계층이 진정한 책임인지 결정하기 위해 단순하고 고정된 규칙을 사용합니다. 예를 들어, 상위 레벨 스위치가 의심될 경우, 시스템은 그에 연결된 더 작은 스위치들 중 최소 3분의 2가 또한 문제를 보이고 있는지 확인합니다. 만약 그렇다면, 시스템은 해당 상위 스위치를 근본 원인으로 결론짓고 그 아래의 개별 스위치들은 무시합니다. 이는 시스템이 증상에 현혹되어 네트워크의 잘못된 계층을 탓하는 것을 방지합니다.
이 시스템을 Azure 클라우드의 60개 이상의 리전에 배포한 결과는 놀라웠습니다. 3년 동안 시스템은 70만 건 이상의 장애 사례를 처리했습니다. 정상적인 장치를 범인으로 지목하는 허위 경보율은 거의 20%에서 1% 미만으로 떨어졌습니다. 동시에, 인간의 도움 없이 문제를 정확히 식별하는 횟수는 크게 증가했습니다. 아마도 가장 중요한 점은, 모든 장애마다 충돌하는 데이터를 수동으로 검토하고 조정하기 위해 필요했던 세 명의 전임 엔지니어를 대체했다는 것입니다. 예전에는 갈등하는 데이터를 풀기 위해 몇 시간씩 보냈던 엔지니어들은 이제 시스템이 무엇을 발견했는지, 무엇을 결정할 수 없었는지, 그리고 다음에 어디를 살펴봐야 하는지를 알려주는 명확하고 구조화된 보고서를 받게 되었습니다.
코어섹의 성공은 추측하기를 거부하는 데 있습니다. 다양한 데이터 소스의 융합을 점수 게임이 아닌 구성(composition) 문제로 취급함으로써, 시스템은 이전에는 불가능했던 수준의 안정성을 달로 달성했습니다. 이 시스템은 네트워크가 진화함에 따라 행동이 변할 수 있는 복잡한 머신러닝 모델에 의존하지 않습니다. 대신, 서로 다른 하드웨어, 서로 다른 트래픽 패턴, 서로 다른 데이터 센터 설계에서도 재조정 없이 작동하는 데 입증된 고정된 논리 규칙을 사용합니다. 이 시스템은 노이즈가 많고 불완전한 정보가 가득한 세상에서, 가장 강력한 도구는 종종 "모르겠다"라고 말하고 더 나은 증거를 기다리는 능력임을 보여주었습니다. 이러한 접근 방식은 근본 원인 분석을 확률 게임에서 신뢰할 수 있고 설명 가능한 프로세스로 변화시켰으며, 클라우드가 더 크고 복잡해짐에 따라 안정성을 유지할 수 있도록 해줍니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.