쿼터
QuattorQuatter는 컴퓨터를 설치, 구성 및 관리하는 데 사용되는 일반적인 오픈 소스 툴 키트다.쿼터는 원래 유럽 데이터 그리드 프로젝트(2001-2004)의 프레임워크에서 개발되었다.Quatter는 2003년 첫 출시 이후 주로 그리드 시스템 관리자 커뮤니티에서 사용자와 개발자로 구성된 자원봉사 커뮤니티에 의해 유지되고 확장되어 왔다.Quatter 툴 키트는 다른 구성 관리 시스템과 마찬가지로 클러스터를 유지하는 데 필요한 인력을 줄이고 신뢰할 수 있는 변경 관리를 용이하게 한다.그러나 다음과 같은 세 가지 고유한 기능으로 인해 그리드 리소스 관리에 특히 매력적이다.
- 연합 관리:툴 키트의 개방적이고 모듈적인 특성은 여러 기관의 시스템 관리자가 분산된 자원의 관리를 공유할 수 있게 한다.
- 공유 구성 및 관리 효율성:Quatter는 서로 다른 사이트에서 거의 또는 전혀 수정 없이 배포되고 사용할 수 있는 방식으로 구성 정보의 재사용을 장려하여 각 사이트가 구성 변경을 구현할 필요 없이 베스트 프랙티스의 배포를 촉진한다.
- 일관성 있는 사이트 모델:Quatter는 관리자가 일단 구성되면 실제 시스템, 가상 시스템 및 클라우드 리소스와 같은 다양한 리소스를 관리하는 데 사용할 수 있는 사이트 모델을 개발할 수 있도록 한다.
이러한 특징들은 격자 문맥 너머에서도 매력적이다.이는 대형 상업 기관과 학술 기관 모두 콰토르의 채택이 증가함에 따라 확인되었으며, 이들 대부분은 그리드 및 비 그리드 시스템을 일관성 있게 관리하기 위해 툴 키트를 사용한다.
원칙
협력 시스템에서 요소들을 구조화하고 공유하는 문제는 새로운 것이 아니다; 수년간 언어 디자이너들을 프로그래밍하는 것은 많은 각도에서 이 문제를 공격해왔다.추세가 변하지만 기본 원칙은 잘 이해된다.캡슐화, 추상화, 모듈화, 타이핑과 같은 특징들은 분명한 이점을 만들어낸다.관리 영역 간에 구성 정보를 공유할 때도 유사한 원칙이 적용된다고 본다.
Quatter 구성 도구 키트는 LCFG로부터 아키텍처를 파생하여 몇 가지 측면에서 아키텍처를 개선한다.Quattor의 핵심은 Pan이다. Pan은 유연한 메커니즘, 다양한 데이터 구조, 그리고 현대 프로그래머들에게 친숙한 검증 기능을 포함하는 고급 타이핑된 언어다.Pan은 협업 관리자가 서비스 유형, 하드웨어 구성요소, 구성 매개변수, 사용자 등을 설명하는 복잡한 구성 템플리트 세트를 작성할 수 있도록 한다.고급 언어를 사용하면 구성 스니펫의 잘라내기 및 붙여넣기를 넘어서는 방식으로 코드 재사용을 용이하게 한다.
콰토르에 구현된 원칙은 시스템 관리 공동체 내에 확립된 원칙과 일치한다.특히 모든 관리 노드는 소스 제어 시스템(또는 위임된 관리의 경우 시스템)이 지원하는 구성 서버에서 자신의 구성을 검색한다.이를 통해 하드웨어 장애 시 개별 노드를 재생성할 수 있다.Quatter는 분산형 인프라와 기존(단일 사이트) 인프라를 모두 처리한다.
위임된 관리에는 다중 사이트 인프라에 대한 일관성, 다중 사이트 관리 지점, 구성 사이트의 특정 요구를 수용할 수 있는 기능 등이 포함된다.위임된 인프라에 대한 단일 "정확한" 모델은 없으므로, 구성 시스템 자체의 아키텍처에 있어서 큰 유연성이 필요하다.때때로 매우 자율적인 사이트 세트가 느슨하게 협력하기를 원한다.이 경우 각 사이트는 공유 데이터베이스에서 공통 구성 정보를 검색하고 로컬 구성과 통합하여 상당히 포괄적인 구성 서버 집합을 호스트한다.
관리 업무를 분배하는 것은 잠재적으로 새로운 비용을 도입할 수 있다.예를 들어 WAN을 통해 구성 정보를 전송하면 대기 시간과 보안 문제가 발생한다.Quatter는 대기 시간을 줄이기 위해 서버를 인프라의 적절한 위치에 배치할 수 있도록 하고, 표준 툴과 프로토콜을 사용하는 것은 기존 보안 시스템(공용 키 인프라 등)을 활용하여 통신을 암호화하고 인증할 수 있다는 것을 의미한다.
콰토르 건축
구성 관리 시스템
Quatter의 구성 관리 시스템은 고급 구성 템플릿을 저장하는 구성 데이터베이스, 템플릿을 검증하여 XML 또는 JSON 프로필로 변환하는 Pan 컴파일러, 클라이언트 노드에 프로필을 제공하는 시스템 프로필 저장소로 구성되어 있다.Quatter 시스템에는 Pan 컴파일러만 엄격히 필요하다. 다른 두 개의 서브시스템은 유사한 기능을 제공하는 어떤 서비스로 대체될 수 있다.
교차 도메인 환경에서 위임된 관리를 위해서는 사용자가 인증되고 작업이 승인되어야 한다.구성 데이터베이스의 경우, 많은 표준 도구에서 제공하는 지원 때문에 X.509 인증서를 사용할 수 있으며, ACL(액세스 제어 목록)은 세분화된 제어를 허용하기 때문에 사용할 수 있다(ACL은 각 템플릿에 ACL을 부착할 수 있다).많은 사용자가 시스템과 상호작용할 때, 롤백 메커니즘을 필요로 하는 충돌과 잘못된 구성이 발생할 수 있다. 이를 위해, 표준 버전 제어 시스템에 기초한 단순한 동시 트랜잭션 메커니즘이 구현되었다.
Quatter의 모듈형 아키텍처는 세 가지 구성 관리 하위 시스템을 분산형 또는 중앙집중형 방식으로 배치할 수 있도록 한다.분산접근법에서는 클라이언트 시스템에서 프로파일 컴파일(개발 단계에서)을 실시하고, 이후 템플릿을 적절한 데이터베이스로 체크한 후, 마지막으로 서버에서 별도의 작업을 호출하여 배치를 개시한다.중앙 집중식 접근방식은 구성 데이터를 엄격하게 제어한다.컴파일 부담은 중앙 서버에 두고, 사용자는 전용 인터페이스를 통해서만 템플릿에 접근하고 수정할 수 있다.
두 패러다임은 본질적으로 동일한 기능을 제공하기 때문에, 그들 사이의 선택은 조직의 관리 모델에 어느 것이 더 잘 맞느냐에 달려 있다.예를 들어, 중앙집중식 접근법은 엄격하게 통제되는 작업 흐름 때문에 대형 컴퓨터 센터에 잘 맞는 반면, GRIF와 같은 다중 사이트 조직은 전체 구성 집합의 다른 부분을 자율적으로 처리할 수 있기 때문에 분산 접근법을 선호한다.
팬어
판어 컴파일러 판커는 콰토르 툴킷의 핵심에 위치한다.시스템 관리자가 Pan 구성 언어로 작성한 머신 구성을 컴파일하고 Quatter 클라이언트가 쉽게 소비하는 XML 또는 JSON 파일(프로파일)을 생산한다.판 언어 자체에는 구성 정보와 관련 스키마를 동시에 정의할 수 있는 단순하고 선언적인 구문이 있다.이 섹션에서는 분산 사이트의 위임 관리(검증, 구성 재사용 및 모듈화)와 관련된 Pan 기능에만 초점을 맞춘다.
검증.Pan 언어의 광범위한 검증 기능은 컴파일 시 구성 문제를 찾을 확률을 극대화하여 배포된 잘못된 구성의 비용이 많이 드는 정리를 최소화한다.Pan은 시스템 관리자가 관련 유효성 검사 기능이 있는 원자 또는 복합 유형을 정의할 수 있도록 한다. 구성 스키마의 일부가 유형에 바인딩되면 선언된 제약 조건이 자동으로 시행된다.
구성 재사용.Pan은 "구조 템플릿"을 통해 구성 정보를 식별하고 재사용할 수 있다.이는 관리자가 불변(또는 거의 불변) 구성 하위 트리를 식별할 때마다 사용할 수 있는 소규모의 재사용 가능한 팬 레벨 구성 정보를 식별한다.
모듈화.원래의 설계와 관련하여, 두 가지 새로운 기능이 개발되어 구성의 모듈화와 대규모 재사용을 촉진하였다: 이름 공간 및 부하 경로 메커니즘.
전체 사이트 구성은 일반적으로 디렉토리와 하위 디렉토리로 구성된 많은 수의 템플리트로 구성된다.Pan 템플릿 이름 간격 지정은 Java 언어로 수행되는 것과 마찬가지로 이 조직을 모방(및 시행)한다.이름 공간 계층은 구성 스키마와 독립적이다.구성 스키마는 종종 포트에 대한 방화벽 설정, 계정 생성, 로그 순환 항목, 크론 항목 등과 같은 낮은 수준의 서비스에 의해 구성된다.이와는 대조적으로, Pan 템플릿은 일반적으로 고급 서비스(웹 서버, 메일 서버 등)와 같은 다른 기준이나 책임 있는 사람/그룹에 의해 구성된다.
이름 간격은 구성의 다양한 부분을 분리하고 식별할 수 있도록 한다.재사용을 위해 구성의 일부를 효과적으로 모듈화하려면 관리자는 모듈을 사이트의 구성으로 쉽게 가져오고 사용자 정의할 수 있어야 한다.Pan 컴파일러 사용자는 로드 경로와 이름 공간을 결합하여 이를 달성한다.컴파일러는 로드 경로를 사용하여 특정 이름이 지정된 템플릿에 대해 여러 루트 디렉터리를 검색한다. 로드 경로에서 발견된 첫 번째 버전은 컴파일러가 사용하는 버전이다.이를 통해 모듈을 원래 상태로 유지하는 동시에 사이트는 특정 템플릿을 재정의할 수 있다.
또한 모듈 개발자는 모듈 매개변수를 지정하기 위해 전역 변수를 노출할 수 있으므로 시스템 관리자가 모듈 템플릿의 내부 작업을 이해할 필요 없이 모듈을 사용할 수 있다.
QWG(Quatter Working Group) 템플릿은 그리드 미들웨어 서비스를 구성하는 데 사용된다.QWG 템플릿은 Pan의 모든 기능을 사용하여 분산 사이트가 그리드 미들웨어 전문 지식을 공유할 수 있도록 한다.
자동 설치 관리
대규모 분산형 인프라를 관리하기 위한 주요 기능은 원격 위치에서 기계를 자동으로 설치할 수 있는 기능이다.이를 위해 Quatter는 자동 설치 인프라(AII)라는 모듈형 프레임워크를 제공한다.이 프레임워크는 노드 프로파일에 구현된 구성 매개변수를 표준 설치 도구에 사용하기에 적합한 설치 지침으로 변환하는 역할을 한다.현재 AII 모듈은 노드 프로파일을 사용하여 DHCP 서버, PXE 부팅 및 Kickstart 유도 설치를 구성한다.
일반적으로 AII는 각 사이트에 설치 서버를 설치한다.그러나 위에서 언급한 기술은 표준 프로토콜을 사용하여 중앙 서버와 적절한 릴레이를 설정함으로써 다중 사이트 설치의 투명한 구현을 가능하게 한다.
노드 구성 관리
Quatter에서 관리 노드는 자신의 구성 프로세스를 자동으로 처리하며, 모든 작업은 리포지토리에서 구성 프로필을 검색한 후 로컬에서 시작한다.각 노드에는 각각 구성 스키마의 특정 부분에 등록된 구성 에이전트(구성 요소) 세트가 있다.예를 들어, 사용자 계정을 관리하는 구성요소는 경로 /소프트웨어/구성요소/계정에 등록되어 있다.노드에서 실행 중인 디스패처 프로그램은 관련 섹션의 변경사항에 대해 새로 검색된 구성의 분석을 수행하고 적절한 구성요소를 트리거한다.구성 요소 실행에 부분적인 순서를 적용할 수 있도록 노드의 프로필에 런타임 종속성을 표시할 수 있다.예를 들어 파일 소유권을 올바르게 지정할 수 있도록 하려면 사용자 계정 구성 요소가 파일 생성 구성 요소보다 먼저 실행되는 것이 중요하다.
설계상, 구성부품의 정확한 실행을 보장하기 위한 제어 루프는 제공되지 않는다.사이트 관리자는 일반적으로 표준 모니터링 시스템을 사용하여 구성 오류를 감지하고 이에 대응한다.Nagios와 Lemon은 둘 다 이러한 목적으로 Quatter 사이트에서 사용되고 있다.실제로 레몬은 콰토르와 함께 개발돼 콰토르 컴포넌트 실행 실패를 감지할 수 있는 센서를 제공한다.
일반적으로 노드는 자동으로 자체 업데이트되지만 관리자는 자동 변경 배포를 사용하지 않도록 시스템을 구성할 수 있다.이것은 각각 구성을 수정하고 배치하는 책임이 분리될 수 있는 위임 시스템에서 중요하다.대표적인 시나리오는 최상위 관리자가 여러 원격 사이트의 공유 구성을 관리하고 로컬 관리자가 정책에 따라 적용하는 것이다.예를 들어 소프트웨어 업데이트는 다른 시간에 예약될 수 있다.
참고 항목
참조
- ^ 월 스트리트 앤 테크놀로지, http://www.wallstreetandtech.com/it-infrastructure/216402934