BR112021005882A2 - método e aparelho de gerenciamento de dados, e servidor - Google Patents

método e aparelho de gerenciamento de dados, e servidor Download PDF

Info

Publication number
BR112021005882A2
BR112021005882A2 BR112021005882-6A BR112021005882A BR112021005882A2 BR 112021005882 A2 BR112021005882 A2 BR 112021005882A2 BR 112021005882 A BR112021005882 A BR 112021005882A BR 112021005882 A2 BR112021005882 A2 BR 112021005882A2
Authority
BR
Brazil
Prior art keywords
identifier
user
aei
virtual machine
request
Prior art date
Application number
BR112021005882-6A
Other languages
English (en)
Inventor
Zheng Zhu
Zhichang Lv
Xinghui Tian
Original Assignee
Huawei Technologies Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co., Ltd. filed Critical Huawei Technologies Co., Ltd.
Publication of BR112021005882A2 publication Critical patent/BR112021005882A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Abstract

MÉTODO E APARELHO DE GERENCIAMENTO DE DADOS, E SERVIDOR. Este pedido fornece um método e aparelho de gerenciamento de dados, e um servidor. O método inclui: receber, por um servidor de gerenciamento, uma primeira solicitação; determinar, com base em um identificador de um primeiro usuário na primeira solicitação, se um contêiner de locatário de sombra associado ao identificador do primeiro usuário existe; e se o contêiner de locatário de sombra associado ao identificador do primeiro usuário existir, armazenar, no contêiner de locatário de sombra associado ao identificador do primeiro usuário, uma imagem de mecanismo de aceleração AEI que o primeiro usuário solicita registrar, onde um contêiner de locatário de sombra é usado para armazenar uma AEI de um usuário especificado, e cada contêiner de locatário de sombra está em uma correspondência um-a-um com um usuário. Desta forma, a segurança de armazenamento da AEI é melhorada.

Description

MÉTODO E APARELHO DE GERENCIAMENTO DE DADOS, E SERVIDOR CAMPO TÉCNICO
[001] Este pedido se refere ao campo das tecnologias de computação em nuvem e, em particular, a um método e aparelho de gerenciamento de dados, e um servidor.
FUNDAMENTOS
[002] Um servidor em nuvem acelerado de arranjo de portas programáveis em campo (field programmable gate array, FPGA) é um servidor em nuvem elástico baseado em FPGA. O servidor em nuvem acelerado de FPGA pode ser usado para fornecer uma ferramenta e um ambiente para um usuário desenvolver e implantar facilmente um serviço de aceleração baseado em FPGA, e fornecer ao usuário um serviço em nuvem de FPGA que é fácil de usar, econômico, ágil e seguro.
[003] O servidor em nuvem acelerado de FPGA pode ser usado para desenvolver, implantar e usar um módulo de kernel de propriedade intelectual (propriedade intelectual, IP). O módulo de kernel de IP pode ser um circuito integrado, dispositivo ou componente pré-projetado, não verificado ou verificado que tem uma função determinada. Depois de desenvolver o módulo de kernel de IP, o usuário pode armazenar uma imagem de mecanismo de aceleração (accelerated engine image, AEI) associada ao módulo de kernel de IP em um servidor em nuvem. O usuário e outro usuário que obtém permissão para usar o módulo de kernel de IP podem carregar e usar a AEI associada ao módulo de kernel de IP para implementar uma função do módulo de kernel de IP.
[004] No entanto, atualmente, a AEI associada ao módulo de kernel de IP desenvolvido pelo usuário é uniformemente armazenada e gerenciada, e isso apresenta riscos de segurança.
SUMÁRIO
[005] Este pedido fornece um método e aparelho de gerenciamento de dados, e um servidor, para resolver um problema técnico de que há riscos de segurança no armazenamento e gerenciamento uniformes atuais de uma AEI de um usuário.
[006] De acordo com um primeiro aspecto, um método de gerenciamento de dados é fornecido. Depois que uma primeira solicitação é recebida, é determinado, com base em um identificador de um primeiro usuário na primeira solicitação, se existe um contêiner de locatário de sombra associado ao identificador do primeiro usuário; e se o contêiner de locatário de sombra associado ao identificador do primeiro usuário existir, uma AEI que o primeiro usuário solicita para registrar é armazenada no contêiner de locatário de sombra associado ao identificador do primeiro usuário, onde a primeira solicitação é usada para solicitar registrar a AEI personalizada pelo primeiro usuário, o contêiner de locatário de sombra é usado para armazenar a AEI do primeiro usuário, e cada contêiner de locatário de sombra está em uma correspondência um-a-um com um usuário.
[007] De acordo com a maneira anterior, a AEI solicitada pelo primeiro usuário para o registro pode ser armazenada no contêiner de locatário de sombra. Como o contêiner de locatário de sombra armazena uma AEI de um usuário especificado, a segurança de armazenamento da AEI pode ser melhorada.
[008] Em uma implementação possível, quando é determinado se o contêiner de locatário de sombra associado ao identificador do primeiro usuário na primeira solicitação existe, um identificador do contêiner de locatário de sombra associado ao identificador do primeiro usuário pode ser determinado de acordo a uma primeira regra, em que a primeira regra é usada para indicar uma regra de geração do identificador do contêiner de locatário de sombra. Após a determinação do identificador do contêiner de locatário de sombra, se um contêiner de locatário de sombra com o identificador existe em todos os contêineres de locatário de sombra criados atualmente pode ser consultado. Se o contêiner de locatário de sombra com o identificador existir, o contêiner de locatário de sombra é o contêiner de locatário de sombra associado ao identificador do primeiro usuário. Portanto, o contêiner de locatário de sombra existente associado ao identificador do primeiro usuário pode ser consultado com base no identificador do primeiro usuário na primeira solicitação.
[009] Em uma implementação possível, se for determinado que o contêiner de locatário de sombra associado ao identificador do primeiro usuário não existe, o espaço de armazenamento com um tamanho predefinido pode ser selecionado como o contêiner de locatário de sombra associado ao identificador do primeiro do usuário. Em seguida, a AEI registrada pelo primeiro usuário pode ser armazenada no contêiner de locatário de sombra recém-criado. Portanto, quando nenhum contêiner de locatário de sombra associado ao identificador do primeiro usuário existe em todos os contêineres de locatário de sombra atualmente criados, o contêiner de locatário de sombra associado ao identificador do primeiro usuário é criado e a AEI registrada pelo primeiro usuário é armazenada no contêiner de locatário de sombra.
[0010] Em uma possível implementação, se uma segunda solicitação for recebida, pode ser determinado, com base em um identificador de um segundo usuário e no identificador da AEI que estão incluídos na segunda solicitação, que a verificação de permissão do segundo usuário tem sucesso. Em seguida, a AEI é carregada em uma placa FPGA com base nas informações sobre a placa FPGA na segunda solicitação, onde a placa FPGA é uma placa FPGA associada a uma primeira máquina virtual associada ao segundo usuário. Desta forma, a AEI pode ser carregada, com base na segunda solicitação, na placa FPGA associada à primeira máquina virtual associada ao segundo usuário. Portanto, o segundo usuário pode usar a AEI na placa FPGA por meio da primeira máquina virtual.
[0011] Em uma implementação possível, se o identificador do segundo usuário transportado na segunda solicitação incluir um identificador da primeira máquina virtual, quando for determinado se a verificação de permissão do segundo usuário foi bem-sucedida, um identificador de uma imagem correspondente ao identificador da primeira máquina virtual pode ser determinado de acordo com uma primeira correspondência; e um identificador de pelo menos uma AEI correspondente ao identificador da imagem é determinado de acordo com uma segunda correspondência. Se o identificador da AEI incluído na segunda solicitação estiver incluído no identificador determinado de pelo menos uma AEI, pode-se determinar que a verificação da permissão do segundo usuário foi bem-sucedida; e, caso contrário, pode ser determinado que a verificação de permissão do segundo usuário falha. A primeira correspondência pode indicar uma correspondência entre um identificador de uma máquina virtual e um identificador de uma imagem que pode ser usada pela máquina virtual, e a segunda correspondência pode indicar uma correspondência entre um identificador de uma imagem e um identificador de uma AEI. Portanto, a verificação da permissão pode ser realizada no segundo usuário com base no identificador do segundo usuário e no identificador da AEI.
[0012] Em uma implementação possível, se uma terceira solicitação for recebida, em resposta à terceira solicitação, um recurso ocupado por uma segunda máquina virtual pode ser liberado e uma AEI em uma placa FPGA associada à segunda máquina virtual pode ser apagada de forma assíncrona. A terceira solicitação é usada por um terceiro usuário para solicitar a exclusão da segunda máquina virtual, onde a segunda máquina virtual é uma máquina virtual associada ao terceiro usuário. Dessa forma, o passo de liberação de recurso e o passo de eliminação da placa FPGA que estão em processo de exclusão da máquina virtual podem ser dissociados. Isso evita uma falha de liberação de recurso da máquina virtual causada por uma falha de um programa em um programa de limpeza de placa FPGA.
[0013] Em uma implementação possível, quando a AEI na placa FPGA associada à segunda máquina virtual é apagada, a placa FPGA pode ser definida para um status a-ser-limpo, e uma interface de limpeza de AEI da placa FPGA é invocada para limpar a AEI. Depois disso, se a AEI na placa FPGA foi limpa com sucesso pode ser determinado na duração predefinida. Se a AEI na placa FPGA for limpa com sucesso, definir a placa FPGA para um status disponível e, caso contrário, será determinado que a placa FPGA não foi limpa com sucesso. Se uma quantidade de vezes que a placa FPGA não foi limpa com sucesso atingir um limiar, um alarme é gerado. Portanto, uma maneira de limpar a AEI na placa FPGA é fornecida, e um estado da placa FPGA que não foi limpo com sucesso é definido para o status a-ser-limpo, para evitar vazamento da AEI que não foi limpa porque a placa FPGA é realocada para uma máquina virtual associada a outro usuário. Além disso, quando a quantidade de vezes que a placa FPGA não foi limpa com sucesso atinge o limiar predefinido, o alarme pode ser gerado para evitar que a placa FPGA permaneça no status a-ser-limpo por um longo período.
[0014] De acordo com um segundo aspecto, este pedido fornece um aparelho de gerenciamento de dados. O aparelho inclui módulos configurados para realizar o método de resolução de problemas em qualquer um do primeiro aspecto ou as possíveis implementações do primeiro aspecto. De acordo com um terceiro aspecto, este pedido fornece um servidor. O servidor inclui um processador, uma memória, uma interface de comunicações e um barramento. O processador, a memória e a interface de comunicações são conectados e se comunicam por meio do barramento. A memória é configurada para armazenar uma instrução executável por computador. Quando o aparelho roda, o processador executa a instrução executável por computador na memória para realizar, usando recursos de hardware no aparelho, o passo de operação do método de acordo com qualquer um do primeiro aspecto ou as possíveis implementações do primeiro aspecto.
[0015] De acordo com um quarto aspecto, este pedido fornece um sistema de computação em nuvem de FPGA. O sistema de computação em nuvem de FPGA inclui um servidor de serviço e um servidor de gerenciamento. O servidor de gerenciamento pode ser configurado para realizar os passos de operação do método em qualquer um do primeiro aspecto ou as possíveis implementações do primeiro aspecto.
[0016] De acordo com um quinto aspecto, este pedido fornece um meio de armazenamento legível por computador. O meio de armazenamento legível por computador armazena uma instrução. Quando a instrução roda em um computador, o computador é habilitado para realizar o método em qualquer um do primeiro aspecto ou as possíveis implementações do primeiro aspecto.
[0017] De acordo com um sexto aspecto, este pedido fornece um produto de programa de computador incluindo uma instrução. Quando a instrução roda em um computador, o computador é habilitado para realizar o método em qualquer um do primeiro aspecto ou as possíveis implementações do primeiro aspecto.
[0018] Com base nas implementações fornecidas nos aspectos anteriores, este pedido pode ainda combinar as implementações para fornecer mais implementações.
BREVE DESCRIÇÃO DOS DESENHOS
[0019] A Figura 1 é um diagrama esquemático de uma arquitetura de um sistema de computação em nuvem de FPGA de acordo com uma modalidade deste pedido; a Figura 2 é um diagrama esquemático de uma arquitetura de outro sistema de computação em nuvem de FPGA de acordo com uma modalidade deste pedido; a Figura 3 é um fluxograma esquemático de um método para registrar uma AEI de acordo com uma modalidade deste pedido; a Figura 4A e Figura 4B são um fluxograma esquemático de um método de gerenciamento de dados de acordo com uma modalidade deste pedido; a Figura 5 é um fluxograma esquemático de outro método de gerenciamento de dados de acordo com uma modalidade deste pedido; a Figura 6 é um fluxograma esquemático de outro método de gerenciamento de dados de acordo com uma modalidade deste pedido; a Figura 7 é um diagrama estrutural esquemático de um aparelho de gerenciamento de dados de acordo com uma modalidade deste pedido; e a Figura 8 é um diagrama estrutural esquemático de outro aparelho de gerenciamento de dados de acordo com uma modalidade deste pedido.
DESCRIÇÃO DE MODALIDADES
[0020] Para tornar os objetivos, soluções técnicas e vantagens deste pedido mais claros, a seguir é descrito ainda este pedido em detalhes com referência aos desenhos anexos.
[0021] A seguir é explicado termos relacionados neste pedido.
[0022] 1. Pelo menos um significa uma ou mais, ou seja, incluindo um, dois, três ou mais.
[0023] 2. Uma pluralidade significa dois ou mais, ou seja, incluindo dois, três ou mais.
[0024] 3. Carregamento pode significar que um arquivo é copiado de A para B, de modo que ambos A e B têm o arquivo. Alternativamente, um arquivo pode ser cortado de A para B e, após o corte, apenas B fica com o arquivo.
[0025] 4. Um identificador (identifier) pode ser uma informação que identifica unicamente um objeto, incluindo um número, um nome, informações de descrição, e semelhantes. Por exemplo, um identificador de uma AEI pode incluir um ou mais de um número da AEI, um nome da AEI e informações de descrição da AEI.
[0026] 5. Um servidor em nuvem acelerado de FPGA é uma máquina virtual ou um servidor que fornece uma ferramenta e um ambiente para o desenvolvimento de serviços e implementa um algoritmo de aceleração de FPGA. O servidor em nuvem acelerado de FPGA pode ser usado para fornecer um kit de desenvolvimento de hardware (hardware development kit, HDK) e um kit de desenvolvimento de software (software development kit, SDK). O HDK pode incluir ferramentas necessárias, como um exemplo de acelerador, um ambiente de codificação, uma plataforma de simulação, uma ferramenta de compilação automática e um kit de ferramentas de depuração e criptografia de código; e o SDK pode incluir ferramentas necessárias, como um exemplo de aplicação, uma interface abstrata de hardware, uma interface abstrata de acelerador, um controlador de acelerador e tempo de execução (runtime) e uma ferramenta de gerenciamento de versão. Um usuário pode desenvolver uma aplicação por meio do servidor em nuvem acelerado de FPGA. Um arquivo desenvolvido pode incluir uma lista de componentes eletrônicos relacionada ao FPGA, um relatório de compilação, um relatório de sequência de tempo e semelhantes, por exemplo, um arquivo de ponto de verificação de projeto (design check point, DCP). O arquivo DCP desenvolvido pode ser armazenado em um depósito de armazenamento em segundo plano correspondente ao usuário.
[0027] 6. Um contêiner de armazenamento, também referido como um contêiner de locatário ou um contêiner de armazenamento de locatário, é o espaço de armazenamento de um servidor em nuvem acelerado de FPGA associado a um usuário. O contêiner de armazenamento é o espaço de armazenamento que pode ser percebido e operado por um usuário. O usuário pode acessar o espaço de armazenamento associado ao usuário por meio do servidor em nuvem. Por exemplo, o usuário pode armazenar um arquivo no espaço de armazenamento e também pode definir o contêiner de armazenamento associado ao usuário. Por exemplo, o usuário pode permitir ou proibir outro usuário de acessar o contêiner de armazenamento associado ao usuário. O contêiner de armazenamento pode ser usado para armazenar dados e arquivos. Por exemplo, o contêiner de armazenamento pode ser usado para armazenar um arquivo DCP desenvolvido pelo usuário e uma AEI. O contêiner de armazenamento relacionado nas modalidades deste pedido pode ser um contêiner de armazenamento de serviço de armazenamento de objeto (object storage service, OBS) ou pode ser implementado usando outro tipo de serviço de armazenamento. Isso não é limitado nas modalidades deste pedido.
[0028] 7. Uma AEI pode ser um arquivo (por exemplo, um arquivo DCP) que é desenvolvido por um usuário através de um servidor em nuvem acelerado de FPGA ou um ambiente de laboratório, ou um arquivo (que pode incluir dados, lógica, um algoritmo, e semelhantes) que está associado a um módulo de kernel de IP e que é obtido após o usuário realizar a compilação por meio do servidor em nuvem acelerado de FPGA. Uma função correspondente do módulo de kernel de IP pode ser implementada por meio de carregar e rodar a AEI. O usuário pode registrar uma AEI customizada pelo usuário através do servidor em nuvem acelerado de FPGA, onde a AEI customizada pelo usuário pode incluir um algoritmo customizado pelo usuário e / ou lógica. Uma função de serviço em nuvem existente ou uma nova função de serviço em nuvem personalizada pelo usuário pode ser implementada por meio da implementação da AEI.
[0029] 8. Um contêiner de locatário de sombra, também conhecido como contêiner de sombra ou contêiner de armazenamento de sombra, é o espaço de armazenamento que está associado a um usuário e que está em um servidor em nuvem acelerado de FPGA. O servidor em nuvem acelerado de FPGA pode armazenar dados e arquivos do usuário no contêiner de locatário de sombra associado ao usuário. No entanto, o usuário não pode perceber que os dados e os arquivos estão armazenados no contêiner de locatário de sombra. Quando o contêiner de locatário de sombra é criado, o contêiner de locatário de sombra pode ser associado a um identificador e / ou informação de autenticação do usuário, para associar o usuário ao contêiner de locatário de sombra. Uma diferença entre o contêiner de locatário de sombra e um contêiner de armazenamento é que o usuário não consegue perceber a existência do contêiner de locatário de sombra. O servidor em nuvem armazena automaticamente os dados que atendem a uma condição no contêiner de locatário de sombra. Quando o usuário invoca dados, o servidor em nuvem identifica automaticamente se os dados estão armazenados no contêiner de locatário de sombra. Quando os dados são armazenados no contêiner de locatário de sombra, o servidor em nuvem invoca automaticamente os dados no contêiner de locatário de sombra. Este processo não pode ser percebido pelo usuário. No entanto, o contêiner de armazenamento é o espaço de armazenamento que pode ser percebido pelo usuário. O usuário pode controlar o servidor em nuvem para armazenar dados no contêiner de armazenamento e controlar o servidor em nuvem para invocar os dados no contêiner de armazenamento.
[0030] 9. Uma placa FPGA, também conhecida como uma placa de aceleração FPGA ou placa de aceleração de dados FPGA, pode implementar lógica complexa e processamento de algoritmo por meio de um FPGA. A placa FPGA é usada em cenários de aplicação de aceleração comuns, como aceleração de algoritmo, análise de big data, computação de alto desempenho e aceleração de hardware de servidor. Um algoritmo da placa de aceleração de FPGA pode ser modificado com base em um requisito real de um usuário. Por exemplo, uma AEI pode ser carregada na placa FPGA por meio de um servidor e uma máquina virtual (virtual machine, VM) que estão associados à placa FPGA, de modo que um algoritmo incluído na AEI seja carregado na placa FPGA. A AEI carregada na placa FPGA é modificada ou excluída através do servidor e da máquina virtual, para modificar ou excluir um algoritmo de aceleração da placa FPGA.
[0031] 10. Uma máquina virtual de FPGA pode ser uma máquina virtual que está em um sistema de computação em nuvem de FPGA e que está associada com pelo menos uma placa FPGA. A máquina virtual de FPGA pode ser configurada para executar um algoritmo carregado na placa FPGA, para implementar uma função correspondente do algoritmo. A máquina virtual de FPGA pode ser associada a um usuário. Por exemplo, o sistema de computação em nuvem de FPGA pode criar uma máquina virtual de FPGA para o usuário de acordo com uma solicitação de usuário e configurar a máquina virtual de FPGA e uma placa FPGA associada à máquina virtual de FPGA com base na permissão, um requisito e semelhantes do usuário.
[0032] 11. As informações de autenticação são informações usadas para a autenticação do usuário. A autenticação significa que quando um usuário acessa um servidor em nuvem de FPGA ou usa um serviço de AEI (por exemplo, criação de uma AEI, rodar uma AEI ou exclusão de uma AEI), a permissão do usuário é autenticada com base nas informações de autenticação do usuário. Apenas um usuário autenticado pode acessar o servidor em nuvem de FPGA ou usar o serviço de AEI, para evitar que um usuário que não tenha uma identidade autêntica ou cujas informações de autenticação sejam inautênticas e inválidas acesse o servidor em nuvem de FPGA ou use o serviço de AEI. Isso melhora a segurança do servidor em nuvem de FPGA. As informações de autenticação do usuário incluem, mas não se limitam a, um identificador de chave de acesso (access key ID, AK) e uma chave de acesso secreta (secret access key, SK) do usuário. A autenticação neste documento pode ser autenticação de gerenciamento de identidade e acesso (Identity and Access Management, IAM).
[0033] A seguir é descrito as modalidades deste pedido em detalhes com referência aos desenhos anexos. Em primeiro lugar, um sistema de computação em nuvem fornecido em uma modalidade deste pedido é descrito e um método de gerenciamento de dados fornecido neste pedido pode ser aplicado ao sistema. Em seguida, um aparelho de gerenciamento de dados fornecido em uma modalidade deste pedido é descrito. Finalmente, o método de gerenciamento de dados fornecido em uma modalidade deste pedido é descrito.
[0034] Como mostrado na Figura 1, o sistema de computação em nuvem de FPGA 100 fornecido em uma modalidade deste pedido pode ser um ambiente virtualizado incluindo uma pluralidade de servidores. O sistema de computação em nuvem de FPGA 100 pode incluir uma pluralidade de servidores de gerenciamento 102 e uma pluralidade de servidores de serviço
101. A pluralidade de servidores de gerenciamento 102 pode interagir uns com os outros através de uma interface de comunicações, e a pluralidade de servidores de serviço 101 também pode interagir com cada um outro através de uma interface de comunicações.
[0035] Cada servidor de serviço 101 pode ser conectado a uma ou mais placas FPGA 104 e uma ou mais máquinas virtuais 103 podem ser rodadas em cada servidor de serviço
101. A máquina virtual 103 aqui pode ser uma máquina virtual de FPGA ou uma máquina virtual padrão, e cada máquina virtual de FPGA pode ser associada a uma ou mais placas FPGA. A máquina virtual de FPGA pode ser configurada para executar um algoritmo de aceleração carregado em uma placa FPGA associada à máquina virtual de FPGA (por exemplo, uma AEI carregada na placa FPGA é invocada para implementar uma função relacionada a AEI) e a máquina virtual padrão é uma máquina virtual que não está associada a uma placa FPGA.
[0036] O sistema de computação em nuvem de FPGA 100 pode criar, para um usuário, uma ou mais máquinas virtuais padrão ou máquinas virtuais de FPGA associadas ao usuário. Por exemplo, como mostrado na Figura 1, a máquina virtual 103 é rodada no servidor de serviço 101, e o usuário pode acessar o sistema de computação em nuvem de FPGA 100 por meio da máquina virtual padrão ou da máquina virtual de FPGA. Especificamente, assume-se que a máquina virtual 103 associada a um primeiro usuário é a máquina virtual de FPGA, e o primeiro usuário pode invocar, por meio da máquina virtual 103, uma AEI carregada por código de instrução em uma placa FPGA associada à máquina virtual 103, para rodar a AEI.
[0037] O servidor de gerenciamento 102 pode ser configurado para gerenciar o sistema de computação em nuvem de FPGA 100, incluindo, mas não se limitando a: compilar e gerar uma AEI; criar, modificar ou excluir a máquina virtual 103 (a máquina virtual de FPGA ou a máquina virtual padrão); e carregar ou excluir a AEI na placa FPGA associada à máquina virtual de FPGA. O servidor de gerenciamento 102 pode fornecer pelo menos um serviço em nuvem por meio de software, hardware ou uma combinação de software e hardware. Por exemplo, o servidor de gerenciamento 102 pode ser configurado para fornecer um serviço de imagem de FPGA (FPGA image service) e um serviço de gerenciamento de AEI (AEI management service), e é configurado para gerenciar a AEI. Por exemplo, o serviço de imagem de FPGA pode obter um arquivo DCP carregado pelo usuário, e é configurado para: armazenar o arquivo de AEI e obter e consultar informações relacionadas à AEI. O serviço de gerenciamento de AEI pode ser usado para compilar e gerar o arquivo de AEI com base no arquivo DCP. Durante a implementação, a pluralidade de servidores de gerenciamento 102 pode gerenciar em conjunto um ou mais servidores de serviço 101. A pluralidade de servidores de gerenciamento pode usar um modo de trabalho ativo / em espera. Especificamente, um servidor de gerenciamento 102 é um servidor de gerenciamento em um status ativo e um ou mais outros servidores de gerenciamento 102 são servidores de gerenciamento em um status de espera (a interação entre o servidor de gerenciamento em espera e o servidor de serviço 101 é indicada por uma linha tracejada na Figura 1). Ao mesmo tempo, apenas o servidor de gerenciamento no status ativo é usado para gerenciar o servidor de serviço. Quando o servidor de gerenciamento no status ativo está com defeito, uma pluralidade de servidores de gerenciamento no status de espera pode selecionar novamente um novo servidor de gerenciamento no status ativo, e o novo servidor de gerenciamento no status ativo assume a tarefa de gerenciamento do servidor de serviço. Opcionalmente, a pluralidade de servidores de gerenciamento também pode usar outro modo de trabalho. Por exemplo, a pluralidade de servidores de gerenciamento usa um modo de trabalho de compartilhamento de carga e os servidores de gerenciamento gerenciam em conjunto a pluralidade de servidores de serviço. Um modo de trabalho da pluralidade de servidores de gerenciamento não é limitado nesta modalidade deste pedido. Para facilidade de descrição, um exemplo no qual a pluralidade de servidores de gerenciamento está no modo de trabalho ativo / em espera é usado para descrição na seguinte descrição de uma modalidade deste pedido.
[0038] Deve ser entendido que uma arquitetura mostrada na Figura 1 mostra apenas uma possível estrutura de hardware do sistema de computação em nuvem de FPGA 100. Além da estrutura mostrada na figura, um componente necessário pode ser incluído. Por exemplo, o sistema de computação em nuvem de FPGA 100 pode incluir ainda um dispositivo de armazenamento, configurado para armazenar dados, onde o dispositivo de armazenamento pode incluir um dispositivo de nó de armazenamento ou um agrupamento de dispositivo de nó de armazenamento. Além disso, também deve ser entendido que a arquitetura mostrada na Figura 1 é apenas um exemplo e o sistema de gerenciamento de dados fornecido neste pedido não está limitado à mesma. Para ser específico, cada servidor de serviço no sistema de gerenciamento de dados pode rodar uma máquina virtual, ou pode rodar a pluralidade de máquinas virtuais. Cada máquina virtual pode ser associada a uma placa FPGA ou pode estar associada a uma pluralidade de placas FPGA.
[0039] A Figura 2 é um diagrama esquemático de uma arquitetura lógica de um sistema de computação em nuvem de FPGA 100 de acordo com uma modalidade deste pedido. Como mostrado na figura, um servidor de gerenciamento 102 e / ou um servidor de serviço 101 fornecem uma página web (web) 201, um serviço de gerenciamento de nuvem 202, um agente de FPGA (agente) 204, um serviço de imagem de FPGA 205, um módulo de armazenamento em nuvem 206, e um banco de dados (database) 207 que são mostrados na Figura 2. Com base na arquitetura mostrada na Figura 2, um usuário pode solicitar a criação de uma máquina virtual de FPGA por meio da página web 201, ou o usuário pode acessar o sistema de computação em nuvem de FPGA 100 por meio de uma máquina virtual de FPGA criada. Uma função da página web 201 pode ser implementada através do software do sistema de computação em nuvem de FPGA 100. Especificamente, o usuário envia, através da página web 201, uma solicitação para criar a máquina virtual de FPGA para o serviço de gerenciamento de nuvem 202 no sistema de computação em nuvem de FPGA 100. O serviço de gerenciamento de nuvem 202 pode controlar, com base na solicitação, o servidor de serviço para criar uma máquina virtual 103, onde a máquina virtual 103 está associada a uma placa FPGA 203. O serviço de gerenciamento de nuvem 202 aqui pode ser implementado por meio uma camada de infraestrutura como serviço (infrastructure as a service, IaaS). A camada IaaS fornece um recurso de armazenamento (por exemplo, o banco de dados 207) e um dispositivo de hardware para o usuário, de modo que o usuário use o recurso de armazenamento e o dispositivo de hardware para acessar o sistema de computação em nuvem de FPGA 100. O serviço de gerenciamento de nuvem 202 aqui é especificamente um software de gerenciamento de virtualização, por exemplo, FusionSphere. A placa FPGA 203 pode implementar a transferência de mensagens através de um módulo predefinido. Por exemplo, em um processo de carregamento de uma AEI através de uma caixa de correio, a placa FPGA 203 recebe uma solicitação que é para carregar a AEI e que é enviada pelo usuário através da máquina virtual 103, e envia a solicitação, para o agente de FPGA 204 através da caixa de correio, para solicitar ao agente de FPGA 204 para carregar a AEI para a placa FPGA
203. O agente de FPGA 204 pode consultar, a partir do serviço de imagem de FPGA 205 com base na solicitação de carregamento enviada pela placa FPGA 203, informações de armazenamento (por exemplo, um endereço de armazenamento) da AEI que precisa ser carregada. Depois de obter as informações de armazenamento da AEI a partir do serviço de imagem de FPGA 205, o agente de FPGA 204 pode baixar a AEI do módulo de armazenamento em nuvem 206 com base nas informações de armazenamento da AEI. O módulo de armazenamento em nuvem 206 é um módulo de armazenamento de dados do sistema de computação em nuvem de FPGA 100 e é configurado para armazenar um DCP e / ou AEI carregada pelo usuário. A placa FPGA 203 pode incluir ainda um módulo de carregamento dinâmico (iCAP), configurado para carregar a AEI obtida para a placa FPGA 203.
[0040] Por exemplo, uma função do servidor de serviço mostrado na Figura 2 pode ser implementado pelo servidor de serviço 101 mostrado na Figura 1; uma função da placa FPGA 203 pode ser implementada pela placa FPGA 104 conectado ao servidor de serviço 101 mostrado na Figura 1; e o agente de FPGA 204 pode ser implementado pelo servidor de serviço 101 por meio de software. As funções da página web 201, o serviço de gerenciamento de nuvem 202, o banco de dados 207, o serviço de imagem de FPGA 205 e o módulo de armazenamento em nuvem 206 podem ser implementadas pelo servidor de gerenciamento 102 mostrado na Figura 1 por meio de software.
[0041] Com referência ao sistema de computação em nuvem de FPGA 100 mostrado na Figura 1 e Figura 2, a seguir é descrito ainda um método de gerenciamento de dados fornecido em uma modalidade deste pedido. A Figura 3 é um fluxograma esquemático de um método para registrar uma AEI de acordo com uma modalidade deste pedido. O método pode ser implementado pelo servidor de serviço 101 e o servidor de gerenciamento 102 na Figura 1. O método pode incluir os seguintes passos.
[0042] S101: Um servidor de serviço envia uma primeira solicitação, onde o servidor de serviço roda uma máquina virtual associada a um primeiro usuário, a primeira solicitação é usada pelo primeiro usuário para solicitar o registro de uma AEI personalizada pelo primeiro usuário, e a primeira solicitação inclui um identificador do primeiro usuário e um identificador da AEI.
[0043] S102: Um servidor de gerenciamento recebe a primeira solicitação.
[0044] S103: O servidor de gerenciamento determina, com base no identificador do primeiro usuário, se existe um contêiner de locatário de sombra associado ao identificador do primeiro usuário, onde o contêiner de locatário de sombra é usado para armazenar AEIs de usuários especificados, e o primeiro usuário é qualquer um dos usuários especificados.
[0045] S104: Quando o contêiner de locatário de sombra associado ao identificador do primeiro usuário existe, o servidor de gerenciamento armazena a AEI no contêiner de locatário de sombra associado ao identificador do primeiro usuário.
[0046] De acordo com o método anterior, o servidor de gerenciamento pode armazenar a AEI no contêiner de locatário de sombra associado ao identificador do primeiro usuário após a criação da AEI. Como o contêiner de locatário de sombra só é usado para armazenar a AEI do usuário especificado, ao armazenar a AEI que o primeiro usuário solicita para registrar, as AEIs de uma pluralidade de usuários não são mais armazenadas uniformemente. Isso melhora a segurança da AEI.
[0047] Em uma possível implementação, cada contêiner de locatário de sombra está em uma correspondência um-a-um com um usuário. Para melhorar a segurança do contêiner de locatário de sombra, o contêiner de locatário de sombra pode ser usado para armazenar apenas a AEI personalizada que o usuário especificado solicita para registrar. Especificamente, o servidor de gerenciamento pode criar o contêiner de locatário de sombra que está em uma correspondência um-a-um com o primeiro usuário, onde o contêiner de locatário de sombra pode ser associado ao identificador do primeiro usuário, e o contêiner de locatário de sombra é usado para armazenar a AEI que o primeiro usuário solicita para registrar.
[0048] Em outra modalidade possível, uma relação entre o usuário e o contêiner de locatário de sombra pode ser uma relação muitos para um. A criação de um contêiner de locatário de sombra correspondente a uma pluralidade de usuários especificados (incluindo o primeiro usuário) não está excluída neste pedido. O contêiner de locatário de sombra pode ser associado a identificadores da pluralidade de usuários especificados, de modo que o contêiner de locatário de sombra possa ser compartilhado pelo primeiro usuário e outro usuário dos usuários especificados. Como o usuário não pode acessar o contêiner de locatário de sombra ou executar uma operação em um arquivo no contêiner de locatário de sombra, a segurança do contêiner de locatário de sombra pode não ser afetada quando a pluralidade de usuários especificados compartilha o contêiner de locatário de sombra. Com base na mesma razão, a criação de uma pluralidade de contêineres de locatário de sombra correspondendo a uma pluralidade de usuários especificados (incluindo o primeiro usuário) não está excluída neste pedido. A pluralidade de contêineres de locatário de sombra pode ser associada a identificadores da pluralidade de usuários especificados. Deve ser entendido que a associação entre o contêiner de locatário de sombra e o identificador do usuário neste documento pode ser refletida como uma relação de associação entre um identificador do contêiner de locatário de sombra e o identificador do usuário.
[0049] Durante a implementação do passo S101, o primeiro usuário pode acionar, por meio de uma máquina virtual 103, o servidor de serviço para enviar a primeira solicitação. O identificador do primeiro usuário que está incluído na primeira solicitação pode ser um número do usuário (por exemplo, um identificador obtido quando o usuário se registra para obter permissão para usar um sistema de computação em nuvem de FPGA 100, como um nome de usuário e um apelido), informações de autenticação do usuário, e um identificador de uma área na qual o usuário está localizado (por exemplo, um número de área exclusivo corresponde ao Leste da China) ou um identificador da máquina virtual 103 associada ao primeiro usuário. Como o primeiro usuário está associado à máquina virtual 103, o identificador da máquina virtual 103 pode ser usado como o identificador do primeiro usuário para identificar o primeiro usuário. Deve ser entendido que, em implementação específica, um ou mais do identificador do usuário, as informações de autenticação do usuário, o ID da área em que o usuário está localizado, ou o identificador da máquina virtual 103 associado ao primeiro usuário pode ser usado como o identificador do primeiro usuário.
[0050] Além disso, o identificador da AEI na primeira solicitação pode ser um número da AEI, ou pode ser um nome e / ou informações de descrição da entrada de AEI pelo primeiro usuário. Por exemplo, o primeiro usuário pode inserir, por meio de seleção ou digitação, um ou mais dentre o número, o nome ou as informações de descrição da AEI como o identificador da AEI. Depois de obter o identificador da AEI, o servidor de serviço 101 gera a primeira solicitação incluindo o identificador da AEI.
[0051] A AEI que é personalizada pelo primeiro usuário e que é projetada no passo S101 é uma AEI que é gerada por meio de compilação com base em um arquivo desenvolvido (por exemplo, um arquivo DCP) carregado pelo primeiro usuário para o contêiner de locatário e isso inclui lógica e um algoritmo personalizado pelo primeiro usuário. A AEI pode implementar, por meio da lógica e do algoritmo personalizado pelo primeiro usuário, uma função existente ou uma função recém-projetada pelo primeiro usuário. O primeiro usuário pode carregar, por meio do servidor de serviço 101, um arquivo usado para registrar a AEI para o contêiner de locatário associado ao primeiro usuário. O arquivo neste documento pode ser o arquivo DCP que é personalizado pelo primeiro usuário e que é usado para gerar a AEI personalizada.
[0052] Durante a implementação do passo S103, o servidor de gerenciamento 102 pode determinar, de acordo com uma primeira regra, o identificador do contêiner de locatário de sombra associado ao identificador do primeiro usuário e determinar se existe um contêiner de locatário de sombra tendo o identificador. Em caso afirmativo, é determinado que o contêiner de locatário de sombra com o identificador é o contêiner de locatário de sombra associado ao identificador do primeiro usuário. A primeira regra pode ser uma regra de geração usada quando o identificador do contêiner de locatário de sombra é gerado com base no identificador do usuário e a primeira regra pode ser pré-configurada no servidor de gerenciamento 102. Durante a implementação, o servidor de gerenciamento 102 pode armazenar identificadores de contêineres de locatário de sombra que foram criados. Os identificadores dos contêineres locatário de sombra são gerados com base nos identificadores de usuários associados aos contêineres locatário de sombra e de acordo com a primeira regra. Após o identificador do contêiner de locatário de sombra associado ao identificador do primeiro usuário ser determinado de acordo com a primeira regra, o servidor de gerenciamento 102 pode consultar os identificadores dos contêineres locatário de sombra que foram criados, para determinar se o identificador que é do contêiner de locatário de sombra associado ao identificador do primeiro usuário e que é determinado de acordo com a primeira regra é incluído.
[0053] Especificamente, o identificador do primeiro usuário transportado na primeira solicitação pode incluir o identificador do primeiro usuário e o identificador da área em que o primeiro usuário está localizado. A primeira regra pode usar uma sequência de caracteres como identificador do contêiner de locatário de sombra, onde a sequência de caracteres é obtida combinando o identificador do primeiro usuário e o identificador da área em que o primeiro usuário está localizado, que estão no identificador do primeiro usuário, com um número aleatório com um comprimento especificado.
[0054] Se o servidor de gerenciamento 102 determinar que o contêiner de locatário de sombra associado ao identificador do primeiro usuário não existe, o servidor de gerenciamento 102 pode criar o contêiner de locatário de sombra associado ao identificador do primeiro usuário e armazenar a AEI no contêiner de locatário de sombra associado ao identificador do primeiro usuário.
[0055] Especificamente, se o servidor de gerenciamento 102 determinar que o identificador do contêiner de locatário de sombra que foi criado não inclui o identificador que é do contêiner de locatário de sombra associado ao identificador do primeiro usuário e que é determinado de acordo com a primeira regra, o servidor de gerenciamento 102 pode selecionar o espaço de armazenamento com um tamanho predefinido, usar o espaço de armazenamento como o contêiner de locatário de sombra associado ao identificador do primeiro usuário e armazenar a AEI no contêiner de locatário de sombra , para implementar a criação do contêiner de locatário de sombra e o armazenamento da AEI.
[0056] Em uma possível modalidade, se o identificador do primeiro usuário inclui as informações de autenticação do primeiro usuário, o servidor de gerenciamento 102 pode criptografar e armazenar a AEI no contêiner de locatário de sombra com base nas informações de autenticação do primeiro usuário, para melhorar ainda mais a segurança durante o armazenamento da AEI. As informações de autenticação do primeiro usuário podem ser um AK e um SK do primeiro usuário ou outras informações de autenticação. Especificamente, um par de chaves pode ser gerado com base nas informações de autenticação do usuário em um processo de armazenamento de dados. O par de chaves é usado para cifrar a AEI para gerar um texto cifrado, e armazenar o texto cifrado. Quando a AEI é obtida, o texto cifrado é descriptografado com base no par de chaves, para se obter um texto simples, ou seja, a AEI.
[0057] A seguir é descrito ainda um fluxograma esquemático de um método de gerenciamento de dados de acordo com uma modalidade deste pedido com referência à Figura 4A e Figura 4B. Conforme mostrado na figura, o método inclui os seguintes passos.
[0058] S201: Um primeiro usuário carrega, por meio de um servidor de serviço, um arquivo DCP correspondente a uma AEI que o primeiro usuário precisa registrar em um contêiner de locatário associado ao primeiro usuário.
[0059] Durante a implementação, o primeiro usuário carrega, por meio de uma máquina virtual que está no servidor de serviço e que está associada ao primeiro usuário, o arquivo DCP correspondente à AEI que o primeiro usuário precisa registrar no contêiner de armazenamento associado com o primeiro usuário.
[0060] S202: O primeiro usuário envia uma primeira solicitação a um servidor de gerenciamento através do servidor de serviço, para solicitar o registro da AEI, onde a primeira solicitação carrega um identificador do primeiro usuário, um identificador de uma área em que o primeiro usuário está localizado, informações de autenticação do primeiro usuário, e um nome e informações de descrição da AEI que precisa ser registrada.
[0061] S203: O servidor de gerenciamento recebe a primeira solicitação.
[0062] S204: O servidor de gerenciamento tenta autenticar o primeiro usuário com base nas informações de autenticação do primeiro usuário.
[0063] S205: O servidor de gerenciamento obtém o arquivo DCP do contêiner de locatário associado ao primeiro usuário.
[0064] Se o servidor de gerenciamento determinar que o arquivo DCP não existe no contêiner de locatário associado ao primeiro usuário, o servidor de gerenciamento pode relatar um erro, e avisar ao usuário que o arquivo DCP não foi carregado ou ocorreu um erro de carregamento.
[0065] S206: O servidor de gerenciamento compila o arquivo DCP obtido em uma AEI.
[0066] O servidor de gerenciamento pode ainda gerar um identificador (por exemplo, um número ou um nome) da AEI e enviar o identificador gerado da AEI para o servidor de serviço.
[0067] S207: O servidor de gerenciamento determina se existe um identificador de um contêiner de locatário de sombra associado ao identificador do primeiro usuário; e se sim, realizar o passo S208 e, caso contrário, realizar o passo S209.
[0068] S208: O servidor de gerenciamento criptografa e armazena a AEI no contêiner de locatário de sombra associado ao identificador do primeiro usuário.
[0069] S209: O servidor de gerenciamento cria um contêiner de locatário de sombra associado ao identificador do primeiro usuário.
[0070] S210: O servidor de gerenciamento criptografa e armazena a AEI no contêiner de locatário de sombra recém-
criado, associado ao identificador do primeiro usuário.
[0071] De acordo com o método anterior, o servidor de gerenciamento pode registrar a AEI com base na primeira solicitação enviada pelo servidor de serviço e criptografar e armazenar a AEI no contêiner de locatário de sombra associado ao identificador do usuário. Isso melhora a segurança durante o armazenamento da AEI.
[0072] Durante a implementação dos passos anteriores S208 e S210, o servidor de gerenciamento pode ainda associar o identificador da AEI ao contêiner de locatário de sombra, por exemplo, armazenar uma correspondência entre um identificador de uma AEI e um identificador (por exemplo, um número ou um nome) de um contêiner de locatário de sombra. Um local de armazenamento da AEI é consultado com base no identificador da AEI.
[0073] Em uma possível implementação, após a conclusão do processo de registro de AEI, o servidor de gerenciamento continua a realizar um processo de carregamento de AEI. Especificamente, o servidor de gerenciamento recebe uma segunda solicitação, em que a solicitação é usada por um segundo usuário para solicitar o carregamento da AEI. A segunda solicitação pode transportar um identificador do segundo usuário, o identificador da AEI, e informações sobre uma placa FPGA. Depois de receber a segunda solicitação, se o servidor de gerenciamento 102 determinar, com base no identificador do segunda solicitação e no identificador da AEI, que a verificação de permissão do segundo usuário foi bem-sucedida, o servidor de gerenciamento 102 pode carregar, com base nas informações sobre a placa FPGA na segunda solicitação, a AEI associada ao identificador da AEI à placa FPGA associada a uma primeira máquina virtual associada ao segundo usuário, para implementar o carregamento da AEI. Durante a implementação, o segundo usuário pode ser o mesmo que o primeiro usuário. Neste caso, o segundo usuário pode carregar, para a primeira máquina virtual, a AEI que está previamente registrada por meio dos passos mostrados em S101 a S104. Opcionalmente, o segundo usuário pode ser diferente do primeiro usuário. Nesse caso, a permissão de acesso do segundo usuário precisa ser determinada. Quando o segundo usuário satisfaz um requisito de permissão, a AEI registrada pelo primeiro usuário é carregada na primeira máquina virtual associada ao segundo usuário. A permissão de acesso do segundo usuário significa que o segundo usuário tem permissão para usar a AEI registrada pelo primeiro usuário, e a permissão pode ser definida por meio de uma interface de rede.
[0074] Em implementação específica, um método para determinar, pelo servidor de gerenciamento, que a verificação de permissão do segundo usuário é bem-sucedida é o seguinte. O servidor de gerenciamento 102 pode determinar, de acordo com uma primeira correspondência, um identificador de uma imagem correspondente ao identificador do segundo usuário, onde a primeira correspondência indica uma correspondência entre um identificador de um segundo usuário e um identificador de uma imagem que pode ser usado por uma máquina virtual. O servidor de gerenciamento 102 pode determinar, de acordo com uma segunda correspondência, um identificador de pelo menos uma AEI correspondente ao identificador da imagem, onde a segunda correspondência é uma correspondência entre um identificador de uma imagem e um identificador de uma AEI. Se o servidor de gerenciamento 102 determinar que o identificador da AEI transportado na segunda solicitação está incluído no identificador de pelo menos uma AEI determinada de acordo com a segunda correspondência, o servidor de gerenciamento 102 pode determinar que a verificação de permissão do segundo usuário seja bem-sucedida. A imagem aqui relacionada pode estar associada a uma ou mais AEIs. Uma relação de associação entre a imagem e uma ou mais AEIs pode ser refletida como a segunda correspondência anterior. A imagem pode indicar um ou uma série de serviços em nuvem, e cada AEI associada à imagem pode ser especificamente um algoritmo específico relacionado ao serviço em nuvem. Depois que o usuário obtém autorização da imagem, o servidor de gerenciamento 102 pode associar o usuário à imagem, por exemplo, armazenar o identificador do usuário e o identificador da imagem que pode ser usado pelo usuário após o usuário obter a autorização como a primeira correspondência. Deve ser entendido que o usuário pode obter a autorização da imagem por meio de registro, compra ou similar.
[0075] Depois de receber a segunda solicitação, se determinar que a verificação de permissão do segundo usuário foi bem-sucedida, o servidor de gerenciamento 102 pode consultar informações de armazenamento da AEI com base no identificador da AEI. Por exemplo, o servidor de gerenciamento 102 pode determinar, de acordo com uma correspondência entre um identificador de um contêiner de locatário de sombra e um identificador de uma AEI armazenado em um processo de registro de AEI, o identificador do contêiner de locatário de sombra que armazena a AEI. Dessa forma, a AEI pode ser obtida no contêiner de locatário de sombra.
[0076] As informações sobre a placa FPGA na segunda solicitação podem ser usadas para indicar informações de slot da placa FPGA, e o servidor de gerenciamento 102 pode carregar, com base nas informações de slot da placa FPGA, a AEI para a placa FPGA associada com as informações de slot. Por exemplo, os números de slot das placas FPGA associadas à primeira máquina virtual são 0, 1, 2 e 3. As informações sobre a placa FPGA podem ser o número de slot "0" e são usadas para indicar para carregar a AEI para uma placa FPGA cujo número de slot é 0.
[0077] Em uma maneira de implementação possível, o servidor de gerenciamento 102 pode carregar a AEI apenas para placas FPGA que estão em um status disponível e que estão em todas as placas FPGA associadas à primeira máquina virtual. O status disponível é um estado de funcionamento da placa FPGA e o servidor de gerenciamento 102 pode definir o estado de funcionamento da placa FPGA. Por exemplo, o servidor de gerenciamento 102 pode definir o estado de funcionamento da placa FPGA para um status a-ser-limpo, indicando que a placa FPGA atualmente tem dados a-serem- limpos e não pode ser usada para carregar uma nova AEI. O servidor de gerenciamento 102 pode, alternativamente, definir o estado de funcionamento da placa FPGA para ser o status disponível indicando que a placa FPGA pode ser usada para carregar uma nova AEI.
[0078] A segunda solicitação pode ser enviada pelo servidor de serviço rodando a primeira máquina virtual. Por exemplo, se o segundo usuário é o mesmo que o primeiro usuário, a segunda solicitação pode ser enviada pelo servidor de serviço 101 mostrado na Figura 1, onde o servidor de serviço 101 roda a máquina virtual 103 associada ao primeiro usuário. Se o segundo usuário for diferente do primeiro usuário, a segunda solicitação pode ser enviada pelo servidor de serviço 101 mostrado na Figura 1, onde o servidor de serviço 101 roda a máquina virtual 103 associada ao segundo usuário.
[0079] Por exemplo, a seguir é descrito várias maneiras de enviar a segunda solicitação.
[0080] Maneira 1: O segundo usuário aciona a segunda solicitação.
[0081] Especificamente, a segunda solicitação pode ser enviada pelo segundo usuário por meio da máquina virtual. Por exemplo, o segundo usuário insere manualmente, por meio da primeira máquina virtual, um comando de carregamento de AEI, e aciona, por meio do comando, o servidor de serviço rodando a primeira máquina virtual para enviar a segunda solicitação ao servidor de gerenciamento 102.
[0082] Maneira 2: A primeira máquina virtual envia a segunda solicitação em um processo de inicialização.
[0083] A segunda solicitação pode ser enviada, pelo servidor de serviço que roda a primeira máquina virtual e que é acionada pela primeira máquina virtual no processo de inicialização, para o servidor de gerenciamento 102. A primeira máquina virtual pode obter, no processo de inicialização, as informações de autenticação do segundo usuário, o identificador da AEI e as informações sobre a placa FPGA. Especificamente, um exemplo em que a segunda solicitação é enviada pelo servidor de serviço 101 (o servidor de serviço 101 está associado ao segundo usuário) é usado. O segundo usuário pode inserir o identificador da AEI e as informações sobre a placa FPGA em um processo de solicitação do servidor de gerenciamento 102 para registrar a máquina virtual 103 (isto é, a máquina virtual associada ao segundo usuário). O servidor de gerenciamento 102 pode obter as informações de autenticação do segundo usuário no processo em que o segundo usuário solicita o registro da máquina virtual 103. Em seguida, o servidor de gerenciamento 102 pode armazenar as informações de autenticação do segundo usuário, o identificador da AEI e as informações sobre a placa FPGA. No processo de inicialização da máquina virtual 103 após a máquina virtual 103 ser criada, o servidor de serviço 101 rodando a máquina virtual 103 associada ao segundo usuário pode obter as informações de autenticação armazenadas anteriormente do segundo usuário, o identificador da AEI, e as informações sobre a placa FPGA. O servidor de serviço 101 gera a segunda solicitação e envia a segunda solicitação para o servidor de gerenciamento 102. Desta forma, a AEI pode ser carregada automaticamente no processo de inicialização da máquina virtual 103. O processo de inicialização anterior da máquina virtual 103 pode ser um primeiro processo de inicialização após a máquina virtual 103 ser criada.
[0084] É assumido que a segunda solicitação é enviada pelo servidor de serviço 101 que é acionado pela máquina virtual 103 associada ao segundo usuário no processo de inicialização mostrado na Figura 1. A seguir é descrito um método para carregar a AEI mostrada na maneira 2 com referência a um fluxograma de um método para carregar uma
AEI por uma máquina virtual mostrada na Figura 5.
[0085] S301: Um servidor de serviço obtém informações de autenticação de um segundo usuário, um identificador de uma AEI, e informações sobre uma placa FPGA em um processo de inicialização de uma máquina virtual, onde o segundo usuário está associado à máquina virtual.
[0086] S302: O servidor de serviço envia uma segunda solicitação para um servidor de gerenciamento no processo de inicialização da máquina virtual, onde a segunda solicitação é usada pelo segundo usuário para solicitar o carregamento da AEI, e a segunda solicitação inclui as informações de autenticação do segundo usuário, o identificador da AEI e as informações sobre a placa FPGA.
[0087] S303: O servidor de gerenciamento recebe a segunda solicitação.
[0088] S304: O servidor de gerenciamento determina, com base nas informações de autenticação na segunda solicitação e no identificador da AEI, que a verificação de permissão do segundo usuário foi bem-sucedida; e durante a implementação, o servidor de gerenciamento pode ainda determinar, com base nas informações de autenticação na segunda solicitação, que o segundo usuário está autenticado.
[0089] S305: O servidor de gerenciamento carrega, com base nas informações sobre a placa FPGA na segunda solicitação, a AEI associada ao identificador da AEI para uma placa FPGA associada à máquina virtual. Durante a implementação, se uma falha de carregamento de AEI ocorrer durante a execução do passo S305, o servidor de gerenciamento pode ainda solicitar ao usuário através do servidor de serviço, por exemplo, solicitar ao usuário para inserir manualmente um comando de carregamento de AEI, de modo que o servidor de serviço possa ainda enviar a segunda solicitação na maneira anterior 1.
[0090] De acordo com o método mostrado nos passos anteriores S301 a S305, um processo de carregamento de AEI pode ser iniciado automaticamente no processo de inicialização da máquina virtual, de modo que o usuário não precise inserir manualmente o comando de carregamento de AEI após a máquina virtual ser iniciada. Isso torna o processo de carregamento de AEI mais simples e rápido e reduz os riscos de erro quando o usuário insere manualmente o comando de carregamento de AEI.
[0091] Por exemplo, com base na arquitetura lógica mostrada na Figura 2, durante a implementação dos passos mostrados em S301 a S305, em um processo no qual o usuário solicita, por meio de uma página web 201, o registro da máquina virtual 103, o usuário pode inserir o identificador da AEI que o usuário precisa carregar e as informações sobre a placa FPGA. A página web 201 também pode obter as informações de autenticação do usuário no processo de registro da máquina virtual. Em seguida, a página web 201 pode enviar, para um serviço de gerenciamento de nuvem 202 em uma camada IaaS, as informações de autenticação do usuário, o identificador da AEI que o usuário precisa carregar, e as informações sobre a placa FPGA e o serviço de gerenciamento de nuvem 202 armazena as informações anteriores em um banco de dados (metadados) 207 na camada IaaS. Em um primeiro processo de inicialização após a máquina virtual 103 ser criada, a máquina virtual 103 pode obter, a partir do banco de dados 207 por meio de um script de inicialização, o identificador da AEI que o usuário precisa carregar e as informações sobre a placa FPGA, para realizar o passo anterior S301, e acionar o passo anterior S302 em conformidade. Desta forma, a AEI é carregada através dos passos anteriores S301 a S305. Alternativamente, em um caso em que o identificador da AEI que o usuário precisa carregar e as informações sobre a placa FPGA não sejam obtidas por meio do script de inicialização, a máquina virtual 103 pode relatar um erro ao usuário, por exemplo, solicitar ao usuário para inserir manualmente o identificador da AEI que o usuário precisa carregar e as informações sobre a placa FPGA.
[0092] Em outra modalidade possível, quando a máquina virtual associada ao usuário é excluída, um contêiner de locatário de sombra associado ao usuário também precisa ser excluído. Especificamente, o servidor de gerenciamento pode ainda receber uma terceira solicitação, em que a terceira solicitação é usada por um terceiro usuário para solicitar a exclusão de uma segunda máquina virtual associada ao terceiro usuário. Em seguida, o servidor de gerenciamento 102 pode liberar, em resposta à terceira solicitação, um recurso ocupado pela segunda máquina virtual, e limpar de forma assíncrona uma AEI em uma placa FPGA associada à segunda máquina virtual. O terceiro usuário aqui pode ser o mesmo que o primeiro usuário, ou pode ser o mesmo que o segundo usuário, ou pode ser diferente tanto do primeiro usuário quanto do segundo usuário mostrado na Figura 1. Se o terceiro usuário for o mesmo que o primeiro usuário, a terceira solicitação pode ser enviada ao servidor de gerenciamento 102 pelo servidor de serviço 101 que é mostrado na Figura 1 e que é acionado pela VM 103 associada ao primeiro usuário e é usado para solicitar a exclusão da VM 103 associada ao primeiro usuário. Se o terceiro usuário for o mesmo que o segundo usuário, a terceira solicitação pode ser enviada ao servidor de gerenciamento 102 pelo servidor de serviço 101 que é mostrado na Figura 1 e que é acionado pela VM 103 associada ao segundo usuário, e é usado para solicitar a exclusão da VM 103 associada ao segundo usuário.
[0093] Na maneira anterior, o servidor de gerenciamento 102 não precisa mais esperar até que a limpeza da AEI carregada na placa FPGA seja concluída antes de liberar o recurso ocupado pela segunda máquina virtual, para evitar uma falha de liberação que é do recurso ocupado pela segunda máquina virtual e que é causada por uma falha no processo de carregamento da AEI para a placa FPGA. Isso evita o risco de vazamento de dados do usuário causado por uma falha de limpeza do recurso ocupado pela segunda máquina virtual e melhora a segurança de um serviço em nuvem de FPGA.
[0094] Especificamente, ao limpar AEIs em placas FPGA associadas à segunda máquina virtual, o servidor de gerenciamento 102 pode definir cada placa FPGA para um status a-ser-limpo, e realizar a pesquisa para cada duração predefinida (por exemplo, 10 segundos ou 60 segundos) para determinar se a AEI carregada em cada placa FPGA foi limpa. Se for determinado que a placa FPGA foi limpa com sucesso, o servidor de gerenciamento 102 define a placa FPGA para um status disponível; caso contrário, é determinado que a placa FPGA não foi limpa, e o servidor de gerenciamento 102 confirma novamente, após a duração predefinida, se a AEI carregada na placa FPGA foi limpa. O servidor de gerenciamento 102 pode gerar um alarme após determinar que uma quantidade de vezes que a placa FPGA falha em ser limpa atinge um limiar (o limiar pode ser definido como uma constante, por exemplo, 1 ou 3). Por exemplo, o servidor de gerenciamento 102 notifica a segunda máquina virtual para avisar ao terceiro usuário que a placa FPGA não foi limpa e, então, o terceiro usuário pode limpar a AEI na placa FPGA de outra maneira.
[0095] No processo anterior, a placa FPGA não está mais no status disponível antes que a AEI seja limpa, para evitar o carregamento de uma nova AEI de acordo com uma solicitação de outro usuário antes que a AEI na placa FPGA seja limpa, e evitar vazamento da AEI que não é limpa. Isso melhora a segurança do serviço em nuvem de FPGA.
[0096] A seguir, um exemplo em que o terceiro usuário é o primeiro usuário no sistema de computação em nuvem de FPGA 100 mostrado na Figura 1 é usado para descrever um processo no qual o primeiro usuário solicita a exclusão da máquina virtual 103 com referência a um fluxograma mostrado na Figura 6.
[0097] S401: Um servidor de serviço envia uma terceira solicitação a um servidor de gerenciamento, onde a terceira solicitação é usada por um primeiro usuário para solicitar a exclusão de uma máquina virtual associada ao primeiro usuário, e a terceira solicitação inclui informações de autenticação do primeiro usuário.
[0098] S402: O servidor de gerenciamento recebe a terceira solicitação.
[0099] S403: O servidor de gerenciamento determina, com base nas informações de autenticação na terceira solicitação, que o primeiro usuário é autenticado.
[00100] S404: O servidor de gerenciamento libera um recurso ocupado pela máquina virtual e limpa de forma assíncrona uma AEI em uma placa FPGA associada à máquina virtual.
[00101] De acordo com o método mostrado nos passos anteriores S401 a S404, um resultado de limpeza da AEI na placa FPGA não afeta a liberação do recurso ocupado pela máquina virtual 103. Portanto, mesmo que a AEI na placa FPGA não seja apagada, o recurso ocupado pela máquina virtual 103 ainda pode ser normalmente liberado. Isso evita o vazamento de dados do usuário causado pela liberação anormal do recurso de máquina virtual.
[00102] Com referência à Figura 1 à Figura 6, o método de gerenciamento de dados fornecido nas modalidades deste pedido é descrito em detalhes. Com referência à Figura 7 à Figura 8, a seguir é descrito um servidor e um aparelho de gerenciamento de dados de acordo com modalidades deste pedido.
[00103] A Figura 7 é um diagrama estrutural esquemático de um aparelho de gerenciamento de dados 700 de acordo com uma modalidade deste pedido. O aparelho de gerenciamento de dados 700 pode ser aplicável ao sistema mostrado na Figura 1, e é configurado para realizar funções do servidor de gerenciamento nas modalidades de método anteriores. O aparelho de gerenciamento de dados 700 inclui um primeiro módulo de recepção de solicitação 701, um módulo de determinação de contêiner de locatário de sombra 702, um módulo de armazenamento de contêiner de locatário de sombra 703, um módulo de criação de contêiner de locatário de sombra 704, um segundo módulo de recepção de solicitação 705, um módulo de verificação de permissão 706, um módulo de carregamento 707, um terceiro módulo de recepção de solicitação 708 e um módulo de exclusão 709.
[00104] O primeiro módulo de recepção de solicitação 701 é configurado para receber uma primeira solicitação. A primeira solicitação é usada por um primeiro usuário para solicitar o registro de uma imagem de mecanismo de aceleração AEI personalizada pelo primeiro usuário, e a primeira solicitação inclui um identificador do primeiro usuário e um identificador da AEI.
[00105] O módulo de determinação de contêiner de locatário de sombra 702 é configurado para determinar, com base no identificador do primeiro usuário, se existe um contêiner de locatário de sombra associado ao identificador do primeiro usuário. O contêiner de locatário de sombra é usado para armazenar a AEI do primeiro usuário, e cada contêiner de locatário de sombra está em uma correspondência um-a-um com um usuário.
[00106] O módulo de armazenamento de contêiner de locatário de sombra 703 é configurado para: quando o contêiner de locatário de sombra associado ao identificador do primeiro usuário existe, armazenar a AEI no contêiner de locatário de sombra associado ao identificador do primeiro usuário.
[00107] Opcionalmente, ao determinar, com base no identificador do primeiro usuário, se o contêiner de locatário de sombra associado ao identificador do primeiro usuário existe, o módulo de determinação de contêiner de locatário de sombra 702 é especificamente configurado para: determinar, de acordo com uma primeira regra, um identificador do contêiner de locatário de sombra associado ao identificador do primeiro usuário, onde a primeira regra é usada para indicar uma regra de geração para gerar o identificador do contêiner de locatário de sombra; determinar se existe um contêiner de locatário de sombra tendo o identificador; e quando o contêiner de locatário de sombra com o identificador existe, determinar se o contêiner de locatário de sombra com o identificador é o contêiner de locatário de sombra associado ao identificador do primeiro usuário.
[00108] Opcionalmente, o módulo de criação de contêiner de locatário de sombra 704 é configurado para: quando o contêiner de locatário de sombra associado ao identificador do primeiro usuário não existe, selecionar o espaço de armazenamento com um tamanho predefinido, usar o espaço de armazenamento como o contêiner de locatário de sombra associado ao identificador do primeiro usuário e armazenar a AEI no contêiner de locatário de sombra associado ao identificador do primeiro usuário.
[00109] Opcionalmente, o segundo módulo de recepção de solicitação 705 é configurado para receber uma segunda solicitação. A segunda solicitação é usada por um segundo usuário para solicitar o carregamento da AEI, e a segunda solicitação inclui um identificador do segundo usuário, o identificador da AEI, e informações sobre uma placa de arranjo de portas programáveis em campo FPGA.
[00110] O módulo de verificação de permissão 706 é configurado para realizar a verificação de permissão no segundo usuário com base no identificador do segundo usuário e no identificador da AEI.
[00111] O módulo de carregamento 707 é configurado para: quando a verificação de permissão realizada no segundo usuário for bem-sucedida, carregar, com base nas informações sobre a placa FPGA, a AEI para uma placa FPGA associada a uma primeira máquina virtual, onde a primeira máquina virtual é uma máquina virtual associada ao segundo usuário.
[00112] Opcionalmente, se o identificador do segundo usuário inclui um identificador da primeira máquina virtual, ao realizar a verificação de permissão no segundo usuário com base no identificador do segundo usuário e o identificador da AEI, o módulo de verificação de permissão 706 é especificamente configurado para: determinar, de acordo com uma primeira correspondência, um identificador de uma imagem correspondente ao identificador da primeira máquina virtual, onde a primeira correspondência indica uma correspondência entre um identificador de uma máquina virtual e um identificador de uma imagem permitida ser usada pela máquina virtual; determinar, de acordo com uma segunda correspondência, um identificador de pelo menos uma AEI correspondente ao identificador da imagem, onde a segunda correspondência é uma correspondência entre um identificador de uma imagem e um identificador de uma AEI; e determinar que o identificador de pelo menos uma AEI inclui o identificador da AEI.
[00113] O terceiro módulo de recepção de solicitação 708 é configurado para receber uma terceira solicitação. A terceira solicitação é usada por um terceiro usuário para solicitar a exclusão de uma segunda máquina virtual, onde a segunda máquina virtual é uma máquina virtual associada ao terceiro usuário.
[00114] O módulo de exclusão 709 é configurado para: liberar um recurso ocupado pela segunda máquina virtual, e limpar uma AEI em uma placa FPGA associada à segunda máquina virtual.
[00115] Opcionalmente, ao liberar o recurso ocupado pela segunda máquina virtual, e limpar a AEI na placa FPGA associada à segunda máquina virtual, o módulo de exclusão 709 é especificamente configurado para: definir um estado da placa FPGA para um status a-ser-limpo, e invocar uma interface de limpeza de AEI da placa FPGA associada à segunda máquina virtual, para limpar a AEI carregada na placa FPGA associada à segunda máquina virtual; quando a duração predefinida for satisfeita, determinar se uma AEI em cada placa FPGA nas placas FPGA associadas à segunda máquina virtual foi limpa com sucesso; e se sim, configurar a placa FPGA para um status disponível e, caso contrário, determinar se a placa FPGA não foi limpa com sucesso, e depois de determinar que uma quantidade de vezes que a placa FPGA não foi limpa com sucesso atinge um limiar, gerar um alarme.
[00116] Deve ser entendido que a Figura 7 mostra apenas um modo de divisão de módulo do aparelho de gerenciamento de dados 700. O fato do aparelho de gerenciamento de dados 700 ter outro modo de divisão de módulo não é limitado neste pedido. Por exemplo, o aparelho de gerenciamento de dados 700 pode ser modularizado em um módulo de serviço de imagem de FPGA, um módulo de serviço de autenticação de locatário, e um módulo de serviço de gerenciamento de AEI. O módulo de serviço de imagem de FPGA pode ter funções do primeiro módulo de recepção de solicitação 701, o módulo de determinação de contêiner de locatário de sombra 702 e o módulo de armazenamento de contêiner de locatário de sombra 703. O módulo de serviço de autenticação de locatário pode ser configurado para cooperar com um serviço de imagem de FPGA para tentar autenticar um usuário. O serviço de gerenciamento de AEI pode ser configurado para cooperar com o serviço de imagem de FPGA, para compilar uma AEI. Opcionalmente, o módulo de serviço de imagem de FPGA pode ainda ter funções do módulo de criação de contêiner de locatário de sombra 704, o segundo módulo de recepção de solicitação 705, o módulo de verificação de permissão 706, o módulo de carregamento 707, o terceiro módulo de recepção de solicitação 708 e o módulo de exclusão
709.
[00117] Deve ser entendido que o aparelho 700 nesta modalidade deste pedido pode ser implementado através de um circuito integrado de aplicação específica (application- specific integrated circuit, ASIC), ou pode ser implementado através de um dispositivo lógico programável (programmable logic device, PLD). O PLD pode ser um dispositivo lógico programável complexo (complex programmable logic device, CPLD), um arranjo de portas programáveis em campo (field programmable gate array, FPGA), lógica de matriz genérica (generic array logic, GAL) ou qualquer combinação dos mesmos. Quando os métodos de processamento de dados mostrados na Figura 3 à Figura 6 são implementados por meio de software, o aparelho 700 e os módulos do aparelho 700 também podem ser módulos de software.
[00118] Deve ser entendido que o aparelho 700 pode corresponder apenas ao servidor de gerenciamento 102 relacionado nas modalidades deste pedido. Para ser específico, o aparelho 700 é configurado para realizar apenas os passos correspondentes do servidor de gerenciamento 102 mostrado na Figura 3 à Figura 6. Um aparelho 700 pode ainda corresponder ao servidor de serviço 101 relacionado nas modalidades deste pedido. Para ser específico, o aparelho 700 pode ainda ser configurado para realizar os passos correspondentes do servidor de serviço 101 fornecido nas modalidades deste pedido. Neste caso, o aparelho 700 pode ser conectado a uma placa FPGA.
[00119] O aparelho 700 nesta modalidade deste pedido pode realizar correspondentemente os métodos descritos nas modalidades deste pedido. Além disso, o anterior e outras operações e / ou funções das unidades no aparelho 700 são usados separadamente para implementar os procedimentos correspondentes dos métodos na Figura 3 à Figura 6. Por questões de brevidade, os detalhes não são descritos aqui novamente.
[00120] A Figura 8 é um diagrama estrutural esquemático de um servidor 800 de acordo com uma modalidade deste pedido. Conforme mostrado na figura, o servidor 800 inclui um processador 801, uma memória 802, uma interface de comunicações 803, um barramento 804 e uma placa FPGA 805. O processador 801, a memória 802, a interface de comunicações 803 e a placa FPGA 805 se comunicam uns com os outros através do barramento 804 ou podem se comunicar uns com os outros de outra maneira, como transmissão sem fio. A memória 802 é configurada para armazenar o código de programa 8021. O processador 801 pode invocar o código de programa 8021 armazenado na memória 802, para realizar as seguintes operações:
determinar, com base em um identificador de um primeiro usuário em uma primeira solicitação recebida pela interface de comunicações 803, se existe um contêiner de locatário de sombra associado ao identificador do primeiro usuário, onde o contêiner de locatário de sombra é usado para armazenar uma AEI do primeiro usuário, e cada contêiner de locatário de sombra está em uma correspondência um-a-um com um usuário; e quando o contêiner de locatário de sombra associado ao identificador do primeiro usuário existe, armazenar a AEI no contêiner de locatário de sombra associado ao identificador do primeiro usuário.
[00121] Opcionalmente, o processador 801 pode ainda realizar as seguintes operações: determinar, de acordo com uma primeira regra, um identificador do contêiner de locatário de sombra associado ao identificador do primeiro usuário, onde a primeira regra é usada para indicar uma regra de geração para gerar o identificador do contêiner de locatário de sombra; determinar se existe um contêiner de locatário de sombra tendo o identificador; e quando o contêiner de locatário de sombra com o identificador existe, determinar que o contêiner de locatário de sombra com o identificador é o contêiner de locatário de sombra associado ao identificador do primeiro usuário.
[00122] Opcionalmente, o processador 801 pode ainda realizar as seguintes operações: quando o contêiner de locatário de sombra associado ao identificador do primeiro usuário não existe, selecionar o espaço de armazenamento com um tamanho predefinido, usando o espaço de armazenamento como o contêiner de locatário de sombra associado com o identificador do primeiro usuário, e armazenar a AEI no contêiner de locatário de sombra associado ao identificador do primeiro usuário.
[00123] Opcionalmente, o processador 801 pode ainda realizar as seguintes operações: realizar verificação de permissão em um segundo usuário com base em um identificador do segundo usuário e um identificador da AEI em uma segunda solicitação recebida pela interface de comunicações 803; e quando a verificação de permissão realizada no segundo usuário for bem-sucedida, carregar, com base nas informações sobre a placa FPGA, a AEI em uma placa FPGA associada a uma primeira máquina virtual, onde a primeira máquina virtual é uma máquina virtual associada ao segundo usuário.
[00124] Opcionalmente, o identificador do segundo usuário inclui um identificador da primeira máquina virtual, e o processador 801 pode ainda realizar as seguintes operações: determinar, de acordo com uma primeira correspondência, um identificador de uma imagem correspondente ao identificador da primeira máquina virtual, onde a primeira correspondência indica uma correspondência entre um identificador de uma máquina virtual e um identificador de uma imagem que pode ser usada pela máquina virtual; determinar, de acordo com uma segunda correspondência, um identificador de pelo menos uma AEI correspondente ao identificador da imagem, onde a segunda correspondência é uma correspondência entre um identificador de uma imagem e um identificador de uma AEI; e determinar que o identificador de pelo menos uma AEI inclui o identificador da AEI.
[00125] Opcionalmente, o processador 801 pode ainda realizar a seguinte operação: em resposta a uma terceira solicitação recebida pela interface de comunicações 803, liberar um recurso ocupado por uma segunda máquina virtual, e limpar uma AEI em uma placa FPGA associada ao segundo máquina virtual.
[00126] Opcionalmente, o processador 801 pode ainda realizar a seguinte operação: definir um estado da placa FPGA para um status a-ser-limpo, e invocar uma interface de limpeza de AEI da placa FPGA associada à segunda máquina virtual, para limpar o arquivo de AEI carregado na placa FPGA associada à segunda máquina virtual; quando a duração predefinida é satisfeita, determinar se um arquivo de AEI em cada placa FPGA nas placas FPGA associadas à segunda máquina virtual foi limpo com sucesso; em caso afirmativo, definir a placa FPGA para um status disponível e, caso contrário, determinar que a placa FPGA não foi limpa com sucesso, e após determinar que uma quantidade de vezes que a placa FPGA não foi limpa com sucesso atinge um limiar, gerar um alarme.
[00127] Deve ser entendido que nesta modalidade deste pedido, o processador 801 pode ser uma unidade de processamento central (CPU) ou o processador 801 pode ser outro processador de propósito geral, um processador de sinal digital (DSP), um circuito integrado de aplicação específica (ASIC), um arranjo de portas programáveis em campo (FPGA) ou outro dispositivo lógico programável, porta discreta ou dispositivo lógico de transistor, componente de hardware discreto ou semelhantes. O processador de propósito geral pode ser um microprocessador ou qualquer processador convencional ou semelhantes.
[00128] A memória 802 pode incluir uma memória somente de leitura e uma memória de acesso aleatório, e fornecer uma instrução e dados para o processador 801. A memória 802 pode incluir ainda uma memória de acesso aleatório não volátil. Por exemplo, a memória 802 pode ainda armazenar informações de um tipo de dispositivo.
[00129] A memória 202 pode ser uma memória volátil ou uma memória não volátil, ou pode incluir uma memória volátil e uma memória não volátil. A memória não volátil pode ser uma memória somente de leitura (read-only memory, ROM), uma memória somente de leitura programável (programmable ROM, PROM), uma memória somente de leitura programável apagável (erasable PROM, EPROM), uma memória somente de leitura programável apagável eletricamente (electrically EPROM, EEPROM) ou uma memória flash. A memória volátil pode ser uma memória de acesso aleatório (random access memory, RAM), usada como um cache externo. Por meio de exemplo, mas não de descrição limitativa, muitas formas de RAMs podem ser usadas, por exemplo, uma memória de acesso aleatório estática (static RAM, SRAM), uma memória de acesso aleatório dinâmica (DRAM), uma memória de acesso aleatório dinâmica síncrona (synchronous DRAM, SDRAM), uma memória de acesso aleatório dinâmica síncrona de taxa de dados dupla (double data rate SDRAM, DDR SDRAM), uma memória de acesso aleatório dinâmica síncrona aprimorada (enhanced SDRAM, ESDRAM), uma memória de acesso aleatório dinâmica de enlace síncrono (synchlink DRAM, SLDRAM) uma memória de acesso aleatório dinâmica Rambus direta (direct rambus RAM, DR RAM).
[00130] Além de um barramento de dados, o barramento 804 pode incluir ainda um barramento de potência, um barramento de controle, um barramento de sinal de status e semelhantes. No entanto, para uma descrição clara, vários tipos de barramentos na figura são marcados como barramento
804.
[00131] Deve ser entendido que o servidor 800 de acordo com esta modalidade deste pedido pode ser correspondente ao servidor de gerenciamento 102 fornecido nas modalidades deste pedido. O servidor 800 pode ser configurado para implementar os passos correspondentes realizados pelo servidor de gerenciamento 102 nos métodos mostrados na Figura 3 à Figura 6. Por questões de brevidade, os detalhes não são descritos aqui novamente.
[00132] Deve ser entendido que o servidor 800 de acordo com esta modalidade deste pedido pode corresponder ao aparelho de gerenciamento de dados 700 na modalidade deste pedido e pode corresponder a um corpo de execução para realizar o método mostrado na Figura 3 na modalidade deste pedido, além disso, as operações anteriores e outras e / ou funções dos componentes no servidor 800 são usadas separadamente para implementar os procedimentos correspondentes dos métodos na Figura 3 à Figura 6.
[00133] Por exemplo, a interface de comunicações 803 pode ser configurada para realizar uma função do primeiro módulo de recepção de solicitação 701 no aparelho de gerenciamento de dados 700. O processador 801 pode ser configurado para executar o código de programa armazenado na memória 802, para implementar uma função do módulo de determinação de contêiner de locatário de sombra 702.
[00134] Opcionalmente, a interface de comunicações 803 pode ser configurada adicionalmente para realizar funções do segundo módulo de recepção de solicitação 705 e do terceiro módulo de recepção de solicitação 708, e o processador 801 pode ser configurado adicionalmente para realizar funções do módulo de criação de contêiner de locatário de sombra 704, o módulo de verificação de permissão 706, o módulo de carregamento 707 e o módulo de exclusão
709.
[00135] Opcionalmente, o servidor 800 pode incluir ainda uma placa FPGA 805. Neste caso, o servidor 800 pode ainda ter uma função do servidor de serviço 101 nas modalidades deste pedido.
[00136] Deve ser entendido que, se o servidor 800 for correspondente ao servidor de gerenciamento 102 relacionado nas modalidades deste pedido, o servidor 800 é configurado para realizar os passos correspondentes do servidor de gerenciamento 102 mostrado na Figura 3 à Figura 6. Opcionalmente, o servidor 800 inclui ainda a placa FPGA 805. Se o servidor 800 for correspondente ao servidor de serviço 101 relacionado nas modalidades deste pedido. Para ser específico, o servidor 800 é ainda configurado para realizar os passos correspondentes do servidor de serviço 101 fornecido nas modalidades deste pedido. Neste caso, o servidor 800 inclui a placa FPGA 805.
[00137] Todas ou algumas das modalidades anteriores podem ser implementadas por meio de software, hardware, firmware ou qualquer combinação dos mesmos. Quando o software é usado para implementar as modalidades, todas ou algumas das modalidades anteriores podem ser implementadas na forma de um produto de programa de computador. O produto de programa de computador inclui uma ou mais instruções de computador. Quando as instruções de programa de computador são carregadas e executadas no computador, o procedimento ou funções de acordo com as modalidades deste pedido são gerados total ou parcialmente. O computador pode ser um computador de propósito geral, um computador de propósito especial, uma rede de computadores ou outro aparelho programável. As instruções de computador podem ser armazenadas em um meio de armazenamento legível por computador ou podem ser transmitidas de um meio de armazenamento legível por computador para outro meio de armazenamento legível por computador. Por exemplo, as instruções de computador podem ser transmitidas de um site, computador, servidor ou centro de dados para outro site, computador, servidor ou centro de dados em uma maneira com fio (por exemplo, um cabo coaxial, uma fibra ótica ou uma linha de assinante digital (DSL)) ou sem fio (por exemplo, infravermelho, rádio ou micro-ondas). O meio de armazenamento legível por computador pode ser qualquer meio utilizável acessível por um computador ou um dispositivo de armazenamento de dados, como um servidor ou um centro de dados, integrando um ou mais meios utilizáveis. O meio utilizável pode ser um meio magnético (por exemplo, um disquete, um disco rígido ou uma fita magnética), um meio ótico (por exemplo, um DVD) ou um meio semicondutor. O meio semicondutor pode ser uma unidade de estado sólido (solid- state drive, SSD).
[00138] Uma pessoa versada na técnica pode estar ciente de que, em combinação com os exemplos descritos nas modalidades divulgadas neste relatório descritivo, as unidades e os passos do algoritmo podem ser implementados por hardware eletrônico ou uma combinação de software de computador e hardware eletrônico. Se as funções são realizadas por hardware ou software depende de aplicações específicas e das condições de restrição de projeto das soluções técnicas. Um especialista na técnica pode implementar as funções descritas para cada aplicação específica por meio de diferentes métodos.
[00139] Pode ser claramente compreendido por um versado na técnica que, para fins de descrição conveniente e breve, para um processo de trabalho detalhado do sistema, aparelho e unidade anteriores, consulte um processo correspondente nas modalidades de método anteriores e os detalhes não são descritos aqui novamente.
[00140] Nas várias modalidades fornecidas neste pedido, deve ser entendido que o sistema, aparelho e método divulgados podem ser implementados de outras maneiras. Por exemplo, a modalidade de aparelho descrita é apenas um exemplo. Por exemplo, a divisão de unidade é meramente uma divisão de função lógica e pode ser outra divisão em uma implementação real. Por exemplo, uma pluralidade de unidades ou componentes pode ser combinada ou integrada em outro sistema, ou alguns recursos podem ser ignorados ou não realizados. Além disso, os acoplamentos mútuos ou acoplamentos diretos ou conexões de comunicação exibidos ou discutidos podem ser implementados através de algumas interfaces. Os acoplamentos indiretos ou conexões de comunicação entre os aparelhos ou unidades podem ser implementados em formas eletrônicas, mecânicas ou outras.
[00141] As unidades descritas como partes separadas podem ou não ser fisicamente separadas, e as partes exibidas como unidades podem ou não ser unidades físicas, podem estar localizadas em uma posição ou podem ser distribuídas em uma pluralidade de unidades de rede. Algumas ou todas as unidades podem ser selecionadas com base nos requisitos reais para atingir os objetivos das soluções das modalidades.

Claims (16)

REIVINDICAÇÕES EMENDADAS
1. Método de gerenciamento de dados, caracterizado pelo fato de que compreende: receber uma primeira solicitação, em que a primeira solicitação é usada por um primeiro usuário para solicitar o registro de uma imagem de mecanismo de aceleração AEI personalizada pelo primeiro usuário, e a primeira solicitação compreende um identificador do primeiro usuário e um identificador da AEI; determinar, com base no identificador do primeiro usuário, se um contêiner de locatário de sombra associado ao identificador do primeiro usuário existe, em que o contêiner de locatário de sombra é usado para armazenar a AEI do primeiro usuário e cada contêiner de locatário de sombra está em uma correspondência um-a-um com um usuário; e quando o contêiner de locatário de sombra associado ao identificador do primeiro usuário existe, armazenar a AEI no contêiner de locatário de sombra associado ao identificador do primeiro usuário.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a determinação, com base no identificador do primeiro usuário, se existe um contêiner de locatário de sombra associado ao identificador do primeiro usuário, compreende: determinar, de acordo com uma primeira regra, um identificador do contêiner de locatário de sombra associado ao identificador do primeiro usuário, em que a primeira regra é usada para indicar uma regra de geração do identificador do contêiner de locatário de sombra; determinar se existe um contêiner de locatário de sombra tendo o identificador; e quando o contêiner de locatário de sombra com o identificador existe, determinar que o contêiner de locatário de sombra tendo o identificador é o contêiner de locatário de sombra associado ao identificador do primeiro usuário.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que quando o contêiner de locatário de sombra associado ao identificador do primeiro usuário não existe, o método compreende ainda: selecionar espaço de armazenamento com um tamanho predefinido; usar o espaço de armazenamento como o contêiner de locatário de sombra associado ao identificador do primeiro usuário; e armazenar a AEI no contêiner de locatário de sombra associado ao identificador do primeiro usuário.
4. Método, de acordo com qualquer uma das reivindicações 1 a 3, caracterizado pelo fato de que após o armazenamento da AEI no contêiner de locatário de sombra associado ao identificador do primeiro usuário, o método compreende ainda: receber uma segunda solicitação, em que a segunda solicitação é usada por um segundo usuário para solicitar o carregamento da AEI, e a segunda solicitação compreende um identificador do segundo usuário, o identificador da AEI, e informações sobre uma placa de arranjo de portas programáveis em campo FPGA; realizar verificação de permissão no segundo usuário com base no identificador do segundo usuário e no identificador da AEI; e quando a verificação de permissão realizada no segundo usuário é bem-sucedida, carregar, com base nas informações sobre a placa FPGA, a AEI em uma placa FPGA associada a uma primeira máquina virtual, em que a primeira máquina virtual é uma máquina virtual associada ao segundo usuário.
5. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que o identificador do segundo usuário compreende um identificador da primeira máquina virtual; e a realização de verificação de permissão no segundo usuário com base no identificador do segundo usuário e o identificador da AEI compreende: determinar, de acordo com uma primeira correspondência, um identificador de uma imagem correspondente ao identificador da primeira máquina virtual, em que a primeira correspondência indica uma correspondência entre um identificador de uma máquina virtual e um identificador de uma imagem permitida ser usada pela máquina virtual; determinar, de acordo com uma segunda correspondência, um identificador de pelo menos uma AEI correspondente ao identificador da imagem, em que a segunda correspondência é uma correspondência entre um identificador de uma imagem e um identificador de uma AEI; e determinar que o identificador da pelo menos uma AEI compreende o identificador da AEI.
6. Método, de acordo com qualquer uma das reivindicações 1 a 5, caracterizado pelo fato de que o método compreende ainda: receber uma terceira solicitação, em que a terceira solicitação é usada por um terceiro usuário para solicitar a exclusão de uma segunda máquina virtual, e a segunda máquina virtual é uma máquina virtual associada ao terceiro usuário; e liberar um recurso ocupado pela segunda máquina virtual, e limpar uma AEI em uma placa FPGA associada à segunda máquina virtual.
7. Método, de acordo com a reivindicação 6, caracterizado pelo fato de que limpar uma AEI em uma placa FPGA associada à segunda máquina virtual compreende: definir um estado da placa FPGA para um status a-ser- limpo, e invocar uma interface de limpeza de AEI da placa FPGA associada à segunda máquina virtual, para limpar o arquivo de AEI carregado na placa FPGA associada à segunda máquina virtual; quando a duração predefinida é satisfeita, determinar se um arquivo de AEI em cada placa FPGA nas placas FPGA associadas à segunda máquina virtual foi limpo com sucesso; e se o arquivo de AEI for limpo com sucesso, definir a placa FPGA para um status disponível, e caso contrário, determinar que a placa FPGA não foi limpa com sucesso, e depois de determinar que uma quantidade de vezes que a placa FPGA não foi limpa com sucesso atinge um limiar, gerar um alarme.
8. Aparelho de gerenciamento de dados, caracterizado pelo fato de que compreende: um primeiro módulo de recepção de solicitação, configurado para receber uma primeira solicitação, em que a primeira solicitação é usada por um primeiro usuário para solicitar o registro de uma imagem de mecanismo de aceleração
AEI personalizada pelo primeiro usuário, e a primeira solicitação compreende um identificador do primeiro usuário e um identificador da AEI; um módulo de determinação de contêiner de locatário de sombra, configurado para determinar, com base no identificador do primeiro usuário, se existe um contêiner de locatário de sombra associado ao identificador do primeiro usuário, em que o contêiner de locatário de sombra é usado para armazenar a AEI do primeiro usuário, e cada contêiner de locatário de sombra está em uma correspondência um-a-um com um usuário; e um módulo de armazenamento de contêiner de locatário de sombra, configurado para: quando o contêiner de locatário de sombra associado ao identificador do primeiro usuário existe, armazenar a AEI no contêiner de locatário de sombra associado ao identificador do primeiro usuário.
9. Aparelho, de acordo com a reivindicação 8, caracterizado pelo fato de que: o módulo de determinação de contêiner de locatário de sombra é ainda configurado para: determinar, de acordo com uma primeira regra, um identificador do contêiner de locatário de sombra associado ao identificador do primeiro usuário, em que a primeira regra é usada para indicar uma regra de geração do identificador do contêiner de locatário de sombra; determinar se existe um contêiner de locatário de sombra tendo o identificador; e quando o contêiner de locatário de sombra com o identificador existir, determinar se o contêiner de locatário de sombra com o identificador é o contêiner de locatário de sombra associado ao identificador do primeiro usuário.
10. Aparelho, de acordo com a reivindicação 8, caracterizado pelo fato de que o aparelho compreende ainda: um módulo de criação de contêiner de locatário de sombra, configurado para: quando o contêiner de locatário de sombra associado ao identificador do primeiro usuário não existe, selecionar o espaço de armazenamento com um tamanho predefinido, usar o espaço de armazenamento como o contêiner de locatário de sombra associado ao identificador do primeiro usuário, e armazenar a AEI no contêiner de locatário de sombra associado ao identificador do primeiro usuário.
11. Aparelho, de acordo com qualquer uma das reivindicações 8 a 10, caracterizado pelo fato de que o aparelho compreende ainda um segundo módulo de recepção de solicitação, um módulo de verificação de permissão e um módulo de carregamento, em que o segundo módulo de recepção de solicitação é configurado para receber uma segunda solicitação, em que a segunda solicitação é usada por um segundo usuário para solicitar o carregamento da AEI, e a segunda solicitação compreende um identificador do segundo usuário, o identificador da AEI, e informações sobre uma placa de arranjo de portas programáveis em campo FPGA; o módulo de verificação de permissão é configurado para realizar verificação de permissão no segundo usuário com base no identificador do segundo usuário e no identificador da AEI; e o módulo de carregamento, configurado para: quando a verificação de permissão realizada no segundo usuário for bem-sucedida, carregar, com base nas informações sobre a placa FPGA, a AEI para uma placa FPGA associada a uma primeira máquina virtual, em que a primeira máquina virtual é uma máquina virtual associada ao segundo usuário.
12. Aparelho, de acordo com a reivindicação 11, caracterizado pelo fato de que o identificador do segundo usuário compreende um identificador da primeira máquina virtual; e que o módulo de verificação de permissão é configurado para determinar, de acordo com uma primeira correspondência, um identificador de uma imagem correspondente ao identificador da primeira máquina virtual, em que a primeira correspondência indica uma correspondência entre um identificador de uma máquina virtual e um identificador de uma imagem permitida ser usada pela máquina virtual; determinar, de acordo com uma segunda correspondência, um identificador de pelo menos uma AEI correspondente ao identificador da imagem, em que a segunda correspondência é uma correspondência entre um identificador de uma imagem e um identificador de uma AEI; e determinar que o identificador da pelo menos uma AEI compreende o identificador da AEI.
13. Aparelho, de acordo com qualquer uma das reivindicações 8 a 12, caracterizado pelo fato de que o aparelho compreende ainda um terceiro módulo de recepção de solicitação e um módulo de exclusão, em que o terceiro módulo de recepção de solicitação é configurado para receber uma terceira solicitação, em que a terceira solicitação é usada por um terceiro usuário para solicitar a exclusão de uma segunda máquina virtual, e a segunda máquina virtual é uma máquina virtual associada ao terceiro usuário; e o módulo de exclusão é configurado para: liberar um recurso ocupado pela segunda máquina virtual, e limpar uma AEI em uma placa FPGA associada à segunda máquina virtual.
14. Aparelho, de acordo com a reivindicação 13, caracterizado pelo fato de que o módulo de exclusão limpa uma AEI em uma placa FPGA associada à segunda máquina virtual compreende: definir, pelo módulo de exclusão, um estado da placa FPGA para um status a-ser-limpo, e invocar uma interface de limpeza de AEI da placa FPGA associada à segunda máquina virtual, para limpar a AEI carregada na placa FPGA associada à segunda máquina virtual; quando a duração predefinida é satisfeita, determinar se uma AEI em cada placa FPGA nas placas FPGA associadas à segunda máquina virtual foi limpa com sucesso; e se sim, definir a placa FPGA para um status disponível, e caso contrário, determinar que a placa FPGA não foi limpa com sucesso, e depois de determinar que uma quantidade de vezes que a placa FPGA não foi limpa com sucesso atinge um limiar, gerar um alarme.
15. Servidor, caracterizado pelo fato de que o servidor compreende um processador e uma memória, a memória é configurada para armazenar uma instrução executável por computador, e quando o servidor roda, o processador executa a instrução executável por computador na memória para realizar, usando recursos de hardware no servidor, o passo de operação do método conforme definido em qualquer uma das reivindicações 1 a 7.
16. Meio legível por computador, caracterizado pelo fato de que compreende instruções que, quando executadas por um computador, fazem com que o computador realize o passo de operação do método conforme definido em qualquer uma das reivindicações 1 a 7.
BR112021005882-6A 2018-09-28 2019-06-29 método e aparelho de gerenciamento de dados, e servidor BR112021005882A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201811140158.3 2018-09-28
CN201811140158.3A CN110968413A (zh) 2018-09-28 2018-09-28 一种数据管理方法、装置和服务器
PCT/CN2019/093962 WO2020063002A1 (zh) 2018-09-28 2019-06-29 一种数据管理方法、装置和服务器

Publications (1)

Publication Number Publication Date
BR112021005882A2 true BR112021005882A2 (pt) 2021-07-27

Family

ID=69950210

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021005882-6A BR112021005882A2 (pt) 2018-09-28 2019-06-29 método e aparelho de gerenciamento de dados, e servidor

Country Status (6)

Country Link
US (1) US11567675B2 (pt)
EP (1) EP3848802A4 (pt)
JP (1) JP2022501733A (pt)
CN (1) CN110968413A (pt)
BR (1) BR112021005882A2 (pt)
WO (1) WO2020063002A1 (pt)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111611238B (zh) * 2020-04-08 2021-08-31 中科驭数(北京)科技有限公司 数据的管理方法及装置
CN112437123B (zh) * 2020-11-09 2024-04-09 北京京东尚科信息技术有限公司 资源管理方法、装置、计算机系统、可读存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2466207A1 (en) * 2001-11-02 2003-05-15 Brent Taylor Hetherington System and method for monitoring and ensuring proper life safety equipment maintenance, operation, and program implementation
US7360096B2 (en) * 2002-11-20 2008-04-15 Microsoft Corporation Securely processing client credentials used for Web-based access to resources
FR2907934B1 (fr) * 2006-10-27 2009-02-06 Inst Nat Rech Inf Automat Outil informatique de gestion de documents numeriques
US8434087B2 (en) * 2008-08-29 2013-04-30 International Business Machines Corporation Distributed acceleration devices management for streams processing
CN103107889B (zh) * 2013-02-06 2016-08-03 中电长城网际系统应用有限公司 一种可搜索的云计算环境数据加密存储系统和方法
US9634886B2 (en) * 2013-03-14 2017-04-25 Alcatel Lucent Method and apparatus for providing tenant redundancy
CN103246850A (zh) * 2013-05-23 2013-08-14 福建伊时代信息科技股份有限公司 文件处理方法和装置
CN106462398B (zh) 2014-06-11 2020-01-17 三菱电机株式会社 程序编辑装置及程序管理装置
CN106778319A (zh) * 2015-11-23 2017-05-31 天津九洲云物联科技有限公司 一种基于rbac模型改进的访问控制模型
CN108073423B (zh) * 2016-11-09 2020-01-17 华为技术有限公司 一种加速器加载方法、系统和加速器加载装置
JP6461289B2 (ja) * 2017-11-17 2019-01-30 株式会社バンダイナムコエンターテインメント ゲームシステム

Also Published As

Publication number Publication date
WO2020063002A1 (zh) 2020-04-02
US20210216222A1 (en) 2021-07-15
CN110968413A (zh) 2020-04-07
EP3848802A1 (en) 2021-07-14
JP2022501733A (ja) 2022-01-06
US11567675B2 (en) 2023-01-31
EP3848802A4 (en) 2021-11-10

Similar Documents

Publication Publication Date Title
JP7428770B2 (ja) コンピュータプログラム、コンピュータ可読記憶媒体及び装置
ES2626655T3 (es) Conmutación por error de clientes agrupados
US9147070B2 (en) Binary translation and randomization system for application security
US9721103B2 (en) Trusted boot of a virtual machine
US8146150B2 (en) Security management in multi-node, multi-processor platforms
CN103403732B (zh) 输入输出操作的处理方法和装置
US10809916B2 (en) Instance recovery using bloom filters
US11038860B2 (en) Virtualized host ID key sharing
TW201617957A (zh) 鑑別變數之管理技術
CN105637479A (zh) 用于以受信方式修改计算机程序的方法和装置
US11281768B1 (en) Firmware security vulnerability verification service
US9594915B2 (en) Information processing apparatus
JP2019050507A (ja) 情報処理装置、情報処理方法およびプログラム
US10402216B1 (en) Live support integration in a virtual machine based development environment
CN104732147A (zh) 一种应用程序处理方法
US10255438B2 (en) Operating system agnostic validation of firmware images
CN107704308B (zh) 虚拟平台vTPM管理系统、信任链构建方法及装置、存储介质
TWI751492B (zh) 用於跨多個安全網域共用安全記憶體之電腦實施之方法、電腦系統及電腦程式產品
BR112021005882A2 (pt) método e aparelho de gerenciamento de dados, e servidor
CN110046495B (zh) 数据结构测量结果比较
US20210344719A1 (en) Secure invocation of network security entities
CN105183799A (zh) 一种权限管理的方法及客户端
CN115758419A (zh) 用于数据安全的方法、装置、设备和存储介质
US11025594B2 (en) Secret information distribution method and device
Pontes et al. Attesting AMD SEV-SNP Virtual Machines with SPIRE