Solaris의 가장 특징 중의 하나가 클라이 언트-서버의 환경을
구축하는데 가장 적합하다는 것이다. 이는 분산 시스템과 여러
사용자가 동시에 여러 개의 업무를 수행 할 수 있게 해줌을
의미하며,다르게 보면 네트워크를 통해 구축이 되는 전산
시스템에 아주 적합함을 의미하기도 한다. 클라이언트/서버
환경을 쉽게 표현하면 서비스의 요청과 이에 응대하는 역할
분담이 정의가 되어지는 것이다. 이러한 환경이 구현이 되어
멀티 태스킹(Multitasking), 멀티유저(Multiuser),
분산처리(Distributed processing)가 가능하게 해준다
.

멀티 태스킹(Multitasking)이란 호스트에서 하나 이상의 프로세스 또는 애플리 케이션이 동시에 사용되어지는 것을 의미한다. 예를 들면, 프린팅 하는 프로세스가 현재 수행 중이더라도, 사용자는 자신의 프로그램을 실행을 시킬 수 가 있다.

멀티 유저(Multiuser)란 호스트의 같은 재원을 하나 이상의 유저가 동시에 사용이 가능함을 의미한다. 예를 들면, 하나의 시스템에 여러 명의 사용자가 동시에 telnet으로 연결하여 시스템의 재원을 사용 할 수 있다.

이와 같이 UNIX 시스템은 멀티 태스킹과 멀티 유저를 통해 하나의 사용자가 여러 개의 프로세스를 수행시킬 수 있고, 이러한 사용자가 시스템의 용량에 따라 수많은 프로세스를 수행시킨다. 이러한 특징이 UNIX 시스템을 많이 사용하고 있는 이유이기도 하다.

Solaris는 이러한 멀티 태스킹(Multitasking)과 멀티유저(Multiuser) 환경을 네트워크를 통해 아주 쉽게 구현이 되도록 해준다. 네트워크의 설정 뿐만 아니라, 리모트(remote) 서버에 접근하는 방법까지 아주 다양한 솔루션(Solution)을 제공한다. 예를 들면, NFS 서버, 인터넷을 연결해 주는 프락시(proxy) 서버, TCP/IP를 기반으로 하는 다양한 프로그램에 대해 지원을 해준다. 경우에 따라서는 OS서버를 구축하여 네트워크를 통해 OS를 제공하기도 하고, 심지어는 local 서버에 있는 데이터를 제공하는 서버도 쉽게 구축할 수 있다.

Distributed process(분산처리)란 네트워크를 통해 서로의 재원을 사용이 가능하다. 즉, 각각의 호스트에서 전체 업무를 수행하는 것이 아니라, 각각 분담하여 처리가 가능하게 해준다. 서로 협조하여 동작하는 복수의 컴퓨터로 이루어 지는 시스템이며, 복수의 프로세서(processor)에 의해 1대의 컴퓨터를 구성하는 다중 프로세서와는 구별된다. 이렇게 쉽게 구현이 되는 네트워크를 통해 솔라리스는 클라이언트 - 서버 컴퓨팅 환경을 아주 쉽고, 편하게 접근이 이루어 지게 해준다.

[그림 1-3]을 보면 하나의 네트워크를 통해서 서비스를 요청하는 클라이언트와 여기에 응답하는 서버를 보여 주고 있다. 그림을 보면 하나의 클라이언트가 서버에 연결되어 있는 프린터를 사용하고 싶을 경우, 클라이언트는 프린터를 가지고 있는 서버에게 해당 재원을 사용할 것을 요청한다. 서버는 재원에 대한 모든 책임과 권한을 가지고 있으므로, 해당 재원이 사용하는데 아무런 이상이 없다면 클라이언트가 재원을 사용할 수 있는 환경을 제공해 준다. 그러면 클라이언트는 프린트 하고자 하는 내용을 프린터를 가지고 있는 서버를 경유하여 해당 내용을 출력할 수 있다. 이러한 구성도가 클라이 언트 - 서버의 가장 일반적인 형태이다.


[그림 1-3] Clianr-Server 구성 예

[그림 1-3] Clinet-server 구성 예


앞으로는 UNIX의 구성도를 보면 이러한 클라이 언트 - 서버 구성도를 생각하면 시스템을 이해하는데 많은 도움이 될 것으로 본다. 아래의 그림은 두 대의 서버가 어떤 업무에 대해서 분산 처리함을 설명하기위해 보여준다.



[그림 1-4] 분산처리

[그림 1-4] 븐산 처리


server 1은 데이터 베이스(Database) 관리 서버이고, server 2는 클라이언트 요청에 응답을 해주는 서버이다. 어떤 A라는 유저가 서울에 있는 송파구의 우편 번호를 요청했다고 하자. 이때 server 2는 A라는 유저로부터 우편번호에 대한 요청을 받아서 이를 server 1에 넘겨준다. server 1은 요청된 내용에 대해 우편번호를 찾아서 그 결과를 server 2에 전달을 해주면 server 2는 A라는 사용자에게 대답을 해주게 된다. 물론 한 서버에서도 구현이 되지만 위와 같이 하게 되면 각각의 서버에 주어지는 부하가 많이 감소되고, 안정적이고 효율적인 서버 운영이 가능해 진다.


다음은 솔라리스를 통해 구현이 가능한 서버의 종류를 나열한 것이다.

파일 서버(file server)
디스크에 저장되어 있는 파일들을 네트워크상의 다른 호스트가 사용이 가능하도록 분배(share).


NIS+(or NIS) 서버
NIS+(Network Information Service Plus)(or NIS) 데이터베이스를 클라이언트에게 제공한다.


프린터 서버(printer 서버)
네트워크상의 다른 호스트들에게 자신이 가지고 있는 프린터(=로컬 프린터(local printer))를 사용 가능하게 해준다.


메일 서버(mail server)
전자 메일이 가능하게끔 자원을 해주는 서버이다.


도메인 네임 서버(DNS:Domain Name Server)
인터넷이 가능하도록 도메인(domain)을 지원해 주는 서버이다.


데이터베이스(DB:DataBase) 서버
모든 데이터를 관리해주는 서버이다.


이와 같이 어떤 서비스를 제공하는 모든 호스트나 프로세스를 서버(server)라고 표현한다. 이 외에도 운영하고자 하는 용도나 시스템의 구성에 따라 서버의 형태가 달라질 수 있다.



다음의 그림은 TCP/IP 네트워크에서 ftp를 서비스하는 것을 보여 주고 이다. 시스템 B는 ftp를 서비스 하는 서버이고, 시스템 A는 ftp를 요청하는 서버 또는 클라이언트이다.


[그림 1-5] ftp 서버 구성의 예

[그림 1-5] ftp 서버 구성의 예



먼저 시스템 A가 시스템 B에게 ftp접속을 요청했다. 이때 시스템 B는 ftp 서비스를 하기 위해 21번 포트만을 열어 놓고, 연결 요청을 기다리고 있다가, 시스템 A에서(클라이언트) 연결 요청이 들어오면 20번과 21번 포트번호를 가지고 2개의 연결을 맺는고 서비스 할 준비를 한다. 21번과 관련된 연결은 모든 명령(comm. -and)과 관련된 데이타가 전송되고, 20번으로는 실제 파일내용이 전송된다. 시스템 B에서는 네트워크 관련 서비스를 위한 데몬들을 관장하는 것이 있는데 이를 inted 데몬이라 한다. 그림 처럼 ftp나 telnet등의 서비스 요청이 들어 오면 관련 데몬을 fork하여 요청하는 클라이언트에 대해 응답을 하도록 해준다. ftp의 경우에는 ftpd 라는 데몬이 inetd에 의해 fork되어 서비스 한다.

네트워크를 통해 분산처리가 이루어 지는 것은 대표적으로 NFS(Network File System)기능이 있다. 네트워크에 있는 다른 서버나 클라이언트가 사용이 가능하도록 자신이 가지고 있는 재원을 네트워크에 띄운다. 이를 서버측에서는 'share'한다고 표현한다. 클라이언트에서는 share된 재원을 마치 자신의 것처럼 사용한다. 예를 들면, 사용 가능한 경우는 local적으로 CD-ROM 드라이브가 없다고 하자. 이럴 경우 네트워크를 통하여 CD-ROM 드라이브를 가지고 있는 시스템에서 share를 해 놓으면, 필요한 클라이언트는 이 CD-ROM을 마치 자신의 시스템에 장착이 되어 있는 것처럼 사용할 수 있다. 그리고, 서버에 집중되어 있는 유저들을 관리하는 NIS/NIS+(Network Information Service Plus)기능을 가지고 있다.

서버의 네트워크를 구성하는 하드웨어적 요소인 이더넷(Ethernet)을 통해 TCP/IP라는 프로토콜을 이용하여 UNIX시스템들은 원격지 서버로의 로그인(remote login), 원격지 서버에서 명령어의 실행(Remote command execution), 원격지 서버로 또는 서버에서 파일의 카피(Remote file coopying), 원격지 서버에 연결되어 있는 프린터로 출력(Remote printing), 원격지 서버에 연결되어 있는 백업 디바이스로 백업 받기(Remote backup),

서버 사이에서 전자 우편 보내기(Electronic Mail)등의 원격지로의 다양한 방법의 접근(Remote access)이 가능하게 해준다. 특히, 원격지 서버에 있는 파일을 공유하는 방식은 솔라리스의 가장 큰 특징 중에 하나이다. 이를 통해 NFS 밑 NIS/NIS+ 등의 환경 구축이 가능하게 되었다.

'solaris' 카테고리의 다른 글

solaris9 + tomcat6 + apache2.2  (0) 2008.01.08
솔라리스9 + sendmail + 버클리db + qpopper 설치  (0) 2008.01.02
솔라리스 SWAP / swap  (0) 2007.09.03
솔라리스 10의 주요 기능  (1) 2007.08.27
솔라리스 SSHD  (0) 2007.08.22

+ Recent posts