'컨테이너'에 해당되는 글 3건

  1. 2014.11.20 WEB 서버와 WAS 서버의 차이
  2. 2009.02.17 솔라리스 10 - 컨테이너(Zone) 특성 및 종류
  3. 2009.02.17 오픈 솔라리스에서 존 설치 ( zone install on opensolaris )
2014.11.20 10:26

WEB 서버와 WAS 서버의 차이

■ 웹 서버(Web Server)
 - 클라이언트의 요청을 받아 HTML이나 오브젝트를 HTTP 프로토콜을 이용해 전송하는 것.
   사용자가 클라이언트로 요청을 보내오면 그 명령에 대한 처리를 실행하고 다시 사용자에게 답변을 보내준다.
 - 사용자가 요청한 것들 중에 웹 서버 자체적으로 처리할 수 없는 것들을 톰캣과 같은 컨테이너나 PHP 모듈과
   같이 처리할 수 있는 곳으로 넘겨 처리 결과를 받아와서 사용자에게 넘겨주는 역할도 수행한다.
 - 웹 서버만 구축된 서버는 웹 페이지, 이미지 등 정적인 페이지를 생성하지만,
   JSP 컨테이너가 탑재되어 있는 WAS는 JSP 페이지를 컴파일 해 동적인 페이지를 생성한다.
 - 웹 서버는 웹 문서를, WAS는 JSP 페이지 등을 양분하여 서버 부담을 줄이는 것이 가능하다.
 - Apache, IIS(Internet Information Server), WebtoB 등




■ 웹 어플리케이션 서버(Web Application Server / WAS)
 -  웹 서버 + 웹 컨테이너.
 -  웹상에서 사용하는 컴포넌트들을 올려놓고 사용하게 되는 서버
 - EJB와 같은 빈들이 올라가게 되며, 서버에 따라 웹에 필요한 많은 기능들을 포함하고 있다.
 - J2EE 스펙을 구현한 서버(JSP / Servlet Container와 EJB Container 로서의 기능)
 - 가장 많이 사용하는 WAS는 BEA사의 Web Logic, IBM사의 Web Sphere, T-max사의 Jeus, Tomcat, Redhot사의 JBoss 등이 있다.)
 - Tomcat은 JSP / Servlet Container의 기능을 구현했으나 EJB Container로서의 기능은 없다.
    따라서 Tomcat은 Was가 아니라는 사람들도 있다.



■ 컨테이너(Containner)
 - JSP와 서블릿을 이용하는 웹 응용 프로그램은 자바 언어를 이용해서 작성할 수 있는데,
   JSP와 서블릿을 실행시킬 수 있는 소프트웨어를 웹 컨테이너(Web Container) 혹은 서블릿 컨테이너(Servlet Container)라고 한다.
 - Servlet 컨테이너, JSP 컨테이너, EJB 컨테이너 등의 종류가 있으며, 대표적인 웹 컨테이너로는
   자카르타 톰캣(JSP), RESIN, Web Logic, WebtoB 등이 있다.
 - 웹 서버에서 JSP를 요청하면 톰캣에서는 JSP 파일을 서블릿으로 변환하여 컴파일을 수행하고,
   서블릿의 수행결과를 웹 서버에서 전달하게 된다. 



 웹 서버와 WAS의 차이점
 - 웹 서버와 WAS를 구별 짓는 것은 동적 서버 콘텐츠를 수행하는가? 만약 수행한다면 WAS로 보면 된다.
 - 웹 서버 : 정적인 HTML이나 이미지를 제공하는 서버.
   WAS : 동적인 처리를 담당하는 서버. 



■ 웹 서버와 WAS의 일반적인 구성
 - 사용자가 브라우저에서 요청을 하게 되면 다음과 같이 웹 서버와 WAS 서버를 거쳐 응답이 돌아오게 된다.
   사용자 요청(웹 브라우저) -> 웹 서버 -> WAS(동적 처리) -> 웹 서버 -> 사용자 응답 메세지(웹 브라우저)






출처 : gap85.tistory.com


Trackback 0 Comment 0
2009.02.17 11:14

솔라리스 10 - 컨테이너(Zone) 특성 및 종류

Container의 특성

container는 여러개의 어플리케이션을 독립적으로 실행 시킬 수 있는 기술

운영체제의 프로세스 영역, 자원 할당, 사용자 할당에 대한 부분을 독립적으로 운영 할 수 있다.

 

Container는 os 내에 가상 운영 체제 공간을 만드는 것이다.

vmware는 독립적인 커널을 사용하지만 Container는 운영체제의 일부를 복사해서 사용한다.

Container를 이용하여 웹서버를 여러개 구성 할 수도 있고, DNS서버, Mail 서버등을 운영 할 수 있다.

 

Container는  메모리 - 50M, 디스크 - 100M 정도를 사용한다고 한다.

 

보안성

분리성

가상화

세밀성

투명성

 

Container의 종류

 Global zone - 현재 운영 중인 존, 솔라리스 기본 운영시스템,

               시스템 제어

 

 Non Global zone - Global zone의 정보를 공유 하는 존

                            존을 생성 하면 모두 Non Global zone 이 된다.

                   서로 다른 존을 인식하지 못하고, non global zone을 생성, 삭제 하지 못한다.

 

 

Zone 의 Daemon

zoneadmd

   가상플랫폼을 관리 하는 주 데몬

 

   부팅과 셧다운을 관리

   zone id 할당과 zsched  프로세스 시작

   존 장치 구성 관리

   네트워크 인터페이스 관리

   가상 NIC plumb와 전통적인 파일 시스템 마운트

 

Zschd

     모든 실행 중인 존은 Zsched라는 커널 프로세스를 가진다.

     zone 내에서 작업하는 커널 쓰레드는 Zsched 데몬에 의해 소유된다.

 

zone 파일 시스템

  /ib, /platform, /sbin, /usr 디렉토리를 글로벌 존에서 공유

 

zone의 네트워킹

  hme0이면 hme0:1을 사용하게 된다.

 

zone 의 상태 정보 확인

 

 undefined

아직 존이 구성 완료되지 않거나 존의 구성 정보가 삭제된 상태

 configured

존의 구성이 완료된 상태 이나 application 환경 요소들이 없는 상태

 incomplete

zoneadm 명령에 의해 설치 및 설치 해제가 수행되는 과도기적인 형태

 installed

존의 구성이 시스템에서 테스트 됨
구성정보가 성공적으로 사용되어지는지 확인

 ready

존을 위한 가상 플랫폼 구성존과 관련된 프로세스들은 아직 시작되지 않음

 running

존 응용프로그램 환경과 관련한 사용자 프로세서들이 실행중인 상태

 shutting down

 존이 정지 되는 동안에 보이는 과도기적 상태


출처 : http://blog.sdnkorea.com/

Trackback 0 Comment 0
2009.02.17 11:11

오픈 솔라리스에서 존 설치 ( zone install on opensolaris )

오픈 솔라리스에서 컨테이너(존)을 설치해보았습니다.
컨테이너를 설치하려면 일단 컨테이너 구성을 해야 합니다.
#zonecfg -z web
을 이용해서 다음과 같이 구성했습니다.

bhkim@vaio-bhkim:/zone# zonecfg -z web export
create -b
set zonepath=/zone/web
set brand=ipkg
set autoboot=false
set ip-type=shared
add net
set address=10.10.0.1/24
set physical=yukonx0
end
여 기서 흥미로운 것은 brand의 변수가 'native'가 아니라 'ipkg'이라는 점입니다. ipkg는 오픈 솔라리스가 사용하는 인스톨러 방식인 IPS를 위한 패키지를 의미하는데, 이점은 컨테이너 설치시에 필요한 이미지를 인터넷에서 다운로드 받겠다는 것을 의미합니다.

그리고, zonepath=/zone/web 인데, 사전에 만들어져 있다면, 반드시 ACL mode를 700으로 설정해야 합니다. 디렉토리가 없다면, 존 구성시 700을 가진 /zone/web 디렉토리를 자동적으로 구성합니다.

혹시나 해서 brand를 native로 바꾸어 보았습니다.
그리고, 아래 처럼 확인하고
bhkim@vaio-bhkim:~# zoneadm list -cv

ID NAME STATUS PATH BRAND IP
0 global running / native shared
- web configured /zone/web native shared

설치 시도해봅니다.
bhkim@vaio-bhkim:~# zoneadm -z web install

sh[1]: exec: /usr/lib/lu/lucreatezone: not found
안되는 군요. native는 lu(live upgrade)기술을 활용해서 글로벌존에 있는 패키지를 이미지화 해서 컨테이너가 있는 디렉토리로 옮겨주는데 아예 툴이 없습니다.

bhkim@vaio-bhkim:~# zoneadm list -cv
ID NAME STATUS PATH BRAND IP
0 global running / native shared
- web incomplete /zone/web native shared
설치시도에서 오류가 밸생해서 존의 상태가 incomplete로 남게됩니다. 따라서, 새로 설치를 다시 하려면 configured 모드로 돌아가야 하는데, 그렇게 만들기 위해서 uninstall을 실행합니다.

bhkim@vaio-bhkim:~# zoneadm -z web uninstall

Are you sure you want to uninstall zone web (y/[n])? y

성공적으로 uninstall 되었으면 다시 설치해봅니다.

bhkim@vaio-bhkim:~# zoneadm -z web install


Image: Preparing at /zone/web/root ... done.
Catalog: Retrieving from http://pkg.opensolaris.org:80/ ... done.
Installing: (output follows)
DOWNLOAD PKGS FILES XFER (MB)
SUNWcsl 22/52 4681/7830 79.66/209.30


설치가 진행되고 있군요. 인터넷이 연결되어 있지 않으면 위 URL에 접속할 수 없으므로, 설치가 되지 않습니다. 좋은 점도 있긴 합니다만 인터넷이 없으면 설치하기가 어려우므로 다소 불편할 수도 있겠습니다.

다음은 설치가 완료된 상태입니다.
bhkim@vaio-bhkim:~# zoneadm -z web install

Image: Preparing at /zone/web/root ... done.
Catalog: Retrieving from http://pkg.opensolaris.org:80/ ... done.
Installing: (output follows)
DOWNLOAD PKGS FILES XFER (MB)
Completed 52/52 7830/7830 209.30/209.30

PHASE ACTIONS
Install Phase 12880/12880

Note: Man pages can be obtained by installing SUNWman
Postinstall: Copying SMF seed repository ... done.
Postinstall: Working around http://defect.opensolaris.org/bz/show_bug.cgi?id=681
Postinstall: Working around http://defect.opensolaris.org/bz/show_bug.cgi?id=741
Done: Installation completed in 648.009 seconds.

Next Steps: Boot the zone, then log into the zone console
(zlogin -C) to complete the configuration process


설치가 끝났으므로, 부팅을 해봅니다. 그리고 콘솔에 로그인해봅니다.

bhkim@vaio-bhkim:~# zoneadm -z web boot
zoneadm: zone 'web': Unable to set route for interface lo0 to ��� ��x�
zoneadm: zone 'web':
bhkim@vaio-bhkim:~# zlogin -C web
[Connected to zone 'web' console]


You did not enter a selection.
What type of terminal are you using?
1) ANSI Standard CRT
2) DEC VT100
3) PC Console
4) Sun Command Tool
5) Sun Workstation
6) X Terminal Emulator (xterms)
7) Other
Type the number of your choice and press Return: 6
Creating new rsa public/private host key pair
Creating new dsa public/private host key pair
Configuring network interface addresses: yukonx0.


─ Host Name for yukonx0:1 ──────────────────────────────────────────────────────

Enter the host name which identifies this system on the network. The name
must be unique within your domain; creating a duplicate host name will cause
problems on the network after you install Solaris.

A host name must have at least one character; it can contain letters,
digits, and minus signs (-).


Host name for yukonx0:1 web











────────────────────────────────────────────────────────────────────────────────
F2_Continue F6_Help

;정상적으로 떴군요. ^_^

매우 흥미로운 것은 컨테이너를 만들기 전에 컨테이너 저장될 디렉토리를 미리 만들어놨었는데(아래)
...
rpool/zone 110K 37.3G 20K /rpool/zone
rpool/zone/mysql-db1 18K 37.3G 18K /zone/mysql-db1
rpool/zone/mysql-db2 18K 37.3G 18K /zone/mysql-db2
rpool/zone/mysql-mgm 18K 37.3G 18K /zone/mysql-mgm
rpool/zone/mysql-sql 18K 37.3G 18K /zone/mysql-sql
rpool/zone/web 18K 37.3G 18K /zone/web


설치하고 나니 /zone/web 디렉토리를 사라져 버리고 안보이는 군요. 정상인 것인지 다소 궁금합니다.
아마도 보안이유로 마운트 포인트에서 없앤것이 아닌가 싶은데, 그렇다고 zfs list에서 조차 보이지 않는 것은 좀 의아하군요.

설치이후
bhkim@vaio-bhkim:/zone# zfs list
NAME USED AVAIL REFER MOUNTPOINT
rpool 39.0G 37.3G 57K /rpool
rpool@install 17K - 55K -
rpool/ROOT 6.67G 39.6G 18K /rpool/ROOT
rpool/ROOT@install 15K - 18K -
rpool/ROOT/opensolaris 6.67G 39.6G 4.04G legacy
rpool/ROOT/opensolaris@install 503M - 2.22G -
rpool/ROOT/opensolaris@091108 102M - 3.87G -
rpool/ROOT/opensolaris@091608 19.6M - 3.80G -
rpool/ROOT/opensolaris/opt 1.96G 39.6G 1.77G /opt
rpool/ROOT/opensolaris/opt@install 112K - 3.60M -
rpool/ROOT/opensolaris/opt@090308 191M - 1.73G -
rpool/ROOT/opensolaris/opt@091608 1009K - 1.77G -
rpool/export 30.0G 37.3G 19K /export
rpool/export@install 15K - 19K -
rpool/export/home 12.2G 55.1G 11.8G /export/home
rpool/export/home@090308 404M - 10.9G -
rpool/zone 90K 37.3G 18K /rpool/zone
rpool/zone/mysql-db1 18K 37.3G 18K /zone/mysql-db1
rpool/zone/mysql-db2 18K 37.3G 18K /zone/mysql-db2
rpool/zone/mysql-mgm 18K 37.3G 18K /zone/mysql-mgm
rpool/zone/mysql-sql 18K 37.3G 18K /zone/mysql-sql

아마도 해달 화일 시스템인 /zone/web을 언마운트하고 /rpool/zone 밑의 서브 디렉토리로 생성한 것처럼 보이는 군요.
왜 그랬을까요 ? 흠...

이 렇게 되도, 작동에는 별 문제 없으나, 가용성에는 매우 불편해질 수 있겠습니다. 만약 rpool/zone/web이 그대로 남아있다면, 모두 설치 이후에 해당 화일 시스템의 스냅샷을 설정하게되면, 클로닝 기능을 이용하여 빠르게 복구할 수 있을텐데요.. 그렇게 안된다는 점이 매우 안타깝네요.

새로 만들어진 존에 로그인해봅니다.
bhkim@vaio-bhkim:~# zlogin -C web
[Connected to zone 'web' console]

web console login: root
Last login: Fri Sep 19 10:32:28 on pts/4
Sep 19 10:40:01 web login: ROOT LOGIN /dev/console
Sun Microsystems Inc.   SunOS 5.11      snv_98  November 2008
-bash-3.2# pwd
/root
-bash-3.2# uname -a
SunOS web 5.11 snv_86 i86pc i386 i86pc

헉.. 무지 놀라운 사실이 보이는 군요. 새로 설치된 존에서의 배너에서는  snv_98로 나타나는 군요. 햐..
글로벌 존은 snv_86이거든요. ipkg 브랜드에 의해서 인터넷에 있는 최신 패키지들이 내려온 것으로 보입니다.
그 러나 uname -a에서는 글로벌존과 같은 넘버가 나타나죠. 글로벌존의 라이브러리로 호출되기 때문인 것으로 예상됩니다. 호환성의 문제만 없다면 괜찮겠습니다만... 서브 존과 글로벌 존이 다른 라이브러리 환경을 가지는 것처럼 보일 수 있어서 고쳐져야 할 것 같습니다.


출처 : http://beautifulos.blogspot.com/

Trackback 0 Comment 0