본문 바로가기
데이터베이스 기초

DevOps Day 17 (3.29) 데이터베이스_수평확장된 데이터베이스와 중복처리

by Jackykim 2023. 3. 31.

데이터 중복성
높은 가용성을 위해 컴퓨터의 클론을 만든다는 것은, 안에 존재하는 데이터 역시 복제되어야 함을 의미합니다. 이러한 데이터 중복 메커니즘은 가용성을 얻기 위해 필요한 작업입니다. 물론 여기에는 Trade-off 존재합니다.

 

데이터 중복 발생의 원인
1.
관리시스템 내의 소프트웨어(코딩) 품절
데이터 중복은 조직에 긍정적이거나 부정적인 결과를 가져옵니다. 우발적인 데이터 중복의 원인 하나는 조직의 데이터 관리 시스템 소프트웨어 품질 때문입니다. 이로 인해 경로 오작동으로 이어질 있습니다.

2. 백업시스템
조직에 백업 스토리지가 있는 경우 백업은 데이터 관리 시스템 또는 원본 데이터베이스의 문제를 완화하기 위해 정보의 복사본 역할을 합니다. 이를 위해서는 궁극적으로 정보가 손상되고 부정확하지 않도록 보호해야 합니다.

 

데이터 중복성의 이점
1. 정보 보호 개선: 의도적인 데이터 중복성은 외부 공격으로부터 조직의 데이터를 보호함으로써 정보 보호를 강화할 수 있습니다. 또한 조직의 모든 데이터가 서로 다른 위치에 있는 경우 사이버 공격이 상당한 양의 데이터를 동시에 표적으로 삼기도 어렵습니다.

2. 데이터 백업 생성: 데이터 중복성을 통해 조직은 스토리지 시스템의 데이터 세트 또는 사본이 손상될 때 정보를 보존할 수 있습니다. 예를 들어 데이터가 포함된 하드드라이브가 오작동하여 정보가 손실되는 경우 조직에서 동일한 정보를 클라우드에 백업할 수 있습니다.

3. 데이터 엑세스 속도 향상: 조직에서 데이터를 여러 위치에 보관하는 경우 일부 저장소 위치에 다른 위치보다 쉽게 액세스할 수 있습니다. 이를 통해 조직 내의 다양한 사용자가 여러 데이터 진입점에 엑세스하고 더 빠른 데이터 액세스 속도를 즐길 수 있습니다.

4. 데이터 정확성 보장: 데이터 관리 시스템은 동일한 데이터에 대해 여러 위치를 가짐으로써 불일치를 평가하여 데이터의 정확성을 향상 시킬 수 있습니다.

5. 정확한 분석: 상당한 양의 데이터를 저장하는 조직은 일반적으로 추세를 분석하고 회사 또는 고객을 위한 보고서를 작성하는 데 데이터를 사용합니다.

 

데이터 중복성의 문제점
1. 불일치 증가: 여러 위치에서 데이터를 보존하면 정보가 모든 위치에서 즉시 업데이트되지 않는 경우 불일치가 발생할 있습니다.

2. 데이터 손상 가능성: 데이터 손상은 저장, 전송 또는 생성 과정에서 정보가 손상되거나 오류가 발생하는 경우 발생합니다.

3. 유지 비용 증가: 데이터 중복성은 유지 관리하고 해결하는 데 많은 비용이 듭니다
- 스토리지 : 무엇보다도 클라우드와 온프레미스를 불문하고 스토리지 블록을 저장하는 데는 비용이 들기 때문에 중복 데이터를 제거하는 것은 매우 중요합니다.

- 네트워크: 중복 데이터 블록을 기기에서 백업 서버와 스토리지로 불필요하게 전송하면 네트워크 경로가 여러 지점에서 포화 상태가 됩니다.
- 디바이스: 파일을 호스팅하는 디바이스든 단순히 데이터를 전달하는 디바이스든 백업 경로상의 모든 기기는 중복 데이터를 위해 프로세서 사이클과 메모리를 낭비해야 합니다.
- 시간: 기업은 애플리케이션과 데이터를 24시간 사용할 수 있어야 하므로 백업으로 인한 성능 저하는 달갑지 않은 현상입니다

4. 사용할 없는 데이터 생성: 상당한 양의 데이터를 보관하는 회사는 일반적으로 이를 사용하여 회사 또는 고객의 시장 정보 패턴을 평가합니다.

 

데이터의 중복을 줄이는 방법
1. 마스터 데이터 활용 : 마스터 데이터는 데이터 관리자가 여러 시스템 또는 애플리케이션에서 공유하는 공통 비즈니스 데이터의 유일한 소스입니다.

2. 데이터베이스 정규화 : 데이터베이스 정규화는 중복제거를 보장하기 위해 데이터베이스에 데이터를 효율적으로 배열하는 작업입니다.

3. 미사용 데이터 삭제 : 데이터 중복성에 기여하는 다른 요소는 조직에서 이상 필요하지 않은 데이터 조각을 보존하는 것입니다.

4. 데이터베이스 설계 : 기업은 또한 데이터 베이스에서 직접 읽을 있는 사내 베이스 아키텍처를 설계할 있습니다.

 

<데이터 중복 처리>
데이터 중복 제거 (Deduplication)
데이터 중복 제거는 중복 데이터가 스토리지 비용에 미치는 영향을 줄이는 도움이 되는 기능입니다. 중복제거가 설정된 경우 볼륨에서 중복된 부분을 찾기 위해 볼륨의 데이터를 검사하여 볼륨의 여유 공간을 최적화합니다.

 

데이터 중복제거 유형

인라인 중복 제거 (Inline deduplication) : 인라인 처리는 수신 데이터가 스토리지 미디어에 기록되기 전에 데이터 축소가 발생하는 중복을 제거하는 널리 사용되는 방법입니다. 중복 제거 도구는 일반적으로 데이터가 배치되는 위치와 방법을 제어하는 SDS(Software Defined Storage) 컨트롤러입니다.

 

후처리 중복 제거 (Post-Process Deduplication) : 후처리는 데이터가 먼저 저장 매체에 기록된 다음 복제 압축 기회에 대해 분석되는 접근 방식입니다. 데이터가 저장 장치에 저장된 후에만 중복 복제가 실행되기 때문에 원시 데이터 크기(데이터 축소 )만큼 필요한 초기 용량이 있습니다.

<데이터 분류 방식에 따른 유형>

고정 블록 중복 제거 (Fixed block deduplication) : 데이터를 고정된 블록 크기로 분류해 중복제거를 진행하는 것을 말합니다. 방식은 고정된 블록 크기로 단순화한 해시 알고리즘을 쓰기 때문에 중복 제거 속도가 빠르고 CPU 부하가 적습니다. 하지만 모든 데이터 유형에 고정된 크기로 중복을 제거하기 때문에 중복 제거율이 떨어지는 편입니다.

 

가변 블록 중복 제거 (Variable block deduplication) : 데이터 유형에 맞게 블록 크기를 자동으로 나누어 분류해서 중복제거를 진행합니다. 블록 크기를 유연하게 조정할 있어 데이터 유형이 다양한 경우에 적합하며, 매우 높은 중복제거 효율을 보일 있습니다.

 

<진행 위치에 따른 유형>

소스 기반 중복 제거 (Source Based Deduplication) : 소스 측에서 중복제거를 진행한 타겟에 전송하는 방식을 말합니다. 방식의 경우, 타겟으로 전송되는 데이터양을 크게 감소시킬 있고, 전반적인 백업 속도를 향상시킬 있습니다. 다만 중복제거를 위한 해시 생성 작업으로 인해 소스 CPU 리소스가 소모되고, 데이터 복구 속도가 느린 점이 있습니다.

 

타킷 기반 중복 제거 (Target Based Deduplication) : 타겟 스토리지에서 진행되는 중복제거를 말합니다. 방식은 소스에 상관없이 타겟마다 같은 소프트웨어를 사용할 있고, 대부분 백업 소프트웨어와 호환된다는 장점이 있습니다. 무엇보다 소스에 리소스 부하 없이 진행되어 서비스 운용이나 복구 속도에 지장을 주지 않습니다. 다만, 소스에서 모든 데이터를 그대로 가져오기 때문에 소스 중복제거보다 리소스 활용이 많은 점이 있습니다.

 

데이터 압축 (Compression)

데이터 압축은 행에 나타나는 동일한 데이터 시퀀스를 먼저 찾은 다음 번째 시퀀스만 저장하고 다음의 동일한 시퀀스를 행에 나타나는 횟수에 대한 정보로 대체하여 데이터 크기를 줄이는 알고리즘 프로세스입니다.