I den här kom igång guiden så kommer vi gå igenom det ni behöver göra för att för att komma igång med objektlagring.
Vi kommer gå igenom hur ni gör detta via GUI och CLI, vi kommer även gå igenom en del av funktionerna som finns i vår objektlagring.
Vilka API stödjer ni?
Vi stödjer S3 och Swift, se nedan lista på endpoints. Om du jobbar med aws
CLI så körs det mot S3 API, om du använder openstack
CLI eller något av våra webbgränssnitt så används Swift API.
I S3 kallas den enhet där du lagrar objekt en bucket, i Swift heter motsvarande en container. Oavsett med vilket API du skapar en bucket/container med så är den tillgänglig med båda.
Vart kan jag lagra min data
Vi har idag följande objektlagring tillgänglig i region europe-se-1 (eu-se-1). Objektlagring i olika availability zoner delar inte underliggande lagringsplattform.
Vi stödjer både fristående objektlagring i varje availability zone samt replikerad objektlagring som replikerar data i alla availability zones i europe-se-1 (eu-se-1) regionen.
Om du jobbar mot objektlagring i något av våra webbgränssnitt så går du alltid mot den fristående objektlagringen i eu-se-1a, för att jobba mot en annan availability zone behöver du jobba med CLI eller API.
Fristående objektlagring
Stödjer alla lagringspolicys tillgänliga. Om ingen lagringspolicy anges används gp.recurring som standard.
Region | Availability Zone | S3 endpoint | Swift endpoint |
europe-se-1 (eu-se-1) | europe-se-1a (eu-se-1a) | https://object-eu-se-1a.binero.cloud | https://object-eu-se-1a.binero.cloud/swift/v1/AUTH_%(tenant_id)s |
europe-se-1 (eu-se-1) | europe-se-1b (eu-se-1b) | https://object-eu-se-1b.binero.cloud | https://object-eu-se-1b.binero.cloud/swift/v1/AUTH_%(tenant_id)s |
Replikerad objektlagring
Stödjer endast gp.recurring och hp.intensive lagringspolicys. Om ingen lagringspolicy anges används gp.recurring som standard.
Alla buckets/containers och objekt som skapas eller laddas upp replikeras mellan alla availability zones.
De flesta objekt replikeras inom 15 minuter, men kan ibland ta längre tid. Replikering är en asynkron process vilket betyder att objekten tillslut blir replikerade enligt eventual consistency modellen.
Region | Availability Zone | S3 endpoint | Swift endpoint |
europe-se-1 (eu-se-1) | europe-se-1a (eu-se-1a) | https://object-eu-se-1a-rep.binero.cloud | https://object-eu-se-1a-rep.binero.cloud/swift/v1/AUTH_%(tenant_id)s |
europe-se-1 (eu-se-1) | europe-se-1b (eu-se-1b) | https://object-eu-se-1b-rep.binero.cloud | https://object-eu-se-1b-rep.binero.cloud/swift/v1/AUTH_%(tenant_id)s |
Lagringspolicys
Vi har olika lagringspolicys, i tabellen nedan kan ni se vilken policy som är bäst lämpad för ert användningsområde.
Om ingen lagringspolicy specificeras så används gp.recurring som standard.
hp.intensive | gp.recurring | gp.intermittent | gp.archive | |
Data type | Primary | Primary | Primary/Secondary | Secondary/Backups |
Data set size | Small to medium | Small to huge | Medium to huge | Large to huge |
Data accessed | Constantly | Constantly | Intermittently | Seldom |
Optimized | Fast access and low latency | Recurring access | Intermittent access | Long time storage |
Storage medium | SSD/Flash | HDD/Mechanical | HDD/Mechanical | HDD/Mechanical |
Data reliability | 99.999% | 99.999% | 99.999% | 99.9% |
Replication | X* | X* |
Förutsättningar
För att komma igång med CLI så behöver ni installera antingen AWS CLI eller liknande. I den här guiden så kommer vi använda AWS CLI. Klienten finns att ladda ner här https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html
Efter att AWS CLI är installerat så kan ni bekräfta att det fungerar genom att köra aws --version
För att köra openstack
kommandon via CLI så behöver vi även installera den klienten på vår dator, information om hur man gör det finns här: https://docs.openstack.org/python-openstackclient
Kom igång
Efter att vi har aws
CLI och openstack
CLI installerat så kan vi börja med att skapa autentiseringsnycklarna som behövs för att jobba med objektlagringen. Detta gör vi med kommandot openstack ec2 credentials create
, vi kommer då få ett svar liknande detta
+------------+-------------------------------------------------------------------------------------------------------------------------------------------+ | Field | Value | +------------+-------------------------------------------------------------------------------------------------------------------------------------------+ | access | 09876543210987654321098765432109 | | links | {u'self': u'http://auth.binero.cloud:5000/v3/users/01234567890123456789012345678901/credentials/OS-EC2/09876543210987654321098765432109'} | | project_id | abc123abc123abc123abc123abc123ab | | secret | cba321cba321cba321cba321cba321cb | | trust_id | None | | user_id | 01234567890123456789012345678901 | +------------+-------------------------------------------------------------------------------------------------------------------------------------------+
Access och secret behöver vi spara i en konfigurationsfil för att använda aws cli:et mot vår endpoint, den filen sparas här på linux ~/.aws/credentials
och ska innehålla:
[default] aws_access_key_id=<ACCESS_KEY> aws_secret_access_key=<SECRET_KEY>
Nu är vi redo att skapa vår första container/bucket. Detta kan vi antingen göra genom Horizon (OpenStack dashboard) eller genom S3 API med aws
CLI.
För att skapa en Container via Horizon så går ni till Project -> Object Store -> Containers
och väljer +Container
. Där får man namnge den och välja lagringspolicy.
Det går även att skapa en med aws
CLI, detta gör ni genom att köra:
aws --endpoint=https://object-eu-se-1a.binero.cloud s3api create-bucket --bucket BUCKET_NAME --create-bucket-configuration LocationConstraint=europe-se-1:gp.recurring
Efter detta så ser vi vår nyskapade container/bucket på Containers sidan i Horizon
Eller via aws
CLI
demo@binero:~$ aws --endpoint=https://object-eu-se-1a.binero.cloud s3 ls 2020-10-07 13:40:00 DEMO