My Sharepoint

sharepoint.egloos.com

포토로그 마이가든



[강좌] SharePoint Architecture 이해하기 Part 2 SharePoint

SharePoint Architecture 이해하기 Part 2
부제 : SharePoint 의 Physical Architecture
Written by 짜두르

Server Farm은 모든 물리적 환경을 이루고 있는 서버들의 모음을 말합니다. IT 관리자는 여러 대의 서버를 가지고 리소스에 접근하기 위한 하나의 단일 포인트를 만들기도 하고 필요에 따라 클러스터 링을 하여 네트워크 트래픽을 분산 시키기도 합니다. 그리고 데이터 안정성 이나 가용성과 같은 목적을 위하여 여러 대로 분리해 놓기도 하죠. 예를 들어 두 대의 웹 서버가 있을 경우에 하나의 웹 서버가 죽게 되면 자동으로 다른 서버로 사용자의 Request 를 넘겨주기도 합니다. 이렇듯 SharePoint 에서는 이러한 서비스를 제공하는 서버 환경들을 통틀어서 서버 팜이라고 부릅니다.

SharePoint Server Role

SharePoint Server Farm에는 서비스를 하기 위한 몇 가지 서버 Role 이 존재합니다. 서버 Role의 목록과 그에 대한 설명은 다음과 같습니다.

  • Web-Front-End: 프레젠테이션 레이어의 역할을 담당. 서버 팜에서 Web-Front-End 서버는 하나의 서버로 제공될 수도 있고 여러 대의 서버가 Network load balance로 묶여서 서비스를 할 수도 있음.
  • Application / SSP: SharePoint Logic 부분을 담당. 특히 SSP 는 MOSS Service의 중심에서 각기 다른 서비스들을 연결해 주는 역할은 함.
  • Index: SharePoint 사이트뿐만 아니라 일반 웹사이트 BDC의 컨텐츠들을 Crawling 하여 색인을 만들어 놓는 역할을 함.
  • Query / Search: 사용자로부터의 검색요청을 Web-Front-End 서버로 전달하는 역할을 담당. 보통 Web-Front-End 서버와 같이 설치되며 인덱스 서비스까지 지원이 가능함. 단 하나의 Web-Front-End 서버 존재 시 두 대의 인덱스 서버는 존재할 수 없음.
  • Excel Calculation Server: Excel 과 BI 부분을 책임지고 있음.
  • Form Server: InfoPath 폼의 렌더링과 퍼블리싱과 관련된 서비스를 담당
  • Database Server: SharePoint의 모든 데이터를 저장하는 역할을 수행.

     

    private stringconnectionString = "Data Source=JDSONGSVR03\\OFFICESERVERS;" +
                           "Initial Catalog=SharePoint_Config_645b3fe7-0b43-405e-b5a8-fd882e40343e;"+
                           "Integrated Security=True";

     

    SPFarm farm = SPFarm.Open(connectionString);

    StringBuilder sb = new StringBuilder();

     

    sb.Append("********************************************************\r\n");

    sb.Append("JDSONG Server 에서실행중인서비스목록\r\n");

    sb.Append("********************************************************\r\n\r\n");

    foreach (SPService service in farm.Services)

    {

        sb.Append(service.TypeName + "(" +service.RunningJobs.Count.ToString()+")\r\n");

    }

     

    sb.Append("\r\n********************************************************\r\n");
    txtSvcInfo.Text = sb.ToString();

    bindingTvSiteHierachy(farm);


    참고 소스: 특정 Server Farm 에서 실행되고 있는 서비스 항목을 텍스트 창에 디스플레이, 데모스스 다운로드

SharePoint Server Farm Topology

지금까지 언급한 서버 Role 은 다시 세가지로 분류할 수 있습니다. 첫 번째가 프레젠테이션을 담당하는 부분 두 번째가 로직을 처리하는 부분 세 번째가 데이터를 저장하는 부분이죠. 프레젠테이션을 담당하는 것은 당연히 Web-Front-End 서버가 될 것이구요. 데이터를 담당하는 부분은 당연히 SQL 서버 입니다. 기타 다른 서비스 들이 로직을 담당하게 되는데요. 보통 우리는 이들 서비스만을 제공하는 서버를 Application Server 라고 부릅니다. 이들 세가지가 어떻게 구성되느냐에 따라서 서버의 팜 형태를 구분하게 되는데요. 크게 4가지의 서버 팜 형태가 구성될 수 있습니다.

첫 번째는 Stand-alone server(Single-Server) 입니다.


Stand-Alone Server 는 SharePoint 의 모든 서비스들을 하나의 서버에 설치해 놓은 상태를 말합니다. 일반적으로 Microsoft 에서 언급하기를 WSS 3.0 만으로 Stand-Alone Server 를 구성해 놓으면 10,000 정도 까지는 커버가 가능하다고 합니다. 허나 MOSS 로 이런 구성을 할 경우 상대적으로 많은 서비스 들이 하나의 서버에 올라가기 때문에 실제 성능이 그리 좋게 나오지는 않는다고 하는군요. 물론 그것도 Customizing 을 고려하지 않은 언급으로 보여집니다.

두 번째는 Small Server Farm 입니다.

서버 팜에서의 가장 작은 형태이죠. 총 두대의 서버가 필요한데 하나의 서버에는 데이터베이스 서버의 역할을 수행하게 되며, 다른 한대에는 Web-Front-End 과 다른 서비스들이 모두 실행되기 됩니다. Small Server Farm 형태와 Stand-Alone 서버 형태의 성능을 비교해보면 아무래도 데이터 베이스와 Web-Front-End 역할을 나누어 놓은 Small Server Farm 형태가 성능이 좋아질 수 밖에 없겠죠. 허나 이 경우 두대중에 하나의 서버만 마비가 되더라도 전체 SharePoint 를 사용할 수 없는 일이 생기게 됩니다.

세 번째는 Medium Server Farm 입니다.


Medium Server Farm 은 세대 이상의 서버로 구성됩니다. 이전의 서버 형태와 비교하여 Medium Server Farm 의 가장 특징적인 것은 Front-End 웹 서버와 Application Service 들의 분리 입니다. 이러한 서버 Role 의 분류는 SharePoint 의 솔루션 타입이나 사용자의 사용패턴 그리고 성능 분석을 통해서 이루어 지게 되겠죠. Medium Server Farm 형태의 예를 들어보면 두 대의 Front-End 웹 서버와 하나의 Application 서버 그리고 클러스터링 혹은 미러링 된 두 대의 Database 서버가 될 수 있을 것입니다. 눈치 빠르신 분들은 이미 깨달으셨겠지만 이 형태는 Hardware Failure 나 데이터 안전성이 심각하게 고려될 때 구성되게 되겠죠.

마지막 네 번째는 Large Server Farm 입니다.

Large Server Farm 디자인에서의 가장 중요한 초점은 Application Server Role 들을 어떤 방법으로 어떻게 여러 대의 서버로 나눌 것인가 입니다. Server Role 은 앞서 말씀 드렸다시피 SharePoint 의 솔루션타입이나 성능 분석을 통하여 구성해야 합니다. (예를 들어 Search 서비스가 제대로 된 성능을 보이지 못하고 있다면 Index Service 나 Query Service를 추가하거나 따로 구성해야 합니다.)

참고 문서
Microsoft Office SharePoint Server SDK
White Paper : Microsoft SharePoint Products and Technologies Server Farm Architecture

참고: 물리적 아키텍처에 대한 글을 쓰다보니 서버팜의 용량산정과 SharedService 아키텍처에 대한 내용을 담지 않은 것이 상당히 마음에 걸리는군요. ^^; 그렇다고 이 게시물에 올리기에는 왠지 이야기가 삼천포로 빠질것 같다는 생각이 들어서 해당 내용을 나누어서 게시하는것이 좋을것 같아 제외 하였습니다. 다음 강좌는 정말로 빠른시간에 올릴터이니 많은 성원 부탁 드려요. ^0^


트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://sharepoint.egloos.com/tb/1857054 [도움말]
  • SharePoint Architecture Part 2 2009/06/18 10:17 #

    내 블로그에 Posting 된 글들을 보면 알겠지만 기술문서들은 한글도 된 것들이 별로없다. 그래서 나는 google로 기술문서들을 찾아가며 영문으로 된 것을 보고 알아가는 편인데. 처음에는 이렇게 한글 문서가 없다는 것에 대해 안타까운 생각이많이 들었다. 이제는 머 그렇지 않다. 프로그래머도 영어를 해야 하니까. 참- Native Speaker가... more

덧글

  • 초보 관리자 2009/05/27 18:47 # 삭제 답글

    아~~ 감사합니다.

    앞으로도 쭉쭉 부탁드려요

    화이팅입니다요
  • 머째이와니 2009/06/18 10:18 # 답글

    좋은 글 담아감니다- ^^
덧글 입력 영역