* 개요 - 서버 관제 시스템은 각각의 서버 각종 상태들을 조회하고, 서버 프로세스를 실행, 종료를 제어하고, 서버 스케일 축소, 확장을 제어하며, 일부 서버 설정 정보를 전달 한다. - 서버 관제 시스템 분산 구조를 설계 한다. - 주요 관제 기능을 정의 한다. * 주요 기능 1. 관제 기능 로그 남기기 1.1. 관제 기능의 주요 행위는 관제 서버에 로그로 남긴다. - 개발 로그는 파일로, 관제 기능 로그는 SQLLite 에 작성 한다. 2. 서버 프로세스 제어 하기 - 서버 그룹 단위를 지정시 해당 그룹의 프로세스들만 제어 한다. 2.1. 시작 2.2. 재시작 2.3. 정지 2.4. 강제종료 3. 서버 정보 보기 3.1. 공통 서버 정보 - 전체 서버 운영 갯수, 전체동접자수, 런닝타임 기준 최대 전체동접자수, 1초 이상 응답 지연 서버 갯수, 1초 이상 응답 지연 서버비율 3.2. 서버별 공통 기본 정보 - 프로세스 ID, 런닝타임, 현재 클라이언트 연결 갯수, 비정상종료 횟수, 자동 재시작 횟수, CPU 사용률(%), 메모리 사용량(G/M/Bytes),사용률(%), 메모리 미사용량(MB...),미사용률(%), 자동시작상태(bool) 3.3. 서버별 공통 상세 정보 - 런닝타임 기준 최대 클라이언트 연결 갯수, 런닝타임 기준 최대 CPU 사용률(%), 런닝타임 기준 최대 메모리 사용량(G/M/Bytes),사용률(%), 런닝타임 기준 최저 메모리 미사용량(G/M/Bytes),미사용률(%) 3.4. 서버별 컨텐츠 정보 - LoginServer : 1분 동안 최대 로그인 처리 횟수, DB 최대 응답 지연 시간, 1초 이상 응답 지연 횟수 - GameServer : 1분 동안 최대 로그인 처리 횟수, DB 최대 응답 지연 시간, 1초 이상 응답 지연 횟수, 현재 Room 갯수, 런닝타임 기준 최대 Room 갯수 - ChatServer : 1분 동안 최대 로그인 처리 횟수, 1분 동안 최대 채팅 메시지 처리 횟수 4. 리소스 패치 기능 4.1. 환경 설정 파일 패치 - 서버 컨피그 파일을 패치 한다. 5. 서버 스케일 확장 및 축소 하기 5.1. 예비 서버용 EC2 Instance 관리 하기 - 예비 서버 운영 비율 설정 기능 추가 5.2. 서버 스케일 확장 하기 - 스케일 정책이 적용될 해당 서버들이 확장 정책 조건에 충족될 경우 서버를 추가 한다. - 확장 정책의 조건 : 접속자수의 비율 70% 이하 서버가 없는 경우, CPU 점유율이 모두 60% 이상인 경우 - 예비 서버(AWS EC2 Instance)가 있을 경우 주요 설정들을 재설정 시키고 Instance 를 활성화하는 기능을 추가 한다. 5.3. 서버 스케일 축소 하기 - 스케일 정책이 적용될 해당 서버들이 축송 정책 조건에 충족될 경우 축소할 서버의 유저 접속을 차단 시키고, 유저들을 접속자가 적은 서버로 접속을 유도 한다. - 해당 서버의 접속자수가 0이 된다면 서버를 예비 서버로 전환 한다. - 예비 서버 운영 비율을 초과할 경우 가장 오래된 예비 서버를 제거 한다. 6. 서버 프로그램 패치 하기 6.1. 배포 FTP 서버에서 다운로드 받기 - 서버 전체 패치 기능을 추가 - 서버 리소스 패치 기능을 추가 - 메타 데이터 패치 기능을 추가 - Config 파일 패치 기능을 추가 - ControlAgent 패치 기능을 추가 7. 서버 컨텐츠 제어 하기 7.1. 접속자 제어 하기 7.1.1. 서버 접속 차단 시키고, 모든 접속자를 안전하게 로그아웃 시키기 (Access Block & Graceful Kick All) - 접속을 차단 시키기 모든 접속자를 안전하게 로그아웃 처리 시킨다. 7.1.2. 특정 서버를 접속 차단 시키기(Server Access Block) - 특정 서버의 접속을 차단만 시킨다. 8. 구조 8.1. 서버 분산 구조 파일 참조 - URL : svn://10.10.10.9/trunk/Caliverse/Server/Doc/3. 서버구조/서버 분산 구조.pptx * FrontEnd 주요 입력/출력 1. 계정 등록 창 - 개발팀에 요청 하여 등록 <= 추후 개발 !!! 2. 로그인 창 - EditBox(아이디/비밀번호), Button(로그인), Button(닫기) <= 추후 개발 !!! 3. 서버 관리 창 3.1. 상단 메뉴 - 버전 정보 - 설정 파일 열기 - 설정 파일 다시 읽기 - 서버 스케일 관리창 보기 - 서버 패치 하기 3.2. 공통 서버 정보 - 서버 정보 보기를 참조 한다. 3.3. 서버 목록 - 서버간의 그룹관계 or 종속관계가 있을 경우 트리 구조로 출력 한다. - 서버를 선택할 수 있다. (팝업 메뉴 활성화) - 팝업 메뉴 : 서버 프로세스 제어 기능 목록, 컨텐츠 정보, 컨텐츠 제어 목록 출력 - 서버 목록에서 서버 선택시 선택된 서버 정보와 하위 서버 정보 목록만 화면 출력 된다. 3.4. 서버별 공통 정보 및 상세 정보 목록 - 서버 정보 보기를 참조 한다. - 팝업 메뉴 : 서버 프로세스 제어 기능 목록, 컨텐츠 정보, 컨텐츠 제어 목록 출력 3.5. 서버별 컨텐츠 정보 목록 - 서버 정보 보기를 참조 한다. 3.6. 로그 출력창 (활성화/비활성화) - 개발 로그 및 관제 로그를 출력 한다. (출력여부설정) - 로그 포멧 정보를 참조 한다. 4. 서버 스케일 관리창 - GM Tool 참조