저렴한 SSD 하드 드라이브로 데이터베이스 확장


25

많은 사람들이 트래픽이 많은 데이터베이스 기반 웹 사이트를 사용하고 있기를 희망하며 주요 확장 성 문제가 데이터베이스에있을 가능성이 있습니다. 최근에 몇 가지 사항을 발견했습니다.

  1. 대부분의 대규모 데이터베이스에는 확장을 위해 DBA 팀이 필요합니다. 하드 드라이브의 한계로 인해 끊임없이 어려움을 겪고 있으며 고가의 솔루션 (SAN 또는 대형 RAID, 조각 모음 및 재 파티셔닝을위한 빈번한 유지 관리 기간 등)으로 이어집니다. 이러한 데이터베이스를 유지 관리하는 실제 연간 비용은 $ 100K-$ 1M 범위입니다. 나에게 너무 가파르게 :)

  2. 마지막으로 인텔, 삼성, FusionIO 등 여러 회사에서 SLC Flash 기술을 기반으로 매우 빠르고 저렴한 SSD 하드 드라이브를 판매하기 시작했습니다. 이 드라이브는 시중에서 판매되는 최고 회전 하드 드라이브보다 초당 100 배 빠른 임의 읽기 / 쓰기 속도를 제공합니다 (초당 최대 50,000 개의 임의 쓰기). 검색 시간은 거의 제로이므로 임의 I / O 비용은 순차적 I / O와 동일하므로 데이터베이스에 적합합니다. 이 SSD 드라이브는 기가 바이트 당 약 10- $ 20 정도이며 비교적 작습니다 (64GB).

따라서 RAID 드라이브를 충분히 큰 RAID 5 어레이 (단 몇 천 달러 만)를 구축하여 기존 방식으로 데이터베이스를 확장하는 데 드는 막대한 비용을 피할 수있는 기회가있는 것 같습니다. 그런 다음 데이터베이스 파일이 조각화되어 있는지 상관하지 않으며 데이터베이스를 100 개의 스핀들에 분산시키지 않고도 초당 100 배 더 많은 디스크 쓰기를 감당할 수 있습니다. .

다른 사람이 이것에 관심이 있습니까? 몇 개의 SSD 드라이브를 테스트하고 결과를 공유 할 수 있습니다. 이 사이트의 누군가가 이미 SSD로 I / O 병목 현상을 해결했다면, 당신의 전쟁 이야기를 듣고 싶습니다!

추신. 시간이 오래 걸리는 RAM 기반 SAN과 같이 확장 성을 지원하는 값 비싼 솔루션이 많이 있다는 것을 알고 있습니다. 5 만 달러도 내 프로젝트에 너무 비싸다는 것을 분명히하고 싶습니다. 비용이 $ 10K를 넘지 않고 구현하는 데 많은 시간이 걸리지 않는 솔루션을 찾아야합니다.


데이브, NXC, 벌리

답장을 보내 주셔서 감사합니다! 저는 제 상황에서 "저렴한"이라는 단어가 매우 중요하다는 것을 분명히하고 싶습니다. 따라서 저렴한 Dell 서버를 사용해야합니다 (메모리 뱅크가 8 개인 4K 2950 달러). 이미 32GB의 RAM이 설치되어 있으므로이 방법으로 계속 확장 할 수 없습니다. 또한 RAM을 추가해도 디스크 쓰기 병목 현상이 발생하지 않으므로 지금 당장 주요 문제입니다.

예전에는 SSD 수명에 관심이 있었지만 최신웨어 레벨링 알고리즘에 대해 읽은 후이 드라이브가 충분히 오래 지속될 것이라고 확신합니다. 내 데이터베이스는 하루에 300GB를 쓰고 2009 년에는 하루에 1TB 이상을 기록 할 것으로 예상됩니다. Enterprise SSD는 여러 해에 걸쳐 하루에 약 10TB의 쓰기를 처리하도록 설계되었습니다.

SAS에서 SSD로 마이그레이션하는 데 너무 많은 노력이 필요하다는 Burly의 견해에 동의하지 않습니다. 내 데이터베이스는 동기식 미러이므로 미러의 한 쪽을 업그레이드 한 다음 몇 개월 동안 볼 수 있으며 불면 여전히 오래된 SAS 하드 드라이브가있는 두 번째 서버로 장애 조치 할 수 있습니다 ...


2
BTW는 성능 향상으로 하드웨어 비용을 줄일 수있는 방법에 대해 언급하고 있지만 SSD가 주요 비용 인건비를 어떻게 줄 일지 명확하게 밝히지 않았습니다. 설치 크기를 줄이면 직원의 요구 사항이 줄어들 수 있다는 사실을 알게 될 것입니다.
Burly

2
내 데이터베이스는 풀 타임 DBA 또는 컨설턴트없이 3 년 동안 프로덕션 환경에서 즐겁게 실행되었습니다. 그런 다음로드가 I / O bottlneck과 충돌하는 지점까지 증가했습니다. 따라서 데이터베이스 파티션 및 조각 모음을 위해 DBA에 많은 돈을 지불해야 할 수도 있습니다. 또는 저렴한 SSD를 구입하십시오.
Dennis Kashkin

추가 한 비용 제약에 대해 답변을 업데이트했습니다. DB의 공간, 크기, 성능, 유지 관리 및 수정 요구 사항에 따라 SSD는 확실히 비용 효율적인 솔루션을 제공 할 수 있습니다. 솔루션 설계 및 비용 분석은 여기서 다루지 않습니다. 행운을 빌어 요!
Burly

당신은 너무 많은 koolaid를 마시고 있습니다. SSD는 RAID 드라이브보다 읽기 속도가 1.5 배 빠르지 만 쓰기는 자기 디스크보다 느립니다. 고속 RAID를 갖춘 파이버 기반 SANS는 SSD의 성능에 관계없이 모든 SSD를 파괴합니다.
TravisO

공유하고 싶었습니다. 5 개월 동안 SSD에서 400GB 데이터베이스를 실행했습니다. 이 데이터베이스는 많은 쓰기 작업 (초당 최대 1200 개의 트랜잭션)을 얻습니다. 지금까지 아무런 문제가 없었으며 15K rpm SAS 드라이브가 장착 된 RAID10에 비해 성능이 크게 향상되었습니다. 디스크는 96 % 유휴 상태를 유지합니다. 따라서 SSD가 놀랍게 저렴 해졌다는 것을 고려할 때 (160GB 인텔 드라이브의 경우 600 달러) SAN보다 I / O를 확장하는 더 좋은 방법이라고 주장합니다.
Dennis Kashkin

답변:


20

잠재적 인 문제

현재 프로덕션 데이터베이스에 SSD를 사용하는 데 몇 가지 문제가 있습니다.

  • 대부분의 웹 사이트에서 대부분의 데이터베이스 트랜잭션은 읽기가 아닙니다. Dave Markle이 말했듯이 먼저 RAM으로이 성능을 극대화하십시오.
  • SSD는 주류 및 엔터프라이즈 시장에 새로운 제품이며, 현재로서는 파이버 채널을 통해 입증되지 않은 기술로 통신하는 RAID5의 15K RPM U320 디스크가 필요한 프로덕션 데이터베이스를 관리자가 필요로하는 관리자는 없습니다.
  • 이 새로운 기술로 이동하고, 환경에서 시험하고, 운영 절차를 업데이트하는 등의 연구 및 테스트 비용은 대부분의 상점이 필요로하는 것보다 시간과 비용 측면에서 초기 비용이 더 큽니다.

제안 된 혜택

즉, 미래에는 SSD를 선호하는 종이에 적어도 여러 가지 품목이 있습니다.

  • HDD에 비해 낮은 전력 소비
  • 훨씬 낮은 열 발생
  • HDD에 비해 와트 당 더 높은 성능
  • 훨씬 높은 처리량
  • 훨씬 낮은 대기 시간
  • 대부분의 최신 SSD는 수백만 사이클의 쓰기 내구성을 가지고 있으므로 쓰기 내구성은 예전처럼 문제가되지 않습니다. 다소 오래된 기사를 참조 하십시오.

따라서 주어진 성능 벤치 마크에서 직접 전력 및 간접 냉각 비용을 포함한 총 소유 비용을 고려하면 SSD가 매우 매력적일 수 있습니다. 또한 특정 환경 수준에 따라 특정 수준의 성능에 필요한 장치 수를 줄이면 인력 요구 사항이 줄어들어 인건비가 절감 될 수 있습니다.

비용과 성능

귀하는 $ 55,000 미만의 비용 제한이 있고 $ 10K 미만으로 유지하고 싶다고 덧붙였습니다. 당신은 또한 SSD가 DBA 나 컨설턴트보다 저렴할 것이라고 말하면서 "싼"SSD를 얻을 수 있다고 언급했다. DBA가 필요한 시간과 재발 비용인지 여부에 따라 이는 사실 일 수 있습니다. 당신을 위해 비용 분석을 할 수 없습니다.

그러나 매우 조심 해야 할 것은 SSD 의 종류 입니다. 모든 SSD가 동일하게 생성되는 것은 아닙니다. 일반적으로 $ 200-400 달러 (2008/11/20)에 판매되는 "저렴한"SSD는 랩탑과 같은 저전력 / 열 환경을위한 것입니다. 이 드라이브는 실제로 10K 또는 15K RPM HDD에 비해 성능 수준이 낮습니다 (특히 쓰기 작업의 경우). Mtron Pro 시리즈와 같이 킬러 성능이 뛰어난 엔터프라이즈 급 드라이브는 상당히 비쌉니다. 현재 그들은 주위에 있습니다 :

  • 16GB 400 USD
  • 32GB의 경우 900 USD
  • 64GB 용 1400 USD
  • 128GB의 경우 3200 USD

공간, 성능 및 중복 요구 사항에 따라 예산을 쉽게 삭감 할 수 있습니다.

예를 들어, 요구 사항에 총 128GB의 사용 가능한 스토리지가 필요한 경우 RAID 0 + 1 / 10 또는 1 핫 스페어가있는 RAID 5는 ~ $ 5600입니다.

그러나 사용 가능한 스토리지의 TB가 필요한 경우 RAID 0 + 1 / 10은 ~ $ 51K이고 2 개의 핫 스페어가있는 RAID 5는 ~ $ 32K입니다.

큰 그림

즉, 대규모 프로덕션 데이터베이스의 설치, 구성 및 유지 관리에는 숙련 된 전문가가 필요합니다. DB 내의 데이터와 해당 데이터에서 제공되는 서비스는이 수준의 성능 요구 사항을 가진 회사에게 매우 가치가 있습니다. 또한 문제에 하드웨어를 던져서 해결할 수없는 많은 것들이 있습니다. 잘못 구성된 DBMS, 열악한 데이터베이스 스키마 또는 인덱싱 전략으로 인해 DB 성능이 저하 될 수 있습니다. Stackoverflow가 여기여기 에서 SQL Server 2008로 마이그레이션 할 때 발생하는 문제를 살펴보십시오.. 중요한 것은 데이터베이스는 디스크뿐만 아니라 RAM 및 CPU에서도 강력한 응용 프로그램입니다. 데이터 무결성, 보안, 중복성 및 백업과 함께 다변량 성능 문제의 균형을 맞추는 것은 까다로운 일입니다.

요약하자면, 하드웨어 및 소프트웨어 기술에 대한 모든 개선 사항은 커뮤니티에서 환영 받지만 소프트웨어 개발과 같은 대규모 데이터베이스 관리는 어려운 문제이며 숙련 된 작업자가 계속 필요합니다. 주어진 개선은 당신이나 회사가 기대할 수있는 인건비를 거두지 못할 수 있습니다.

일부 연구에 좋은 점프 지점 브렌트 Ozar의 웹 사이트 수 있습니다 / 블로그 여기 . 그의 이름을 알 수 있습니다. 그는 MS SQL Server 2008 성능 문제를 해결하는 데 도움을 준 사람입니다. 그의 블로그와 리소스는 상당히 넓고 깊이있는 링크를 제공합니다.

최신 정보

Stackoverflow 자체는 스토리지를위한 소비자 SSD 기반 경로로 가고 있습니다. 여기에서 읽어보십시오 : http://blog.serverfault.com/post/our-storage-decision/

참고 문헌


훌륭한 답변입니다.
NotMe

당신은 이것에 너무 많은 시간을 보냈습니다 : P
TravisO

멋진 설명. 모두를 위해 나무로 잘라내십시오. 좋은 작업!
BerggreenDK

4

쓰기 성능 향상을 위해 SSD를 활용할 수있는 트래픽이 매우 많은 사이트가 있다면 SSD 수명에 문제가있을 수 있으므로 아직 판매하지는 않았습니다.

이를 염두에두고 읽기 수준이 높은 데이터베이스는 어떻게해야합니까? 대답은 간단합니다. 가능한 한 많은 RAM으로 서버를 꽉 채 웁니다. 어쨌든 가장 인기있는 테이블은 거의 항상 RAM 캐시에 보관되며 디스크에 대한 큰 히트는 아마도 적절한 인덱싱으로 최적화 될 수있는 큰 테이블 또는 인덱스 스캔 때문일 것입니다.


SSD 수명의 문제에 대한 귀하의 의견을 다시 검토하겠습니다. MTBF의 관점에서 SSD는 HDD보다 훨씬 높은 등급을 가지고 있습니다. 쓰기주기 내구성 (이전의 문제) 측면에서 현재 세대는> 1 백만 쓰기주기이므로 특히 RAID 구성에서 문제가되지 않습니다.
Burly

(문자 부족) ... SSD 수명에 대해 걱정할 필요는 없으며, 현재 기술 등급은 SSD가 HDD에 비해 우수하거나 우수하다는 것을 나타냅니다. SSD가 수십 년의 생산 경험이 없다는 사실은 입증되지 않은 것을 의미합니다.
Burly

SSD는 HD보다 쓰기 속도가 느립니다
TravisO

SSD는 일반적으로 임의 쓰기, 특히 4K 임의 쓰기에서 훨씬 빠릅니다. 순차 쓰기의 경우 속도가 느릴 수 있지만 데이터베이스 서버에는 반드시 중요하지는 않습니다.
ChrisInEdmonton

1

저는 5 년 이상 DBA로 근무했으며 DB 성능을 향상시킬 수있는 방법에 대해 항상 생각하고 있습니다. 나는 SSD 공간을 지켜보고 있으며 실제로 점점 더 실용적인 옵션이되고 있다고 생각합니다.

이것 좀 봐;

http://i.gizmodo.com/5166798/24-solid-state-drives-open-all-of-microsoft-office-in-5-seconds

Acard-ANS-9010이라는 새로운 제품도 있습니다. GNS-Ramdisc의 개선 된 버전으로 DDR2 램을 사용하여 이론적으로 400MB / s의 DDR2 스틱을 사용하여 SATA 드라이브 (최대 64gig)를 만들 수 있습니다 최고.

http://techreport.com/articles.x/16255/3

^^ 그러나이 기사에서 유용한 또 다른 점은 ANS-9010을 SSD 시장의 모든 플레이어와 비교하고 인텔이 하드웨어 램 디스크를 가진 것과 거의 비슷한 64GB x25-E SSD를 가지고 있다는 것입니다.

SSD에 대해 걱정할 것은 큰 DB가 부담하게 만드는 스트레스로 인해 마모되는 것이므로 드라이브를 미러링하려면 RAID를 사용해야합니다. 이는 두 배의 비용을 지불한다는 의미입니다.

하드웨어 램 디스크의 단점은 배터리가 전원 차단의 경우에만 오랫동안 전원을 공급하기 때문에 배터리를 백업하는 멋진 방법을 사용해야한다는 것입니다. 나는 당신이 그것들을 위해 전원 플러그를 구입할 수도 있다고 생각하지만 여전히 UPS에 의존합니다.

temp DB 및 Windows 스왑 파일에 하드웨어 램 디스크를 사용하고 Intel X25-E Extreme (64 기가의 경우 약 600 USD)에 데이터베이스를 배치하는 것이 좋습니다.

어쨌든 그것은 비명을 지르고 우리 모두를 매우 질투하게 만들었습니다.

(웹 사이트 호스팅을 위해 다른 ANS-9010을 사용하는 것도 고려하십시오)

건배, 데이브


1

우리는 듀얼 2.5 인치 Seagate Momentus XT 하이브리드 미러에서 w2k3 r2 64 비트 Sql 2008 서버를 구성했습니다. OS의 경우 1/4 스트로크, DB의 경우 1/4 스트로크입니다. OS에는 125GB, DB에는 125GB를 사용했습니다. 1500MB / s에서 1900MB / s의 seq 읽기를 얻었습니다. Intel i7 2600K 3.4Ghz 8GB에서


0

같은 시장에 제품이있다 이것은 이런 종류의 물건을한다. 또한 다른 포스터에서 알 수 있듯이 DB 서버에 RAM을 추가하면 캐시 적중률이 높아져 디스크 트래픽이 줄어 듭니다.

Sun X4600 과 같은 8 소켓 Opteron 서버를 사용 하면 대규모 DBA 팀보다 저렴한 가격으로 최대 256GB의 RAM을 사용할 수 있습니다. 이 회사 처럼 DBMS 대신 플랫 파일을 사용하여 DBMS 보다 더 나은 성능을 제공 할 수도 있습니다. 이 경우 SAN은 어느 정도의 데이터 무결성을 제공합니다. 그러나 혼란에 빠지지 않도록 데이터 액세스 전략을 신중하게 설계해야합니다. 분명히 많은 양의 닷컴 복장이 이것을합니다. DBMS보다 훨씬 효율적이므로 상당한 보행자 하드웨어가 큰 부하를 처리하고 DBMS 라이센스 비용을 피할 수 있습니다.


-1

SSD 드라이브는 NAND 플래시 메모리 (MLC 또는 SLC)를 기반으로합니다. SATA (2 또는 3) 폼 팩터로 SSD 드라이브를 구입하는 경우 드라이브에서 얻을 수있는 성능이 제한됩니다. 일반적으로 빠른 Sandforce SF-1200 컨트롤러를 기반으로하는 SSD 드라이브는 기존의 기계식 회전 디스크보다 훨씬 빠른 220MB / 초 읽기 및 205MB / 초 쓰기를 제공합니다.

그러나 느린 SATA 2 또는 SATA 3 커넥터가없는 FusioIO와 같은 PCIe 솔루션으로 이동하는 경우 회전식 기계적 불 (디스크를 의미)보다 10-50 배 빠른 솔루션을 찾고 있습니다.

따라서 "저렴한"솔루션의 경우 Sandforce SF-1200 컨트롤러를 기반으로하는 SATA 2/3 SDD를 사용하십시오. 이렇게하면 실제 경험을 기준으로 속도가 약 3-5 배 향상됩니다. 예산이 있다면 FusioIO로 가십시오. 성능면에서 이길 수있는 것은 없습니다. 엄청나게 빠릅니다. 그래도 $ 20,000에서 $ 50,000를 소비 할 것으로 예상됩니다.


2
그릇된 생각. 최신 SSD는 약 50.000 IOPS에 적합하고 580mb의 처리량을 제공하며 SAS는 500 IOPS 미만을 생성합니다. 데이터베이스는 파일 서버가 아닙니다.
TomTom
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.