2010-03-31 2 views
1

심각한 데이터베이스 사용을 위해 시스템 디스크를 구성 할 수 있는지 확인하고 싶습니다. 세 가지 영역 나는의 (? 어떤 다른 사람을) 알고에 대해 걱정하는 것은 다음과 같습니다OS별로 디스크 드라이브 관리에 필요한 데이터 : 기본 I/O 유닛 크기, 동기화 옵션, 직접 메모리 액세스 얻기

  1. I/O 크기 : 데이터베이스 엔진 및 디스크의 기본 크기가 일치하거나 데이터베이스의 I 기본/O 크기 중 하나는해야한다 디스크의 네이티브 I/O 크기.
  2. Direct Memory Access (예 : IDE)가 가능한 디스크를 구성해야합니다.
  3. 디스크에 데이터가 지속적으로 기록되었다고 표시되면 반드시 그렇게해야합니다. 캐시에 보관하지 말고 거짓말.

나는 CENTOS 및 Ubuntu에서 이러한 내용을 확인하는 방법에 대한 정보를 찾고 있었지만 아무 것도 찾을 수없는 것 같습니다!

나는 이러한 것들을 확인하고 필요할 경우 변경할 수 있기를 원합니다.

모든 입력을 높이 평가합니다.

참고 : 실제 하드웨어는 매우 적당합니다. 요점은보다 광범위한 관점에서 "매우 심각한 하드웨어는 아니지만"우리가 가진 하드웨어를 최대한 활용하는 것입니다.

더 :

내가 읽고 답장하는 데 걸리는 시간을 주셔서 감사합니다,하지만 난 사실 내가 물었다 특정 일을 해결 단지 좋은 데이터베이스/하드웨어 조언하지만 답변을하지 않습니다 "답변"을 얻을 수 있었으면 해요 약. 즉 :

1) I/O 유닛 크기가 OS에서 수행하고자하는 작업을 쉽게 알 수있는 방법은 무엇입니까? 어떻게 변경할 수 있습니까? (IOW : 파일 시스템 형식의 독점적 인 문제인 경우 이미 작성된 파일 시스템에서 사용 된 내용을 어떻게 알 수 있습니까?/etc/fstab에서 파일 시스템 형식을 알 수 있습니다 ...이 경우에는 ext3.

2) 디스크 드라이브에 DMA가 있는지 어떻게 알 수 있습니까? 그렇다면 어떻게해야합니까? (일부 드라이브에이 기능이 있다고 들었지만 지금은 후속 조치를 통해 이 드라이브에있는 경우이 드라이브가 켜지면 켜져 있음을 확인하십시오.)

마지막으로,

3) 실제로 드라이브가 실제로 캐시에있을 때 드라이브가 단순히 작성자에게 그 재료가 쓰여졌다 고 말하고 있는지 어떻게 알 수 있습니까? 더 중요한 것은 어떻게 그러한 기능을 사용하지 않을 것인가? 존재하는 경우 시스템을 설정할 수 있는가?

통찰력을 가져 주셔서 감사합니다. RT

+0

각 데이터베이스에는 고유 한 기능과 옵션이 있으므로 사용중인 데이터베이스 (그리고 고려중인 파일 시스템)를 알 수 있습니다. – codenheim

+0

안녕하세요 MrJoltCola, 솔직히 말해서 RDBMS가 사용 된 benig와 내가 질문 한 질문 사이에 _any_ 링크가 표시되지 않지만 Postgres입니다. 기본 8K 페이지 크기입니다. 변경하려면 다시 컴파일해야합니다. 통찰력을 주셔서 감사합니다 –

+0

구체적인 통찰력을 원하면 큰 링크가 있습니다. 왜 당신이 내 질문에 대해 방어적인 것처럼 보일지 확신하지 못합니다. 당신이 내 대답을 찾지 못했기 때문에, 나는 더 이상의 코멘트를 삼가겠다. – codenheim

답변

1

"심각한 데이터베이스 사용"및 동일한 문장에서 IDE 언급합니까?

데이터, 로그 및 백업을위한 별도의 어레이가있는 많은 스핀들 RAID 1 + 0 어레이의 SSD 또는 15k SCSI. tempdb에 대해서도 별도의 배열을 고려하십시오.그 다음 당신이 생각 하는데요 "심각한"만약

또한 캐싱을 방지하기 위해 너무 읽어 100 %로 컨트롤러 캐시를 전환 할 것은 물론,

를 발행 클러스터링 등 : 그래서 SAN은 여기에 있지만 유용에 온다 로컬 스핀들만큼 빠르지 않을 수도 있습니다.

+0

+1, 그렇습니다. 필자는 write-back 캐시를 사용해 본 적이 전혀 없었습니다. – codenheim

+0

이봐, 웃지 마! (OK, 웃음 거리 - 미소 -) 이것은 솔루션이 미리 설치된 상태로 제공되는 매우 저렴한 하드웨어 세트를 포함하는 솔루션을 판매하는 고객을위한 것입니다. 아니요, 선택 사항과 관련이 없습니다! –

+0

BTW는 "심각한"의미는 큰 데이터 센터를위한 것이 아니라 우리가 가지고있는 하드웨어를 최대한 활용해야하기 때문입니다. –

0

파일 시스템이나 데이터베이스에 대한 정보를 포함하지 않았으므로 여기에 몇 가지 유용한 정보가 있습니다.

결국 디스크를 잃어버린 것이므로 좋은 백업 및 복구 전략을 적용하고 트랜잭션 로그를 미러링하는 것이 중요하므로 디스크 오류 또는 전체 데이터 파일 손실을 처리 할 수 ​​있습니다.

1) 가능하면 고정 된 디스크에 적어도 하나의 트랜잭션 로그 사본을 넣으십시오. 유일한 트랜잭션 로그를 외부 스토리지 서브 시스템에 넣지 마십시오. 로그 미러링을 지원하는 db를 사용한다고 가정합니다.

2) gbn에 동의합니다. 실제로는 쓰기 캐싱을 사용하지 마십시오. 배터리 백업으로 RAID 어레이에서 데이터베이스를 잃어 버렸습니다. 연속 기입을 위해 저장소 컨트롤러 카드를 구성합니다.

3) 원시 장치는 보장 된 쓰기 기능을 제공하지만 불편 함이 없습니다. 일부 파일 시스템은 동기 쓰기 옵션도 제공하며 가능한 경우 하나를 사용합니다. 나는 VxFS에 부분적이지만 Sun의 세계입니다. 리눅스에서 btrfs는 저명한 제품이지만 현재로서는 DB를 올바르게 설정하면 Ext3이 잘 작동합니다.

+0

fstab에서 sync 옵션을 사용하는 것으로 충분합니까? 어떻게 든 나는 그것을 의심한다! 내말은; 하드웨어에이 캐시가있는 경우 쓰기 기능이 완료되면 거짓말을합니다. 동기화와 관련하여 OS의 소원을 존중하지 못할 수도 있습니다.명확히하기; 그런 점에서 드라이브에게 무엇을해야하는지 알려주는 OS/커널 레벨 기능이 있습니까? –

+0

내가 sync라고 말했을 때, 나는 파일 시스템이 그것을 지원하고, 사용자 프로세스 (데이타베이스)는 그것의 데이터 파일을 동기 모드로 열 수 있음을 의미했다. – codenheim

1

1)/sys/block/sdX/queue/{max_hw_sectors_kb, max_sectors_kb}를 확인하십시오. 첫번째는 HW이 허용하는 최대 전송 크기, 다른 값 < = max_hw_sectors_kb

2) hdparm을 -i/디바이스/SDX

3) 중지 쓰기 금지로 설정 될 수있는 최대 전류이다 (hdparm이 할 수있는) 백 캐싱을 사용하거나 (fsync() 또는 저널 커밋과 같이) 파일 시스템이 동기화 할 때 장벽을 일으키는 지 확인하십시오.