데이터의 이중화 ?

차평석   
   조회 7177   추천 0    

 

제가 질문을 제대로 드려야 할텐데 걱정이 앞섭니다.

 

일단 저희 병원 서버를 설명드리겠습니다.

 

OS는 윈도서버2003 입니다. SATA 하드 1개로 돌리고 있죠. 원래 2개 RAID 1로 구성해서 돌렸었는데

어찌어찌해서 1개로 돌리고 있습니다. 새로 구성할 서버에는 RAID 1로 물릴 생각입니다.

 

DATA는 SAS RAID 10 으로 구성되어 있었습니다. 그러다가 이번에 SAS 하드가 맛탱이가 갔습니다.

검사결과 배드섹터가 바둑판처럼 나있더군요. 일단 자료는 열흘 이전 것으로 복구되었지만 열흘분은

눈 빠지게 입력하였답니다. 지금은? 과감히 SSD 한 개 물려 놓았습니다. 대신 백업만 하루에 3번 돌립니다.

SSD 쓰니까 병동도 빠르다고 하고 백업 돌려도 프로그램 쌩쌩 잘 돌아갑니다.

 

질문 1. 정품서버의 경우 하드 배드난 것도 체크하는 기능이 있는지요? 이번에 원본데이터 하드가 배드나면서

          오염된 원본데이터가 백업되어서 백업데이터도 결국 믿을 수가 없게 되어 10일 정도를 뒤로 돌렸거든요.

          결국 하드 배드체크 기능이 있는지 궁금합니다.

 

질문 2. 개인이 조립할 경우 1번의 체크기능을 넣을 수 있는 것인지요.

 

질문 3. DATA 의 경우 DB는 MS-SQL 입니다. 현재 DB는 계속 SSD를 사용할 예정입니다. 그런데 이것을

          RAID 5 로 구성할려고 해도 SSD 라서 좀 그렇습니다. 플렉스터 4개 사서 레이드 5로 구성할까도

          생각해 보았는데 적당한 레이드 카드가 무엇인지도 모르겠습니다. 그래서 생각한 것은 DB의 이중화?

          입니다. 가능한 것인지는 모르겠으나 현재 SSD를 1번으로 두고, 2번으로 SATA나 SAS를 레이드로

          구성한 다음, 일단 각 부서에서 입력하는 것이나 조회하는 것은 1번에서 작동하도록 하고, 동시 또는

          약간의 시차를 두고 2번 쪽으로 저장되게 하는 것입니다. DB를 저렇게 구성하는 것이 가능한지요?

짧은글 일수록 신중하게.
monan 2012-12
일단 최소비용 최대 효과는 이미 구성하셨던 RAID 10구성 하는것입니다.
더군다나 MS-SQL 정식으로 사용하시면 라이센스도 생각 하셔야 될텐데
SSD하나 더 구매하셔서 10으로 사용하시는게 데이터 보존에 더 효율적 입니다.
경험 하신것과 같이 백업 데이터도 원본의 무결성이 보장되야 백업 복구도 정상적으로 이루어집니다.

레이드 카드 좀 이름있는 것들은 모니터링 프로그램 벤더 사이트에서 다운받아 설치 하시면 되고요.
레이드 카드 알고리즘이 주기적으로 블럭 스크리빙해 배드블럭 마킹하고 리로케이션 해주는 것들 있습니다.
그리고 요즘 HDD의 경우 대부분 SMART 기능이 있습니다. 장애예측 알고리즘이라 생각 하시면 됩니다.
레이드 카드 모니터링 프로그램에서 대부분 연동되어 확인 가능합니다.
거룩한밤 2012-12
1 => 보드의 바이오스 또는 레이드카드의 바이오스 셋업창에서 기능이 있을 수 있어요. 보통 서버는 다 있고요.
2 => 서버보드를 구입하시거나 지원되는 레이드카드를 구입하시면 되세요.
3 => CQRS 구성으로 보통 엔터프라이즈급 정도에서 그렇게 구성해서 사용하세요.
김윤술 2012-12
DB 서버 같은 경우는 데이터 디스크를 인터널 디스크에 위치 하지 않고 외장 스토리지에 넣습니다.
첫째 이유가 디스크 액세스에 대한 시스템 과부하 분산입니다.
인터널 디스크가 활동률이 높다면 성능좋은 CPU 메모리 역시도 큐를 기다려야 하기 때문에 부하로 인지하게 됩니다.
둘째가 예기치 않은 셧다운에 대한 데이터 보호입니다. 인터널 디스크는 데이터가 깨질 확률이 높습니다만 외장 스토리지 방식은 그나마 데이터 만큼은 일차적으로 보호가 됩니다.
예기치 않은 셧다운이였을때 실제적으로 메모리가 디스크를 액세스한 핸들링만 해제했을뿐이지 외장스토리지의 완결성에는 영향을 주지 않는다는거죠.

580 G7 같은 서버에 인터널 디스크 슬롯 많은데도 외장스토리지 쓰는 DB 서버들이 다 이런 이유에서 비싸게 구입하는것입니다. DB 서버 같은 경우에는 클러스터 기술을 이용하는것이 제일 좋고 데이터는 인터널 보다는 외부에서 갖고오는것이 좋은 방법입니다.
Windows Server 2012 에서는 SQL 2012 에서도 SMB 공유 폴더에 DB 데이터를 위치할수 있게 구성이 되게 하고 있습니다. 물리 랜카드 채널 전부 사용하기 때문에 대역폭에도 전혀 무리가 없다는 시나리오이기도 합니다.

DB 데이터의 안정성을 유지하는 방법중 첫째가 계산하는 서버와 데이터의 위치가 같은 서버에서 돌면 안된다는것이 첫째입니다.
박문형 2012-12
A1 : 보통 보드나 레이드 카드는 하드의 배드 유무를 SMART 채크를 하여 확인합니다.

    레이드 카드 경우 레이드를 묶을때 Forground로 하면 하드를 채크(포맷)한후에 레이드를 묶게 되며
      묶은후에 검증까지 한후에 각 %지가 올라갑니다.
    레이드 묶는 중간에 하드에 배드가 있다면 레이드 카드가 배드색터를 하드 여유부분에서 치환해버리던지
      레이드 묶는 것을 중단하게 됩니다.

    레이드 사용 중에 배드가 나와서 레이드 카드가 인지를 하면 보통 치환을 하고 그것이 몇개 이상이 되면
      레이드 카드는 그 하드를 못쓰는 배드 하드로 뱉아 버립니다.

    문제는 레이드는 만능이 아니요 인간이 만든 것이라 고장이 나게 되어 있습니다.
    2-3년 마다 하드를 새것으로 바꿔 버리는 것이 좋습니다.
    (데이터 백업후 처음부터 다시 재구성)

    오래된 레이드 시스템에서 하드 하나가 고장나서 리빌딩을 시도할 때 재대로 리빌딩이 안되고
      레이드가 깨지는 경우가 종종 있습니다.
    이것은 여러 하드에 오래된 사용에 의한 배드 색터가 여러군데 산재가 되어 있다가
      (레이드 카드가 미 감지된 상태)
    리빌딩시 여러 배드 색터가 검색되어 결국에 레이드 볼륨이 깨지는 문제입니다.

A2 : SSD 로 RAID를 꾸밀때 LSI가 그럭저럭 낫습니다만 딱히 정해진 모델은 없습니다.
AKs 2012-12
1. 정품이든 아니든, 디스크의 이상 여부는 SMART에 의존합니다.
  그런데.. 문제는 SMART가 별로 믿음직스럽지 않기 때문에 정기적으로 별도의 검사를 해 줘야 됩니다.
  벤더사의 디스크의 경우 이상이 있으면 전면 표시등이 주황식으로 바뀌거나, 비프음으로 알려주거나 하는데...  어지간한 3rd 레이드 카드들도 그정도 기능은 다 가지고 있습니다.
  그래도 하드는 못믿습니다.

2. 위에서 언급한대로.... 어지간한 3rd 레이드 카드들이 SMART 체크 정도는 다 할 수 있고, 상태모니터링 소프트웨어를 제공합니다만, 별로 믿음은 안갑니다.

3. 가능합니다.
  제대로 구성하려면 돈이 문제일 뿐이지요.
  한대의 서버로 구성하는 방법을 몇가지 고민해 보았는데, 이론적으로 최저비용으로 최대 효과를 얻을 수 있다 보여지는 구성을 하나 제시해 보겠습니다.
    * OS                          - HDD RAID 1 / C:
    * Service DB DATA              - SSD RAID 1 / D:
    * BackUp DB DATA / Service Log - SSD / E:
    * BackUp                      - HDD / F:
    이렇게 구성하신 다음
    서비스용 Mdf파일을 D: 에, 서비스용 Ldf파일을 E:에 넣습니다.
    지금 구성으로도 운영에 별 지장이 없으시면 E:에 Mdf와 Ldf를 다 넣어도 됩니다.
    서비스용 DB를 백업할 별도의 DB를 생성(DB서버가 아니라..)하신 후 E:에 Mdf와 Ldf를 넣습니다.
    스케쥴링 하셔서 서비스DB와 백업 DB를 동기화 시킵니다.
    잘 관리된다면 실시간 동기화를, 그렇지 않다면 1시간 정도 간격으로 하시면 될 듯 합니다.
    여기서 일반적인 상식과 반대인 이유는.... 경험하신대로 데이터의 오염 문제 때문입니다.
    동기화 시킨 DB(E:)를 다시 디스크(F:)에 백업합니다.
    위의 제안 대로라면 1시간 간격으로 백업이 되겠지요..
    혹시 모르니 서비스 DB도 최소 하루간격으로 백업스케쥴링을 합니다.
    이는 Backup DB용 SSD고장을 모르고 넘어갈 수도 있기 때문입니다.

    1차 동기화는 SSD -> SSD로 이루어지므로 락걸리는 시간을 최소화 할 수 있고,
    2차 백업에서는 서비스 DB가 아닌 다른 DB와 SSD -> HDD의 전송이므로 서비스에 큰 무리를 주지 않는다 생각됩니다.
 
혹시 다른분들 고견이 있으시면 알려주시면 감사하겠습니다.

PS. 이 구성은 금융권에서 사용하자고 생각해 낸 구성이 아닙니다. 몇시간 정도 데이터를 날려도 무슨방법으로든지 복구할 수 있다는 가정 하에 생각한 겁니다.

PS2. CPU와 메모리 사용은 일단 배제했습니다. DB를 한개 핸들링하나, 두개 핸들링하나 크게 차이 나지도 않을껍니다.
김상진 2012-12
문제는 돈이겠죠....
저도 윗분들 생각과 비슷합니다.
우선 HDD/SSD는 믿을수없는 저장매체이다
물론 여기에 RAID로 묶으면 좀 나아지긴하나 이것도 RAID 컨트롤러나 잘못된 HDD정보로 날려버릴수있수있죠

결국 최선책은 외장 디스크로 빼내고(SAN같은) 더불어서 MS-SQL 클러스터링도 얘기를 많이하나
그래봤자 DISK 쪽은 장애나면 땡이긴합니다.


HDD는 최소 4개 셋트
OS용 1개
데이터 저장용 1개(MDF용)
트랜젝션로그용 1개(LDF용)
백업용 1개(단 이녀석은 굳이 내장 디스크가 아니라도 상관없습니다. 네트워크 드라이브라도 말이죠.)

이중 트랜젝션로그(LDF)는 매시간마다 백업걸고(정책에 따라서 오래된것은(한 하루정도된정도?)는 지우면 백업시간이 좀더 줄겠죠)
데이터 저장용(MDF)는 매일 야간에 백업걸고하시면 되지 않을까합니다.

더불어서 여기에 RAID를 거실거면, 가능하면 RAID 컨트롤러도 각각 따로 거시는게 좋겠죠


이방식은 어디까지나 저렴한 가격으로 하는것이고 24시간 무정지 또는 다운타임을 최소로 가실려면....
몇억정도는 깨지다보니 돈이 그렇게 여유롭지 않으시다면 추천은 못드리겠네요
이경우 그냥 업체에 견적 요청하면 되죠

일예로 의류 쇼핑몰(연 매출 4~500억되는)의 MS-SQL을 이중화한다고 견적받았더니 3억이라고 답변이 왔다고 하더군요
최승현 2012-12
2차 백업을 강구하십쇼.

1. 다른 회원님의 답변.
2. 상동.
3. 가능합니다.
  크게 문제있는것도 아니고요.
  다만 퍼포먼스적인 문제는 설계를 잘 하셔야 합니다.

  Oracle은 데이터가드나 골든게이트라는 솔루션이 있고요. MSSQL은 없습니다
  (Oracle이 좋은건 Active-Active 형태로 구현이 가능한 DR이기 때문입니다.)
  단, OS 단에서 커버할 수 있는 부분도 있습니다.

case1. 윈도우의 쉐도우 볼륨으로 동일볼륨을 구성하여 커버합니다. (현실적)
case2. 로그쉬핑을 구성해 봅니다. (현실적)
case3. 스토리지를 도입하여 스토리지 볼륨 미러를 겁니다 (비 현실적)
case4. 솔루션을 도입합니다 (비 현실적)

결국은 돈... 이네요;
비 현실적이라고 적은것은 돈이 많이 듭니다. 현실적인 방법에서 찾아보시기 바랍니다.

2차 백업을 강구하십쇼.
경기대병원이 10시간 운영중단 폭탄터지고 전산과장 짤리고 난리도 아니였습니다.
그후 'DR'에 대한 투자순위가 요즘 '차세대 EMR'보다 높게 잡혀있습니다.

더 궁금한게 있으시면 리플 달아주세요.


QnA
제목Page 3597/5728
2014-05   5257456   정은준1
2015-12   1782272   백메가
2016-11   4808   AplPEC
2020-05   5610   쿠우에요
2013-01   5165   이주황
2009-12   7475   김건우
2018-01   3678   Sakura24
2020-05   3091   epowergate
2020-05   11197   강한구
2016-12   7221   최재원99
2016-12   4458   나비z
2019-03   2886   봉래
2020-06   4158   검은콩
2009-12   8894   에그
2020-06   4333   Platinum
2013-02   5437   김영기대전
2016-01   4402   깡쇠
2023-06   2758   chochobo
2013-02   6021   이현석1
2019-04   3419   일리케
2010-01   8725   psj1050
2018-02   4861   송진현