호스팅2008. 7. 10. 10:25

가상화에 대해 설명해 보시겠습니까? 가상화에는 서버 가상화만 있을까요?
아니 가상화가 왜 등장하게 되었을까요?

사용자 삽입 이미지
엑셀이라는 어플리케이션이 운영체제에 설치되면 레지스트리에 값을 설정하고, 여러 DLL 파일을 사용하게 되는 등 밀결합됩니다. 운영체제 역시 하드웨어에 아주 밀접하게 붙어 있죠. 운영체제를 바로 떼내서 다른 하드웨어로 옮기는 것은 여간 복잡한 일이 아니지요. 오류 가능성도 존재하게 되고요.
이렇게 프로그램과 운영체제, 하드웨어 간의 밀접한 연결고리를 떼내서 서로 독립적인 존재로 만들어주면 아주 유연하게 IT를 사용할 수 있게 되지 않을까요? 이런 Concept을 Dynamic IT라고 이야기 합니다.
Dynamic IT를 가능하게 하는 핵심 기술이 바로 가상화가 되는 것이죠. 그렇다면 가상화는 어떤 것들이 있을까요? 우리가 익숙한 환경이 바로 클라이언트, 즉 데스크탑이 있고 어플리케이션, 서버 등이 대표적이지요. 이런 각각의 단위마다 가상화가 가능합니다.

예를들면 "윈도우 서버를 10분 안에 바로 사용했으면 좋겠어. 기술 지원에 관해 엔지니어들이 접하는 다양한 질의 응답을 이 웹사이트에서 구동해야 하거든", "Visio 어플리케이션을 지금 바로 사용했으면 좋겠어. 조직도를 그려야 하는데 그리기가 영 쉽지 않네. ER 다이어그램 역시 ...", "1번 웹서버에 요청이 너무 많아. 새로운 서버를 바로 추가해야 하는데 어쩌지? 다운 될 것 같아", "우리 회사는 엑셀,파워포인트 2003을 사용하고 있는데 고객이 2007로 파일을 보내왔네. 도저히 읽을 수가 없어. 2003으로 다시 보내달라고 하기 좀 그런데. 근데 나는 2003도 필요하고 2007도 필요한데. 쩝" 이와 같은 다양한 요구를 바로 수용 가능하여 직원의 업무 생산성을 높일 수 있는 기술, 이것이 바로 가상화 입니다.

Posted by 조이트리
마이크로소프트2008. 7. 4. 17:50


빌게이츠 회장님의 인생을 담은 비디오 입니다. 어린시절, 학창시절, 가족이야기, 마이크로소프트를 창립하게 된 계기까지 자세히 담겨 있습니다. 한 번 보세요. 재미있을 겁니다.

Posted by 조이트리
비전2008. 7. 3. 10:07
오랜만에 비전 관련된 글을 적어볼까 합니다. 정말 아주 예전에 읽던 책, 스펜서존슨의 "선물"이라는 책을 다시 꺼내들었습니다. 영어로 Present (선물, 현재)라는 뜻을 가지고 있지요.

세상에서 가장 소중한 선물 (부제: 귀중한 시간을 사용하는 세 가지 방법)

현재 속에 살기
 행복과 성공을 원한다면
 바로 지금 일어나는 것에 집중하라
 소명을 갖고 살면서
 바로 지금 중요한 것에 관심을 쏟아라

과거에서 배우기
 과거보다 더 나은 현재를 원한다면
 과거에 일어났던 일을 돌아보라
 그것에서 소중한 교훈을 배워라
 지금부터는 다르게 행동하라

미래를 계획하기
 현재보다 나은 미래를 원한다면
 멋진 미래의 모습을 마음속으로 그려라
 그것이 실현되도록 계획을 세워라
 지금 계획을 행동으로 옮겨라

정말 공감하게 되는 글입니다. 현재 속에 살기라는 말의 의미는 과거에 일어났던 일, 내가 실수한 일을 걱정하거나 미래에 벌어질, 즉 나의 범위 밖에 있는 일을 걱정하면서 시간을 낭비하지 말라는 말입니다. 어릴 때 내가 어머니가 방청소 하는 것을 대신 하겠다고 자발적으로 나서서 할 때는 그것에 열중하는 것만으로 행복했잖아요. 일할때도 열중해서, 집중해서 하면 행복해진다는 것이죠.

그렇지만 그것만으로 충분하지 않습니다. 과거에 잘못한 실수를 그냥 넘어가지 말고, 그것에서 배워 비슷한 실수를 하지 않으면서 열심히 해야 한다는 것입니다.

여기까지 하는 것도 쉽지 않지만 정말로 행복을 느끼면서 살고 싶다면 미래에 내가 하고 싶고, 되고 싶은 것에 대한 것을 마음에 그리고, 그리는 것만으로 끝나는 것이 아니고 계획을 세운 후 바로 행동에 옮겨야 한다는 것입니다. 좋은 말이죠? 실천이 어렵다고요? 한 번 해보세요. 불가능할만큼 어려운 이야기가 아닙니다.
Posted by 조이트리
호스팅2008. 7. 2. 14:57

앞의 글에서 PHP 관련하여 적어보았습니다. FastCGI 설정하는 법과 PHP를 설정하는 법을 살펴보겠습니다.
서버관리자 - 롤 서비스에서 CGI를 선택하세요. CGI와 FastCGI 서비스를 모두 설치합니다.


이제 PHP 엔진이 필요하죠. http://www.php.net/downloads.php를 클릭하셔서 non-Thread safe 버전의 PHP를 다운 받으세요. non-Thread safe와 FastCGI를 함께 사용하셔야 최적의 성능을 보장받을 수 있습니다. Thread safety check를 할 필요가 없기에 시간이 단축되는 것이죠.

1. 파일을 압축해제하세요. C:\PHP 디렉토리를 만드시는 것이 좋습니다. 또한, php.ini-recommended를 php.ini로 파일명을 바꾸세요
2. php.ini 파일을 오픈 한 후 몇 가지 파라미터의 주석을 해제하세요.
    - fastcgi.impersonate = 1
    - cgi.fix_pathinfo = 1
    - cgi.force_redirect = 0
    - open_basedir 설정 (웹 사이트 컨텐츠가 있는 폴더나 네트웍 경로)
3. PHP가 제대로 설치되었는지 확인을 위해 명령문에 아래와 같이 입력
    C:\PHP> php -info

IIS가 PHP 어플리케이션을 처리하기 위해 처리기 매핑(Handler Mapping)을 설정해야 합니다. 주요 목적은 PHP 파일의 요청을 FastCGI를 통해 PHP 엔진으로 보내는 것입니다.




요청 Path: *.php
모듈: FastCGIModule
실행파일: C:\php-cgi.exe
이름: PHP via FastCGi (원하는데로 설정)

대화상자에서 OK를 선택하시면 됩니다.

이후에 c:\inetpub\wwwroot 폴더에 phpinfo.php 파일을 하나 생성합니다.
내용: <?php phpinfo(); ?>

브라우저를 연다음 http://localhost/phpinfo.php를 입력하면 설정이 제대로 되었다면 php에 대한 정보를 보여주는 화면이 나옵니다.

이제 다 끝났습니다. 마지막으로 PHP와 FastCGI 리사이클링을 위한 설정을 해보죠
FastCGI는 native PHP 리사이클링이 이루어지기 전에 php-cgi.exe 프로세스들을 리사이클링 시킵니다. 바로 이 리사이클링은 설정 프로퍼티, instanceMaxRequests에 의해 조절됩니다. 이 값은 FastCGI가 리사이클링 되기 전에 몇개의 요청을 처리할 것인지를 정하는 것이죠. PHP 역시 비슷한 설정값을 가지고 있는데, PHP_FCGI_MAX_REQUESTS가 바로 그것입니다. 만약 instanceMaxRequests의 값을 PHP_FCGI_MAX_REQUESTS의 값보다 작거나 같게 설정하면 PHP의 리사이클은 절대 발생하지 않을 것입니다.
만약, 파라미터 값이 설정되지 않으면 디폴트 값을 사용하게 됩니다.
instanceMaxRequests: 200, PHP_FCGI_MAX_REQUESTS: 500 (대부분의 PHP 빌드에서)

파라미터 값을 설정하려면 아래와 같은 명령문을 사용하시면 됩니다.
c:\>%windir%\system32\inersrv\appcmd set config -section:system.webServer/fastCGI /[fullPath='c:\{php_folder}\php-cgi.exe'].instanceMaxRequests:10000

c:\>%windir%\system32\inersrv\appcmd set config -section:system.webServer/fastCGI /
[fullPath='c:\{php_folder}\php-cgi.exe'].environmentVariables.[name='PHP_FCGI_MAX_REQUESTS',value='10000']

www.iis.net에서 참조

Posted by 조이트리
호스팅2008. 7. 2. 14:16

사용자 삽입 이미지


등록하기 (이 링크를 눌러주세요)

7월 10일 섬유센터 17층 세미나실에서 제4회 마이크로소프트 호스팅 세미나를 개최합니다.
이번 세미나는 KIDC와 함께 진행합니다. 이후에도 주요 IDC와 함께 세미나를 진행할 계획이며, 각 IDC의
입주사가 아닌 IDC, 호스팅 업체, 고객사도 참가 가능합니다.

Windows Server 2008, IIS7 웹서버, 실버라이트를 포함하여 호스팅 자동화 솔루션에 대한 발표 및 데모도 진행될 예정입니다. 많은 참여 부탁드립니다.

감사합니다.
Posted by 조이트리
호스팅2008. 7. 2. 10:56
IIS7을 사용하면 어느 정도의 성능 향상을 얻을 수 있는지 궁금하시죠? Microsoft.com이 IIS7에서 구동되고 있다는 것 아시죠? IIS6과 비교하여 어느정도의 성능이 향상됐는지 실제 데이터를 통해 보여드리겠습니다.

Windows Server 2008이 올해 3월에 출시되었고 많은 기업에서는 지금 왜 Windows Server 2003에서 업그레이드를 해야하는지 다양한 각도로 분석을 하고 있습니다. 당연히 의사결정을 위해서는 실제로 구현하고 효과를 보는 업체의 레퍼런스를 보기 원하시죠. IIS7의 메타베이스가 아닌 파일 기반의 설정 환경, 모듈화 아키텍처는 웹서버 관리를 훨씬 유연하게 할 수 있게 되었죠. 그렇다면 IIS 6.0 / WS2003 보아 어느 정도 더 뛰어난 성능을 발휘하는지 살펴 보도록 하겠습니다.

IIS7가 IIS6보다 초당 31% 정도의 더 많은 요청을 처리했습니다. 더 많은 처리를 하기때문에 CPU 사용량은 이전보다 조금 더 사용하게 됩니다.

효과를 분석하기 위해 "효율성"과 "CPU 사이클 당 요청하는 처리 수"를 사용했습니다. 이 메트릭을 사용하면 IIS 7.0 / Windows Server 2008이 IIS 6.0 / Windows Server 2003 SP2 보다 10% 정도 더 효율적인 것으로 나타났고, 이 자료는 www.microsoft.com 사이트를 운영하면서 조사된 값입니다.

Performance Metrics                                    WS2003  SP2     WS2008       Change
RPS / CPU Utilization (%) = Requests per CPU Cycle            4.36                 4.84             10.9%

Server Efficiency
 . WS2003 SP2: 4.36, WS2008 RTM: 4.84

SRV Efficiency

CPU Utilization (%)
 . WS2003 SP2: 44.8%, WS2008 RTM: 52.8% ~ 17.9% 더 많이 사용함
   (WS2008이 더많은 요청 처리하기 때문)
CPU Utilization

Web Service - 초당 총 요청 처리 수 (RPS)
 . WS2003 SP2: 194, WS2008 RTM: 255 ~ 31.4% 더 많은 트래픽을 처리함
Web Svc Total Methods

Web Service - 현재 커넥션 수
 . WS2003 SP2: 280, WS2008 RTM: 294 ~ 5% 증가
WEBSvc Current Connections
테스트에 사용된 www.microsoft.com 사이트는 총 80대의 서버로 구성되어 있습니다. 4개의 로드밸런싱 된 클러스터로 20대씩 서로 다른 데이터센터에서 구동되고 있지요. 그 중 하나의 클러스터, 즉 20대의 서버를 가지고 자료를 분석하였습니다.

Hardware: 모델 HP DL585 G1 (4 듀얼 코어 CPU), RAM은 32GB 사용
OS: Windows Server 2008 RTM (Build: 6.0.6001.18000) 64비트 엔터프라이즈 에디션
로드밸런싱: 하드웨어 로드밸런싱을 사용함. 로드밸런싱 알고리즘은 "Least Current Client Connections"을 사용하였음 (즉, 클라이언트 커넥션 수가 가장 작은 서버로 요청을 보내는 방식)
분석방식: 월요일 부터 수요일까지 72시간 동안의 로그를 모니터링함
 


Posted by 조이트리
마이크로소프트2008. 6. 30. 17:48

드디어 Windows Server 2008의 가상화 기술인 Hyper-V RTM되었습니다. (한국: 6월 27일)

 - 신규 고객 및 파트너: www.microsoft.com/Hyper-V 에서 다운로드 가능
 - 기존 사용고객: Windows Update를 통해 7월 8일부터 다운로드 가능

감사합니다.

Posted by 조이트리
호스팅2008. 6. 30. 17:20

 

IIS는 CGI(Common Gateway Interface)를 지원했죠. CGI는 IIS가 외부 어플리케이션과 의사소통할 수 있는 표준 기반의 프로토콜입니다. ISAPI도 비슷하게 사용될 수 있죠. 그러나 이 두가지 방식은 약간의 제약이 있었고 이를 해결하기 위해 FastCGI 라는 모듈이 개발되었습니다. 조금 자세하게 살펴보기로 하죠.

CGI

CGI는 IIS가 외부 어플리케이션과 인터페이스하기 위한 프로토콜 입니다. 그런데, HTTP는 stateless(상태를 가지고 있지 않음)이기 때문에 HTTP를 통해 들어오는 요청을 처리하기 위해 운영체제에서 새로운 프로세스를 구동하여 외부 어플리케이션의 인스턴스를 만들어야 합니다.
바로 이 프로세스 내부에는 stdin(스탠다드 입력)이 클라이언트의 요청 데이터를 받고, stdout(스탠다드 출력)은 해당 응답 데이터를 클라이언트로 내보내며 커맨드라인과 운영체제의 환경 변수들이 다른 서버 및 요청들을 CGI 프로세스에 보내기 위해 사용됩니다. IIS에서 CGI를 사용할 때의 단점은 윈도우 운영체제가 프로세스를 만들 때 비교적 자원 소모량이 크다는 것이죠. 모든 HTTP 요청이 새로운 프로세스를 띄우고 CGI 어플리케이션 내부에서 해당 작업을 수행하고, 작업 완료 후 프로세스를 종료하게 됩니다. 따라서, 웹에서의 응답속도가 느려질 수 밖에 없습니다. 쉽게 풀이하면 10개의 요청에 10개의 프로세스가 생성, 종료된다는 것이지요.

ISAPI

PHP를 IIS에서 구동될 수 있도록 하기 위해 다양한 시도가 이루어졌고, 그 중 나름대로 성공한 모델이 바로 ISAPI 입니다. ISAPI(Internet Server Application Programming Interface)는 CGI와는 다르게 웹서버 프로세스 내부에서 작업이 이루어집니다. 클라이언트의 요청이 있을 때 새로운 프로세스가 생성되지 않고, 웹서버 프로세스에 로딩된 DLL의 초입 포인트를 Call 하는 방식으로 이루어집니다. 만약, ISAPI 어플리케이션이 운영체제가 Thread를 어떻게 처리하는지를 고려하여 만들어져 있다면 성능이 놀라울 정도로 뛰어납니다. 수년동안 PHP는 CGI와 ISAPI 방식을 통해 구동이 되고 있지만, 두가지 방식은 단점이 있습니다.
앞에서 말했듯 CGI 방식은 속도가 느리고 ISAPI 방식은 Thread 이슈가 있습니다. 예를들면 PHP가 ISAPI 방식으로 구동될 때 웹서버 프로세스 내에서 멀티 Thread 환경에서 처리가 됩니다. PHP가 Thread-safe 방식으로 구현되었지만, 많은 인기있는 PHP 어플리케이션들은 non Thread-safe 방식으로 이루어져 있습니다. 만약 ISAPI 방식의 PHP 환경에서 non Thread-safe 방식으로 개발된 어플리케이션을 구동하면, 서버가 불안정해지는 위험이 있습니다.

FastCGI

FastCGI는 성능과 안정성 모두를 보장합니다. FastCGI 방식을 사용하면 프로세스가 해당 요청을 완료한 이후에도 종료되지 않고 그대로 살아서 다른 요청을 처리합니다. 기존 CGI 방식의 단점인 프로세스 생성 및 종료할 때의 응답 속도 지연이 사라지는 것이죠.

CGI 방식과 FastCGI 방식의 기술적인 차이는 FastCGI는 stdin, stdout과 CGI 사용하던 자원들에 매핑하는 작업을 수행하는 Layer가 존재한다는 것입니다. 현재 사용되고 있는 CGI 소스코드들은 아주 적은 수정만으로도 FastCGI에서 사용될 수 있습니다. 웹서버가 여러개의 동시 요청을 처리하기 때문에 가용한 프로세스 풀을 가져야 하고, 들어오는 요청들을 처리할 준비를 하고 있어야 합니다. FastCGI 처리기에서는 이 프로세스 풀을 application이라고 부릅니다. (일명 "프로세스 풀") 프로세스 풀의 프로세스의 갯수, 하나의 프로세스가 처리할 요청의 수 등을 설정할 수 있습니다.
FastCGI 처리기는 여러개의 프로세스 풀을 지원합니다. 하나의 웹서버에서 여러 종류의 FastCGI를 구동할 수 있기 때문이지요. PHP와 Ruby를 동시에 지원하기 원할 경우가 해당 될 것입니다.

PHP

PHP에 관해 몇 가지 설명을 해보겠습니다. PHP는 두가지 버전이 있죠, Thred-safe와 non Thread-safe가 바로 그것입니다. Thread-safe 버전은 thread 들이 서로 경쟁하지 않도록 하는 작업이 이루어지므로 반응속도가 느린 반면, non Thread-safe 버전은 응답속도가 빠른 것이 특징입니다. non Thread-safe PHP를 사용하는 경우 php5ts.dll을 디렉토리에서 보실 수 있고, Thread-safe PHP를 사용하신다면 php5.dll을 찾으실 수 있을 겁니다. Apache의 mod_php 또는 IIS 웹서버로 ISAPI를 사용하시려면 thread-safe PHP 버전을 사용하셔야 합니다.

IIS 웹서버에서 PHP를 사용하시려면 non Thread-safe 방식을 사용하시는 것이 가장 최적의 성능을 제공합니다. www.php.net/download 사이트에 가셔서 PHP5.2.X 버전의 non-Thread safe 바이너리를 다운받으셔서 사용하시면 최적의 환경에서 PHP를 구동하실 수 있습니다.

이전 글을 보시면 FastCGI 설정에 대해 확인하실 수 있지만, 몇 가지 추가된 내용을 포함하여 다시 글을 써보도록 하겠습니다.

Posted by 조이트리
IT Pro2008. 6. 30. 14:55
Windows Server 2008 가이드는 차세대 서버의 혁신적인 Feature와 기능에 대한 개요를 제시합니다.
여러 업무 상황에 어떤 시나리오로 적용 가능한지에 대한 정보도 포함되어 있지요.

1. Windows Server 2008 소개
2. 서버 가상화
3. 어플리케이션 접근 집중화
4. 브랜치 오피스 (지사 시나리오)
5. 보안 및 정책 적용
6. 웹 및 어플리케이션 플랫폼
7. 서버 관리
8. 고가용성
9. Better Together - Windows Server 2008과 Windows Vista

위의 9가지 내용이 주로 제공됩니다. 도움이 되었으면 좋겠네요. 한글화 자료도 있는데 사이즈가 커서 바로 보내드리기 어렵네요. 주석에 비밀댓글로 이메일 적어주시면 보내드릴게요.

감사합니다.

Posted by 조이트리
마이크로소프트2008. 6. 23. 15:28
apple-hp-microsoft-6581.jpg

그린 IT, Sustainability 등의 용어를 들어보셨죠? IT, 그 중에서도 데이터센터가 전원을 사용하는 양이 엄청 많고 또한 이산화탄소 배출량이 엄청나다는 사실 잘 모르실겁니다. 그린 IT의 중요성이 중대되고 있는 이유이며, 지구가 생존하여 후손들에게 맑은 지구를 물려주기 위해서는 IT 업에 종사하는 우리가 지속적으로 관심을 가져야 하는 이유입니다.  그린 IT 브랜드 연구조사에서 애플, HP, 마이크로소프트가 모두 21% 씩을 획득하여 1위를 차지했습니다.
Posted by 조이트리