마이크로소프트2008.07.23 19:50

오늘 중요 고객을 모시고 마이크로소프트의 가상화 전략에 대한 세미나를 진행했습니다.
그 내용을 공유합니다.

하드웨어, 운영체제, 어플리케이션, 프리젠테이션의 Tight한 연결을 끊어주는 기술

. 종이를 붙일 강력접착제, 풀을 사용하면 떼면 찢어지고 원형을 알아볼 수 없게되죠

. 하지만, 3M 포스트잇의 경우는 뗐다 붙였다가 자유롭지요


데스크탑, 노트북 컴퓨터의 예를 들어보죠.

운영체제, 어플리케이션, 사용자 데이터 및 셋팅 값이 한대의 하드웨어에 강하게 밀착되어 있었기에 업그레이드가 필요할 때 새로운 PC로 이전하거나

분실했을 때 데이터를 복구하는 것이 굉장히 어려웠죠. 전통적인 OS/어플리케이션의 인스톨 방식과 데이터 저장장치 기술의 한계 때문입니다.


데스크탑 배포 관점에서 운영체제, 어플리케이션의 실행/ 프리젠테이션, 사용자 데이터 등이 모두 대의 장치 안에 담겨져 있는 것이죠. 모델은 단순함과 오프라인으로 이동중 에도 있다는 것이 장점 입니다. 하지만, 타이트한 바인딩으로 인해 모든 시나리오에 적합할 수는 없겠죠. 이런 이유 때문에 마이크로소프트는 새로운 윈도우 배포 옵션을 제공하여 이동중에도 사용가능하고, 유연성을 확대할 있는 방식의 제공이 필요하게 된거죠.


컴퓨팅 계층간의 종속성을 줄임으로 써 각 시스템은 실시간으로 필요할 때 요청하면서 사용하는 방식을 제공할수 있게 된거죠. IT 부서는 계층을 별도로 관리할 있습니다.

윈도우 비스타 출시와 함께 Virtual PC, 윈도우 이미지 포맷 (하드웨어, 운영체제 분리) 출시하였고 터미널서비스와 SoftGrid, 이제 마이크로소프트 어플리케이션 가상화로 이름이 변경됐죠. (운영체제와 어플리케이션 분리), 데이터와 폴더 리다이렉션 (운영체제, 어플리케이션으로 부터 데이터 분리) 발표됐죠.

이런 다양한 기술들은 여러 시나리오에 유용하게 사용될 수 있습니다.

앞에 설명 드렸던 각 계층간의 분리를 통해 다양한 시나리오가 나올 수 있습니다. 프리젠테이션 가상화(SBC), 어플리케이션 가상화, 서버가상화 3가지를 오늘 다루어 보도록 하겠습니다. 듣기에도 이렇게 있으면 좋을 같네? 라는 생각이 들지 않습니까? . 그렇죠.

그런데 몇 가지 이슈가 있습니다. 기존 전통적 방식와 인프라스트럭처가 어떻게 바뀔지에 대한 이해가 필요하고, 관리가 아주 중요한 이슈로 떠오릅니다. 가상화에서는 가상머신 각각을 하나의 데이터 파일로 보기 때문에 제대로 관리하지 못하면 아주 관리의 Hell 수도 있을 겁니다. 또한, 물리적인 머신과 가상 머신, 가상화된 장비와 그렇지 않은 장비가 공존하게 되고, 가상화된 장비의 경우 물리적인 머신 1대 위에 수개의 가상머신이 공존하는 상황이 오기 때문에 1개의 관리도구가 가상머신과 물리적 머신을 함께 관리해주어야 합니다. 라이선싱 측면에서도 기존 방식에 비해 TCO 측면에서 도움이 되어야 하는 것은 당연하겠죠. 또한, 다양한 운영체제가 함께 가상머신으로 구동될 수 있어야 현실적인 안으로 검토 가능하다고 할 수 있겠습니다. 하나의 플랫폼으로만 이루어진 회사는 없을테니까요. 이런 관점으로 보면 Windows 운영체제 위의 리눅스, 솔라리스를 보는 것도 놀랄 일이 아니겠죠. 리눅스 위에 윈도우, 솔루리스도 역시 가능하겠죠. 이런 식스로 메타 플랫폼 개념으로 진화하고 있다는 겁니다. 여기서는 깊이 들어가지는 않겠습니다.


마이크로소프트의 가상화 전략, 오늘의 핵심이죠. 비즈니스 환경에서 크게 2가지 운영체제를 접하실 겁니다. 개인의 업무 생산성을 위한 환경은 데스크탑, 회사의 업무용 시스템, ERP 메일시스템 등은 서버에서 구동을 하게 되죠. 그중 서버를 살펴보면 서버의 평균 가동율이 몇 % 될거라고 보십니까? 15%, 최고 20% 정도를 사용하면 정말 많이 사용하는 거죠. 삼성전자 사이버사업장의 경우 많이 사용하는 시스템들이 그 정도 사용했으니까, 사실 하드웨어 입장에서는 놀고 있는 거죠. 물리적인 서버에 가상화를 적용하면 20% 정도의 사용율을 보이는 논리적인 서버로 만들면 4 정도를 구동할 있다, 즉 서버 통합을 할 수 있는 기술이 서버 가상화 입니다. 지금까지의 가상화는 바로 서버 통합이 가능한 서버 가상화를 통칭하는 개념 정도로 이해를 하고 계실겁니다. 서버 가상화도 가지로 나뉘는데 머신 가상화와 서버 가상화로 나뉩니다. 머신가상화는 HP 같은 수퍼돔 서버에 물리적으로 파티션이 나뉘어져 있고, 파티션에 개별 운영체제를 설치할 있는 개념입니다. 개별장비를 도입하는 것에 비해 효율적인 것은 사실이지만 파티션간의 이동에 제약이 많았습니다. 반쪽짜리 가상화 정도로 이해를 하면 좋을 같습니다. 그런데 서버가상화에서 사용하는 가상화는 하이퍼바이저라고 하는 하드웨어와 운영체제 사이의 아주 가벼운 가상화 소프트웨어가 그 역할을 감당하는 것으로 보면 됩니다.


데스크탑 가상화는 Virtual PC 서버 가상화와 유사한 방식입니다. 이런거죠. 제가 윈도우 비스타를 사용하고 있는데 윈도우 XP에서만 구동되는 어플리케이션이 있다고 가정해보죠. 한대의 PC 사야 할까요? Virtual PC 소프트웨어를 설치한 Windows XP 비스타 위에 구동할 있게 해주는 거죠. (Demo: Virtual PC) 개발자의 경우에 다양한 버전의 운영체제를 한대의 PC에 설치해 놓고 환경에 맞게 테스트할 수 있기에 개발 및 테스트 목적으로 많이 사용합니다.

이와 유사하게 Windows Vista Enterprise Centralized Desktop(VECD) 있는데, 이런거죠. 비스타의 이미지가 로컬에 설치되지 않고, 중앙의 관리서버에 설치되는 겁니다. 모든 설정 어플리케이션이 중앙의 서버에 설치되므로 향후에 분실했을 경우에 중요한 데이터의 망실 등의 위험을 방지할 수 있는 거죠.


어플리케이션 가상화는 재미있는 개념입니다. 프리젠테이션 가상화, 일명 SBC 경우는 모든 어플리케이션이 모두 서버에 설치되고 구동되며 클라이언트, PC 키보드입력, 마우스 포인트 등에 대한 화면 정보만 사용하는, 아주 사양이 낮은 PC에서도 사용이 가능하고 분실했을 때나 정보 유출에 대한 우려를 없애는 목적으로 사용되죠. 그런데 단점은 사용자는 자기가 장비를 소유하고 있고, 각자의 커스토마이징을 소유하기를 원하는데 프리젠테이션 가상화는 이런 부분이 불가능하고 데이터나 화면이 복잡한 경우 속도가 느린 불편함이 있었습니다. 어플리케이션 가상화는 이런 단점을 보완하여 사용자가 어플리케이션을 요청 처음 스트리밍 방식으로 어플리케이션을 서버에서 클라이언트로 가져옵니다. 그리고, 로컬 CPU 메모리의 파워를 이용하여 어플리케이션을 구동하는 거죠. 사용이 종료되면 기본적인 내용만 캐시에 남기고 모든 데이터를 삭제하여 데이터의 보안성을 보장합니다. 또한, 로컬에 레지스트리나 DLL 설치하지 않기 때문에 버전간의 호환성 충돌 등의 위험이 전혀 없습니다. 오피스 2003 사용중인 회사가 오피스 2007 함께 사용해야 필요가 있을 지금은 DLL등의 충돌로 인해 함께 사용할 없지만, 어플리케이션 가상화를 이용하면 2003 인스톨 방식으로 사용하고 2007 어플리케이션 가상화를 이용하여 함께 사용할 수 있게 됩니다. 또한, 오피스의 배포 방식을 지금과 같은 설치 방식 외에도 프리젠테이션 가상화를 통한 사용자 방식, 어플리케이션 가상화를 이용한 방식 등 다양하게 제공하여 새로운 비즈니스 모델을 만들어 낼 수도 있는거죠.


, 그럼 서버 가상화에 대해 조금 자세히 살펴보도록 하겠습니다. 데이터센터의 관심사항이 뭘까요?

서버가 폭주하고 있습니다. 시스템이 점점 복잡해지면서 복잡한 어플리케이션이나 솔루션은 별도의 장비에서 구동하게 되었습니다. 결국 서버의 수가 엄청나게 증가하게 되는 거고

쿨링, 전원, 상면, 관리가 이슈로 등장하게 되는 겁니다. 제가 KIDC, 하나로IDC, KT-IDC 등과 일을 많이 하는데 데이터센터에 상면, 공간이 없습니다. 주차장도 없애고 확장하고 있지요. 마찬가지로 적절한 서버 업타임과 시스템 가용성을 보장하는 것은 사용자의 생산성을 높여주지만, 결국 복잡도, 비용, 관리의 오버헤드가 높아지게됩니다. 서버와 최종 사용자의 데스크탑에 운영체제 어플리케이션을 설치하고, 이미지 패치를 처리하고 사용자 설정을 하는 것은 아주 챌린지 입니다.

오류의 발생이 훨씬 더 크리티컬 하기 때문에 포괄적인 개발 및 테스트 환경이 점점 더 중요해지고, 보안 패치 품질관리, 새로운 운영체제 위에서 다양한 어플리케이션 및 솔루션의 호환성 및 버전 체크가 중요한 이슈로 등장하게 되었습니다.

이런 모든 Concerns 들은 IT 아니라 IT 매니저, 비즈니스 Decision Maker에게도 골치거리가 아닐 없죠. 결과적으로 IT 부서는 전략적인 이점을 제공하는 부서로 거듭나기를 원하는데 이러한 이슈들을 처리하는데도 엄청난 리소스를 쏟고 있기에 전략적인 도움, 비즈니스가 Agile하게 움직이는데 도움을 주기 어려운 것입니다. 결국 IT 부서가 비용을 절감하고, Agility 향상 시키지 못하는 모든 문제는 IT 부서에게 큰 Concern으로 남아있을 것이 분명하죠.


예를들면 이런 겁니다. 제가 호스팅 비즈니스 삼성전자가 품의하고 결재 받는데 3개월이 걸립니다. 근데, 서버는 1주일 안에 가져와서 서비스하게 해달라는 거죠. 돕니다. 서버 발주하고 입고에 최대 4 정도 소요되는데, 1 안에 어떻게 설치하고 서비스를 하도록 합니까? 근데 못한다고 있나요? 여러 가지 변칙을 쓰게 되는 거죠. 만약 요구를 못들어 주면 너가 하는게 뭐냐? 뭐 이런 이야기를 듣게 되죠. Agility 생명 이니까요. 근데 1주일이 아니라 10 안에 서비스 하도록 해드릴게요? 한다면 엄청 Dynamic 해지는 거죠.

가상화는 이런 일을 가능하게 해줍니다.


마이크로소프트의 ITSM(IT Service Management)는 인프라스트럭처 최적화 모델로 설명할 수 있습니다. Dynamic IT 모델을 최종 지향점으로 보고 있는데요.

목적은 비용절감, 서비스레벨 향상, Agility 최적화 입니다.

Basic 단계에서는 IT 부서가 Cost Center로서의 역할을 수행합니다. 모든 서버 운영체제 설치, 계정 설정, 디스크할당 등의 작업이 매뉴얼로 이루어지고, 요청이 이루어질때마다 서버가 1대씩 늘어나죠. 서버에 대한 표준 같은 것도 정해지지 않은 상태입니다.

여기에 개발 및 테스트 환경이 구축되고, 서버 통합이 이루어지고, 어플리케이션에 대한 호환성 등이 보장되는 단계가 Standardized 단계 입니다. 엔터프라이즈에서의 가상화는 자연스럽게 성숙도 커브를 따라야 합니다. 회사마다 차이가 있기에 조금씩 적용되는 범위는 다르지만 기본적인 가이드라인을 제공할 있죠. 백업 복구, 통합 관리가 제공되면 Rationalized 단계이고, 마지막은 Dynamic 단계로 아주 Flexible하게 프로비저닝이 가능한 단계를 의미합니다. 가상화가 Dynamic IT에는 필수라고 할 수 있죠. 데모를 통해 보여드리도록 하겠습니다.


서버 가상화의 아키텍처, 간단히 보고 넘어가겠습니다. 아까 말씀드린 Virtual PC, 마이크로소프트의 Windows Server 2008 출시 이전까지 서버 가상화에 사용되던 Virtual Server Type-2 가상화 구조를 가지고 있습니다. 하드웨어 위에 운영체제가 깔리고, 운영체제 위에 Virtual PC 같은 가상화 소프트웨어를 통해 운영체제를 설치하는 방식 이었습니다.

그런데 Windows Server 2008 가상화, Hyper-V에서는 하드웨어 위에 Hyper-V라는 가상화 소프트웨어가 올라가고 그 위에 가상머신(VM) 바로 올라가는 구조를 취하고 있습니다. Type2 비해 절차가 단순해졌죠. 조금 구체적으로 살펴보면 하드웨어 위에 커널모드와 사용자 모드로 나뉘어지는데 커널모드에 호스트 운영체제가 설치되고 , 게스트 가상머신들은 사용자모드로 설치가 되는 겁니다. 이 가상머신이 하드웨어, CPU, 메모리를 사용하려면 호스트 OS 거쳐서 사용하여야 하므로 성능이 저하되는 단점이 있었습니다. 일반적인 물리적인 서버에 비해, 가상머신의 성능이 70% 정도 나오는 것으로 알려져 있습니다.


가상화를 사용하면서 원래 물리적인 서버보다 더 좋은 성능을 내게 해달라? 가능할까요? 불가능하죠… 말이 안되죠.

하지만 최대한의 성능을 내야 채택할 수 있는 건 당연하겠죠. 그런데, Windows Server 2008 Hyper-V 경우는 가상머신이 하드웨어, CPU 메모리를 사용할 커널모드를 통해 바로 접근하도록 설계가 되어 있습니다. 훨씬 효율적으로 사용하게 된거죠. 일반적으로 가상머신의 성능이 이론적으로 97% 정도 나오는 것으로 되어 있는데, 실제로는 90% 정도의 성능을 보이는 것으로 측정되었습니다. 현재 CPU 경우 인텔 VT, AMD-V라는 특정 칩셋에 Hypervisor 지원하도록 만들어져 있고, 칩셋의 경우 가상화 지원이 최적화 되어 있지만 메모리, 디스크의 경우는 아직 최적화 되어 있지 않았기 때문에 90% 정도가 나오는 것이고, 향후에는 97% 정도의 성능을 보일 것으로 보여집니다.


Hyper-V 핵심 기능, 특히 호스트OS 64비트 (x64) 하드웨어만 가능하고, AMD-V, Intel VT CPU 사용해야 합니다.

가상머신 운영체제로는 x32비트, x64비트 모두 사용 가능합니다. 또한 가상머신의 메모리는 32기가 까지 지원 가능하며, CPU 4개까지 사용 가능합니다.


서버 가상화의 시나리오는 크게 4가지 정도로 나누어 있습니다.

서버통합: 100대의 서버를 10 또는 20대로 줄일 있고, 결과적으로 전원 및 상면 비용을 따지면 엄청난 절감 효과가 있는 것이죠. 서버 1대당 전원을 1년에 15만원 정도 사용한다고 보면 1,500만원의 전기세가 150만원 또는 300만원으로 절감 되는 겁니다. 상면까지 치면 엄청 절약되겠죠?

DR: 재해 복구 시나리오 입니다. 스냅샷 기능을 통해 장애가 일어나기 전 상태로 바로 돌릴 수 있는 기능이 포함되어 있습니다.

고객들이 자주 하는 요청 중의 하나가 개발서버를 구해달라는 것입니다. 처음에는 2주만 쓰겠다고 하지만 빌려주면 1 이상 그냥 쓰죠. 뺏을 수도 없고 말이죠. 또한 확보하는데 걸리는 시간이 개월이 걸리기도 하죠. 이럴 가상 머신을 할당해주는 개념을 제안하는 거죠. 개발 테스트 환경 구축 프로젝트를 통해 고객이 원할 할당해주고, 필요 없어지면 바로 회수하는 형태가 가능해집니다.

Dynamic Data Center 고객이 원할 바로 사용하고, 문제가 발생하면 바로 신속히 원래의 상태로 복구하고, 이런 Agile 비즈니스 연속성을 보장하는 환경이 가능해진다는 것입니다. 괜찮지 않습니까?


서버 통합에 대해 조금 더 자세히 살펴보면 다음과 같습니다.물리적인 인프라, WS2003, 2008 서버가 8 있습니다. 가상머신 호스트로 3대가 준비되었습니다. 관리를 위해서는 관리도구가 필요하다고 말씀 드렸죠. 가상머신 매니저라는 솔루션이 존재합니다. 가상머신 매니저의 에이전트가 가상머신 호스트에 배포됩니다. 성능 데이터가 통합할 후보를 결정하기 위해 취합됩니다. 가상머신 매니저가 정보를 가지고 있죠. CPU 사용율 정보가 보이는 것을 확인하실 수 있습니다. 어떤 서버를 통합할 것인지에 대한 우선순위 리포트가 나옵니다. 호스트의 성능 정보 역시 가상머신 매니저에게 보내집니다. 물리적인 서버가 가상 머신으로 전환됩니다. Intelligent 배치가 이루어집니다. 물리적 머신은 용도 폐기 되거나 다시 재활용 합니다. 91% 사용율을 나타내는 서버는 그대로 유지합니다.


시나리오2 관리자 프로비저닝 입니다. 앞에서 언급한 시나리오, 고객이 서비스 환경을 위해 서버 1 셋업을 내일까지 해달라고 합니다.가상머신 템플릿에 라이브러리가 존재하고 있죠. 새로운 가상 머신을 위한 템플릿이 미리 설정되어 있습니다. 템플릿에서 설정이 조정됩니다. 이미 설정된 템플릿으로 부터 VM 만들어집니다. 성능 데이터가 수집 됩니다 .새로 설정될 가상머신이 가장 적당한 호스트에 배치됩니다.


시나리오3 프로비저닝 위임 입니다. 가상머신 매니저는 웹으로도 접근 가능합니다. 위임 받은 사용자가 새로운 가상 머신을 생성합니다. , 고객이 직접 서버 셋업을 할 수 있다는 의미 입니다. 이미 설정된 템플릿으로 부터 가상 머신이 만들어집니다. 가상 머신이 최적의 호스트에 배치됩니다.


시나리오4 엔터프라이즈 토폴로지 입니다. 가상머신 매니저가 중심에 서게 되죠. 다양한 관리 도구가 존재합니다. 방식에 익숙한 사용자는 파워쉘을 사용하실 있고, 콘솔을 원하는시는 분은 콘솔, 기반으로 작업해야 하는 상황에서는 웹을 통하여 고객에게 다양한 시나리오를 제공하는 것이죠. 다양한 지역, 런던, 싱가폴 등의 지역에 위치한 서버들도 가상머신 매니저를 통해 관리가 가능한, 엔터프라이즈에서 사용 가능한 환경을 제공 가능합니다. Microsoft is ready !!!


가상화를 위해 고려해야 할 몇 가지 주요한 관심사항에 대해 짚고 넘어가겠습니다. 라이선싱은 유연한 정책을 제공합니다. WS2008 Standard Edition 경우는 1개의 가상머신까지는 추가비용 없이 설치할 있습니다. Enterprise Edition 경우 4개의 가상머신까지 추가비용 없이 설치 가능합니다. Data Center Edition 경우 가상머신의 개수와 상관없이 설치 가능한 정책을 제공하고 있습니다. 인프라 측면으로는 Hyper-V, Virtual Server 2005 R2 제공하는데, Agility 보장하고, 서버 자원의 효율적인 활용, 또한 인텔 & AMD와의 파트너십을 통해 Value 제공하고 있지요. 가상화에서 가장 중요한 내용이 바로 관리입니다. 마이크로소프트 가상 머신 매니저는 가상 인프라와 물리적인 인프라의 통합 관리가 가능하고, 자원의 관리를 효율적으로 하도록 도와주고 IT 비용 절감에 도움이 되는 도구 입니다. 또한, 상호운영성 측면에서는 이기종 운영체제를 지원하고, 가상머신의 디스크포맷 VHD 표준이며, 또한 Third Party 어플리케이션의 호환성 보장을 위해 Validation Program 진행하고 있습니다. 또한, VMWare Hyper-visor Xen Hyper-Visor 모두 호환 가능하며, 심지어 VMWare 상의 가상머신을 바로 그대로 가져와서 구동할 있습니다. 또한 System Center Operation Manager 오라클, MySQL, 리눅스 등에 대해서도 모니터링이 가능합니다. 어플리케이션에서는 배포를 빠르게 확산할 수 있고, 어플리케이션 지원 비용을 절감할 있으며 어플리케이션을 다이내믹하고 실시간으로 서비스할 수 있는 개념을 가지고 있습니다.


Dynamic IT 대한 몇가지 데모를 살펴보도록 하겠습니다.

Demo 1: New Virtual Machine, WS2008 서버 신규 생성

Demo 2: Snapshot (Checkpoint)

Demo 3: Quick Migration


다음으로 프리젠테이션 가상화에 대해 알아보도록 하겠습니다. 마이크로소프트 고객분들이 가장 많이 사용하는 기술인데, Remote Desktop, 터미널서비스가 바로 프리젠테이션 가상화의 예제 입니다. 그런데 고객분들은 가상화가 화두가 되고, 이야기는 많이 하시지만 이건 가상화라고 잘 생각하지 못하시죠. 하지만, 프리젠테이션 가상화는 최종 사용자 및 IT 관리자가 현재 존재하는 시스템과 사용하는 방식을 어떻게 정의할 것인지 고려할 때 아주 좋은 예가 됩니다. 가상화가 없다면 사용자는 로그인하기 위해 물리적으로 장비 앞에 가야 하죠. 하지만 프리젠테이션 가상화 덕분에 제가 지금 데모를 보여드리고 있는 거죠. 서버를 제가 들고 다닐 수는 없지 않겠습니까?

프리젠테이션 가상화, 모든 작업이 서버에서 이루어 지는 거죠. Sjb-hyperv-01 서버에 접속합니다. WS2008 CLI2에서 https://koalra-dc/ts 입력합니다.

워드 인증에 ID: kyongrs, P@ssw0rd 입력

WS2008-DC 장비에 가서 서비스를 살펴보면 워드 프로세스가 구동중임을 확인시켜 !!! 모든 저장도 서버에 이루어짐


마지막으로 어플리케이션 가상화 입니다.

비행기를 타려는데 보안을 이유로 랩탑을 가지고 갈 수가 없습니다. 이런 일은 이미 여러 나라에서 일어나고 있죠. 영국에서 2 동안 테러 위협을 이유로 랩탑을 가지고 항공기를 타는 것이 금지되었죠. 이럴때 비즈니스 출장을 가야한다면 어떻게 하시겠습니까? 아침에 자고 일어났더니 사무실이 물에 잠겨서 노트북, 데스크탑을 모두 못쓰게 됐습니다. 이럴때 안에 담겨진 소중한 정보는 어떻게 하실거죠? 회사 전체 또는 부서가 다른 지역으로 이전을 하게 됐습니다. 고객 대응에 영향을 미치지 않으면서 부드럽게 이전하실 있나요? 스탭, 계약직원을 고용하거나 아르바이트를 경우에 네트웍 상의 관리되지 않는 PC를 어떻게 처리할 건가요? 이런 경우 원래보다 훨씬 많은 주의를 기울여야 하므로 관리 측면에서 부담으로 작용하게 되죠. 이럴때 어떤 방법으로 위험을 최소화 할까요? 아주 극단적인 몇 가지 예제 이지만 충분히 닥칠 수 있다고 생각합니다. 삼성에서야 PC Man같은 관리용 프로그램을 모두 설치하고 모니터링을 하기에 어느 정도 관리는 되긴 하지만, 해당 어플리케이션이 문제를 일으키면 IT 데스크에서는 엄청난 작업을 해야하죠.


다양한 업무 환경을 살펴볼까요?


모바일 근로자: 출장과 외근이 잦은 경우 네트웍과 연결되지 않은 상태에서 업무를 수행할 일이 많죠. 오피스(메일), CRM 등을 많이 사용할거고 상대적으로 PC 성능이 좋아야 합니다. 영업사원의 경우가 대표적이죠.


오피스 근로자: 대부분의 시간을 회사 네트웍과 연결된 상태에서 일을 하게 되고, 높은 사양의 PC 필요 합니다. 주로 오피스, CRM, ERP 등의 LOB(Line Of Business) 어플리케이션과 , 프로젝트 관리 툴 등을 주로 사용하게 되죠. 안정적인 네트웍에서 대용량의 LOB 작업을 수행하기도 하기에 컴퓨팅 파워도 많이 사용하는 경우가 많습니다.


태스크 근로자: 데이터 입력 등의 일을 주로 수행하는 근로자를 의미하는데, 주로 1~2개의 LOB 어플리케이션을 사용하고 회사 네트웍에 항상 연결되어 사용하게 됩니다. 자리가 고정되지 않고 이동하면서 일할 수 있는 환경인 경우가 많죠. 콜센터, 뱅크텔러, 공장 근로자 소매점의 POS 캐시어의 경우가 해당됩니다.


계약 및 해외 근로자: 계약직 근로자 파트타이머를 고용할 PC 지급하고, 회사의 어플리케이션과 데이터에 접속 권한을 주는 경우가 많죠. , 관리되지 않는 PC 어떻게 관리할 것인지에 대한 부분이 관심사항이 됩니다.


어디서나 Access: 때때로 회사의 네트웍에 긴급할 집에서, 또는 PC 방에서 접속해야 필요가 있습니다.

전통적으로 고객들이 이러한 시나리오에 대해 보안을 유지하고 비용은 많이 들지 않도록 적합한 어플리케이션과 데이터에 접근하도록 하는 것은 쉽지 않았죠. 그렇지 않나요?


Mobility 대부분의 조직에서는 필수로 요구되는 항목입니다. 지식근로자는 어디서나, 언제나 데이터 어플리케이션에 접근할 필요가 있죠. 이런 이유 때문에 전세계적으로 Laptop 사용하는 비율이 훨씬 많아지고 있는거죠. 사용자는 기본적으로 데이터를 가지고 다니기를 원하고, IT 부서는 해당 데이터가 잘 보호되기를 원하며 Laptop 분실, 도난당했을 때 사용자의 업무 생산성에 영향이 최소화 되기를 원합니다. 사용자와 IT 사용자가 사용하고 있는 어플리케이션, 훨씬 중요한 데이터를 다운타임을 최소화하면서 백업이 유지되고 '바로 교체 가능한 PC' 환경을 원하고 있는 거죠. 마이크로소프트는 모바일 사용자를 위해 'Replaceable PC' 솔루션을 제안합니다. Windows Vista Enterprise Edition Bitlocker Drive encryption 바로 데이터를 보호하는 기능을 하지고 있고, 마이크로소프트의 어플리케이션 가상화 (SoftGrid) 어플리케이션을 설치하지 않고 네트웍에 연결되어 있든, 되어 있지 않든 관계없이 어플리케이션을 사용자에게 전송해주는 역할을 하게 되며, 오프라인 폴더에 Folder Redirection 기능을 통해 중앙에서 관리되는 데이터 저장소의 데이터를 역시 네트웍에 연결되어 있든, 있지 않든 관계없이 사용할 있게 해줍니다. 만약 사용자 랩탑에 Bitlocker Drive Encryption 설치되어 있는 상태에서 분실, 또는 도난 당하면 해당 데이터는 인증되지 않은 사용자의 접근을 제한합니다. Folder Redirection 기능을 통해 중앙 저장소에 저장된 데이터를 사용자는 접근하여 사용할 있게 되는 거죠. 사용자가 새로운 PC 받게 되면 네트웍 상의 데이터가 자동으로 하드디스크에 싱크되면서 억세스 가능하게 되는 겁니다. 마이크로소프트의 어플리케이션 가상화는 자동으로 사용자에게 할당된 어플리케이션 셋팅을 로컬 PC 어떤 셋팅 작업 없이 그대로 사용 가능하게 됩니다. 시나리오의 확장으로 IT 부서는 모바일 사용자에게 아주 중요한 어플리케이션의 경우는 터미널 서비스를 통해 중앙에서 구동하게 하고, 사용자는 화면을 통해서 조작을 하고, 모든 작업 데이터는 서버에서 이루어지도록 수도 있는 거죠. Windows Vista, MDOP,

Windows Server 2008 함께 사용되면 Replaceable PC 적용할 수 있습니다.


어플리케이션 가상화에 대해 조금 더 자세히 알아보겠습니다. 어플리케이션 가상화는 어플리케이션의 라이프사이클에 변화를 일으킵니다. 기존 방식으로는 오피스를 사용하려면 반드시 로컬에 설치를 해야만 했죠. 하지만, 어플리케이션 가상화를 이용하면 라이선스가 있는 어느 장비에서든 로컬 장비에 설치하지 않고 사용할 수 있게 되는 거죠. 새로운 패치나 새로운 버전은 사용자가 데스크탑 아이콘을 클릭하는 순간 제공되고, 사용자가 세션을 종료하면 코드, 셋팅, 프로파일 값은 PC의 가상화된 SandBox 저장됩니다. 따라서, 사용자가 오프라인 상태일지라도 해당 어플리케이션을 사용할 있게 되는 거죠.

장점은 여러가지가 있지만,

사용자에게 신규 노트북을 지급할 때 준비 시간을 단축시켜주고, IT부서가 해당 장비에 대한 컨트롤을 할 수 있도록 해주죠

어플리케이션을 스트리밍 서버를 통해 독립시켜주기 때문에 어플리케이션 충돌을 최소화 하고

어플리케이션 호환성 테스트를 획기적으로 줄여주고, 운영체제의 종류에 상관없이 사용 가능하도록 해주고

스트리밍되는 어플리케이션의 사용 리포트를 실시간으로 볼 수 있도록 해주며

노트북에 문제가 있을 때 다른 장비로 대체하는 것을 쉽게 해주죠


어플리케이션 가상화는 2가지 형태로 사용될 있습니다. 첫째, 해당 어플리케이션을 서버에서 스트리밍 받아서 로컬에서 구동하는 방식과 둘째, 해당 어플리케이션을 터미널서버에서 구동하면서, 그 화면을 프리젠테이션 가상화로 받아서 처리하는 방식이죠.

정리해보면 다음과 같은 기능을 제공하는 거죠.

어플리케이션 가상화: PC 터미널서버의 자원을 이용하여 어플리케이션을 구동하고 어플리케이션을 운영체제에 설치하지 않음

멀티플 배포 옵션: 다이나믹 스트리밍을 포함하여 여러 가지 방식 중 선택이 가능함 (로컬에서 구동, 터미널서버에서 구동 )

Standalong Mode: 네트웍에 주로 연결되지 않는 고객은 별도의 스탠드어론 방식으로 사용하도록 지원함


Demo: 어플리케이션 가상화


비즈니스 모델로는 Dynamic IT라는 Theme으로 내부 인프라 개선, 고객 인프라 개선, 개발 테스트 환경 구축 제안이 가능하고 어플리케이션 서비스 제공자로서의 역할이 가능할 같습니다. 소프트웨어와 서비스가 공존하는 소프트웨어 플러스 서비스 세상에서 서비스의 중요성은 점점 증대되고 있습니다. 오피스를 현재와 같은 방식으로 라이선스를 판매하지만, 프리젠테이션 가상화를 이용한 오피스 Delivery, 어플리케이션 가상화를 이용한 Delivery 가능할 것이고 고객의 니즈에 맞는 형태로 제안이 가능하다는 거죠.


가상화에 대해 장점만 설명드렸는데 몇가지 고려해야할 사항을 말씀드리겠습니다.

첫째, 가상화는 혁명입니다. 인식의 전환이 수반되어야 한다는 거죠. 충분한 이해를 통한 적용이 필요합니다.

둘째, 만병통치약은 아니라는 겁니다. 마술이 아니고, 복잡한 문제를 있는 도구로 이해해야 합니다. 철저한 계획과 관리에 대한 이해가 선행되어야 합니다.

셋째, 가상화는 관리가 가장 중요한 항목 입니다. 또한 모든 물리적인 서버가 가상화 있는 아닙니다. 물리적인 서버와 가상화가 함께 공존하므로 물리적인 서버와 함께

관리가 가능해야 합니다.


가상화는 메타 플랫폼의 등장을 가능하게 합니다. 윈도우 위에 리눅스, 솔라리스가 구동될 있게 되는 거죠. 이를 위해 XenSource, Novell등과의 협약으로 다양한 기술 공유가 이루어졌고, 현재도 진행중입니다. 여러 파트너와 생태계를 이루어가고 있습니다.


마지막으로 마이크로소프는 데이터센터부터 데스크탑에 이르기까지 포괄적인 가상화를 제공하고 있습니다.

하나의 관리 플랫폼으로 물리적인 서버, 가상 머신을 함께 관리할 수 있습니다.

비용 절감, 가용성 향상 신속성을 제공 받으면서 여러 가지 직면하고 있는 어려움을 해결 가능 합니다.


감사합니다.

신고
Posted by 나이스가이
IT Pro2008.07.21 15:03
Hyper-V, 마이크로소프트의 서버 가상화 기술을 채택하는 엔터프라이즈 기업들은 재컴파일 없이 x86기반의 서버위에 Solaris/SPARC 기반의 어플리케이션을 구동할 수 있게 되었습니다. Transitive라는 회사의 QuickTransit 이라는 솔루션이 바로 그러한 놀라운 일을 가능하게 해준 솔루션 이죠.

서버 가상화를 통해 어플리케이션 마이그레이션, 저렴한 비용의 Disaster Recovery(DR) 및 고가용성의 효과를 볼 수 있고 고가의 Solaris 어플리케이션을 더 저렴한 Windows 서버에 구동할 수도 있게 된거죠. 괜찮지 않나요?

마이크로소프트의  Hyper-V는 예상보다 일찍 정식버전이 출시되었고 지금은 Windows Update 기능을 이용하여 자동으로 설치할 수 있습니다. 또한, Microsoft Assessment & Planning 툴킷 3.1을 무료로 제공하는데, 에이전트가 필요없이 네트웍상의 데스크탑과 서버들을 찾아서 정리할 수 있도록 도와줍니다. MAP 3.1은 자동으로 다양한 프로덕트 및 기술의 업그레이드 여부를 추천하는 보고서를 생성해주는데, Hyper-V, SQL 서버, 윈도우 서버 2008, 윈도우 비스타, 오피스 2007 등 주요한 항목에 대한 분석 및 추천 정보를 제공해줍니다. 또한 SNMP(Simple Network Management Protocol)을 지원하여 대부분의 복잡한 기업 네트웍 환경에서 사용 가능합니다.

마이크로소프트의 서버가상화는 시장 점유율을 획기적으로 높일 것으로 기대됩니다. 뛰어난 기능을 아주 저렴하게 제공하고 있기 때문인데요, 가상화를 사용하기 위해 추가로 지불해야 하는 금액이 약 3만원 이내로 알려져 있습니다. 앞으로 서버가상화, Hyper-V 관련한 이야기를 많이 듣게 되실 것 같네요. 가상화
신고
Posted by 나이스가이
호스팅2008.07.10 10:25

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

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

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

신고
Posted by 나이스가이
호스팅2008.07.02 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.07.02 14:16

사용자 삽입 이미지


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

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

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

감사합니다.
신고
Posted by 나이스가이
호스팅2008.07.02 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.06.30 17:48

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

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

감사합니다.

신고
Posted by 나이스가이
호스팅2008.06.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 나이스가이
호스팅2008.06.12 17:29
전기료를 10만원 내고 있다면 1만원을 아낄 수 있다는 것이지요. 서버 댓수가 100대라면 100만원이 되네요.
괜찮지 않나요? 마이크로소프트가 Windows Server 2008이 전기를 10% 덜 소모한다고 발표했습니다. 어떻게 조사를 했는지 궁금하시죠?
서버는 한대를 사용했고, 2개의 듀얼코어 CPU, 4G 메모리를 장착했습니다.
처음에는 Windows Server 2003 R2 엔터프라이즈 에디션 x64 (서비스팩) 운영체제로 전원 사용량을 점검했고, 하드드라이브를 포맷한 후 Windows Server 2008 엔터프라이즈 에디션을 설치한 후 점검을 실시했죠.
결과가 바로 10% 덜 사용하는 것으로 나타났다는 것이지요.

Windows Server 2008이 더 뛰어난 전원관리 기능이 구현된 점을 입증하는 결과 입니다. 그런데, 단지 이런 사실이외에도 가상화를 주목할 만합니다. 가상화는 현재 RC1이 배포되어 있는 상태입니다. 예를들어 5대의 가상머신이 한 대의 물리적인 서버위에서 구동된다면 4대의 물리적인 서버가 사용할 전원량이 절감되겠지요. 실로 엄청난 전원 절감 효과입니다 .Hyper-V의 주목할만한 특징은 "만약 업무 로드가 적은 경우 CPU에 보내는 전원의 양을 조절할 수 있다는 것이죠. 전원 절감을 위해 얼마나 많은 노력을 기울이는지 아시겠죠? Xen이나 VMWare에서는 이 기능이 아직 구현되지 않았습니다."
이제 정식버전 출시가 얼마 남지 않았습니다. 그런데 RC1의 경우도 충분히 안정적인 것임이 입증되었습니다. 국내 및 해외 호스팅 업체중 Hyper-V RC1을 이용하여 서비스를 진행하는데 전혀 문제가 보고되지 않고 있습니다. 정말 강력한 가상화를 경험하시고, 전기료도 절감하시기 바랍니다.
신고
Posted by 나이스가이
IT Pro2008.06.03 18:25

e-Week를 종종 보곤 합니다. 오늘 Cameron Sturdevant에 의해 Windows Server 2008, Hyper-V에 가상 머신을 추가하는 Lab 테스트 결과가 올라왔네요. 한 번 Summary 해보겠습니다.



2008년 5월 20일자로 RC1(Release Candadate 1)이 배포되었죠. Windows 2000 Server Service Pack 4, x86/x64 버전의 SUSE Linux Enterprise 10 SP1의 지원이 추가되었습니다. Red Hat Enterprise Linux 5 역시 향후 업데이트 때 반영될 것 입니다. Lab 테스트 때 Windows 2000, SUSE Linux 등의 설치 및 정상 작동 여부 및 새로운 기능 리뷰가 이루어졌습니다. Host 머신은 HP ProLiant ML 115, Intel 칩을 사용하고 있습니다.


보시는 것처럼, 단계가 아주 간단하죠. 메모리 설정, 네트웍 카드 지정, VHD(Virtual Hard Disk) 지정하면 끝입니다.


Windows 2000 서버가 잘 돌아가네요. 에뮬레이션 모드에서 동작합니다.


SUSE Linux 역시 잘 돌아가죠?

상호운영성의 시대, 플랫폼간의 호환이 정말 현실로 다가왔습니다.

신고
Posted by 나이스가이