메소스 다운로드



http://www.apache.org/dist/mesos/ 에서 다운받을 바이너리를 확인한다.



sudo yum install -y cyrus-sasl-md5  subversion-devel 

http://www.apache.org/dist/mesos/1.0.3/mesos-1.0.3.tar.gz

tar -zxf mesos-1.0.0.tar.gz

mv mesos-1.0.0 mesos 

cd mesos 

mkdir build 

cd build 

../configure

make 


다운로드 에러가 발생한다면 proxy 이슈이다. 아래와 같이 maven 설정 파일에 proxy를 추가한다.


$ cat ~/.m2/settings.xml

<settings>

    <proxies>

        <proxy>

            <active>true</active>

            <protocol>http</protocol>

            <host>proxy서버</host>

            <port>8888</port>

        </proxy>

    </proxies>

</settings>




제대로 컴파일되었는지 확인한다.


make check 



스탠드얼론 형태로 마스터 서비스를 실행한다. (마스터가 1인 메소스)



cd /home/deploy/mesos/build


sudo ./bin/mesos-master.sh --work_dir=/var/lib/mesos



http://서버-IP:5050






이제 클러스터 모드로 돌려본다.


rsync를 이용해 슬레이브가 될 장비들에 복사를 진행한다. 이미 컴파일된 된 상태이다.


rsync ...




슬레이브 장비에서 yum을 설치하고 mesos를 슬레이브 상태로 실행했다.


 sudo yum install -y cyrus-sasl-md5  subversion-devel  screen

 

 sudo ./bin/mesos-slave.sh --work_dir=/var/lib/mesos --master=마스터_IP:5050




여기서 high availability를 지원하기 위해 zookeeper를 사용하는 것이 좋다.



예제로 두 대의 서버에 zookeeper를 실행하고 다음과 같이 master를 실행했다. 



sudo ./bin/mesos-master.sh --work_dir=/var/lib/mesos  --quorum=1 --zk=zk://zk1:2181,zk2:2181,zk3:2181/mesos --log_dir=/var/log/mesos



잘 동작하고 있다.












참고 : 에러


* Need to specify --quorum for replicated log based registry when using ZooKeeper  : 이 에러를 해결하려면 쿼럼의 값을 조절하는 것이다. --quorum=2 처럼 사용한다.



* F0427 18:21:35.832242 22151 master.cpp:1536] Recovery failed: Failed to recover registrar: Failed to perform fetch within 1mins

*** Check failure stack trace: *** 

메소스를 처음에 실행할 때 에러가 발생했다. 이 문제의 해결은 quorum의 값을 잘못 넣어서 발생했다. quorum의 값을 제대로 넣어보니 더 이상 발생하지 않았다.

(실제 복구 문제라면 이렇게 쉽게 해결되지 않을 것 같다.)




Posted by 김용환 '김용환'