Cria um fluxo de dados entre um sistema de arquivos CPFS General-purpose ou CPFS for Lingjun e o armazenamento de origem.
Descrição da operação
Esta operação aplica-se aos seguintes produtos:
| Produto | Formato do ID do sistema de arquivos | Versão mínima que suporta fluxos de dados |
| CPFS General-purpose | Começa com cpfs-, como cpfs-125487**** | 2.2.0 ou posterior |
| CPFS for Lingjun | Começa com bmcpfs-, como bmcpfs-0015**** | 2.4.0 ou posterior |
O CPFS General-purpose e o CPFS for Lingjun compartilham o mesmo conjunto de APIs, mas diferem nos valores dos parâmetros e no suporte a recursos. Consulte a seção correspondente com base no seu tipo de produto.
-
Operações básicas
Você pode criar um fluxo de dados apenas quando o sistema de arquivos CPFS General-purpose ou CPFS for Lingjun estiver no estado Running.
Um máximo de 10 fluxos de dados pode ser criado para um único sistema de arquivos CPFS General-purpose ou CPFS for Lingjun.
A criação de um fluxo de dados geralmente leva de 2 a 5 minutos. Você pode chamar DescribeDataFlows para verificar se o fluxo de dados foi criado.
-
Permissões.
Ao criar um fluxo de dados, o Cloud Parallel File Storage associa as funções vinculadas ao serviço
AliyunServiceRoleForNasOssDatafloweAliyunServiceRoleForNasEventNotification. Para mais informações, consulte Funções vinculadas ao serviço do CPFS. -
Notas de uso do CPFS General-purpose.
Esta seção aplica-se a sistemas de arquivos CPFS General-purpose cujos IDs começam com
cpfs-.-
Cobrança
A criação de um fluxo de dados gera cobranças com base na largura de banda do fluxo de dados. Para mais informações, consulte Cobrança do CPFS General-purpose.
Ao usar a atualização automática (AutoRefresh), o EventBridge coleta eventos de modificação de objetos do armazenamento OSS de origem, o que gera taxas. Para mais informações, consulte Cobrança do EventBridge.
-
Especificações do fluxo de dados
A largura de banda do fluxo de dados (Throughput) suporta três especificações: 600 MB/s, 1200 MB/s e 1500 MB/s. A largura de banda do fluxo de dados refere-se à largura de banda máxima de transferência que o fluxo de dados pode atingir durante a importação ou exportação de dados.
A criação de um fluxo de dados consome um endereço IP do vSwitch usado pelo ponto de montagem do Cloud Parallel File Storage General-purpose. Certifique-se de que haja recursos de IP do vSwitch suficientes disponíveis.
Verificação de inventário: Quando DryRun é definido como true, você pode verificar se os recursos necessários para criar um fluxo de dados da especificação indicada estão disponíveis.
-
Fileset
O destino de um fluxo de dados é um Fileset no sistema de arquivos CPFS General-purpose. Um Fileset é uma nova estrutura de árvore de diretórios no sistema de arquivos CPFS General-purpose. É um pequeno sistema de arquivos dentro do sistema de arquivos pai que possui um espaço de inode independente e capacidade de gerenciamento.
O Fileset já deve existir quando você cria um fluxo de dados e não pode ser aninhado com outros Filesets. Apenas um fluxo de dados pode ser criado em um Fileset, correspondendo a um armazenamento de origem.
O número máximo de arquivos em um Fileset é de 1 milhão. Se o número de arquivos importados de um bucket do OSS exceder esse limite, a criação de novos arquivos retornará um erro
no space.
NotaSe já existirem dados no Fileset, os dados existentes serão limpos e substituídos por dados sincronizados do OSS após a criação do fluxo de dados.
-
Atualização automática
Após a configuração da atualização automática (AutoRefresh), quando os dados no armazenamento de origem forem alterados, os metadados alterados serão sincronizados automaticamente com o sistema de arquivos Cloud Parallel File Storage General-purpose. Os dados alterados são carregados sob demanda quando um usuário acessa o arquivo, ou carregados iniciando uma tarefa de fluxo de dados para carregar dados.
A atualização automática depende do EventBridge para coletar eventos de modificação de objetos do armazenamento OSS de origem. Você deve primeiro ativar o EventBridge.
O escopo da atualização automática é um prefixo, especificado pelo parâmetro RefreshPath. Um máximo de 5 diretórios de atualização automática pode ser configurado para um fluxo de dados.
O intervalo de atualização automática (AutoRefreshInterval) especifica o intervalo no qual o Cloud Parallel File Storage General-purpose verifica se existem atualizações de dados no prefixo especificado do bucket do OSS de origem. Se houver atualizações de dados, uma tarefa de atualização automática será iniciada. Quando a frequência de eventos de modificação de objetos no OSS de origem excede a capacidade de processamento do fluxo de dados do Cloud Parallel File Storage General-purpose, as tarefas de atualização automática se acumulam, as atualizações de metadados são atrasadas e o status do fluxo de dados torna-se
Misconfigured. Você pode resolver esse problema atualizando a especificação do fluxo de dados ou reduzindo a frequência de modificações no OSS.Quando a atualização automática é configurada para um prefixo no fluxo de dados do Cloud Parallel File Storage General-purpose, um barramento de eventos é criado no lado do usuário e uma regra de evento é criada para o prefixo do bucket do OSS de origem. Quando ocorre uma modificação de objeto no prefixo do bucket do OSS de origem, um evento do OSS é gerado no EventBridge e processado pelo fluxo de dados do Cloud Parallel File Storage General-purpose.
NotaO barramento de eventos e as regras de eventos criados pelo Cloud Parallel File Storage General-purpose no EventBridge têm a descrição
Create for cpfs auto refresh. Não modifique nem exclua o barramento de eventos ou as regras de eventos. Caso contrário, a atualização automática não funcionará corretamente. -
Armazenamento de origem
Apenas o OSS é suportado como armazenamento de origem. O armazenamento de origem (SourceStorage) de um fluxo de dados deve ser um bucket do OSS.
Os fluxos de dados do Cloud Parallel File Storage General-purpose suportam acesso criptografado e não criptografado ao OSS. Ao selecionar o acesso criptografado (SSL) ao OSS, confirme se as configurações de criptografia em trânsito do bucket do OSS suportam acesso criptografado.
Se vários fluxos de dados do Cloud Parallel File Storage General-purpose ou vários fluxos de dados do mesmo sistema de arquivos Cloud Parallel File Storage General-purpose usarem o mesmo bucket do OSS como armazenamento de origem, ative o versionamento para o bucket do OSS para evitar conflitos de dados quando vários sistemas de arquivos Cloud Parallel File Storage General-purpose exportarem dados para a mesma origem.
- Fluxos de dados do OSS entre regiões não são suportados. O bucket do OSS deve estar na mesma região que o sistema de arquivos Cloud Parallel File Storage General-purpose.
Nota
Antes de criar um fluxo de dados, defina uma tag (chave: cpfs-dataflow, valor: true) no bucket do OSS de origem para que o fluxo de dados do Cloud Parallel File Storage General-purpose possa acessar os dados no bucket. Não exclua nem modifique esta tag durante o uso do fluxo de dados. Caso contrário, o fluxo de dados do Cloud Parallel File Storage General-purpose não poderá acessar os dados no bucket.
-
-
Notas de uso do CPFS for Lingjun.
Esta seção aplica-se a sistemas de arquivos CPFS for Lingjun cujos IDs começam com
bmcpfs-.-
Armazenamento de origem
Apenas o OSS é suportado como armazenamento de origem. O armazenamento de origem (SourceStorage) de um fluxo de dados deve ser um bucket do OSS.
Os fluxos de dados do CPFS for Lingjun suportam acesso criptografado e não criptografado ao OSS. Ao selecionar o acesso criptografado (SSL) ao OSS, certifique-se de que a criptografia em trânsito do bucket do OSS suporte acesso criptografado.
Se vários fluxos de dados do CPFS for Lingjun ou vários fluxos de dados do mesmo sistema de arquivos CPFS for Lingjun usarem o mesmo bucket do OSS como armazenamento de origem, ative o versionamento para o bucket do OSS para evitar conflitos de dados quando vários sistemas de arquivos CPFS for Lingjun exportarem dados para a mesma origem.
Fluxos de dados do OSS entre regiões não são suportados. O bucket do OSS deve estar na mesma região que o sistema de arquivos CPFS for Lingjun.
O CPFS for Lingjun 2.6.0 ou posterior suporta a criação de fluxos de dados com OSS entre contas.
O parâmetro de ID da conta é necessário apenas quando você usa OSS entre contas.
- Ao usar OSS entre contas, autorize as contas primeiro. Para mais informações, consulte Autorização de fluxo de dados entre contas.
Nota
Antes de criar um fluxo de dados, defina uma tag (chave: cpfs-dataflow, valor: true) no bucket do OSS de origem para que o fluxo de dados do CPFS for Lingjun possa acessar os dados no bucket. Não exclua nem modifique esta tag durante o uso do fluxo de dados. Caso contrário, o fluxo de dados do CPFS for Lingjun não poderá acessar os dados no bucket.
-
Restrições de fluxo de dados no sistema de arquivos.
No caminho do sistema de arquivos associado ao fluxo de dados, você não pode renomear diretórios não vazios. Caso contrário, um erro de Permission Denied ou directory not empty será retornado.
Use caracteres especiais em nomes de diretórios e arquivos com cautela. Os caracteres suportados incluem letras maiúsculas e minúsculas, dígitos, pontos de exclamação (!), hifens (-), sublinhados (_), pontos (.), asteriscos (*) e parênteses (()).
Caminhos excessivamente longos não são suportados. O comprimento máximo de caminho suportado pelos fluxos de dados é de 1023 caracteres.
-
Restrições de importação de fluxo de dados.
Após os arquivos Symlink serem importados para o CPFS for Lingjun, eles são convertidos em arquivos regulares que contêm dados, e as informações do Symlink são perdidas.
Se o bucket do OSS tiver várias versões, apenas a versão mais recente será copiada.
Nomes de arquivos ou nomes de subdiretórios com mais de 255 bytes não são suportados.
-
Restrições de exportação de fluxo de dados
Após os arquivos Symlink serem sincronizados com o OSS, os arquivos apontados pelo Symlink não são sincronizados. Em vez disso, o Symlink torna-se um objeto vazio regular sem dados.
Os arquivos Hardlink são sincronizados com o OSS como arquivos regulares.
Os arquivos Socket, Device e Pipe exportados para o bucket do OSS tornam-se objetos vazios regulares sem dados.
Caminhos de diretório com mais de 1023 caracteres não são suportados.
-
Experimente agora
Testar
Autorização RAM
|
Ação |
Nível de acesso |
Tipo de recurso |
Chave de condição |
Ação dependente |
|
nas:CreateDataFlow |
create |
*DataFlow
|
Nenhuma | Nenhuma |
Parâmetros da solicitação
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
Exemplo |
| FileSystemId |
string |
Sim |
O ID do sistema de arquivos.
|
cpfs-099394bd928c**** |
| ClientToken |
string |
Não |
O token de cliente usado para garantir a idempotência da solicitação. Você pode usar o cliente para gerar o token, mas deve garantir que o token seja exclusivo entre diferentes solicitações. O token pode conter apenas caracteres ASCII e não pode exceder 64 caracteres de comprimento. Para mais informações, consulte Como garantir a idempotência. Nota
Se você não especificar este parâmetro, o sistema usará automaticamente o valor de RequestId como o valor de ClientToken. O valor de RequestId pode ser diferente para cada solicitação de API. |
123e4567-e89b-12d3-a456-42665544**** |
| DryRun |
boolean |
Não |
Especifica se deve ser realizado um dry run para esta solicitação. Um dry run verifica a validade dos parâmetros e a disponibilidade de recursos sem realmente criar a instância ou gerar cobranças. Valores válidos:
|
false. |
| Description |
string |
Não |
A descrição do fluxo de dados. Limites:
|
Bucket01 DataFlow. |
| SourceSecurityType |
string |
Não |
O tipo de proteção de segurança do armazenamento de origem. Se o armazenamento de origem precisar ser acessado por meio de proteção de segurança, especifique o tipo de proteção de segurança. Valores válidos:
|
SSL. |
| SourceStorage |
string |
Sim |
O endereço de acesso do armazenamento de origem. Formato: Onde:
Nota
|
oss://178321033379****:bucket-01 |
| SourceStoragePath |
string |
Não |
O caminho de acesso dentro do bucket de armazenamento de origem. Limites:
Nota
Este parâmetro é necessário quando o tipo de sistema de arquivos é CPFS for Lingjun. |
/prefix/ |
| FsetId |
string |
Não |
O ID do Fileset. Nota
Este parâmetro é necessário quando o tipo de sistema de arquivos é CPFS General-purpose. |
fset-1902718ea0ae**** |
| FileSystemPath |
string |
Não |
O diretório no sistema de arquivos CPFS for Lingjun. Limites:
Nota
Este parâmetro é necessário quando o tipo de sistema de arquivos é CPFS for Lingjun. |
/path/ |
| AutoRefreshs |
array<object> |
Não |
A coleção de configurações de atualização automática. Nota
Este parâmetro entra em vigor apenas quando o tipo de sistema de arquivos é CPFS General-purpose. |
|
|
object |
Não |
|||
| RefreshPath |
string |
Não |
O diretório de atualização automática. O CPFS General-purpose registra eventos de modificação de dados do armazenamento de origem e verifica se os dados de origem neste diretório foram atualizados. Os dados atualizados são importados automaticamente. O valor padrão é vazio, o que significa que as atualizações de dados no armazenamento de origem não são importadas automaticamente para o CPFS General-purpose. Você deve criar manualmente uma tarefa para importar atualizações. Limites:
|
/prefix1/prefix2/ |
| AutoRefreshPolicy |
string |
Não |
A política de atualização automática. Especifica a política para importar atualizações de dados do armazenamento de origem para o CPFS General-purpose após a atualização dos dados de origem.
Nota
Este parâmetro entra em vigor apenas quando o tipo de sistema de arquivos é CPFS General-purpose. Valores válidos:
|
None. |
| AutoRefreshInterval |
integer |
Não |
O intervalo de atualização automática. O CPFS General-purpose verifica o diretório em busca de atualizações de dados neste intervalo. Se houver atualizações de dados, uma tarefa de atualização automática será iniciada. Unidade: minutos. Valores válidos: 10 a 525600. Valor padrão: 10. Nota
Este parâmetro entra em vigor apenas quando o tipo de sistema de arquivos é CPFS General-purpose. |
10 |
| Throughput |
integer |
Não |
A largura de banda máxima de transferência do fluxo de dados. Unidade: MB/s. Valores válidos:
Nota
A largura de banda de transferência do fluxo de dados deve ser menor que a largura de banda de E/S do sistema de arquivos. Este parâmetro é necessário quando o tipo de sistema de arquivos é CPFS General-purpose. Valores válidos:
|
600 |
Elementos de resposta
|
Elemento |
Tipo |
Descrição |
Exemplo |
|
object |
|||
| RequestId |
string |
O ID da solicitação. |
473469C7-AA6F-4DC5-B3DB-A3DC0D****3E |
| DataFlowId |
string |
O ID do fluxo de dados. |
df-194433a5be31**** |
Exemplos
Resposta de sucesso
JSON formato
{
"RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0D****3E",
"DataFlowId": "df-194433a5be31****"
}
Códigos de erro
|
Código de status HTTP |
Código de erro |
Mensagem de erro |
Descrição |
|---|---|---|---|
| 400 | IllegalCharacters | The parameter contains illegal characters. | O parâmetro especificado é inválido. |
| 400 | MissingFsetId | FsetId is mandatory for this action. | O parâmetro de ID do Fileset não foi especificado. |
| 400 | MissingSourceStorage | SourceStorage is mandatory for this action. | O parâmetro SourceStorage não foi especificado. |
| 400 | MissingThroughput | Throughput is mandatory for this action. | O parâmetro Throughput não foi especificado. |
| 400 | MissingFileSystemId | FileSystemId is mandatory for this action. | O parâmetro FileSystemId não foi especificado. |
| 400 | InvalidFilesystemVersion.NotSupport | This Api does not support this fileSystem version. | A operação atual não suporta esta versão do sistema de arquivos. |
| 400 | DataFlow.Bucket.RegionUnmatched | The bucket and file system are not in the same region. | A região do bucket não corresponde à região do sistema de arquivos. |
| 400 | Oss.Path.Conflict | The OSS directory conflicts and is occupied by other data flow tasks. | O diretório OSS entra em conflito com outro diretório que já está ocupado por outra tarefa de fluxo de dados. |
| 403 | OperationDenied.DependencyViolation | The operation is denied due to dependancy violation. | As condições para esta operação não foram atendidas. |
| 403 | OperationDenied.NoStock | The operation is denied due to no stock. | |
| 403 | OperationDenied.DependFset | The operation is denied due to invalid fileset state. | Falha ao criar o dataflow porque o fileset está em um estado anormal. |
| 403 | OperationDenied.ConflictOperation | The operation is denied due to a conflict with an ongoing operation. | O dataflow não pode ser criado porque entra em conflito com a operação atual do sistema de arquivos. |
| 403 | OperationDenied.DependMountpoint | The operation is denied because no mount point is found. | Falha ao criar o dataflow porque o sistema de arquivos não possui um ponto de montagem. |
| 403 | OperationDenied.FsetAlreadyInUse | The Fset is already bound to another data flow. | O Fset já está em uso. |
| 403 | OperationDenied.AutoRefreshNotSupport | The operation is denied. Auto refresh is not supported. | O sistema de arquivos não suporta atualizações automáticas. |
| 403 | OperationDenied.DependBucketTag | The operation is denied. The OSS Bucket tag cpfs-dataflow is missing. | Falha ao criar o dataflow porque o bucket OSS não possui a tag cpfs-dataflow. |
| 403 | OperationDenied.DataFlowNotSupported | The operation is not supported. | O sistema de arquivos não suporta dataflow. |
| 403 | InvalidOperation.DeletionProtection | The operation is not allowed due to resource is protected by deletion protection. | A instância tem a proteção contra exclusão ativada e não pode ser liberada por meio do console ou da API. |
| 403 | DataFlow.Bucket.AccessDenied | Bucket access denied. | Ocorreu um erro de autenticação de fluxo de dados. |
| 404 | InvalidFileSystem.NotFound | The specified file system does not exist. | O sistema de arquivos especificado não existe. |
| 404 | InvalidThroughput.OutOfBounds | Throughput is out of bounds. | A taxa de transferência especificada não está dentro do intervalo válido. |
| 404 | InvalidDescription.InvalidFormat | Description format is invalid. | A descrição especificada tem um formato inválido. |
| 404 | InvalidRefreshPath.InvalidParameter | Refresh path is invalid. | O caminho do diretório de atualização automática especificado é inválido. |
| 404 | InvalidRefreshPath.Duplicated | Refresh path is duplicated. | O caminho do diretório de atualização automática especificado está duplicado. |
| 404 | InvalidRefreshPath.NotFound | Refresh path does not exist. | O diretório de atualização automática especificado não existe. |
| 404 | InvalidRefreshPolicy.InvalidParameter | Refresh policy is invalid. | A política de atualização automática é inválida. |
| 404 | InvalidRefreshInterval.OutOfBounds | Refresh interval is out of bounds. | O RefreshInterval especificado não está dentro do intervalo válido. |
| 404 | InvalidSourceStorage.Unreachable | Source storage cannot be accessed. | O armazenamento de origem está inacessível. |
| 404 | InvalidSourceStorage.NotFound | Source storage is not found. | O armazenamento de origem especificado não existe. |
| 404 | InvalidSourceStorage.NotSupport | Source storage type is not supported. | O tipo do armazenamento de origem especificado não é suportado. |
| 404 | InvalidSourceStorage.PermissionDenied | The source storage access permission is denied. | Você não tem as permissões de acesso ao armazenamento de origem. Verifique a autorização da função vinculada ao serviço e as tags de acesso do armazenamento de origem. |
| 404 | InvalidSourceStorage.InvalidRegion | Source storage region is invalid. | A região do armazenamento de origem está anormal. Verifique se o armazenamento de origem e o CPFS estão na mesma região. |
| 404 | InvalidSourceStorage.InvalidParameter | Source storage has invalid parameters. | O caminho do armazenamento de origem especificado é inválido. |
| 404 | InvalidSourceSecurityType.NotSupport | The source security type is not supported. | O tipo de proteção de segurança do armazenamento de origem especificado não é suportado. |
| 404 | InvalidAutoRefresh.TooManyAutoRefreshes | The number of auto refreshes exceeds the limit. | O número de configurações de atualização automática especificadas excede o limite. |
| 404 | InvalidSourceStorage.NeedVersioning | Source storage must enable versioning. | O recurso de versionamento deve estar ativado para o armazenamento de origem. |
| 404 | InvalidFsetId.NotFound | The specified Fileset ID does not exist. | O fileset especificado não existe. |
| 404 | DataFlow.Bucket.NotExist | Bucket does not exist. | O bucket especificado não existe. |
Consulte Códigos de Erro para uma lista completa.
Notas de versão
Consulte Notas de Versão para uma lista completa.