비트볼트

BitVault

BitVault는 콘텐츠 주소 지정이 가능한 분산 스토리지 시스템으로, 중국 마이크로소프트 리서치에 의해 개발되었습니다.BitVault는 피어투피어 테크놀로지를 사용하여 데이터 저장 및 관리 태스크를 분산합니다.따라서 시스템 관리를 담당하는 중앙 기관이 없습니다.오히려 자기관리형이며 고가용성, 신뢰성 및 자기조직화 방식으로 스케일업할 수 있습니다.관리 오버헤드는 분산 오버레이 네트워크의 규모에 관계없이 거의 일정합니다.

BitVault 시스템은 매우 드물게 변경되는 대량의 참조 데이터에 가장 적합합니다.이러한 데이터에는 오래된 데이터뿐만 아니라 음악이나 비디오와 같은 멀티미디어 데이터도 포함됩니다. 이러한 데이터는 자주 사용되더라도 거의 변경되지 않습니다.

테크놀로지

BitVault 아키텍처에 참여하는 모든 피어 노드는 스마트 브릭입니다.스마트 브릭은 대용량 디스크를 탑재한 트리밍다운 PC입니다.BitVault 시스템의 모든 Smart Bricks는 고대역폭, 저지연 네트워크로 연결됩니다.BitVault 시스템은 쉽게 확장할 수 있습니다.BitVault 소프트웨어를 설치하고 네트워크에 접속하는 것만으로 모든 컴퓨터를 스마트 브릭으로 동작하도록 구성할 수 있습니다.이미 동작하고 있는 노드를 중단하지 않아도 됩니다.

BitVault는 변경할 수 없는 데이터 객체 등 불변의 데이터 객체를 저장합니다.개체의 물리적 위치는 고정되어 있지 않으며 어느 벽돌에도 있을 수 있습니다.액세스 빈도에 따라 위치가 달라집니다.또한 여러 개의 벽돌로 복제할 수도 있습니다.위치 변경 문제를 피하기 위해 BitVault에서는 객체마다 고유한 160비트 키를 사용하여 액세스 할 수 있도록 합니다.시스템은 키를 사용하여 개체를 가장 효율적으로 가져올 수 있는 위치를 동적으로 참조하고 개체를 사용할 수 있도록 합니다.고유 키는 오브젝트 데이터의 해시에서 생성되므로 location-addressable이 아닌 content-addressable이 됩니다.개체()의 해시는 해시 테이블을 사용하여 물리적 주소에 매핑됩니다. 해시 테이블은 시스템에 의해 내부적으로 관리되며 사용자의 개입이 필요하지 않습니다.노드 세트가 다르면 서로 다른 해시 테이블 세트가 유지되며, 이 해시 테이블 세트는 해당 노드 세트 내의 데이터에만 관계되므로 분산 해시 테이블(DHT) 아키텍처에 의해 데이터의 위치가 추적되는 오버레이 네트워크가 발생합니다.

아키텍처

BitVault 아키텍처

BitVault 아키텍처는 논리적인 160비트 주소 공간을 구성하는 여러 개의 브릭으로 구성되어 있으며, 각각은 일부 데이터의 해시(hash)와 관련되어 있습니다.어소시에이션은 Distributed Hash Table(DHT; 분산 해시 테이블)로 유지됩니다.DHT는 해시 테이블 전체를 작은 해시 테이블로 분할합니다.예를 들어 피어가 n개일 경우 해시 테이블은 n개의 해시 테이블로 분할됩니다.각 해시 테이블은 직전 해시 테이블이 종료된 바로 옆 행부터 시작됩니다.각 DHT에는 관련된 브릭이 있으며, 브릭이 담당하는 논리 주소 공간의 범위를 존이라고 합니다.브릭은 피어투피어 테크놀로지를 사용하여 멤버십 및 라우팅 레이어(MRL)를 통해 통신합니다.임의의 데이터 오브젝트 룩업은 자체 존에서 n개의 브릭을 병렬로 실행할 수 있어 O(log N)의 효율을 얻을 수 있습니다.

BitVault 시스템에는 복제라고 불리는 단일 개체의 여러 복사본이 저장되어 충분한 용장성을 제공합니다.인덱스가 손상된 경우 가장 가까운 복제본에 복구를 시작하라는 알림을 보낼 수 있습니다.또한 색인이 복제본이 손상된 것을 발견한 경우, 복제본의 복구를 시작할 수 있습니다.이 오류 복구 방법을 개체 기반 복구 모델이라고 합니다.이것이 기능하기 위해서는 피어에 논리적인 순서를 부여하는 멤버십서비스가 실행되어야 합니다.이것은 MRL을 사용하여 실현됩니다.멤버십 서비스는 벽돌의 추가 또는 제거가 다른 모든 살아있는 벽돌에 최종적이고 확실하게 통지되도록 보장합니다.MRL은 또한 브릭 및 관련 DHT와의 메시지 라우팅도 담당합니다.

MRL은 원홉 DHT를 사용하여 루팅을 실행합니다.즉, BitVault 시스템이 안정되어 있는 경우, 즉 새로운 브릭이 추가되지 않은 경우, 로드밸런싱이나 복구가 진행되지 않은 경우, 피어(peer)를 경유하여 라우팅하는 경우는 없습니다.MRL은 XRing 아키텍처를 사용하여 구현됩니다.XRing 아키텍처는 원홉 루팅을 용이하게 하는 분산 라우팅 테이블을 유지합니다.

싱글 브릭 아키텍처

벽돌의 건축

브릭은 식별자를 형성하는 160비트키를 사용하여 MRL에 등록됩니다.DHT 내의 영역은 ID에서 다음 논리 후계자 ID 직전까지입니다.브릭 아키텍처는 인덱스 모듈과 데이터 모듈의 두 부분으로 나뉩니다.인덱스 모듈은 디스크에 의해 캐시된 모든 복제본 목록을 해시와 매핑된 상태로 유지합니다.또한 IM은 저장된 각 객체에 대해 객체의 다른 모든 복제본 위치 목록도 유지합니다.IM은 MRL을 듣고 멤버십 변경 및 BitVault 시스템에 입력된 데이터 또는 BitVault 시스템에서 취득된 데이터에 따라 자신을 업데이트합니다.또한 IM은 손상된 복제본에 대한 통지를 받으면 복제본의 복구를 시작하고 저장소에 있는 복제본의 복구를 요청할 책임이 있습니다.IM은 외부 클라이언트에 대한 게이트웨이로 기능하는 작은 액세스모듈에 접속되어 있습니다.데이터 모듈은 개체의 복제본을 로컬 디스크에 저장합니다.오브젝트와 함께 해시 키, BitVault 시스템에서의 레플리케이션 정도 등의 메타데이터도 유지됩니다.

일해

체크인하다

BitVault 시스템에 데이터를 삽입하는 것을 체크인이라고 합니다.체크인하려면 개체, 키 및 초기 복제 정도가 필요합니다.MRL은 객체와 객체의 모든 파라미터를 어떤 벽돌로 라우팅합니다.그런 다음 브릭은 데이터를 데이터 모듈에 저장하고 임의의 브릭에 게시하여 지정된 복제 수준을 달성하기 위해 개체를 복제하는 작업을 시작합니다.개체가 필요한 복제 수준에 도달하면 해당 색인이 완료된 것으로 간주되고, 그렇지 않으면 부분적인 것으로 간주됩니다.브릭은 부분 인덱스가 있는 개체의 추가 복제를 수행해야 합니다.또한 브릭은 오브젝트의 인덱스가 아직 완전한지 정기적으로 확인합니다.

체크아웃

Check Out은 BitVault 시스템에서 데이터를 가져오는 프로세스입니다.BitVault를 데이터스토어로 사용하는 응용 프로그램은 취득할 개체의 해시 키를 제공하며, 이 해시 키는 MRL에 의해 임의의 브릭으로 전송됩니다.벽돌에 객체가 없을 경우 요청을 다른 벽돌에 병렬로 전달합니다.브릭에 객체가 있는 경우 해당 데이터 모듈에서 가져와 요청자에게 라우팅됩니다.

폴트 톨러런스

BitVault 장애는 일시적인 장애 또는 영속적인 장애 중 하나입니다.일시적인 장애는 브릭에 소프트웨어 크래시 등의 일시적인 장애가 발생했을 때 발생합니다.영구 장애는 하드웨어 장애 등의 오류를 나타냅니다.장애가 검출될 때마다 영향을 받는 오브젝트의 레플리카를 가진 다른 브릭은 인덱스에 오브젝트의 엔트리를 부분적으로 갱신하여 추가 복제를 트리거한다.복제본을 포함하는 다른 모든 벽돌은 공동으로 오브젝트 데이터의 다른 부분을 복제본을 보관하는 새 벽돌로 보냅니다.이 병렬 복제를 통해 손상된 인덱스의 복구 속도가 빨라져 인덱스가 완료 상태로 돌아갑니다.

멤버십 변경

새로운 브릭이 BitVault 시스템에 추가될 때마다 임의의 ID를 사용하여 다른 브릭에 접속합니다.그 벽돌들은 이 새로운 벽돌을 그들의 회원 목록에 포함시킬 것이다.새로 추가된 벽돌은 또한 멤버십 목록에 추가된 벽돌로부터 응답을 얻습니다.새 브릭은 응답자를 구성원 목록에 추가합니다.시스템의 백그라운드 로드 밸런싱이 시작되어 새 벽돌에 라이브 복제본이 채워집니다.

로드 밸런싱

브릭은 정기적으로 다른 브릭에 대한 부하 상태를 문의합니다.그런 다음 벽돌은 일부 복제본을 저부하 벽돌로 전송하여 각 벽돌에 어느 정도 부하를 분산시킵니다.또한 변경 사항을 반영하기 위해 인덱스를 업데이트하기 위한 메시지를 다른 벽돌에 발행합니다.

「 」를 참조해 주세요.

레퍼런스

  • Zheng Zhang, Qiao Lian, Shiding Lin, Wei Chen, Yu Chen, Chao Jin (December 2005). BitVault: a Highly Reliable Distributed Data Retention Platform (PDF). Technical Report MSR-TR-2005-179 (Report). Microsoft Research Asia. doi:10.1145/1243418.1243423.{{cite report}}: CS1 maint: 작성자 파라미터 사용(링크)

외부 링크