새 서버를 구성하고 있습니다. 여기에는 8x 146Gb 디스크가 있는 RAID 컨트롤러 1개가 있습니다. 시스템은 현재 Raid 1+0으로 구성되어 있지만 논리 드라이브가 1개뿐입니다. 데이터와 로그 파일이 별도의 디스크에 있어야 하기 때문에 최적이 아닙니다.
다음을 사용하도록 시스템을 재구성하는 것이 합리적입니까?
- OS+로그용 RAID-1 논리 디스크로 디스크 2개
- 데이터용 RAID-10 논리 디스크로 디스크 6개
모든 디스크가 여전히 동일한 RAID 컨트롤러에 있으므로 '이것이 성능상의 이점을 제공하는지 모르겠습니다.
조언 해주셔서 감사합니다!
답변1
이는 데이터베이스가 대부분 읽기인지, 대부분 쓰기인지, 아니면 알 수 없는 혼합인지에 따라 달라집니다.
데이터베이스가 대부분 읽기(SELECT)인 경우 동일한 RAID 10에 8개 드라이브를 모두 사용하세요.
데이터베이스가 대부분 쓰기(삽입/업데이트/삭제)인 경우에는 2개의 4드라이브 RAID 10 어레이를 고려할 수도 있습니다. 특히 데이터베이스에서 트랜잭션 로그 백업, 데이터베이스 미러링 또는 로그 전달을 자주 수행하는 경우에는 더욱 그렇습니다.
혹시 모르신다면 서버에 나중에 하드 드라이브를 추가할 수 있는 공간이 있다면 2+6을 선택하겠습니다. 이렇게 하면 나중에 데이터 또는 로그 어레이에 더 많은 성능이 필요하다고 결정한 경우 일반적으로 드라이브 쌍을 핫 추가하고 중단 없이 다시 스트라이프할 수 있습니다. RAID 카드 모델을 올려주시면 확실히 확인 가능합니다.
잘 모르겠고 추가 드라이브를 추가할 공간이 없다면 관리하기 쉽도록 단일 8드라이브 어레이를 선택하겠습니다. 로그 드라이브의 공간 부족에 대해 걱정할 필요가 없습니다.
어떤 옵션을 선택하든 로그 파일을 OS와 별도의 논리 드라이브에 저장하세요. 갑자기 트랜잭션 양이 많아지고 로그 파일이 OS의 논리 드라이브(C)를 가득 채우면 서버가 심하게 다운될 수 있습니다.
답변2
얼마 전 이 사이트에서 제가 질문한 내용은 다음과 같습니다.
현재 시나리오에 도움이 될 것 같습니다.
기본적으로 OS를 RAID 1에, 데이터를 RAID 10에(현재는 RAID 5에서 벗어남), RAID 1에 로그인해 보십시오. 이 주제의 게시물은 여러분이 이것을 원하는 이유를 아주 잘 설명하고 있습니다. .
로그 파일을 OS와 동일한 드라이브에 저장하지 않는 것이 좋습니다. 로그 파일은 너무 많이 늘어나는 성가신 경향이 있으며 이로 인해 잠재적으로 OS 드라이브가 가득 차서 좋지 않을 수 있습니다. 자체 드라이브에 있는 경우 드라이브가 가득 차면 SQL에만 영향을 미칩니다.
답변3
1 및 0+1 RAID 모두에서 다음을 읽습니다.단일 섹터하나의 디스크에서 두 개에 씁니다.
RAID 5가 있는 경우 다른 이야기가 제공됩니다.N실제 디스크에서 읽습니다.n-1그리고 쓰세요N.
설정에서 두 시나리오의 유일한 차이점은 레이드 세트가 심하게 실패하고 다른 레이드 세트가 아직 남아 있다는 점입니다.
답변4
2개의 논리 드라이브를 갖도록 재구성하겠습니다. 우선, OS를 데이터와 별도의 스핀들에 두는 것이 복원이 더 쉽기 때문에 좋은 습관입니다. 또한 RAID 컨트롤러에 대한 자세한 내용은 모르지만 일반적으로 OS를 다른 드라이브 세트로 분할하면 드라이브의 경합이 줄어들고 디스크가 너무 많은 시간을 소비할 때 소위 IO 스래싱이 줄어들기 때문에 성능이 향상됩니다. 찾고 있지만 읽기/쓰기가 충분하지 않습니다.