infoShare 2014: Marek Landowski, Architektura SWIFT obiektowego przechowywania danych.

12
‘Architektura SWIFT obiektowego przechowywania danych’ Marek Landowski SII
  • date post

    21-Oct-2014
  • Category

    Documents

  • view

    185
  • download

    9

description

 

Transcript of infoShare 2014: Marek Landowski, Architektura SWIFT obiektowego przechowywania danych.

Page 1: infoShare 2014: Marek Landowski, Architektura SWIFT obiektowego przechowywania danych.

‘Architektura SWIFT obiektowego przechowywania danych’

Marek Landowski

SII

Page 2: infoShare 2014: Marek Landowski, Architektura SWIFT obiektowego przechowywania danych.

Twierdzenie Brewera

Stanowi, iż w rozproszonych systemach przetwarzania danych nie jest możliwe jednoczesne utrzymanie trzech właściwości:• spójności (consistency) oznaczającej że wszystkie węzły mają

jednoczesny dostęp do jednakowych danych,• dostępności (availability) oznaczającej, że każde żądanie doczeka się

odpowiedzi,• odporności na rozbicie (partition tolerance) oznaczającej, że system

potrafi działać pomimo utraty części komunikatów lub uszkodzenia niektórych węzłów.

Page 3: infoShare 2014: Marek Landowski, Architektura SWIFT obiektowego przechowywania danych.

Dlaczego SWIFT?

Page 4: infoShare 2014: Marek Landowski, Architektura SWIFT obiektowego przechowywania danych.

Wybrane cechy SWIFTa

• 5% rozwiązania wchodzącego w OpenStack,• Dostęp do danych jest za pomoca protokołu HTTP (REST API) • Obiekty sa zapisywane do kilku lokalizacji, gdzie software odpowiada

za replikację. Gdy zdarzy się, że węzał przestanie działać, automatycznie tworzona jest kopia utraconych danych z wersji przechowywanych na innych węzłach,

• SWIFT jest skalowalny horyzontalnie (na poziomie proxy serwerów oraz na poziomie węzłów przechowujących dane),

• Nie wymaga dedykowanego sprzętu.

Page 5: infoShare 2014: Marek Landowski, Architektura SWIFT obiektowego przechowywania danych.

OpenStack

Page 6: infoShare 2014: Marek Landowski, Architektura SWIFT obiektowego przechowywania danych.

Działanie SWIFTa na przykładzie uploadu

ZONE 3ZONE 2ZONE 1

StorageServer

StorageServer

StorageServer

StorageServer

StorageServer

StorageServer

StorageServer

StorageServer

StorageServer

REST API Proxy Server

Ring

Uploadobject

Page 7: infoShare 2014: Marek Landowski, Architektura SWIFT obiektowego przechowywania danych.

Proxy Server

• Odpowiedzialny za komunikację z resztą architektury SWIFTa,• Zapis lub odczyt każdorazowo przechodzi przez proxy server, który

komunikuje się z pierścieniem w celu odnalezienia fizycznej lokalizacji,

• Gdy węzeł do którego powinien być wykonany zapis nie jest dostępny, proxy server odpyta pierścień w celu ustalenia nowej lokalizacji dla obiektu,

• W rozwiązaniu możliwe jest zastosowanie wielu proxy serwerów, jednakże potrzeby jest wtedy dodatkowy element w architekturze, który będzie wybierał do którego proxy ma być skierowane zapytanie.

Page 8: infoShare 2014: Marek Landowski, Architektura SWIFT obiektowego przechowywania danych.

Storage server

• Węzły przechowują partycje przypisane do róznych lokalizacji,

• Account oraz container to indywidualne bazy danych SQLite, które są rozproszone w SWIFTcie,

• Baza danych account zawiera listę kontenerów, natomiast baza danych container zawiera listę obiektów,

PA

RTI

TIO

N Accountdatabase

Containerdatabase

Containerdatabase

Object

Object

Object

Object

ObjectContainerdatabase

Page 9: infoShare 2014: Marek Landowski, Architektura SWIFT obiektowego przechowywania danych.

Ring

• Jest odpowiedzialny za mapowanie pomiędzy nazwami danych przechowywanych w SWIFTcie a ich fizyczna lokalizacją w klastrze,

• Każda partycja jest domyślnie replikowana 3 krotnie,• Gregory Holt (http://greg.brim.net/page/building_a_consistent_hashing_ring.html)

Partition

Partition

Partition

Ring

StorageServer

Page 10: infoShare 2014: Marek Landowski, Architektura SWIFT obiektowego przechowywania danych.

Horizon

Page 11: infoShare 2014: Marek Landowski, Architektura SWIFT obiektowego przechowywania danych.

REST API GET Container

Page 12: infoShare 2014: Marek Landowski, Architektura SWIFT obiektowego przechowywania danych.

REST API GET Object