Presentation is loading. Please wait.

Presentation is loading. Please wait.

거울 소개 및 인수인계 세미나 BY COEARTH.

Similar presentations


Presentation on theme: "거울 소개 및 인수인계 세미나 BY COEARTH."— Presentation transcript:

1 거울 소개 및 인수인계 세미나 BY COEARTH

2 거울 간단한 소개 Apt-get으로 패키지 받는 곳? Eclipse 패키지/플러그인 받는 곳?
아치 리눅스 한국 유일의 tier 1 미러? 거울

3 미러링 Ubuntu, Eclipse, Debian 등등의 사용자는 엄청나다.
이런 서비스들은 사용자에게 여러 파일들을 제공한다. Eclipse: 설치 파일, 업데이트 파일, … Ubuntu, Debian: 패키지 저장소, OS 이미지 파일, … 이 파일들이 모두 한 서버에 저장되어 있다면… 전세계의 모든 사용자들이 한 서버에 몰리게 됨 서버 폭발! 미러 서버는 주 서버의 트래픽을 적절히 분산시킨다.

4

5 목차 미러링하고 있는 서비스 소개 FTP 서버 소개 FTP 서버 구조 미러링 추가하기/중단하기/삭제하기 보안 관련 사항
Troubleshooting 메일 처리하기 / 중요한 메일링 리스트 선배들 도움 받을 수 있는 곳 중요한 사람들 해야할 일들

6 미러링하고 있는 서비스 소개 가장 많이 사용하는 것 우분투 페도라 데비안 오픈수세 CentOS 이클립스 정도?

7 서버 소개 하드디스크 12개를 RAID-6로 묶어 18TiB의 저장 공간 확보
램 24Gib, 랜선 2 * 1Gbps (현재 40G랜카드가 장착되어 있으나, 드라이버 문제 때문에 사용 불가능) Http, FTP, rsync 프로토콜을 통한 접속을 지원 트래픽 양은 HTTP > FTP > rsync

8 Server 소프트웨어 소개 HTTP FTP Rsync Lightttpd 사용 Vsftpd 사용 Rsync 사용
주로 다른 미러에 미러를 제공하기 위한 수단

9 FTP 서버 구조 디렉토리 구조만 잘 알면 됨!

10 /mirror/ 거울에 관련된 파일들이 있다 Mirror 디렉토리 전체는 git으로 관리된다
패키지 관리 스크립트 셀제 패키지 데이터 패키지 메타데이터 웹 사이트 Mirror 디렉토리 전체는 git으로 관리된다 참고 몇몇 디렉토리는 /srv/로 링크된다 /mirror/ftp/ -> /srv/ftp/, /mirror/www/ -> /srv/www/ RAID6로 18TiB를 마운트

11

12 /mirror/bin/ 패키지 추가나 사용량 통계 등을 내는 각종 스크립트들이 있다.
create-pkg: 패키지 추가하기. check-anomalies: 로그를 보고 이상한 점을 알려준다. publish-status: 현재 상태를 업데이트 해 JSON으로 저장. get: URL에 따라 미러링할 컨텐츠를 받아온다. (get.ftp, get.http, get.rsync) 대부분의 스크립트는 bash로 짜여져 있음. create-pkg를 제외하고는 주기적으로 자동 실행되거나 다른 스크립트 에서 참조될 뿐, 직접 실행할 일은 거의 없다. /mirror/lib/: 미러링과 관련된 각종 함수들이 구현되어 있다. sync.sh <- pkg.sh <- geoul.sh

13 /mirror/pkgs/ 거울에서 미러링하는 패키지들에 대한 메타데이터가 담겨 있다.
/mirror/pkgs/fedora/: Fedora 미러링에 대한 정보 ./sync: 실제 싱크를 시작하는 스크립트 ./name: 패키지 이름 ./source: 데이터를 받아 오는 곳 ./frequency: 싱크 주기 ISO 8601 시간 포맷을 따른다. ./links: 패키지와 연관된 프로젝트 페이지 ./data/: 실제로 미러링하는 패키지 데이터 ./du.P#X.png: 디스크 사용량 ./usage.P#X.png: 트래픽 사용량 다른 특이사항을 적는 ./note나 원본 파일임을 알리는 빈 ./original 파일이 있을 수 있다.

14 /mirror/ftp/ 실제로 미러링되는 데이터가 있는 폴더.
/mirror/ftp/fedora/: Fedora 컨텐츠(iso, rpm 파일 등등)를 담고 있다. /mirror/ftp/vim/: Vim 홈페이지를 미러링하고 있다. ./robots.txt: 웹 크롤러 접근을 제어하기 위해 HTTP 서버로서 제 공하는 파일 기본적으로 모든 디렉토리를 차단 ./ls-lR: 다른 미러를 위해 FTP 서버로서 제공하는 파일

15 /mirror/log/ 미러링과 관련된 로그가 있는 폴더. ./sync: 싱크와 관련된 로그들을 저장
./usage: 트래픽 그래프를 저장 ./size: 디스크 사용량 그래프를 저장 ./unified: HTTP 서버 등 서비스의 로그를 저장 현재 로그가 있고 연도/월별 폴더에 예전 로그들이 gzip 압축되어 있음

16 /mirror/www/ ./self: http://ftp.kaist.ac.kr
거울에 관련된 정보들을 볼 수 있다. @kaist_ftp 트위터 피드 트래픽, 디스크 공간 사용량 현재 패키지 싱크 상황 index.html은 index.html.in으로부터 생성된다. ul#contents 하위의 패키지 목록들을 자동으로 생성한다. make index.html ./debian, ./ubuntu: 각각의 프로젝트 HTTP 미러링

17 /mirror/etc/ 거울에서 쓰는 다양한 프로그램/데몬의 설정 등을 담고 있음. /mirror/etc/noupdate
lighttpd.conf rsyncd.conf vsftpd.conf crontab.node, crontab.leader 주기적으로 상태 업데이트, 정체된 싱크 취소 등의 일을 한다. 주기적인 싱크: crontab.node에 설정 되어 있다. /mirror/bin/maintain-sync를 3분마다 실행 /mirror/etc/noupdate 존재하면 싱크를 수행하지 않는다. (/mirror/lib/geoul.sh의 system_not_degraded로 점검중인지 확인)

18 패키지 추가하기 /mirror/bin/create-pkg에 패키지 ID를 인자로 준다.
패키지 ID: /mirror/pkgs/아래에 이 이름으로 디렉토리가 생성된다. Name: 표시할 패키지 이름 Directory Name: ftp.kaist.ac.kr에 노출할 폴더 이름 /mirror/ftp/하에 이 이름으로 디렉토리가 생성된다. 생성되지 않는다면 직접 생성 해 줘야 된다. 권한 설정 꼭 확인! (폴더 소유자가 mirror여야 함) Source URL: 싱크받아올 곳 Frequency: 싱크 주기 보통 하루나 12시간 정도로 잡는다. Homepage URL: 패키지와 연관된 프로젝트의 웹 사이트

19 패키지 확인하기 기본적으로 새 패키지를 생성하면 frequency가 아닌 frequency.disabled가 생 성된다.
바로 자동적으로 싱크되지 않는다. /mirror/pkgs/ID/에서 설정을 확인한다. 필수적인 모든 파일들(name, source, frequency.disabled)이 있는지 확인한다. /mirror/ftp/DIRNAME/이 존재하는지 확인한다. frequency.disabled를 frequency로 옮긴다. frequency가 있으면 여기에 적힌 주기대로 자동적으로 싱크가 수행된다. Fedora같은 몇몇 패키지는 추가적인 sync 작업을 필요로 한다. ./sync 파일을 적절히 수정하자. 모든 게 정상이라면 패키지 싱크를 수행한다.

20 패키지 싱크받기 /mirror/pkgs/ID/ 안에서 ./sync now를 실행한다.
기본적으로 /mirror/lib/sync.sh를 불러오고 /mirror/bin/get을 실행한다. 디렉토리 안의 source에 따라 알아서 rsync, wget등을 실행한다. 싱크가 시작되면 /mirror/log/sync/에서 로그를 볼 수 있다. 오류가 난다면 아래에서 로그를 찾아 보자. 에 있는 목록에서 로그를 바로 열 수도 있다. 싱크가 진행중일 때는 lock 파일이 생성된다. 한 패키지를 여러 번 sync하려 할 때 생기는 경쟁 조건이 방지된다. 이미 진행중인 싱크를 중단할 때에는 ./sync stop을 쓴다.

21 싱크 할 때 팁 싱크 도중에 터미널을 꺼버리면 싱크가 멈춰버림 현재 ftp 서버에는 screen이 설치되어 있음
./sync now 을 실행하고 Ctrl-A D 를 누르면 가상 터미널에서 분리됨 그 다음 터미널을 꺼도 됩니다.

22 패키지 삭제하기 그냥 /mirror/pkgs/의 해당 패키지를 삭제하면 된다.
물론, /mirror/ftp/등에 있는 (/mirror/pkgs/data/) 데이터는 직접 찾아서 삭 제해 줘야 된다. 깃허브의 검색 기능 사용하면 해당 페키지 설정 파일들이 어디에 위치해 있는지 쉽게 파악하기 가능! 일일이 찾아서 지워주자 index.html을 다시 make해 주는 것을 잊으면 안 된다. How? /mirror/www/self/ 에서 make 해주면 된다

23 새로운 계정 생성하기 FTP 서버의 경우 보안을 위해서 sparcs서버에서의 접속만 허용하고 있 음
접속도 오직 Public Key를 이용해야만 접속 가능 관리자 권한도 휠과 분리해서 관리, LDAP 연동 돼있지 않음 계정 만드는 과정) useradd 로 계정 만들기 Ssh-keygen 으로 private key/public key 만들기 (2048 byte 이상의 rsa key권 장), 스팍스 서버에서 만들기 /home/[유저이름]/.ssh/authorized_keys 에 pubic key 추가 Sshd_config에 해당 계정 추가 Visudo를 이용해 새로운 계정 추가 항상 비밀번호는 최대한 길고, 다른 사이트에서 사용하지 않은 것으로 하기

24 방화벽 관리하기 스팍스 대부분 서비스와 다르게 ftp는 netfilter/iptables로 방화벽 설정이 되어있음
Iptables –L 로 현재 방화벽 설정을 볼 수 있다 Iptables-save > /etc/iptables.rules 로 방화벽 설정 저장 가능 데비안 푸시 서버 ip가 바뀌는 경우 방화벽에서 막으므로 새로운 ip로 접근이 가능하도록 바꿔주기

25 TroubLESHOOTING 패키지 싱크가 안 될 때 로그를 확인해본다. WEB으로도 쉽게 확인 가능

26 이 경우 미러링 하는 서버가 접속이 안되서 (Network is unreachable) 싱크가 안되고 있다
Ex) 일본 서버 (ftp.jaist.ac.jp) 등을 고려해본다.

27 싱크 위치 바꾸는 방법 /mirror/pkgs/[패키지 이름]/ 폴더로 이동 Source 파일 변경해주기

28 Debian의 경우 싱크 안될 때 Debian의 경우 archvsync라는 프로그램을 따로 이용해서 싱크가 돌아감
푸시가 제대로 오는지 확인 (방화벽 등에 문제가 있을 수 있음)

29 한꺼번에 너무 많은 파일이 삭제돼서 안될 때 Eclipse와 같은 경우 파일이 많이 삭제 경우가 많음
소프트웨어 새 버전이 업데이트되어 옛 버전이 지워졌을 수도… 혹시 모를 비정상적인 싱크를 방지하기 위한 대비책 하지만 정상적인 경우라면 강제로 싱크를 해줄 필요가 있음

30 /mirror/pkgs/[패키지 이름]/ 폴더로 이동
환경변수를 주고 sync now를 실행하기 GET_NO_MAXDELETE=true ./sync now 최후의 수단으로는 /mirror/ftp/[패키지 이름]를 날려버릴 수 있다 극단적인 해결방법이므로 확실히 무언가 심각하게 꼬였을 때에만 고려한다

31 몇몇 파일을 미러링할 수 없을 때 임시파일 등의 권한이 잘못되어 미러링 할 수 없을 때가 있다
그쪽 서버 문제이므로 exclude 목록에 추가하는 것 이상으로 해줘야 될 일 은 없다 로그를 보고 무슨 파일이 문제를 일으키는지 확인하자

32 중요한 사람들? 코렌 (Koren) KOREN NOC Helpdesk Tel : 02-6191-2081
네트워크 광 단자 빌린 곳 인터넷 망을 제공하는 곳 인터넷에 문제가 생기면 연락할 필요가 있음 <연락 주소> KOREN NOC Helpdesk Tel :

33 FTP로 메일 온 것 처리하기 학교 외부 사람들도 FTP를 많이 사용함, 그래서 간간히 메일이 옴
미러 추가 요청, 서비스 장애 요청, 속도 느리다는 불만 등등? (당연하게도) 신속하게 처리해 줄 필요가 있음 일단 edalias로 geoul 메일링을 구독하자

34 이런식으로 반드시 CC에 ftp@ftp.kaist.ac.kr를 붙여준다
그래야 다른 거울 구성원들이 메일에 답장을 했는지 알 수 있어서 중복된 답변을 피할 수 있다.

35 선배들 도움 받기 스랙의 #ftp-issues 에서 질문하기. 거울이면 반드시 들어오세요
메일을 통해 질문하기. (cc에 붙이면 됩니다 석주 先輩에 질문하면 아마 도와줄 수도?

36 해당 배포판 미러 관리자에게 도움받기 우분투, 페도라 등등 개별적인 배포판의 미러링 문제가 있을 때, 직접 미러 관리자에게 물어보는게 가장 확실한 대답을 들을 수 있 음 예) 에 메일을 보내면 아치리눅스 미러링 관련된 질문의 대답을 얻을 수 있음 에 메일을 보내면 데비안 관려된 질문, 대답을 얻을 수 있음 누구의 흑역사도 그대로 인터넷으로 공개되어있으니 한번 메일링 리스트에 서 찾아보세요. (힌트) 에서 찾아보 기

37 해야할 일들 OS 업데이트 거울 깃허브 위키 활성화 사이트 리뉴얼 HTTPS(TLS) 적용
이것 때문에 보안 패치, 40G 네트워크 카드를 사용하지 못하고 있음 거울 깃허브 위키 활성화 쉽게 내용들을 찾아볼 수 있게 만들어서 인수인계/문제 해결이 쉽도록 사이트 리뉴얼 가 정말 깔끔하게 잘 적용 HTTPS(TLS) 적용 OS 업그레이드 등 적용하기 이전에는 힘들 수도 있을 것 같음

38 해야할 일들 필요 없는 패키지 정리하기 40G 인터넷으로 전환 서버 업그레이드 및 하드디스크 용량 업그레이드
일부 이미 진행되었음 (medibuntu, freebsd-kr) 40G 인터넷으로 전환 OS 업데이트 ㅠㅠ 서버 업그레이드 및 하드디스크 용량 업그레이드 서버 사용한지 거의 10년이 다 되감 하드 용량과 성능이 부족함. 간간히 엄청 느려지는 경우가 있음 ZFS 사용해보기? SSD로 cachin하면 하드디스크 botleneck 문제도 해결 될 수 있을 것 같음….. (서버 업그레이드 한다는 가정 하에)

39 참고자료 Differ 거울 세미나 (감사합니다…)


Download ppt "거울 소개 및 인수인계 세미나 BY COEARTH."

Similar presentations


Ads by Google