성장하는 크론 : 다음 스케줄러 란 무엇입니까? [닫은]


30

우리는 모든 작업 스케줄링 요구를 처리하는 것을 기억할 수있는 한 크론을 사용했습니다. 스토리지 클론 / 스냅 샷에서 데이터베이스에 대한 보고서, 일일 시스템 보고서, 모니터링 검사에 이르는 모든 작업은 cron을 통해 수백 대의 서버에서 예약됩니다.

단점은 작업을 관리하기 어렵고, 특히 다른 서버에서 종속성을 생성하는 쉬운 방법이 없으며, 누군가가 "일시적으로"작업을 건너 뛰지 만 나중에 주석을 제거하는 것을 잊어 버리는 것은 불가피합니다.

우리는 상업적인 제안을 시도했지만 결국 그것은 cron에서 단계적으로 올라갈 때 너무 비싸다고 간주되었습니다.

SLURM, Oracle Grid Engine, Torque / Maui, Quartz, DIET, Condor와 같은 다른 옵션은 비슷한 노드에서 실행되는 작업이있는 더 크고 균질 한 클러스터 환경에 적합합니다. 그리드 컴퓨팅 등. 우리 환경은 상당히 혼합되어 있으며 (다양한 Linux, AIX 및 FreeBSD), 다른 유형의 시스템간에 종속성을 만들어야합니다 (예 : Linux 상자의 작업은 AIX 상자의 작업 실행 여부를 결정해야 할 수 있음).

누구든지 cron에서보다 중앙 집중식 관리 제품으로 전환 한 경험이 있습니까? 소프트웨어 선택에 대한 팁이나 오픈 소스 또는 상업용 중 어떤 것이 더 좋은지 여부

답변:


11

Condor, OGE 및 Torque는 모두 당신을 데려 갈 수 있지만 Condor는 DAGMan 도구로 내장 된 종속성 관리 기능을 가지고 있습니다 . DAGMan을 사용하면 작업 흐름을 설명 하는 지시 된 비순환 그래프 를 설정할 수 있으며 관리자는 작업 흐름의 작업을 이동하고 흐름의 각 단계에서 합격 / 불합격 결과를 평가합니다. Condor는 상대적으로 플랫폼에 구애받지 않으므로 DAGMan도 마찬가지이므로 부모가 Linux 또는 Windows에서 실행될 때 AIX에서 하나의 자식 단계를 실행할 수 있습니다. DAGMan은 작업이 실행되는 위치와 관련이 없으며 종료 코드가 통과 또는 실패 만합니다.

소프트웨어 선택에 대한 팁이나 오픈 소스 또는 상업용 중 어떤 것이 더 좋은지 여부

몇 가지주의 사항이 있지만이 공간의 무료 커뮤니티가 가치가 있다고 생각합니다.

OGE는 지금 이상한 공간에 있습니다. 더 이상 Oracle에서 생산 한 GE 변형을 실행하는 것이 자유롭지 않으며 Oracle은 더 이상 GE SCC에 기록하는 코드를 제공하지 않지만, 무료 오픈 소스 프로젝트로 병역하려는 여러 가지 포크가 있습니다. 특히 Univa는 전직 Sun GE 개발자들이 오픈 소스, 무료로 이용할 수있는 GE 변형을 지속적으로 개발하기 위해 채용을 주도하고 있습니다. 그리드 엔진에는 두 가지가 있습니다. 설정이 쉽고, 2 분 미만의 짧은 작업을 처리 할 수있어 처리 속도를 늦추는 작업에 많은 스케줄링 오버 헤드를주지 않아도됩니다. 큰 단점은 Windows에 대한 지원이 잘되지 않는다는 것입니다. 우리 중 일부는 몇 년 전에 Cygwin에서 실행되도록 포팅하는 데 약간의 노력을 기울 였지만 확실히 네이티브만큼 좋지는 않습니다.

이제 Condor는 내가 언급 한 세 가지 기술 중 가장 좋아하는 것입니다. Condor 주변에는 강력한 커뮤니티가 있으며 소프트웨어는 매우 성숙합니다 (> 20 세 이상). 기본 Windows 및 POSIX OS 지원은 모든 곳에서 잘 실행됩니다. 앞에서 언급 한 DAGMan은 Condor와 함께 제공되는 많은 훌륭한 제품 중 하나 일뿐입니다. 설정하기가 복잡한 터치 일 수 있지만 일단 설정되어 실행되면 견고합니다. 작업 <-> 기계 일치를 수행하고 자원에 대한 사용 규칙을 작성하는 데 매우 유연한 언어가 있습니다. 또한 머신에 대한 동적 프로비저닝을 지원하여 작업에 필요한 머신 리소스 양을 선택한 다음 여전히 사용 가능한 차이를 다시 알릴 수 있습니다. 글로벌 리소스 카운터를 지원하므로 소프트웨어 라이센스와 같은 것을 제한 할 수 있습니다. 그리고 물론 워크 플로우 관리를위한 매우 강력한 도구 인 DAGMan이 있습니다. Condor의 단점은 단기 실행 작업에 대한 스케줄링 오버 헤드가 부담이 될 수 있다는 것입니다. 이상적으로 2 분 이상 실행되는 작업이 필요합니다. 그렇지 않으면 시스템에서 작업 시간이 작업 시간의 큰 부분이됩니다.

토크는 조금 더 틈새 시장입니다. 나는 그것에 대해 덜 알고 있습니다. Condor보다 Grid Engine과 비교됩니다. @warren이 언급 한 유료 애드온이 있으며 기본 무료 토크가 할 수있는 것을 확장 할 수 있습니다.

세 가지 기술을 시험해보고 특정 워크로드에서 어떻게 작동하는지 보려면 CycleCloud 를 통해 Condor, GridEngine 또는 Torque로 사전 구성된 안전하고 가상화 된 풀을 가동 할 수 있습니다. 당신의 부분에. 각 기술의 작은 풀을 가동시키고 대표적인 워크로드로 시험해 보는 것은 몇 달러가 될 것입니다. (면책 조항 : Cycle Computing에서 일하고 CycleCloud를 만듭니다)


정보 주셔서 감사합니다. 콘도르는 실제로 특정 작업을 수행 할 수있는 더 큰 규모의 기계 컬렉션에 맞춰진 것 같습니다. 내가 가진 문제는 매우 구체적인 위치에서 실행되는 많은 작업을 갖는 것 중 하나이지만 특정 순서로 실행하려면 작업을 함께 연결해야합니다. 이것이 Condor가 할 수있는 일입니까, 아니면 이런 식으로 작동하게 만드는 것이 고통 스럽습니까?
Cakemox

1
콘도르는 당신의 상황을 다룰 수 있습니다. 모든 종류의 방식으로 DAG의 작업을 제한하여 풀의 특정 시스템이나 하드웨어를 대상으로 할 수 있습니다.
이안 C.

6

크로노스 는 매우 유망 해 보입니다.

Chronos는 Airbnb의 cron을 대체합니다. Apache Mesos에서 실행되는 분산 및 내결함성 스케줄러입니다. 이를 사용하여 작업을 조율 할 수 있습니다. 기본 명령 실행 프로그램뿐만 아니라 사용자 정의 Mesos 실행 프로그램도 지원합니다. 따라서 기본적으로 Chronos는 sh (대부분의 시스템에서 bash) 스크립트를 실행합니다. 실행이 발생하는 Mesos 슬레이브에 Hadoop이 설치되어 있지 않더라도 Chronos를 사용하여 Hadoop (EMR 포함)과 같은 시스템과 상호 작용할 수 있습니다. 포함 된 래퍼 스크립트를 사용하면 파일을 전송하고 백그라운드의 원격 시스템에서 파일을 실행하고 비동기 콜백을 사용하여 작업 완료 또는 실패를 Chronos에 알릴 수 있습니다.

또한 Jenkins를 cron 대체품으로 사용하여 개인적으로 큰 성공을 거두었습니다. 그것은 원격 서버에서 작업을 아주 잘 처리합니다. 여기에 글이 있습니다 : http://www.22ideastreet.com/blog/2014/05/02/replace-local-cron-with-jenkins/


4

지난 4.5 년 동안 저는 HP의 (nee Opsware) Server Automation 플랫폼 및 나머지 비즈니스 기술 최적화 제품군 (Network Automation, Operations Orchestration 등)과 함께 일했습니다.

충분히 큰 환경에서 SA를 통한 작업 관리는 실용적이고 바람직한 도구입니다. OO와 함께 변경 제어 관리, 티켓팅 등을 통해 작업을 제어 할 수 있습니다.

재미없는 부분은 다음과 같습니다. 비싸다 (매우 비싸다). FLOSS Server management and audit tools : 내가 과거에 물었던 비슷한 질문에서 일부 제안을 확인할 수 있습니다 .

또한 Adaptive Computing의 Torque / Maui / Moab 은 매우 훌륭합니다. 가격은 확실하지 않지만 매우 유연한 도구입니다.


면책 조항-HP BTO 및 Adaptive 파트너


2

참고 완전히 다른 문제를 해결했습니다!

크론 특정 용어로 오래되고 어지럽습니다.

실제로 일정을 수행하는 새로운 방법을 찾고 있다면 메시징 미들웨어를 기반으로 한 이벤트를 시도합니다. 각 서버의 클라이언트와 RabbitMQ를 생각하십시오.

호스트 간 종속성은 "알림 대기열"을 통해 해결할 수 있습니다.

"실제"시간 기반 이벤트는 조금 까다 롭습니다. 실제로 cron의 목적입니다 (적어도 작은 환경에서는 아주 좋습니다). 아이디어를 잡기가 까다로운 부분은 hickups를 방지하는 것입니다. 에서처럼 : 매일 밤 0100시에 스냅 샷을 찍습니다. 전체 인프라를 고려한 순간에로드가 급증하거나 로그인이 실패하는 것을 볼 수 있습니다. 대기열 기반 접근 방식을 사용하는 경우 최소한 일부 편차가 무료로 제공됩니다 (일부 논리가 구현하지 않는 한 보장되지는 않지만).

해결해야 할 것은 실시간 기반 작업이 없으면 다음과 같은 것에 의존 할 수 없다는 것입니다. 예, 백업은 0200h에서 시작하고 여전히 0400h에서 실행되면 문제가 있습니다. 더 쉬운 방법은 방해하는 2 개의 작업이 동시에 실행되지 않도록하는 것입니다. 한 번에 하나의 작업 만 소비하는 차단제를 만드십시오.

관리 부분은 작업을 주문형으로 제출할 수있는 멋진 웹 인터페이스이거나, 이제는 "크론"으로 돌아가거나 좋아하는 구현으로 자바 쿼츠 스케줄러가 AFAIK 초 단위로 세분화됩니다. 시간 기반 부분은 좋은 오래된 cron을 사용합니다 :)

OT라고 저를 공감하지 마십시오-다소 거친 개념이지만 질문이 돈을 배제하지 않기 때문에 지출보다는 무언가를 만들어서 정확한 사내 요구 사항에 대한 솔루션을 얻기 위해 돈을 쓸 수도 있습니다. 공급 업체가 일부 요구 사항을 충족한다고 생각하는 부분을 구매하여 돈 :)


이것은 큰 일자리를 분배하는 데 흥미롭지 만 제 직업은 훨씬 더 시간이 많이 걸립니다. 그래도 대기열에 대기 할 수있는 작업이 있으므로 그 점을 염두에 두십시오.
Cakemox 2016 년

1

CA의 Espresso (Cybermation)를 사용했습니다. 그들이 지금 무엇을 부르는지 확실하지 않습니다. UC4도 사용했습니다. 그들은 일하고, 많은 돈을 내고 (내 이해에) 많은 비용을 들이지 않고 유지할 수는 있지만, 주석에서 말하는 것을합니다. / 편집-상용 앱이 너무 비싸다는 말을 놓쳤습니다. 확실히 동의 할 수 있지만, 일부 회사의 경우 특히 가치가있는 비즈니스 응용 프로그램에 적합합니다.


1

프로덕션 환경에서 2000+ 라인 중앙 crontab을 대체하는 옵션으로 Open Source Job Scheduler 와 함께 작업했습니다 . cron으로 인해 너무 복잡 해져서 다운 타임 윈도우가 무엇인지 또는 서버 간 종속성을 처리하는 방법을 결정할 수 없었습니다. 이 제품은 도움이되었지만 설정이 약간 복잡했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.