분산데이터 저장기술

Download Report

Transcript 분산데이터 저장기술

ADP

BUSINESS SCHOOL

is the place learning management skills. You can learn strategy, marketing, leadership, HRM, Operations, International Business, Accounting, Finance, Investment, etc.

C ONTENTS 

1

절 분산 데이터 저장 기술

1_1

분산 파일 시스템

1. 파일 시스템이란?

• 데이터를 컴퓨터 상에 안전하게 저장하는 것이 정보처리의 기본, 사용자의 데이터는

파일

이라고 불리는 하나의 추상화된 단위로 구별되어 처리됨.

파일시스템

은 이러한 파일을 컴퓨터 상에서 보관 하는 방법을 제공하는 운영체제의 일부분.

• 보통 하나의 컴퓨터에 하나의

파일시스템

이 존재하며, 이것을

로컬 파일 시스템

이라고 부름. 다른 컴퓨터에서 사용할 수 없고, 해당 컴퓨터에서 물리적으로 연결된 장치에만 파일을 저장하게 됨.

파일 시스템의 문제점?

저장장치에 문제가 생겼을 경우 저장된 모든 데이터를 손실하게 되므로, 주기적으로 다른 저장장치에 백업 을 해주어야 함.

다른 컴퓨터 사용자와의 공유가 어려움. 하나의 시스템에 여려 명의 사용자가 접속하여 사용하는 호스트 방 식일 경우에는 로컬파일 시스템으로도 정보공유가 어느 정도 가능하지만, 현재 개인용 컴퓨터의 활발한 보 급과 네트워크 컴퓨팅 기술의 발전으로 인해 서로 다른 컴퓨터 사용자끼리 정보공유가 반드시 필요하게 됨.

1. 분산 파일 시스템이란?

• 물리적으로 서로 다른 컴퓨터끼리 네트워크로 연결하여, 사용자에게

동일하게 보이는 파일 접근 공간

을 제공해 주는 시스템. • 많은 수의 사용자가 서로 다른 컴퓨터를 사용하는 환경에서 네트워크를 통하여

을 제공해 주는 시스템.

공통된 파일시스

사용자 간의 정보 공유가 쉽다 : 서로 다른 컴퓨터의 사용자끼리 정보를 쉽게 주고 받을 수 있음.

장소에 구애를 받지 않는다 : 사용자가 특정 컴퓨터의 장소에 제한을 받지 않고 어디서나 자신의 파일을 사 용할 수 있다.

저장공간을 효율적으로 사용가능 : 여러 컴퓨터의 저장공간을 함께 사용함으로써 효율적인 저장 공간을 사 용할 수 있다.

동일한 파일 시스템 구조를 사용한다 : 서로 다른 컴퓨터의 사용자끼리 같은 파일 시스템 구조를 사용하게 되어 효율적이다.

1. 분산 파일 시스템의 종류

(p.135 표참조) 가. 구글 파일 시스템(GFS, Google File system)

- 대규모 클러스터 서비스 플랫폼의 기반이 되는 파일 시스템으로 개발 됨.

- 클라이언트, 마스터, chunk서버들로 구성되며, 클라이언트의 경우 POSIX 인터페이스를 지원하지 않으며, 파일 시스템 인터페이스와 유사한 자체적인 인터페이스를 제공.

나. 하둡 분산 파일 시스템(HDFS, Hadoop File system)

- Apache Lucene 프로젝트의 일부분으로 진행되고 있는 프로젝트로 HDFS와 MapReduce 구현 등 을 포함.

- 최초 아파치 너치(Apache Nutch) 웹 검색 엔진의 파일 시스템으로 개발되었으며, 구글 파일 시스템과 아키텍처와 사상을 그대로 구현한 클로닝(Cloning) 프로젝트라고 할 수 있음.

다. 러스터(Lustre, Cluster File system)

- 클러스터 파일 시스템에서 개발한 객체 기반 클러스터 파일시스템.

- 클라이언트 파일 시세틈, 메타데이터 서버, 객체 저장서버들로 구성되며, 이들은 고속 네트워크 로 연결됨.

2. 데이터베이스 클러스터

데이터베이스 클러스터는

- 기본적인 데이터베이스 구축은 1개의 서버로 하나의 데이터베이스를 구축해서 운용.

- 그러나 여러 가지 이유로 하나의 데이터베이스를 여러 개의 서버가 나눠서 처리하도록 하는 형태 가 늘어나고 있음.

- 데이터를 통합할 때 성능 향상과 가용성을 높이기 위해 데이터베이스 차원의 파티셔닝 또는 클러 스터링을 이용함.

데이터베이스 클러스터의 용도

- 고가용성 : 특정 파티션에서 장애가 발생하더라도 서비스가 중단되지 않음 - 병렬처리 : 파티션 사이의 병렬 처리를 통한 빠른 데이터 검색 및 처리 성능을 얻을 수 있음 - 성능향상 : 성능의 선형적인 증가 효과를 볼 수 있음

2. 데이터베이스 클러스터 구분

데이터베이스 클러스터 구분(시스템 구성 형태 관점)

- 단일 서버 내의 파티셔닝과 다중 서버 사이의 파티셔닝으로 구분할 수 있음.

데이터베이스 클러스터 구분(리소스 공유 관점)

-

무공유(Shared Nothing)

로컬 디스크에 저장하며, 이 파일들은 노드 간에 공유하지 않음 - Oracle RAC(Real Application Cluster)를 제외한 대부분의 데이터베이스 클러스터가 무공유 방식 을 채택하고 있음.

: 각 데이터베이스 인스턴스는 자신이 관리하는 데이터 파일을 자신의 - 장점 : 노드 확장에 제한이 없음 - 단점 : 각 노드에 장애가 발생할 경우를 대비해 별도의 폴트톨러런스(fault-tolerance)를 구 성해야 함 -

공유 디스크(Shared Disk)

: 데이터 파일은 논리적으로 모든 데이터베이스 인스턴스 노드들과 공유하며, 각 인스턴스는 모든 데이터에 접근할 수 있음.

- 데이터를 공유하려면 SAN(Storage Area Network)과 같은 공유 디스크가 반드시 있어야 함.

- 장점 : 높은 수준의 폴트톨러런스 제공(클러스터를 구성하는 노드 중 하나의 노드만 살아 있어도 서비스가 가능하기 때문) - 단점 : 클러스터가 커지면 디스크 영역에서 병목현상이 발생함

2. 데이터베이스 클러스터 종류

가. Oracle RAC 데이터베이스 서버

- 클러스터의 모든 노드에서 실행되며, 데이터는 공유 스토리지에 저장됨.

- 클러스터의 모든 노드는 데이터베이스의 모든 테이블에 동등하게 엑세스하며, 특정 노드가 데이 터를 ‘소유’하는 개념이 없음.

- 가용성 : 한 노드가 장애를 일으키면, 나머지 노드에서 계속 실행됨 - 확장성 : 추가 처리 성능이 필요하면, 수정 없이 새 노드를 쉽게 추가할 수 있음 - 경제성 : 표준화된 소규모 저가형 클러스터에서도 고가의 시스템만큼 효율적으로 실행함.

도입 비용 때문에 확장성이 중요한 데이터보다는 고가용성을 요구하는 데이터에 많이 사용됨.

2. 데이터베이스 클러스터 종류

나. IBM DB2 ICE(Integrated Cluster Environment)

- DB2는 CPU.메모리.디스크를 파티션별로 독립적으로 운영하는 무공유 방식의 클러스터링을 지 원 - 애플리케이션은 여러 파티션에 분산된 데이터베이스를 하나의 데이터베이스(Single View Database)로 보게 되고, 데이터가 어느 파티션에 존재하고 있는지 알 필요가 없음.

- 데이터와 사용자가 증가하면 별도 수정 없이 노드를 추가하고 데이터를 재분배함으로써 시스템 의 성능과 용량을 일정하게 유지할 수 있음.

다. 마이크로소프트 SQL Server

- SQL Server는 연합 데이터베이스 형태로 여러 노드로 확장할 수 있는 기능을 제공함.

- 디스크 등을 공유하지 않는 독립된 서버에서 실행되는 서로 다른 데이터베이스들 간의 논리적 인 결합이며, 네트워크를 이용하여 연결됨.

- 단점 : DBA나 개발자가 파티셔닝 정책에 맞게 테이블과 뷰를 생성 해야하고, 정보가 없기 때문에 질의 수행을 위해 모든 노드를 액세스해야 한다는 점. 노드의 개수가 작으면 간단하게 구성할 수 있지만, 노드가 많아지거나 노드의 추가/삭제가 발생하는 경우 파티션을 새로 해야 하는 문제도 따름.

2. 데이터베이스 클러스터 종류

라. MySQL

- MySQL클러스터는 무공유 구조에서 메모리 기반 데이터베이스의 클러스터링을 지원하며, 특정 한 하드웨어 및 소프트웨어를 요구하지 않고 병렬 서버구조로 확장이 가능.

- 구성 - 관리노드(Management Node) : 클러스터를 관리하는 노드로 시작과 재구성 시에만 관여 - 데이터노드(NDB Node) : 클러스터의 데이터를 저장하는 노드 - MySQL노드 : 클러스터 데이터에 접근을 지원하는 노드 데이터의 가용성을 위해 데이터를 다른 노드에 복제시키며, 특정 노드 장애 시 지속적인 데이 터 서비스가 가능함. 데이터는 동기화 방식으로 복제되며, 이런 작업을 위해 일반적으로 데이 터 노드 간에는 별도의 네트워크를 구성함.

MySQL 클러스터 구성 할 경우 제한 사항…(p.142 참조)

3. NoSQL 정의

- NoSQL은 Key와 Value의 형태로 자료를 저장하고, 빠르게 조회할 수 있는 자료구조를 제공하는 저장소.

- 전통적인 RDBMS의 장점이라고 할 수 있는 복잡한 Join 연산 기능은 지원하지 않지만 대용량 데 이터와 대규모 확장성을 제공함.

-

우리가 익숙하게 사용하고 있는 RDBMS 형태의 관계형 데이터베이스가 아닌 다른 형태의 데이 터 저장기술을 의미함. *Not only SQL 이라고도 불림 제품에 따라 각기 그 특성이 매우 달라서 NoSQL을 하나의 제품군으로 정의할 수는 없음.

-

NoSQL 제품군이 RDBMS와 다른점..

- 스키마가 없다. 즉, 데이터 관계와 정해진 규격(table-column)이 없음 - 관계정의가 없으니, join이 불가능(but, reference와 같은 기능으로 비슷하게 구현가능) - 트랜잭션을 지원하지 않음 - 분산처리(수평적 확장) 쉽게 제공함 (대부분의 NoSQL은 분산처리 기능을 목적으로 나왔기 때문에 이를 자체 프레임워크에 포함 하고 있음)

3. NoSQL 종류

가. 구글 빅테이블

- 대용량 데이터 저장을 위해 빅테이블이라는 분산 데이터 관리 저장소 개발 - 데이터 서비스가 아닌 구글 내부에서 사용하는 데이터 저장소 - 2008년 AppEngine이라는 플랫폼 서비스를 오픈, 여기서 사용하는 데이터 저장소가 빅테이블

나. 아마존 SimpleDB

- 아마존의 데이터 서비스 플랫폼으로, 웹 애플리케이션에서 사용하는 데이터의 실시간 처리를 지원함 - 하나의 대에터에 대해 여러 개의 복제본을 유지하는 방식으로 가용성을 높임 - 관계형 데이터 모델과 표준 SQL을 지원하지 않으며, 전용 쿼리 언어를 이용하여 데이터를 조회함 - Domain, Item, Attribute, Value로 구성되며, 스키마(schema)가 없는 구조

다. 마이크로소프트 SSDS

- SSDS(SQL Server Data Service)는 마이크로소프트에서 2008년 4월에 베타 서비스를 실시한 데이터 서비스. 다른 데이터 서비스와 동일하게 SSDS 역시 고가용성을 보장함 - 컨테이너와 엔티티로 구성, 컨테이너는 테이블과 유사한 개념이지만 하나의 컨테이너에 여러 종류의 엔티티를 저장할 수 있음

THANK YOU Developed by

LEE HYUN WOO

Contact : [email protected]

HP : 010 4169 4767