Cria um fluxo de dados entre um sistema de arquivos CPFS de uso geral ou CPFS para Lingjun e o armazenamento de origem.
Descrição da operação
Esta operação se aplica aos seguintes serviços:
| Serviço | Formato do ID do sistema de arquivos | Versão mínima que suporta fluxos de dados |
| CPFS de uso geral | Começa com cpfs-, por exemplo, cpfs-125487**** | 2.2.0 e posterior |
| CPFS para Lingjun | Começa com bmcpfs-, por exemplo, bmcpfs-0015**** | 2.4.0 e posterior |
Nota: O CPFS de uso geral e o CPFS para Lingjun compartilham as mesmas operações de API, mas apresentam diferenças nos valores dos parâmetros e no suporte a recursos. Consulte a seção correspondente com base no seu tipo de serviço.
-
Operações básicas
Você pode criar um fluxo de dados somente quando o sistema de arquivos CPFS de uso geral ou CPFS para Lingjun estiver no estado Running.
Você pode criar no máximo 10 fluxos de dados para um único sistema de arquivos CPFS de uso geral ou CPFS para Lingjun.
A criação de um fluxo de dados geralmente leva de 2 a 5 minutos. Você pode chamar a operação DescribeDataFlows para verificar se o fluxo de dados foi criado.
-
Permissões.
Ao criar um fluxo de dados, o Cloud Parallel File Storage (CPFS) assume as funções vinculadas ao serviço
AliyunServiceRoleForNasOssDatafloweAliyunServiceRoleForNasEventNotification. Para obter mais informações, consulte Funções vinculadas ao serviço para CPFS. -
Notas de uso para CPFS de uso geral.
Esta seção se aplica a sistemas de arquivos CPFS de uso geral cujos IDs começam com
cpfs-.-
Cobrança
-
A criação de um fluxo de dados é cobrada com base na largura de banda do fluxo de dados. Para obter mais informações, consulte Cobrança do CPFS de uso geral.
Se você ativar a atualização automática (AutoRefresh), o EventBridge será usado para coletar eventos de modificação de objetos do bucket OSS de origem, o que incorre em taxas. Para obter 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 de transmissão máxima que o fluxo de dados pode alcançar ao importar ou exportar dados.
A criação de um fluxo de dados consome um endereço IP do vSwitch usado por um ponto de montagem do Cloud Parallel File Storage de uso geral. Certifique-se de que o vSwitch tenha endereços IP suficientes.
Verificação de inventário: Quando o parâmetro DryRun é definido como true, o sistema verifica se os recursos necessários para criar o fluxo de dados especificado são suficientes.
-
Fileset
O destino de um fluxo de dados é um Fileset no sistema de arquivos CPFS de uso geral. Um Fileset é uma nova estrutura de árvore de diretórios no CPFS de uso geral. É um pequeno sistema de arquivos dentro do sistema de arquivos pai e possui um espaço de inode independente e recursos de gerenciamento.
O Fileset já deve existir quando você cria um fluxo de dados e não pode ser aninhado com outros Filesets. Você pode criar apenas um fluxo de dados em um Fileset, que corresponde 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 do bucket OSS exceder esse limite, um erro
no spaceserá relatado ao criar novos arquivos.
NotaSe o Fileset já contiver dados, os dados existentes no Fileset serão limpos e substituídos pelos dados sincronizados do OSS após a criação do fluxo de dados.
-
Atualização automática
Após configurar a 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 CPFS de uso geral. Os dados alterados são carregados sob demanda quando os usuários acessam arquivos, ou você pode iniciar uma tarefa de fluxo de dados para carregar os dados.
A atualização automática depende do EventBridge para coletar eventos de modificação de objetos do bucket OSS de origem. Você deve primeiro ativar o EventBridge.
O escopo da atualização automática é o prefixo, que é especificado pelo parâmetro RefreshPath. Você pode configurar no máximo cinco diretórios de atualização automática para um único fluxo de dados.
O intervalo de atualização automática (AutoRefreshInterval) especifica o tempo de atualização automática configurado no CPFS de uso geral para verificar se existem atualizações de dados dentro do prefixo no bucket OSS de origem. Se existirem atualizações de dados, uma tarefa de atualização automática será iniciada. Se a frequência de eventos de modificação de objetos no bucket OSS de origem exceder a capacidade de processamento do fluxo de dados do CPFS de uso geral, as tarefas de atualização automática se acumularão, as atualizações de metadados serão atrasadas e o status do fluxo de dados se tornará
Misconfigured. Você pode resolver isso atualizando as especificações do fluxo de dados ou reduzindo a frequência de modificações do OSS.Ao configurar a atualização automática para um prefixo em um fluxo de dados do Cloud Parallel File Storage de uso geral, um barramento de eventos é criado no lado do usuário e uma regra de evento é criada para o prefixo do bucket OSS de origem. Quando um objeto é modificado dentro do prefixo do bucket OSS de origem, um evento do OSS é gerado no EventBridge e processado pelo fluxo de dados do CPFS de uso geral.
NotaO barramento de eventos e a regra de evento criados pelo Cloud Parallel File Storage de uso geral no EventBridge contêm a descrição
Create for cpfs auto refresh. Você não pode modificar ou excluir o barramento de eventos ou a regra de evento. Caso contrário, a atualização automática não poderá funcionar normalmente. -
Armazenamento de origem
O armazenamento de origem suporta apenas OSS. O armazenamento de origem (SourceStorage) de um fluxo de dados deve ser um bucket do OSS.
Os fluxos de dados do CPFS de uso geral suportam o acesso ao OSS nos modos criptografado e não criptografado. Se você selecionar o modo criptografado (SSL) para acessar o OSS, deverá confirmar se a criptografia em trânsito do bucket OSS suporta acesso criptografado.
Se vários fluxos de dados do CPFS de uso geral ou vários fluxos de dados do mesmo sistema de arquivos Cloud Parallel File Storage de uso geral usarem o mesmo bucket OSS como armazenamento de origem, você deverá ativar o versionamento para o bucket OSS para evitar conflitos de dados quando vários sistemas de arquivos CPFS de uso geral exportarem dados para a mesma origem.
- Fluxos de dados OSS entre regiões não são suportados. O bucket OSS deve estar na mesma região que o sistema de arquivos CPFS de uso geral.
Nota
Antes de criar um fluxo de dados, você deve adicionar uma tag (chave: cpfs-dataflow, valor: true) ao bucket OSS de origem para que o fluxo de dados do CPFS de uso geral possa acessar os dados no bucket. Durante o uso do fluxo de dados, não exclua ou modifique esta tag. Caso contrário, o fluxo de dados do CPFS de uso geral não poderá acessar os dados no bucket.
-
-
Notas de uso para CPFS para Lingjun.
Esta seção se aplica a sistemas de arquivos CPFS para Lingjun cujos IDs começam com
bmcpfs-.-
Armazenamento de origem
O armazenamento de origem suporta apenas OSS. O armazenamento de origem (SourceStorage) de um fluxo de dados deve ser um bucket do OSS.
Os fluxos de dados do CPFS para Lingjun suportam o acesso ao OSS nos modos criptografado e não criptografado. Se você selecionar o modo criptografado (SSL) para acessar o OSS, deverá confirmar se a criptografia em trânsito do bucket OSS suporta acesso criptografado.
Se vários fluxos de dados do CPFS para Lingjun ou vários fluxos de dados do mesmo sistema de arquivos CPFS para Lingjun usarem o mesmo bucket OSS como armazenamento de origem, você deverá ativar o versionamento para o bucket OSS para evitar conflitos de dados quando vários sistemas de arquivos CPFS para Lingjun exportarem dados para a mesma origem.
Fluxos de dados OSS entre regiões não são suportados. O bucket OSS deve estar na mesma região que o sistema de arquivos CPFS para Lingjun.
O CPFS para Lingjun 2.6.0 e posterior suportam a criação de fluxos de dados usando buckets OSS entre contas.
O parâmetro account id é necessário apenas quando você usa um bucket OSS entre contas.
- Antes de usar um bucket OSS entre contas, você deve autorizar a conta. Para obter instruções específicas de autorização, consulte Autorização de fluxo de dados entre contas.
Nota
Antes de criar um fluxo de dados, você deve adicionar uma tag (chave: cpfs-dataflow, valor: true) ao bucket OSS de origem para que o fluxo de dados do CPFS para Lingjun possa acessar os dados no bucket. Durante o uso do fluxo de dados, não exclua ou modifique esta tag. Caso contrário, o fluxo de dados do CPFS para Lingjun não poderá acessar os dados no bucket.
-
Limites de fluxos de dados em sistemas de arquivos.
No caminho do sistema de arquivos associado ao fluxo de dados, você não pode renomear um diretório não vazio. Caso contrário, um erro Permission Denied será relatado ou o diretório não estará vazio.
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 de meia largura (()).
Caminhos ultralongos não são suportados. O comprimento máximo do caminho suportado pelos fluxos de dados é de 1.023 caracteres.
-
Limites na importação de fluxo de dados.
Após um arquivo de link simbólico ser importado para o CPFS para Lingjun, ele é convertido em um arquivo regular contendo dados, e as informações do link simbólico são perdidas.
Se o bucket 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.
-
Limites na exportação de fluxo de dados
Após um arquivo de link simbólico ser sincronizado com o OSS, o arquivo apontado pelo link simbólico não é sincronizado. Em vez disso, ele se torna um objeto vazio regular sem dados.
Arquivos de hard link são sincronizados com o OSS apenas como arquivos regulares.
Quando arquivos de soquete, dispositivo ou pipe são exportados para um bucket OSS, eles se tornam objetos vazios regulares sem dados.
Caminhos de diretório com mais de 1.023 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 gerar um valor para este parâmetro em seu cliente para garantir que o valor seja exclusivo em diferentes solicitações. O token de cliente pode conter apenas caracteres ASCII e não pode exceder 64 caracteres de comprimento. Para obter mais informações, consulte Como garantir a idempotência. Nota
Se você não especificar este parâmetro, o sistema usará automaticamente o RequestId da solicitação de API como o token de cliente. O RequestId de cada solicitação de API pode ser diferente. |
123e4567-e89b-12d3-a456-42665544**** |
| DryRun |
boolean |
Não |
Especifica se deve ser realizado um dry run na solicitação de criação. Um dry run ajuda a verificar a validade dos parâmetros e o inventário sem realmente criar a instância ou incorrer em taxas. 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 no bucket de armazenamento de origem. Limites:
Nota
Este parâmetro é necessário quando o tipo de sistema de arquivos é CPFS para Lingjun. |
/prefix/ |
| FsetId |
string |
Não |
O ID do Fileset. Nota
Este parâmetro é necessário quando o tipo de sistema de arquivos é CPFS de uso geral. |
fset-1902718ea0ae**** |
| FileSystemPath |
string |
Não |
O diretório no sistema de arquivos CPFS para Lingjun. Limites:
Nota
Este parâmetro é necessário quando o tipo de sistema de arquivos é CPFS para 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 de uso geral. |
|
|
object |
Não |
|||
| RefreshPath |
string |
Não |
O diretório de atualização automática. O CPFS de uso geral registra eventos de modificação de dados do armazenamento de origem e verifica se os dados de origem neste diretório foram atualizados para importar automaticamente os dados atualizados. Valor padrão: vazio. As atualizações de dados no armazenamento de origem não são importadas automaticamente para o CPFS de uso geral. Você deve criar tarefas manualmente para importar atualizações. Limites:
|
/prefix1/prefix2/ |
| AutoRefreshPolicy |
string |
Não |
A política de atualização automática. Esta política determina como as atualizações de dados da origem são importadas para o CPFS de uso geral 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 de uso geral. Valores válidos:
|
None |
| AutoRefreshInterval |
integer |
Não |
O intervalo de atualização automática. O CPFS de uso geral verifica se existem atualizações de dados no diretório neste intervalo. Se existirem 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 de uso geral. |
10 |
| Throughput |
integer |
Não |
A largura de banda de transmissão máxima do fluxo de dados. Unidade: MB/s. Valores válidos:
Nota
A largura de banda de transmissão 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 de uso geral. Valores válidos:
|
600 |
Elementos de resposta
|
Elemento |
Tipo |
Descrição |
Exemplo |
|
object |
|||
| DataFlowId |
string |
O ID do fluxo de dados. |
df-194433a5be31**** |
| RequestId |
string |
O ID da solicitação. |
473469C7-AA6F-4DC5-B3DB-A3DC0D****3E |
Exemplos
Resposta de sucesso
JSON formato
{
"DataFlowId": "df-194433a5be31****",
"RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0D****3E"
}
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 é inválido. |
| 400 | MissingFsetId | FsetId is mandatory for this action. | O parâmetro Fileset ID 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 de API atual não oferece suporte a esta versão do sistema de arquivos. |
| 400 | DataFlow.Bucket.RegionUnmatched | The bucket and file system are not in the same region. | O bucket e o sistema de arquivos não estão na mesma região. |
| 400 | Oss.Path.Conflict | The OSS directory conflicts and is occupied by other data flow tasks. | O diretório OSS já está em uso por outra tarefa de fluxo de dados. |
| 403 | OperationDenied.DependencyViolation | The operation is denied due to dependancy violation. | As condições para a realização desta 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. | A criação do fluxo de dados falhou devido a um status anormal do fileset. |
| 403 | OperationDenied.ConflictOperation | The operation is denied due to a conflict with an ongoing operation. | O fluxo de dados não pode ser criado devido a um conflito com a operação atual do sistema de arquivos. |
| 403 | OperationDenied.DependMountpoint | The operation is denied because no mount point is found. | A criação do fluxo de dados falhou porque o sistema de arquivos não possui um destino de montagem. |
| 403 | OperationDenied.FsetAlreadyInUse | The Fset is already bound to another data flow. | O fileset já está em uso. |
| 403 | OperationDenied.AutoRefreshNotSupport | The operation is denied. Auto refresh is not supported. | O sistema de arquivos não oferece suporte a atualizações automáticas. |
| 403 | OperationDenied.DependBucketTag | The operation is denied. The OSS Bucket tag cpfs-dataflow is missing. | A criação do fluxo de dados falhou porque o bucket do OSS não possui a tag cpfs-dataflow. |
| 403 | OperationDenied.DataFlowNotSupported | The operation is not supported. | O sistema de arquivos não oferece suporte a fluxos de dados. |
| 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 de operações de 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. | O formato de descrição especificado é 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 permissões de acesso para o 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 renovaçã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 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.