
Edge 전송 서버 용량 및 I/O 요구 사항
Edge 전송 서버는 각 조직의 용량 및 트랜잭션의 I/O 요구 사항에 맞게 디자인되어야 합니다. 큐 증가를 올바로 유지 관리하고 최대한 빠르게 메일을 라우팅하여 SLA(서비스 수준 계약)가 불리하게 영향을 받지 않게 하는 것이 중요합니다. Edge 전송 서버의 전체 용량에 영향을 주는 여러 가지 요소는 다음과 같습니다.
-
메시지 추적 로그
-
프로토콜 로그
-
메일 데이터베이스
-
연결 로그
-
에이전트 로그
최소 500MB의 여유 공간 및 데이터베이스 여유 공간이 메시지 큐 데이터베이스가 있는 드라이브에 있어야 합니다. 그렇지 않으면 전송 시스템이 역 압력(Microsoft Exchange Server 2007 전송 서비스의 시스템 리소스 모니터링 기능)을 활성화합니다.
참고: |
|---|
|
Exchange Server 2007 의 RTM(Release To Manufacturing) 버전에서는 여유 공간이 4GB 미만이 되면 전송 시스템이 역 압력을 활성화합니다. Exchange 2007 서비스 팩 1에서는 이 임계값이 500MB로 하향 조정되었습니다.
|
역 압력의 기본값은 PercentageDatabaseDiskSpaceUsedHighThreshold 매개 변수에서 제어되며 필요한 경우 이를 수정할 수 있습니다. 역 압력 및 역 압력 구성 옵션 에 대한 자세한 내용은 백 프레셔의 이해를 참조하십시오.
메시지 추적 로그를 사용하도록 설정하면 추가 용량이 필요합니다. 전송 서버에서 수신한 메시지의 수에 따라 메시지 추적 용량 요구 사항이 달라집니다. 조직에서 현재 Microsoft Exchange Server 2003 을 사용하는 경우 현재 로그 생성 속도를 확인하여 데이터를 보관할 일 수에 대해 하드 한도(예: 10일)를 설정할 수 있습니다. Microsoft 에서는 220MB의 메시지 추적 로그를 매 영업일(주말에는 적음)에 생성하고 1주간의 로그에 충분한 용량(약 1.3GB)이 되도록 합니다. 프로토콜, 연결 및 에이전트 로그 크기는 작업에 따라 달라집니다. Microsoft 에서 프로덕션 전송 서버는 참조 지점으로 다음을 생성합니다.
-
Edge 전송 서버에서 매일 5 - 15GB의 프로토콜 로그. 프로토콜 로그 할당량에 충분한 용량인 15GB가 보장됩니다.
-
Edge 전송 서버에서 매일 100MB의 연결 로그. 주간 로그에 충분한 용량인 약 600MB가 보장됩니다.
-
Edge 전송 서버에서 매일 250MB의 에이전트 로그. 주간 로그에 충분한 용량인 1.5GB가 보장됩니다.
순환 로깅을 사용하면 일반 로그 작성이 제한되므로 트랜잭션 로그는 많은 디스크 용량을 필요로 하지 않습니다. 따라서 운영 체제가 포함된 LUN(논리 단위 번호)에 트랜잭션 로그를 배치할 수 있습니다. Microsoft 에서는 이 LUN에 두 개의 디스크 미러를 사용합니다.
데이터베이스(mail.que)는 항목을 무한정으로 저장하지 않으며 큐가 최대 상태이고 서버가 종료된 경우에 예약된 용량은 평균 메시지 크기에 최대 큐를 곱한 용량이여야 합니다. 평균 메시지 크기가 50KB인 500,000개의 항목 큐는 데이터베이스에서 약 25GB의 데이터를 차지합니다.
받는 메일에 바이러스 백신 스캔을 실행하는 Edge 전송 서버는 바이러스 백신 격리를 위한 충분한 공간을 필요로 합니다. 디스크 I/O 리소스 요구 사항은 바이러스에 감염된 받는 메일의 비율에 따라 다르며 일반적으로 작습니다. 감염된 메시지 및 첨부 파일의 용량 및 격리에 머무르는 시간은 격리에서 필요로 하는 공간의 크기에 영향을 줍니다. 1GB의 디스크 공간은 좋은 시작점이 될 수 있지만 실제 필요한 용량은 각 조직에 따라 다릅니다.
대부분의 Edge 전송 서버 배포의 경우 다른 요소를 모두 고려한 후에 20%의 오버헤드 요소를 데이터베이스 크기에 추가하는 것이 좋습니다. 이 값은 데이터베이스 내의 내부 구조를 고려하며 메일 흐름의 급격한 상승 또는 변경으로 인해 데이터베이스 크기가 커진 경우 충분한 공간을 보장합니다.
Edge 전송 서버의 용량 예제
이 예제에서 트랜잭션 로그는 운영 체제 파티션(C:)에 저장되며 이 파티션은 배터리로 지원된 캐싱 RAID(Redundant Array of Independent Disk) 컨트롤러에서 호스팅됩니다. 용량 요구 사항은 여러 메가바이트 범위로 작습니다.
다음은 Edge 전송 서버의 용량을 결정하는 두 단계 프로세스입니다. 첫 번째는 데이터베이스 크기를 계산한 다음 트랜잭션 로그 크기를 결정합니다.
1단계: 데이터베이스 크기
Edge 전송 서버가 24시간 간격으로 평균적으로 초당 5개의 메시지(50KB의 평균 크기)를 받으며 최대 큐의 항목이 500,000개인 것으로 간주합니다. 다른 요소를 모두 추가한 후에 20%의 추가 오버헤드를 포함시키면 다음 표와 같이 디스크에서 총 크기는 58GB입니다.
데이터베이스 크기
|
최대 큐
|
큐 용량
|
프로토콜 로그
|
메시지 추적 로그
|
바이러스 백신 격리
|
연결 로그
|
에이전트 로그
|
여유 공간
|
디스크 전체 크기
|
|---|
|
500,000
|
약 25GB(500,000 × 50KB)
|
15GB
|
1.3GB
|
1GB
|
600MB
|
1.5GB
|
4GB
|
58GB (48GB + 20%)
|
2단계: 트랜잭션 로그 크기
트랜잭션 로그 크기를 결정하려면 트랜잭션 I/O, 기타 디스크 I/O 및 메시지당 데이터베이스 IOPS(초당 I/O)를 고려해야 합니다.
트랜잭션 I/O
서버에 사용 가능한 메모리가 충분하면 받는 메일이 RAM 및 트랜잭션 로그에 저장되어 디스크 영향이 최소화됩니다. 메모리 리소스가 낮아지면 첫 번째 128KB의 메시지만 메모리 및 트랜잭션 로그에 저장됩니다. 나머지 메시지는 데이터베이스에 저장됩니다. 콘텐츠를 변환하는 동안 데이터는 처리를 위한 임시 위치로 스트리밍됩니다. 이 임시 위치는 EdgeTransport.exe.config 파일의 TemporaryStoragePath 설정에 의해 지정됩니다. 기본적으로 TemporaryStoragePath 값은 "C:\Program Files\Microsoft\Exchange Server\TransportRoles\data\Temp"로 설정됩니다.
참고: |
|---|
|
기본적으로 EdgeTransport.exe.config 파일은 %ProgramFiles%\Microsoft\Exchange Server\Bin 폴더에 있습니다.
|
데이터베이스와 동일한 LUN에 임시 디렉터리를 배치하는 것이 중요합니다. 또한 저장소 컨트롤러 캐시를 50% 읽기 및 50% 쓰기로 설정하는 것이 중요합니다. 큐가 크게 커지지 않는 경우에는 읽기 작업을 수행하는 디스크 I/O가 거의 없습니다. 큐가 있는 경우에는 메시지가 데이터베이스 캐시에 있지 않을 수 있으므로 더 많은 디스크 I/O를 필요로 합니다.
기타 디스크 I/O
시스템에는 트랜잭션 I/O와 더불어 기타 디스크 I/O도 있을 수 있습니다. 예를 들면,
-
메시지 추적 로그를 사용하려면 디스크 I/O에 2-5%의 추가 오버헤드가 필요합니다.
-
프로토콜 및 연결 로그를 사용하면 받는 메일의 양에 따라 디스크 I/O에 소규모 오버헤드가 포함됩니다.
-
기본 에이전트 로그를 사용하면 사용자 지정 에이전트가 사용 중인 경우 디스크 리소스가 더 많이 필요하더라도 디스크 I/O에 소규모 오버헤드가 포함됩니다.
-
스팸 방지 및 바이러스 백신 작업이 메모리에서 발생하면 더 많은 CPU 리소스가 필요합니다.
테스트 중에는 프로덕션에서 사용할 모든 서비스가 실행되는 상태에서 Edge 전송 서버를 테스트해야 합니다.
메시지당 데이터베이스 IOPS
Microsoft 에서는 내부 테스트 중에 60KB의 평균 메시지 크기를 사용했습니다. 여러 조직이 초당 20개의 메시지와 같이 특정 메시지 속도를 가정하여 전송 서버의 크기를 설정합니다. 이 메시지 속도에는 140개(20 × (4.5 + 2.5))의 데이터베이스 I/O 및 220개의 (20 × 11) 로그 I/O가 필요합니다.
큐가 형성될 때는 더 많은 읽기가 필요합니다. RAID-1/0의 경우 모든 실제 디스크가 다음 표와 같이 읽기 요청에 응답하기 때문에 더욱 그러합니다.
메시지당 데이터베이스 IOPS
|
Edge 전송 데이터베이스 I/O(안정적인 상태)
|
대략적인 Edge I/O
|
|---|
|
메시지당 총 IOPS(약 60KB)
|
18
|
|
메시지당 로그 쓰기 I/O(순차)
|
11
|
|
메시지당 데이터베이스 쓰기 I/O(임의)
|
4.5
|
|
메시지당 데이터베이스 읽기 I/O(임의)
|
2.5
|
참고: |
|---|
|
이전 표에서 숫자는 프로덕션 환경에서 편차가 최대 +/- 30%인 여러 서버의 평균을 나타냅니다. 저널링 및 전송 규칙과 같은 추가 기능에는 메시지당 예상 I/O에 영향을 주며 이러한 기능은 이 항목에 제공된 예제 프로덕션 수에 영향을 줍니다.
|
크기 설정 지침을 Edge 전송 서버의 하드웨어 디자인에 적용
Edge 전송 서버에 필요한 용량 및 트랜잭션 I/O 요구 사항이 준비되면 제안된 하드웨어 디자인에 적용할 수 있습니다. 프로세서 및 메모리 구성에 대해서는 프로세서 및 메모리 구성 계획 및 메모리 구성 계획을 참조하십시오. Edge 전송 서버를 디자인할 때에는 시스템에 충분한 RAM을 확보하여(각 메시지에는 8 또는 9KB의 메모리가 필요함) 대기 중인 메시지 본문이 디스크에 임시로 캐시되지 않도록 하는 것이 중요합니다.
Edge 전송 서버에는 ESE(Extensible Storage Engine) 데이터베이스가 사용됩니다. 최적의 성능 및 복구를 위해 대규모 큐가 있을 환경의 실제 자체 디스크에서 로그와 데이터베이스 파일을 분리하는 것이 중요합니다. 디스크 I/O 요구 사항이 낮은 소규모 배포의 경우에는 트랜잭션 로그 및 데이터베이스를 모두 동일한 LUN에 배치할 수 있습니다. 사서함 서버와 같이 Edge 전송 서버에는 20밀리초 미만인 I/O 응답 시간이 필요합니다.
배터리로 지원된 캐싱 RAID 컨트롤러를 사용하고 데이터베이스 유지 관리를 밤에 실행하는 것이 중요합니다. 또한 선택된 디스크 유형이 용량과 성능 간의 적절한 균형을 제공하는지 확인합니다.
Edge 전송 서버의 하드웨어 디자인 크기 설정 예제
이 예제에서는 초당 예상 메시지를 기반으로 저장소를 디자인하는 방법을 보여줍니다. 이 예제에서 Edge 전송 서버는 초당 20개의 메시지를 처리하며 데이터베이스 LUN에 140 IOPS, 로그 LUN에 220 IOPS를 필요로 합니다. 평일보다 더 많이 처리하려면 디스크 I/O 매개 변수에 20% 증가율을 항상 추가합니다. 디스크 레이아웃은 RAID10입니다. 하드웨어 크기 설정 결과에 대해서는 다음 표를 참조하십시오.
하드웨어 크기 조정
|
디스크(1) 및 (2), RAID1 레이아웃
|
디스크(3), (4), (5) 및 (6), RAID10 레이아웃
|
|---|
|
운영 체제 및 트랜잭션 로그 220 + 20% = 264 IOPS
|
데이터베이스, 프로토콜과 메시지 추적 로그 및 바이러스 백신 격리140 + 20% = 168 IOPS
|
이 예제에는 주간 데이터에 약 70GB의 데이터베이스 LUN 용량 요구 사항이 포함되어 있습니다. 2주간의 데이터가 필요하면 용량 요구 사항을 140GB로 2배 늘려야 합니다. 146GB의 실제 디스크를 사용하면 RAID10 구성에서 292GB의 LUN이 허용됩니다.