DB서버를 구축하려합니다. 디스크 SSD 와 NVMe 간에 성능차이가 많이있을까요

   조회 806   추천 0    

안녕하세요.

이번에 서버 교체를 하면서 hp DL360  G11  서버를 도입하려고 합니다.

용도는 DB서버인데.... CPU나 메모리를 제외하고

내부 스토리지 구성으로만 볼때, 

DB가 저장되는 디스크 영역을  SSD로 했을때와  NVMe 로 했을때의  성능차이가 많이 있을까요?


DB서버  내부 스토리지 구성을 하려는데 결정장애가 옵니다 ㅠㅠ


요즘에는 서버용 NVMe도 많이 나오는것 같아서.. 기왕이면  스펙상 대역폭이 높은 NVMe로 

해볼까 하는데.. 혹시...   서버구축하면서   기존에 SSD를 사용하시다가 NVMe 로 

교체해보신 경험있는 분들의 조언을 듣고 싶습니다.


물론 DB 성능이   쿼리 튜닝 및  어플리케이션간에 영향을 받는 요소가 더 많긴 하지만, 

단순 하드웨어적인 측면에서 고려했을때 ,   이점이 많은지가 궁금합니다.

향후 안정성이나  확장성  ,, 레이드 구성시 문제는지.. ..

여러가지로도 조언을 구하고 싶습니다.


참고로   디스크 구성은

운영체제 영역  : SATA   SSD 480G  x 2ea  (RAID 1)

DB 영역 : NVMe 960G   x  4EA  (Raid 10 ) 

해보려고 합니다. 



감사합니다. 






williamLee
짧은글 일수록 신중하게.
구차니 01-23
잘은 모르겠지만.. db는 원래(?) 스토리지가 아니라 메모리에서 하는걸로 알고 있습니다.
그래서 db서버는 메모리가 빵빵한 편이죠
물론 io가 빠르면 좋겠지만 cpu와 램에 몰빵하고 거기다가 스토리지의 안정성까지 확보해야 하니
비용 산정에 유의하셔야 할 것 같습니다.
     
williamLee 01-23
네, 단변 감사합니다.  data를 결국  디스크에  읽고/쓰기를 하기때문에 디스크 성능을 고려하고 잇습니다.
박문형 01-23
다나와에서 몇가지 모델에 대해 스팩을 확인해보면

6G SATA HDD =100~200MB/s
6G SATA SSD = 300~500MB/s
NVME Gen3 = 2000~ 3500MB/s

스팩상으로는 NVME의 속도가 월등합니다..

https://www.youtube.com/watch?v=NUcUrl3QvbQ&t=504s

NVME는 GEN이 높아지면 성능이 더 좋아지기는 하는데 GEN이 높은 서버는 비쌉니다..

문제는 NVME는 HDD보다는 개발된지 얼마 안되어 레이드로 묶는 방법이 몇가지 안된다는 것입니다..

https://www.2cpu.co.kr/QnA/948392

인텔서버는 VROC라도 되는 경우가 많지만 AMD서버는 서버 자체에서는 방법이 없습니다..

자세한 것은 HPE쪽에 문의하여 솔류션을 찾는 것이 좋아 보입니다..

NVME는 M.2와 U.2가 있으며 M.2는 보드에있는 M.2 소켓에 꼽아 사용하고 U.2는 서버에 있는 2.5인치 U.2용 디스크베이에 꼽아 사용합니다..

NVME  U.2 디스크는 국내 리테일 시장에서는 거의 없으며 아직까지는 벤더사에서 제공하는 것이 거의 다입니다..

그리고 SSD /NVME 류의 디스크는 고장나면 데이터 복구가 거의 불가능하니 꼭 복구가 가능하도록 철저한 백업및 리스토어가 필요합니다..
     
williamLee 01-23
네, 그렇죠. 아무래도 서버이다 보니, 검증되고 보편화된  방법으로 접근하고 싶습니다. ㅠㅠ
Noman 01-23
DELL 760에
DB는  단일 디스크로  NVME에  쓰고 있으며 RAID는  고려 안했습니다.
SATA SSD나 디스크는  성능상 차이가 너무나서 DB용량만  아니라면 굳이 RAID 쓸이유가 없을거 같습니다.
단 백업은 3차 까지...
     
williamLee 01-23
아..  raid 적용 안하신건가요?  전에 DELL  640 서버에  boss  컨트롤러에 m.2  SSD  raid 1 로 세팅한적있는데;;;
몇년 운영 하다보니  1개가 죽더군요 ㅠㅠ
흑기사단 01-23
SATA SSD -> NVMe SSD 변경시 가장 큰 체감은 초당 트랜잭션 수(또는 초당 쿼리 처리량)이 늘어나고, DB 대기 시간(쿼리 응답 속도)이 줄어드는 건데요.
트랜잭션이 많은 OLTP 시스템이나, 인덱스가 많고 랜덤 읽기/쓰기가 잦은 DB 환경에서 성능 향상이 꽤 눈에 띕니다.
하지만, “DB 사이즈가 작고, 부하도 크지 않아서 SATA SSD도 충분히 빠른 환경”이라면 체감이 크지 않을 수 있습니다. 저희쪽 같은 경우 월 2~3억건의 데이터를 일 200회 이상 트랜젝션하는 환경이라 차이가 꽤 발생하더라구요.

NVMe (엔터프라이즈) 급으로 가시면 투자 금액은 좀 올라가지만, POC상 유의미한 차이가 발생하신다면 투자하시는 것도 좋은 방법입니다.

단. 뻑나면 복구 절대 불가능하므로 3중 백업 플랜은 권고가 아닌 필수입니다.
     
williamLee 01-23
데이터량이 ㅎㄷㄷ 하네요....  장애시 복구 불가라니 정말 무섭습니다 ㅠㅠ
그래서 백업 & 2중화도 당연히 고려하고 잇는데;;;

SSD라면  장애시 복구 가능성이  nvme 보다 있을까요?
          
박문형 01-23
SSD = NVME라고도 볼 수 있는데..

SSD 는 메모리 모듈로 디스크를 만드는 것을 총칭하는 말입니다..

인터페이스에 따라 종류가 나누어집니다.. (SCSI /IDE /SATA /SAS /PCIe / NVME U.2 /U3/M.2)

SSD 장치들은 거의 모두 트림이란 기능이 동작하는데 이게 데이터를 계속 리프래쉬 합니다..

그런데 SSD가 어딘가 고장나면 전기릴먹이고 동작시키면 데이터가 트림이란 동작 때문에 날라가 버립니다..

그래서 전문 복구회사에 데이터 복구를 마껴도 데이터 복구율이 HDD에 비하여 현저하게 낮습니다..


그리고 SSD라는게 메모리 모듈을 SSD 콘트롤러가 RAID 0 로 묶은 것입니다..
               
williamLee 01-23
아..네네 감사합니다. 정확하게 이해했습니다.

결론은  플래시 스토리지는  구조상  복구가 매우 힘든 구조네요.. ( 내부적으로 칩셋단위의 raid0 구성이라니... OTL)
          
제온프로 01-23
NVMe = U.2  장애 나면 Read only 로 변경됨. 나올때부터 Enterprise 로 나옴.
그래서 고급 보호 기능들이 들어가 있음

M.2 는 쓰는거 아님...
     
박문형 01-23
조금 다른 이야기 입니다만

대용량 고성능 DB에서 외장스토리지인 PURE STORGE 제품이 많이 쓰이나요??
     
williamLee 01-23
예산문제나 구축환경 틍성산  서버로 직접  POC 하기가 어려운 상황이라..
고성능 데스크톱 PC로  sata SSD와    PCI-E  nvme 로 동일한 운영db 백업 떠서 ..작업 테스트 해보는 방법도 유의미할까요?
          
박문형 01-23
CPU 제조사에서 가장 최신 기술(플랫폼)은 우선 PC에 적용시킵니다..

그리고 그 다음에 같은 플랫폼은 서버에 적용시키죠..

PC와 서버의 차이점은 비유하자면 승용차와 트럭입니다..

PC는 ECC 메모리를 보통 적용하지 않기에 메모리에서 에러가 나면 데이터가 깨져서 데이터 오염이 됩니다.. (요즘은 그런 일 거의 없긴 하죠..)

서버는 ECC Reg 메모리로 데이터 에러 정정과 메모리 모듈당 용량을 늘립니다..

PC는 보통 CPU당 메모리 슬롯이 4개가 최고이지만 서버는 메모리 슬롯이 지금 최대가 아마 12개인가 될겁니다..

PC는 PCIe 레인이 서버에 비해 상당히 적고 제한적입니다..

PCIe 레인은 돈이라 많아지고 최신 것일수록 비싸집니다..

요즘 가장 최신 고성능 PC를 풀스팩급으로 맞춘다면 아마도 대략 300~500만원 정도 들어가지 않을까 생각됩니다..

(환율도 오르고 부품 자체 원가가 다 올랐습니다..)

그정도 투자가 가능하시면 시도해보셔도 좋으나 그렇지 않다면 말리고 싶습니다..

참고로 PC에서는 일반적으로 NVME U.2는 설치가 거의 불가능합니다..

개인적으로 돌리는 것이라면 어쩔수 없다고 하나 업무에 적용시키는 것은 (테스트라도) 위험 부담이 크다고 생각됩니다..
DB도 왠만하면, 메모리에서 처리하지만, 스토리지에서 메모리로 읽어들이는 속도도 중요하고,
일부 데이터는 스토리지에서 직접 읽어야 되기때문에, 스토리지 성능이 매우 중요하죠
그리고, 복구를 위해서, 변경 로그를 저장도 하기에 write 성능도 중요하죠
db 서버에서 요구하는 성능은 multi random iops(read/write 복합) 가 높은게 좋습니다.
그러다보니,  서버용 u.2/u.3 >= 서버용 NVME >>>>> SAS SSD > SATA SSD 정도 됩니다.

서버용 SSD라고 표현했지만, 정확히는 메모리/SLC 캐시빨로 특정 영역까지만 커버되는게 아닌, SSD 의 CELL 빨로 성능이 끝까지 잘나오는걸 의미합니다.
나레온 dirty test 툴로 돌렸을때, 처음부터 끝까지 성능이 꾸준히 나오는 ssd 죠

그리고, 안정성과 확장성 측면에서는 nvme 보다는 u.2/u.3 ssd + raid(hw 나 sw) 가 좀더 일반적으로 많이 사용하는거 같더군요
특히 u.2/u.3는 케이스로 인한 발열 측면에서 nvme 를 방열판 달아서 쿨링하지 않는한, 폼팩터에 의한 발열능력은 비교할수 없죠

결론은 제대로 db서버를 구성할려면, u.2/u.3 ssd 를 서버의 전면 2.5인치 슬롯에 넣고 쿨링되는 방식의 서버에 raid 를 묶어서 구성하는걸 추천합니다.
     
williamLee 01-23
네, 답변 감사드립니다. 성능이 넘사벽 이긴하네요...
유의미한 성능 향상이 있을지 기대가 됩니다.


그리고  서버 사양에..

 HPE 960GB NVMe Gen4 Mainstream Performance Read Intensive SFF BC U.3 Static V2 Multi Vendor SSD
 HPE ProLiant DL360 Gen11 8SFF x1 U.3 Tri-Mode Backplane Kit
 HPE MR408i-o Gen11 x8 Lanes 4GB Cache OCP SPDM Storage Controller
HPE ProLiant DL3XX/560 Gen11 High Performance Heat Sink Kit
HPE ProLiant DL3X0 Gen11 1U High Performance Fan Kit

이렇게 되있습니다. (견적상)

호환이 가능한 구성이겠죠?
박문형 01-23
HPE쪽에 기술영업담당이나 DB쪽을 담당했던 사람에게 기술문의를 하여 답변을 얻는 것이 맞다라고 생각됩니다..
술이 01-23
DB 서비스 목적에 따라 다릅니다.
RDBMS 용도라면 NVME나 SSD 레이드 구성한거나 크게 체감이 안되는게 대부분입니다.

그런데 분석 통계 DW 이런 목적이 들어간거라면 속도빠른 SSD가 이점을 보게 됩니다.
RDBMS 목적은 관계 데이터 정합성에 목적을 둬서 일반적으로 스토리지 IO보단 트랜잭션 처리가 성능을 좌우하게 됩니다. 이건 개발자가 어떻게 짜주느냐에 달려 있습니다.

후자는 대용량의 데이터를 불러들여서 분석하고 결과를 도출해야되기 때문에 스토리지 IO속도에 많은 영향을 받게됩니다. 여러 DB서버들을 분석해보면서 느낀건 하드웨어는 어떤 서비스를 할것인가를 기준으로 잡고 설계에 들어가는게 우선입니다.
     
williamLee 01-23
네, 답변 감사합니다.
RDBMS 환경이구요... MSSQL 환경에  전체 DB용량은 1TB 정도가 안됩니다. 
사용자가 접속해서  거래내역 보여주고주문하고 결제하는 그런 시스템인데;;;;일사용자도 많지 않습니다.
OLTP 환경이구요...
다만 DB단에 비즈니스 로직이  스토어드프로시저 형태로 매우 많이 대부분 처리되고 있어..
디스크 read와  인덱스 등을 많이 사용합니다. ㅠㅠ
개발자들의 개발 편의때문에 로직을 다 프로시저에 때려 밖아 넣었습니다 ㅠㅠ  (DB 트랜잭션이 꽤 많습니다 _



그래도 유의미한 성능체감을 기대해볼수 있을지요?
          
제온프로 01-23
Stored Procedure 가 많다면. 일단 메모리가 많아야 것죠. 300GB 정도
CPU도 클럭 높은걸로.
SSD 계열이 여러모로 좋습니다.
Raid 10 하면 좋습니다.  Raid 10 + 1
드라이브 5개나 7개로 구성
          
술이 01-23
디스크에서 SSD로 바꾸면 성능체감 기대해도 되지만 SSD에서 NVME면 기대치 안나옵니다. 이미 정해졌네요.
dateno1 01-23
구조상 차이날 수 밖에 없습니다

먼저 SATA/SAS컨트롤러를 안 거치므로 응답속도가 차이가 매우 큽니다

또한 AHCI보다 큐사이즈등 구조적 측면에서도 유리합니다

여기에 4k성능차까지 넣으면 선택의 여지 없습니다

다만 일단은 램부터 넉넉하게 달고나서 고려해보세요

디스크 성능으로 체감 가능한 변화가 있을지는 부하시 디스크 사용량을 먼저 확인해보면 대충 예상이 가게 됩니다 (다만 디스크 병목이 줄어들어도 다른게 여전히 발목 잡을 순 있음)
박문형 01-23
그 외 아마 새로운 서버 시스템을 도입하면 항상 겪어야 할 문제인데

보통 새로운 서버는 옛날 서버와 지원하는 OS도 다르고 그에 따라 지원하는 DB도 다를 겁니다..

새로운 서버 도입시 항상 맨처음 체크해야 할 것이 어떤 OS를 지원하고 그에 따른 어떤 프로그램이 동작하는가라고 생각합니다..

그냥 사용하던 옛날 서버 OS와 프로그램 데이터를 새로운 서버에 카피해서 동작하면 될꺼다라는 생각은 무조건 버려야 합니다..

상황에 따라 OS / DB /그 외 유료 프로그램들을 다 다시 구입해야 할 경우도 생깁니다..

물론 그에 대한 여파로 새로운 서버 시스템과 연계된 서비스들이 재대로 동작하는지 하나하나 확인해야 합니다..
     
dateno1 01-23
그거땜에 서버 교체시 구버전 OS 깔아달라는 고객들땜에 삽질을 그만둘 수 가 없네요

심하면 아직도 2k3 R2같은거 해달라고 합니다
제온프로 01-23
저희 프로그래머 들도 U.2 나 SSD를 윈합니다..

그런데 HP의 SSD는 너무 비싸요..
독자 펌웨어를 사용합니다..

그래서 항상 갈등이에요..

Raid 구성을 하지 않으면 그나마 나은데. Raid로 들어가면.
펌웨어가 엄격해집니다.

더군다나 Gen 11 이라면... 불보듯 뻔합니다.
     
williamLee 01-23
답변, 감사합니다.

지금까지 서버 운영하면서 bios 펌웨어 이외에는 크게 신경쓰지 않았는데.
컨트롤러 펌웨어 부분도 중요하게 관리해야 겠네요.
          
제온프로 01-24
아니요..
하드와 SSD의 펌웨어가 HP 전용 펌웨어 라 이게 문제 입니다.

물론 Raid controller의 펌웨어도 업그레이드 해야죠.

꼭 Update !!
- iLO 펌웨어 (제일 중요함 !)
- UEFI BIOS
- Smart Array 펌웨어


QnA
제목Page 1815/5725
2015-12   1771121   백메가
2014-05   5245806   정은준1
01-06   561   dateno1
2009-06   13828   이인
2012-08   7195   일반유저
2017-11   4602   witbox
2019-02   3288   으라차차차
2009-06   8272   다s베이더
2012-09   5915   병맛폰
2015-10   5377   Macstall
2017-11   3661   dongcheol
01-20   1282   lvn1
2014-06   4843   미우
2017-11   3806   노가리강추
2023-03   2338   헬로우
01-23   807   williamLee
2017-11   9652   김건우
2019-02   4009   을지문덕
2009-07   6235   편영국
2016-10   4165   삼돌군
2023-03   2141   2CPU최주희
2015-11   5113   편한세상