--- layout: default navsection: installguide title: Configure Azure Blob storage ... {% comment %} Copyright (C) The Arvados Authors. All rights reserved. SPDX-License-Identifier: CC-BY-SA-3.0 {% endcomment %} As an alternative to local and network-attached POSIX filesystems, Keepstore can store data in an Azure Storage container. h2. Create a storage container Using the Azure web portal or command line tool, create or choose a storage account with a suitable redundancy profile and availability region. Use the storage account keys to create a new container.
~$ azure config mode arm
~$ azure login
~$ azure group create exampleGroupName eastus
~$ azure storage account create --type LRS --location eastus --resource-group exampleGroupName exampleStorageAccountName
~$ azure storage account keys list --resource-group exampleGroupName exampleStorageAccountName
info:    Executing command storage account keys list
+ Getting storage account keys
data:    Primary: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz==
data:    Secondary: yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy==
info:    storage account keys list command OK
~$ AZURE_STORAGE_ACCOUNT="exampleStorageAccountName" \
AZURE_STORAGE_ACCESS_KEY="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz==" \
azure storage container create exampleContainerName
Note that Keepstore services may be configued to use multiple Azure Storage accounts and multiple containers within a storage account. h2. Configure keepstore Copy the primary storage account key to a file where it will be accessible to keepstore at startup time.
~$ sudo sh -c 'cat >/etc/arvados/keepstore/azure_storage_account_key.txt <<EOF'
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz==
EOF
~$ sudo chmod 0400 /etc/arvados/keepstore/azure_storage_account_key.txt
Next, edit the @Volumes@ section of the @keepstore.yml@ config file:
Volumes:
- # The volume type, this indicates Azure blob storage
  Type: Azure

  # How much replication is performed by the underlying container.
  # This is used to inform replication decisions at the Keep layer.
  AzureReplication: 3

  # The storage container to use for the backing store.
  ContainerName: exampleContainerName

  # If true, do not accept write or trash operations, only reads.
  ReadOnly: false

  # Amount of time to wait for a response before failing the request
  RequestTimeout: 10m0s

  # The storage account name, used for authentication
  StorageAccountName: exampleStorageAccountName

  # The storage account secret key, used for authentication
  StorageAccountKeyFile: /etc/arvados/keepstore/azure_storage_account_key.txt

  # The cloud environment to use.  If blank, use the default cloud
  # environment.  See below for an example of an alternate cloud environment.
  StorageBaseURL: ""

  # Storage classes to associate with this volume.  See "Configuring
  # storage classes" in the "Admin" section of doc.arvados.org.
  StorageClasses: null

- # Example configuration to use Azure China.
  #
  # The alternate cloud environment to use.
  # Note that cloud environments are different from regions.  A
  # cloud environment is an entirely separate instance of Azure with
  # separate accounts, requiring separate credentials.
  #
  StorageBaseURL: core.chinacloudapi.cn
  StorageAccountKeyFile: /etc/arvados/keepstore/azure_cn_storage_account_key.txt
  StorageAccountName: cn-account-name
  ContainerName: exampleChinaContainerName

  # The rest are the same as above
  Type: Azure
  AzureReplication: 3
  ReadOnly: false
  RequestTimeout: 10m0s
  StorageClasses: null
Start (or restart) keepstore, and check its log file to confirm it is using the new configuration.