Usando classes de armazenamento
Nem todos os dados alimentam cargas de trabalho ativas. Os dados de arquivamento podem ficar sem mudança por longos períodos de tempo. Para cargas de trabalho menos ativas, é possível criar depósitos com diferentes classes de armazenamento. Os objetos que são armazenados nesses buckets incorrem em encargos em um planejamento diferente do que o armazenamento padrão.
Este recurso não é compatível atualmente com o Object Storage para Satellite. Saiba mais.
Quais são as classes?
É possível escolher entre quatro classes de armazenamento:
- Camada Inteligente pode ser usado para qualquer carga de trabalho, especialmente cargas de trabalho dinâmicas em que padrões de acesso são desconhecidos ou difíceis de prever. O Smart Tier fornece uma estrutura de precificação simplificada e otimização automática de custo classificando os dados em camadas "hot", "cool" e "cold" com base em padrões de uso mensais. Todos os dados no depósito são então faturados na taxa mais baixa aplicável. Não há tamanhos de objeto limite ou períodos de armazenamento e não há taxas de recuperação. Para obter uma explicação detalhada de como ele funciona, consulte o tópico de faturamento
- Standard é usado para cargas de trabalho ativas, sem encargos para dados recuperados (exceto o custo da solicitação operacional em si).
- Vault é usado para cargas de trabalho frias em que os dados são acessados menos de uma vez por mês - um encargo extra de recuperação (US$/GB) é aplicado cada vez que os dados são lidos. O serviço inclui um limite mínimo para o tamanho do objeto e o período de armazenamento consistentes com o uso desejado desse serviço para dados mais frios, menos ativos.
- Cold Vault é usado para cargas de trabalho frias nos quais os dados são acessados a cada 90 dias ou menos - um encargo extra de recuperação maior (US$/GB) é aplicado cada vez que os dados são lidos. O serviço inclui um limite mínimo maior para o tamanho do objeto e o período de armazenamento consistentes com o uso desejado desse serviço para dados frios e inativos.
O Flex foi substituído pelo Smart Tier para cargas de trabalho dinâmicas Os usuários Flex podem continuar a gerenciar seus dados em depósitos Flex existentes, embora nenhum novo buckets Flex possa ser criado. Usuários existentes podem referenciar informações de precificação aqui.
Para obter mais informações, consulte a tabela de preços em ibm.com.
A classe de armazenamento Active é usada somente com planos One-Rate e não pode ser usada em uma instância de plano Standard.
Para obter mais informações sobre como criar depósitos com diferentes classes de armazenamento, consulte a Referência de API.
Para cada classe de armazenamento, o faturamento é baseado no uso agregado em todos os depósitos no nível da instância. Por exemplo, para Smart Tier, o faturamento é baseado no uso em todos os depósitos do Smart Tier em uma determinada instância, não nos depósitos individuais.
Como criar um depósito com uma classe de armazenamento diferente?
Ao criar um depósito no console, há um menu que permite a seleção da classe de armazenamento.
Ao criar depósitos programaticamente, é necessário especificar um LocationConstraint que corresponde ao terminal usado. Os códigos de provisionamento válidos para LocationConstraint são
BR São Paulo br-sao-standard / br-sao-vault / br-sao-cold / br-sao-smart
US Geo us-standard / us-vault / us-cold / us-smart
Leste dos EUA us-east-standard / us-east-vault / us-east-cold / us-east-smart
Sul dos EUA us-south-standard / us-south-vault/
us-south-cold/ us-south-smart
Geo da UE eu-standard / eu-vault / eu-cold / eu-smart
**UE Grã-Bretanha **eu-gb-standard / eu-gb-vault / eu-gb-cold / eu-gb-smart
UE Alemanha eu-de-standard / eu-de-vault / eu-de-cold / eu-de-smart
UE Espanha eu-es-standard / eu-es-vault / eu-es-cold / eu-es-smart
AP Geo ap-standard / ap-vault / ap-cold / ap-smart
AP Tóquio jp-tok-standard / jp-tok-vault / jp-tok-cold / jp-tok-smart
AP Osaka jp-osa-standard / jp-osa-vault / jp-osa-cold / jp-osa-smart
AP Austrália au-syd-standard / au-syd-vault / au-syd-cold / au-syd-smart
CA Toronto ca-tor-standard / ca-tor-vault / ca-tor-cold / ca-tor-smart
Amsterdam ams03-standard / ams03-vault / ams03-cold / ams03-smart
Chennai che01-standard / che01-vault / che01-cold / che01-smart
**Montreal **mon01-standard / mon01-vault / mon01-cold / mon01-smart
Paris par01-standard / par01-vault / par01-cold / par01-smart
**São José **sjc04-standard / sjc04-vault / sjc04-cold / sjc04-smart
Cingapura sng01-standard / sng01-vault / sng01-cold / sng01-smart
Para obter mais informações sobre terminais, consulte Terminais e locais de armazenamento.
Usando a API de REST, as bibliotecas e os SDKs
Diversas APIs novas foram introduzidas nos SDKs do IBM COS para fornecer suporte para aplicativos que trabalham com políticas de retenção. Selecione uma linguagem (curl, Java, JavaScript, Go ou Python) no início desta página para visualizar exemplos que usam o SDK do COS apropriado.
Todos os exemplos de código presumem a existência de um objeto do cliente chamado cos que pode chamar os diferentes métodos. Para obter detalhes sobre como criar clientes, consulte os guias de SDK específicos.
Criar um depósito com uma classe de armazenamento
public static void createBucket(String bucketName) {
System.out.printf("Creating new bucket: %s\n", bucketName);
_cos.createBucket(bucketName, "us-vault");
System.out.printf("Bucket: %s created!\n", bucketName);
}
function createBucket(bucketName) {
console.log(`Creating new bucket: ${bucketName}`);
return cos.createBucket({
Bucket: bucketName,
CreateBucketConfiguration: {
LocationConstraint: 'us-standard'
},
}).promise()
.then((() => {
console.log(`Bucket: ${bucketName} created!`);
}))
.catch((e) => {
console.error(`ERROR: ${e.code} - ${e.message}\n`);
});
}
def create_bucket(bucket_name):
print("Creating new bucket: {0}".format(bucket_name))
try:
cos.Bucket(bucket_name).create(
CreateBucketConfiguration={
"LocationConstraint":COS_BUCKET_LOCATION
}
)
print("Bucket: {0} created!".format(bucket_name))
except ClientError as be:
print("CLIENT ERROR: {0}\n".format(be))
except Exception as e:
print("Unable to create bucket: {0}".format(e))
func main() {
// Create client
sess := session.Must(session.NewSession())
client := s3.New(sess, conf)
// Bucket Names
newBucket := "<NEW_BUCKET_NAME>"
input := &s3.CreateBucketInput{
Bucket: aws.String(newBucket),
CreateBucketConfiguration: &s3.CreateBucketConfiguration{
LocationConstraint: aws.String("us-cold"),
},
}
client.CreateBucket(input)
d, _ := client.ListBuckets(&s3.ListBucketsInput{})
fmt.Println(d)
}
curl -X "PUT" "https://(endpoint)/(bucket-name)"
-H "Content-Type: text/plain; charset=utf-8"
-H "Authorization: Bearer (token)"
-H "ibm-service-instance-id: (resource-instance-id)"
-d "<CreateBucketConfiguration>
<LocationConstraint>(provisioning-code)</LocationConstraint>
</CreateBucketConfiguration>"
Não é possível mudar a classe de armazenamento de um depósito depois que o depósito é criado. Se os objetos precisarem ser reclassificados, será necessário mover os dados para outro depósito com a classe de armazenamento desejada.