SQL Server: 12드라이브 RAID-10 어레이 1개 또는 8드라이브 및 4드라이브 어레이 2개

SQL Server: 12드라이브 RAID-10 어레이 1개 또는 8드라이브 및 4드라이브 어레이 2개

최고의 성능(과중한 OLTP)을 제공하는 SQL Server 2008용 상자를 설정합니까? RAID-10 어레이에 드라이브가 많을수록 성능이 향상되지만 트랜잭션 로그 전용으로 4개의 드라이브를 잃어 성능이 향상됩니다.

RAID-10의 드라이브 12개와 핫 스페어 1개.

또는

데이터베이스용 RAID-10 드라이브 8개, 트랜잭션 로그용 RAID-10 드라이브 4개 및 핫 스페어 2개(어레이당 하나씩).

사용할 수 있는 드라이브 슬롯은 14개이며 글로벌 핫 스페어를 지원하지 않는 구형 PowerVault입니다.

답변1

나는 10/2에 갈 것이다. 로그는 일반적으로 작고 순차적이며 RAID 컨트롤러는 나머지를 방해하지 않고 RAID 1의 2개 디스크에 쓸 수 있을 만큼 효율적으로 로그를 대기열에 넣을 수 있어야 합니다. RAID 컨트롤러가 이 작업을 수행할 수 없으면 분할을 잊어버리고 급할 경우 12로 가십시오. 시간이 있으면 몇 가지 테스트를 실행하고 무엇이 작동하는지 확인하십시오. 전역 핫 스페어가 부족한 것은 부끄럽지만 어쨌든 가지고 놀 수 있는 괜찮은 상자가 있는 것 같습니다.

답변2

나의 제한된 지식에 따르면 고려해야 할 두 가지 주요 요소가 있습니다.

  1. 데이터베이스 파일 작업은 일반적으로 무작위이므로 해당 디스크에 대한 IOPS를 최대화하려는 반면, 트랜잭션 로그 파일 작업은 일반적으로 순차적이므로 우수한 원시 처리량이 필요합니다.

  2. 그런 식으로 기본 데이터베이스와 트랜잭션 로그를 별도로 저장하려고 합니다. 기본 데이터베이스 디스크를 분실한 경우 백업 + 트랜잭션 로그에서 DB를 재생성할 수 있으며, 트랜잭션 로그만 손실된 경우에는 여전히 기본 DB를 유지합니다.

물론 위의 요약보다 훨씬 더 복잡하지만 이것이 기본입니다. 따라서 두 개의 별도 어레이를 사용하고 두 가지 모두에 RAID10을 사용할 수 있는 용량이 있다면 좋습니다.

답변3

RAID-10에서 12개의 드라이브를 사용하면 꽤 잘 작동하지만 서버에 적절한 양의 메모리가 있는지 확인하십시오. 그 이유는 메모리가 충분하면 대부분의 데이터 쓰기가 캐시되고 결국 디스크에 데이터를 쓸 때 많은 쓰기가 단일 IO 트랜잭션에 통합되기 때문입니다. 이는 OLTP 데이터베이스의 경우 특히 그렇습니다. 캐싱은 동일한 드라이브에 트랜잭션 로그를 쓸 수 있는 충분한 대역폭을 제공합니다. 후기입 모드에서 BBU로 보호되는 캐시가 내장된 하드웨어 RAID 컨트롤러를 사용하면 쓰기 성능을 더욱 향상시킬 수 있습니다.

또한 8+4 또는 10+2를 사용하는 것도 좋은 옵션이지만 여기서 볼 수 있는 유일한 단점은 스토리지를 비효율적으로 사용한다는 것입니다. 그렇지 않으면 단단합니다.

답변4

~ 해야 하다먼저 작업량을 결정하십시오. 그리고 테스트, 테스트, 테스트(그것은 아무리 강조해도 지나치지 않습니다):

첫째, "내 RAID 10에 디스크가 많을수록 속도가 빨라집니다"라는 설명은 올바르지 않습니다. 이는 RAID 시스템이 이 RAID 레벨을 구현하는 방식(쓰기/읽기/스트라이핑/버퍼 배포...계속 가능)에 따라 크게 달라집니다.

둘째, 트랜잭션 로그를 DB가 아닌 다른 위치(디스크)에 저장하는 것이 항상 좋은 생각이지만 효과적인 이득은 워크로드에 따라 달라집니다. 쓰기는 많지만 작습니까, 아니면 쓰기가 적지만 대량입니까? 쓰기/읽기 비율, 읽기 크기 등. pp.

OLTP를 많이 하고 계시다고 하더군요. 이 용어에 대한 제가 이해한 바에 따르면 이는 쓰기가 아니라 읽기가 많다는 의미입니다(...그렇습니까? 먼저 확인하세요). 이 경우에는 트랜잭션 로그를 같은 장소에 저장해도 괜찮습니다.12 드라이브.

관련 정보