공지

SOHEE 서버 관계도

ForceCore 2008. 11. 22. 03:41


필자의 AD서비스 구조는 대강 이렇다. 그림에 인터넷이 firey에만 연결된 것으로 보이는데 ㄱ- 그럴리가 있나. 각 컴퓨터가 모두 인터넷에 연결되어 있다. 단지 집에서 작업하는 사용자들이 주로 사용하게 될 서버가 firey임을 강조하기 위함이다.

도메인 명은 sohee.xxx.ac.kr
AD컨트롤러는 sohee.xxx.ac.kr, prime.sohee.xxx.ac.kr으로 접속될 수 있도록 도메인명이 부여되어 있다.
(한 IP가 도메인 두 개를 가지는 것이다.)
액티브디렉토리의 데이터는 주기적으로 백업된다. 자동화 되어 있음...

학교의 컴퓨터실의 컴퓨터들은 모두 AD에 물려 있어서 통합 로그인이 된다.
AD에 물린 관계로, 일반 이용자들은 프로그램을 마음대로 설치할 수 없다 :D
xx툴바인가 뭔가 하는 것들도 전혀 없어서 깔끔하다. 훗.
다만, 관리자가 해야 할 일이 많다. 뭐 깔아주세요... 하면 검토해서 설치해야 하고, 그것을 배포해야지 된다. 관리자만이 그것을 할 수 있으니까. 그냥 리눅스 서버 생각하면 된다. root만이 여러가지를 할 수 있고 사용자는 사용만 하거나, 자기 홈디렉토리 안에서만 할 수 있는 것을 해야지 된다.

프린터 서버가 한 대 있어서 (사실 이 녀석은 가상화가 되어 있다.) 사용자가 컴퓨터실에서 인쇄를 하면 계정의 예치금이 빠져나가도록 되어 있다. 모든 프린터들은 이 컴퓨터에 연결되어 있다.
 사실 가장 이상적인 것은, 프린터 서버는 가상화되지 않은 상태로 랜카드를 두 개 가지고 있어서, 그 랜카드에는 192.168.0.1, 나머지 프린터들은 수동으로 192.168.0.2 이런 나머지 IP를 부여하는 것이 가장 좋다. 즉, 프린터들은 사설 IP를 가지고 있고, 프린터 서버는 외부 접속을 위한 NIC와, 내부IP용 NIC를 가지고 있는 것이다. 이게 왜 필요한고 하니... 일반 이용자가 프린터의 IP를 알아내면 스스로 프린터를 설치해서 ㄱ- 요금 부과를 bypass할 수 있기 때문이다.
 하드웨어적으로, "복사/인쇄 카드"장비를 달고 프린터도 적당히 설치한 뒤, 특별한 좌석에서만 인쇄가 가능하게 하는 방법이 있다. 하지만... 이 방법은 별로 쓰고 싶지 않다 :S 특별한 자리가 있게 되면 그 자리는 너무 인기가 좋아서 ㄱ-; 이용자들이 프린트 하기 힘들 수도 있기 때문이다. 하지만 이 방법은 부정한 인쇄를 확실히 막을 수 있다는 장점이 있다.

싼 가격에 대용량을(1인당 2GB) 제공하기 위해 PC로 이루어진 storage서버군이 있다. 특별한 장비를 사는 것 보다 PC로 서버를 만드는게 훨씬 싸다 :D 성능상, 아직은 문제 없음.
 이 storage 서버에 FTP로 직접 접속이 가능하기는 한데 ssh로 로그인은 할 수 없게 되어 있다. (일반 이용자는.)
아직 그 사실을 아는 이용자는 별로 없는데, 이유는... 접속의 간단명료함을 위해 firey.sohee로 접속해서도 ftp로 파일을 다운로드 받을 수 있게 했기 때문이다. firey에 접속이 너무 몰리거나, firey를 관리상의 이유로 다운시키는 경우에는 그 때 가서 직접 접속하라고 하는 편이다.
 이 서버의 주된 용도는 파일서버이다. firey, watery가 NFS로 접속한다. 사용자의 홈디렉토리는 실제로는 storage서버군에 있지만, 그것을 NFS로 mount해서, firey나 watery나 동일한 내용이 보일 수 있도록 되어있다! 또한, 컴퓨터실의 컴퓨터도, samba를 이용하여, 자신의 홈디렉토리 내용이 z:\ 네트워크 드라이브로 보이도록 설정되어 있다.
 PC용이기에 싼 하드디스크를 여러개 달고 있지만, 안정성을 위해서 백업 스크립트를 일주일에 한번씩 돌려서, 다른 디스크로 파일을 복사하도록 되어 있다. 서비스 하기위해 달아놓은 디스크의 용량이 500GB라면, 500GB하드가 또 달려있는 것이다... raid 1을 생각하면 될 것 같다. 다만 raid가 아니고 스크립트에 의한, 일주일에 한번 자동 복사 ㄱ-;;
 백업스크립트에서는 rsync로 디렉토리간 sync로 복사를 하는데, --delete옵션은 가끔씩만 수동으로 주어서 하드용량이 넘치지 않도록 한다. 평소에는 delete는 하지 않고 백업을 해서 원본에서 없어진 내용도, 사본에는 남아있도록 하는 것이다. 이 시스템을 2년간 구동했는데, "실수로 파일을 지웠어요 ㅠㅠ"라고 찾아오는 사람들이 가끔 있었다. 여태껏 두 명 봤다. 그 때마다 운 좋게도 살려줄 수 있었다. (운이 좋게... 라고함은. 파일이 백업파티션에 복사 된 후에 사용자의 실수로 삭제되었다는 의미이다;;;;)

firey서버는 실습용 서버이다. 사용자들이 자기 컴퓨터에 리눅스를 까는 삽질을 굳이 하지 않아도 된다는 것이다. CentOS이며, 설치시, 모~든 development관련 패키지를 다 설치하도록 하였다. 관리할 때도 모든 컴파일 도구가 설치가 되어 있는 편이 더 쉽다. XDMCP접속도 가능하게 나중에 바꿀 생각이다. 더 성능이 좋은 머신으로 바뀌면...
 그런 것 외에, MySQL db도 설치가 되어 있다. 원하는 사람에 한해 MySQL DB를 발급해주고 있다. 자신의 홈디렉토리에 public_html 디렉토리를 생성하면 홈페이지를 구동할 수 있다. 일명 APM서버 기능도 하는 것이다...
 또 FTP서비스도 하고 있다. storage서버로 직접 접속하기 보다는 이쪽을 통해 자신의 홈디렉토리에 access하도록 되어 있다. 그러면 storage서버와 firey사이의 로드가 좀 있을텐데... 이 로드를 고려해서, 이들 주력 서버군은 한 네트워크 스위치에 묶어 두었다.

watery서버는 solaris 10서버이다. 역시 실습용이다. sparc머신이라 진정한 하드코어 솔라리스라고 할 수 있다. 오호호... 성능은 구리다. firey와 같은 목적으로 만들어졌다. 실습을 하고자 한다면 ㄱ- 가능하다. 역시 AD에 물려있다. 물리려고 굉장히 노력했고, 최근 성공하였다.