Configure o OSS accelerator com ossutil, ossfs, OSS Connector for AI/ML ou OSS SDKs para acessar dados com baixa latência e alto throughput.
Soluções
Use estas ferramentas e SDKs para acessar dados com latência em milissegundos e alto throughput:
ossutil: Adicione o endpoint acelerado ao arquivo de configuração do ossutil.
ossfs: Especifique o endpoint acelerado no comando de montagem.
OSS Connector for AI/ML: Defina
endpointcomo o endpoint acelerado ao criar um dataset.OSS SDKs: Configure
endpointcom o endpoint acelerado durante a inicialização do OSSClient. Este exemplo usa o OSS SDK for Java.
Use o endpoint acelerado como endpoint do OSS:
No ossutil, defina
endpointcomo o endpoint acelerado.No ossfs, configure
-ourlcom o endpoint acelerado.
Pré-requisitos
Crie um acelerador. Criar um OSS accelerator.
Solução 1: Usar o OSS accelerator com ossutil
Usar o OSS accelerator com ossutil
Este exemplo usa o ossutil em Linux x86 de 64 bits. Para mais informações sobre como instalar o ossutil em outros sistemas operacionais, consulte Instalar o ossutil.
-
Instale o ossutil.
-
Baixe o pacote do ossutil.
curl -o ossutil-2.0.3-beta.09261200-linux-amd64.zip https://gosspublic.alicdn.com/ossutil/v2-beta/2.0.3-beta.09261200/ossutil-2.0.3-beta.09261200-linux-amd64.zip -
Descompacte o pacote:
unzip ossutil-2.0.3-beta.09261200-linux-amd64.zip -
Torne o binário executável:
chmod 755 ossutil -
Adicione o ossutil ao PATH do sistema:
sudo mv ossutil /usr/local/bin/ && sudo ln -s /usr/local/bin/ossutil /usr/bin/ossutil -
Verifique a instalação.
ossutil version
-
-
Configure o ossutil com o endpoint acelerado.
-
Crie um arquivo de configuração do ossutil.
touch ossutilconfig -
Defina os parâmetros. Para mais informações, consulte Configurar o ossutil.
#[profile dev] The name of the section. You can specify the name of the section. #accessKeyId, accessKeySecret The AccessKey ID and AccessKey secret of the RAM user. #region The region in which the bucket is located. # buckets=dev-bucket Use the parameters in the dev-bucket section. #[buckets dev-bucket] The name of the section. You can specify the name of the section. #bucketname The name of the bucket. #endpoint The accelerated endpoint of the accelerator. [profile dev] accessKeyId=LTA*********************ICT accessKeySecret=V0qK**********************OOKp region=cn-hangzhou buckets=dev-bucket [buckets dev-bucket] bucket-name = #Specify the endpoint of the accelerator. endpoint=cn-hangzhou-j-internal.oss-data-acc.aliyuncs.com
-
-
Use o acelerador.
Este exemplo baixa um objeto para o diretório
test. Para mais informações sobre os comandos do ossutil, consulte Comandos do ossutil.O comando
cpbaixa objetos. A opção-rativa operações recursivas no bucketbucket-name. O parâmetro-cespecifica o caminho do arquivo de configuração. Já--profileseleciona a seçãodev.ossutil cp -r oss://bucket-name/ ./test/ -c ./ossutilconfig --profile dev
Solução 2: Usar o OSS accelerator com ossfs
Usar o OSS accelerator com ossfs
Este exemplo usa o ossfs no Ubuntu 16.04 x86. Para outros sistemas operacionais, consulte Instalar o ossfs.
-
Instale o ossfs.
sudo wget https://gosspublic.alicdn.com/ossfs/ossfs_1.91.3_ubuntu16.04_amd64.deb sudo apt-get update sudo apt-get install gdebi-core sudo gdebi ossfs_1.91.3_ubuntu16.04_amd64.deb -
Adicione o arquivo mime.types.
Garanta que os tipos de conteúdo correspondam às extensões de arquivo:
sudo apt-get install mime-support -
Configure o ossfs e monte o bucket com o endpoint acelerado. Para mais informações sobre como montar buckets com o ossfs, consulte Montar um bucket.
-
Armazene o AccessKey ID e o AccessKey secret em /etc/passwd-ossfs.
echo bucket-test:LTAI****************2CT:V0************************OKp > /etc/passwd-ossfs -
Defina as permissões do arquivo de configuração como 640.
chmod 640 /etc/passwd-ossfs -
Crie um diretório de montagem.
mkdir bucket-test -
Monte o bucket-test em /tmp/bucket-test/ usando o endpoint acelerado.
ossfs bucket-test /tmp/bucket-test/ -ourl=cn-hangzhou-j-internal.oss-data-acc.aliyuncs.com
-
-
Use o acelerador.
As operações de leitura e escrita no bucket montado agora estão aceleradas.
Solução 3: Usar o OSS accelerator com OSS Connector for AI/ML
Usar o OSS accelerator com OSS Connector for AI/ML
Este exemplo usa Python 3.12. Ajuste o número da versão para outras versões do Python.
Pré-requisitos:
Sistema operacional: Linux x86 de 64 bits
glibc: 2,17 ou posterior
Python: 3.8 a 3.12
PyTorch: 2,0 ou posterior
-
Para usar o recurso de checkpoint do OSS, o kernel Linux deve oferecer suporte a userfaultfd.
NotaNo Ubuntu, execute
sudo grep CONFIG_USERFAULTFD /boot/config-$(uname -r)para verificar o suporte a userfaultfd.CONFIG_USERFAULTFD=yindica suporte.CONFIG_USERFAULTFD=nindica falta de suporte e o recurso de checkpoint fica indisponível.
-
Instale o OSS Connector for AI/ML.
-
No sistema operacional Linux ou em um container criado a partir de uma imagem Linux, execute o comando
pip3.12 install osstorchconnectorpara instalar o OSS Connector for AI/ML.pip3.12 install osstorchconnector -
Execute
pip3.12 show osstorchconnectorpara verificar a instalação.pip3.12 show osstorchconnectorUma instalação bem-sucedida exibe as informações de versão do osstorchconnector. A saída é semelhante à seguinte:
Name: osstorchconnector Version: 1.0.0rc1 Summary: OSS connector for AI/ML Home-page: Author: Author-email: License: Location: /usr/local/lib/python3.12/dist-packages Requires: torch Required-by:
-
-
Configure o OSS Connector for AI/ML.
-
Crie um arquivo de configuração para credenciais de acesso.
mkdir -p /root/.alibabacloud && touch /root/.alibabacloud/credentials -
Adicione a configuração de credenciais de acesso e salve o arquivo.
Substitua
<Access-key-id>e<Access-key-secret>no exemplo pelo AccessKey ID e AccessKey secret de um usuário do Resource Access Management (RAM). Para mais informações sobre como criar um AccessKey ID e um AccessKey secret, consulte Criar um AccessKey. Para mais detalhes sobre itens de configuração e uso de credenciais de acesso temporárias, consulte Configurar credenciais de acesso.{ "AccessKeyId": "LTAI************************", "AccessKeySecret": "At32************************" } -
Crie o arquivo de configuração do OSS Connector.
mkdir -p /etc/oss-connector/ && touch /etc/oss-connector/config.json -
Adicione a configuração do OSS Connector e salve o arquivo. Para mais informações sobre os itens de configuração, consulte Configurar o OSS Connector.
Na maioria dos casos, use as seguintes configurações padrão.
{ "logLevel": 1, "logPath": "/var/log/oss-connector/connector.log", "auditPath": "/var/log/oss-connector/audit.log", "datasetConfig": { "prefetchConcurrency": 24, "prefetchWorker": 2 }, "checkpointConfig": { "prefetchConcurrency": 24, "prefetchWorker": 4, "uploadConcurrency": 64 } }
-
-
Use o acelerador.
Crie um dataset com OssMapDataset.from_prefix e defina
Endpointcomo o endpoint acelerado.from osstorchconnector import OssMapDataset # Replace ENDPOINT with the accelerated endpoint of the accelerator. ENDPOINT = "cn-hangzhou-j-internal.oss-data-acc.aliyuncs.com" # Specify the path of the OSS Connector for AI/ML configuration file. CONFIG_PATH = "/etc/oss-connector/config.json" # Specify the path of the access credential configuration file. CRED_PATH = "/root/.alibabacloud/credentials" # Specify the path of the directory of the bucket. OSS_URI = "oss://ai-testset/EnglistImg/Img/BadImag/Bmp/Sample001/" # Use the from_prefix method of OssMapDataset to build a dataset. map_dataset = OssMapDataset.from_prefix(oss_uri=OSS_URI, endpoint=ENDPOINT, cred_path=CRED_PATH, config_path=CONFIG_PATH) # Access objects in the created dataset at random. item = map_dataset[0] print(item.key) content = item.read() print(item.size) print(len(content)) # Traverse the objects in the dataset. for item in map_dataset: print(item.key) print(item.size) content = item.read() print(len(content))
Solução 4: Usar o OSS accelerator com OSS SDKs
Usar o OSS accelerator com OSS SDKs
Este exemplo usa o OSS SDK for Java. Para outros SDKs, defina o endpoint acelerado ao inicializar o OSSClient.
-
Pré-requisitos:
Java 1.7.0 ou posterior instalado.
Execute java -version para verificar.
-
Adicione a dependência do OSS SDK for Java ao seu projeto Maven (Instalação).
Adicione estas dependências ao pom.xml (OSS SDK for Java 3.17.4):
<dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>3.17.4</version> </dependency>Se usar Java 9 ou posterior, adicione estas dependências JAXB:
<dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.3.1</version> </dependency> <dependency> <groupId>javax.activation</groupId> <artifactId>activation</artifactId> <version>1.1.1</version> </dependency> <!-- no more than 2.3.3--> <dependency> <groupId>org.glassfish.jaxb</groupId> <artifactId>jaxb-runtime</artifactId> <version>2.3.3</version> </dependency> -
Use o acelerador.
Faça upload de um objeto definindo
endpointcomo o endpoint acelerado.import com.aliyun.oss.ClientBuilderConfiguration; import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; import com.aliyun.oss.common.auth.CredentialsProviderFactory; import com.aliyun.oss.common.auth.EnvironmentVariableCredentialsProvider; import com.aliyun.oss.common.comm.SignVersion; import java.io.ByteArrayInputStream; public class OssCliectTest { public static void main(String[] args) throws Exception { // Specify the accelerated endpoint of the accelerator. String endpoint = "cn-hangzhou-j-internal.oss-data-acc.aliyuncs.com"; // Specify the ID of the region that maps to the endpoint. Example: cn-hangzhou. String region = "cn-hangzhou"; // Specify access credentials. String alibaba_cloud_access_key_id = "LT********************CT"; String alibaba_cloud_access_key_secret = "V0q***************************OKp"; // Specify the name of the bucket. Example: examplebucket. String bucketName = "BucketName"; // Specify the full path of the object. Example: exampledir/exampleobject.txt. Do not include the bucket name in the full path. String objectName = "Test.txt"; // Create an OSSClient instance. // Call the shutdown method to release resources when the OSSClient is no longer in use. ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration(); // Explicitly declare the use of the V4 signature algorithm. clientBuilderConfiguration.setSignatureVersion(SignVersion.V4); OSS ossClient = OSSClientBuilder.create() .endpoint(endpoint) .credentialsProvider(credentialsProvider) .clientConfiguration(clientBuilderConfiguration) .region(region) .build(); String content = "##################"; // Upload the configurations of the content variable to the Test.txt file in the bucket. ossClient.putObject(bucketName,objectName,new ByteArrayInputStream(content.getBytes())); // Shut down the OSSClient instance. ossClient.shutdown(); } }