Fitur Akselerator Object Storage Service (OSS) memungkinkan Anda membuat akselerator yang bekerja dengan alat OSS dan OSS SDK untuk melakukan operasi secara efisien, seperti mengunggah dan mengunduh data. Topik ini menjelaskan cara mengonfigurasi dan menggunakan akselerator OSS dengan alat OSS dan OSS SDK.
Solusi
Anda dapat menggunakan fitur akselerator OSS bersama dengan alat dan OSS SDK berikut untuk mengimplementasikan akses data dengan respons milidetik, latensi rendah, dan throughput tinggi:
Gunakan akselerator OSS bersama dengan ossutil: Tambahkan titik akhir yang dipercepat dari akselerator ke file konfigurasi ossutil.
Gunakan akselerator OSS bersama dengan ossfs: Saat menggunakan ossfs untuk memasang bucket ke direktori lokal, tambahkan titik akhir yang dipercepat dari akselerator ke perintah pemasangan.
Gunakan akselerator OSS bersama dengan OSS Connector untuk AI/ML: Saat menggunakan OSS Connector untuk membangun dataset, Anda dapat menggunakan parameter
endpointuntuk meneruskan titik akhir yang dipercepat dari akselerator.Gunakan akselerator OSS bersama dengan OSS SDK: OSS SDK for Java digunakan sebagai contoh. Saat menginisialisasi instance OSSClient, titik akhir yang dipercepat dari akselerator diteruskan menggunakan parameter
endpoint.
Saat menggunakan akselerator OSS, atur titik akhir yang digunakan untuk mengakses OSS ke titik akhir yang dipercepat dari akselerator. Contohnya:
Saat mengonfigurasi ossutil, atur parameter
endpointke titik akhir yang dipercepat dari akselerator.Saat menggunakan ossfs untuk memasang bucket ke direktori lokal, atur parameter
-ourlke titik akhir yang dipercepat dari akselerator.
Prasyarat
Akselerator telah dibuat. Untuk instruksi, lihat Buat Akselerator OSS.
Solusi 1: Gunakan akselerator OSS bersama dengan ossutil
Gunakan Akselerator OSS Bersama dengan ossutil
Dalam contoh ini, ossutil diinstal pada sistem operasi Linux x86 64-bit. Untuk informasi lebih lanjut tentang cara menginstal ossutil pada sistem operasi lain, lihat Instal ossutil.
Instal ossutil.
Unduh paket instalasi 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.zipPergi ke direktori tempat paket instalasi ossutil disimpan dan jalankan perintah unzip berikut:
unzip ossutil-2.0.3-beta.09261200-linux-amd64.zipPergi ke direktori tempat paket diekstraksi dan jalankan perintah berikut:
chmod 755 ossutilJalankan perintah berikut di direktori saat ini untuk memungkinkan ossutil dipanggil secara global:
sudo mv ossutil /usr/local/bin/ && sudo ln -s /usr/local/bin/ossutil /usr/bin/ossutilJalankan perintah berikut. Jika nomor versi ossutil dikembalikan, ossutil 2.0 telah diinstal.
ossutil version
Konfigurasikan ossutil dan tambahkan titik akhir yang dipercepat dari akselerator.
Buat file konfigurasi ossutil. Anda dapat menentukan jalur dan nama file konfigurasi.
touch ossutilconfigKonfigurasikan parameter dan simpan file konfigurasi. Untuk informasi lebih lanjut, lihat Konfigurasikan ossutil.
#[profile dev] Nama bagian. Anda dapat menentukan nama bagian. #accessKeyId, accessKeySecret ID AccessKey dan Rahasia AccessKey dari pengguna RAM. #region Wilayah tempat bucket berada. # buckets=dev-bucket Gunakan parameter dalam bagian dev-bucket. #[buckets dev-bucket] Nama bagian. Anda dapat menentukan nama bagian. #bucketname Nama bucket. #endpoint Titik akhir yang dipercepat dari akselerator. [profile dev] accessKeyId=LTA*********************ICT accessKeySecret=V0qK**********************OOKp region=cn-hangzhou buckets=dev-bucket [buckets dev-bucket] bucket-name = #Tentukan titik akhir dari akselerator. endpoint=cn-hangzhou-j-internal.oss-data-acc.aliyuncs.com
Gunakan akselerator.
Dalam contoh berikut, objek diunduh dari bucket ke direktori saat ini bernama
testlebih cepat karena akselerator dikonfigurasi di ossutil. Untuk informasi lebih lanjut tentang perintah ossutil, lihat Perintah ossutil.Perintah
cpdigunakan untuk mengunduh objek. Anda dapat menentukan parameter-runtuk melakukan operasi rekursif pada objek di bucket yang ditentukan oleh parameterbucket-name. Parameter-cmenentukan jalur file konfigurasi ossutil. Parameter--profilemenggunakan konfigurasi di bagiandev.ossutil cp -r oss://bucket-name/ ./test/ -c ./ossutilconfig --profile dev
Solusi 2: Gunakan akselerator OSS bersama dengan ossfs
Gunakan Akselerator OSS Bersama dengan ossfs
Dalam contoh ini, ossfs diinstal pada sistem operasi Ubuntu 16.04 x86. Untuk informasi lebih lanjut tentang cara menginstal ossfs versi berbeda pada sistem operasi berbeda, lihat Instal ossfs.
Instal 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.debTambahkan file mime.types.
Jalankan perintah berikut untuk menambahkan file mime.types guna memastikan bahwa tipe konten objek yang diunggah sesuai dengan ekstensi nama objek:
sudo apt-get install mime-supportKonfigurasikan ossfs, gunakan ossfs untuk memasang bucket ke sistem file lokal, dan konfigurasikan akselerator untuk bucket. Untuk informasi lebih lanjut tentang cara melakukan operasi pemasangan menggunakan ossfs, lihat Pasang Ruang Penyimpanan.
Simpan ID AccessKey dan Rahasia AccessKey di file konfigurasi akun bernama /etc/passwd-ossfs.
echo bucket-test:LTAI****************2CT:V0************************OKp > /etc/passwd-ossfsAtur izin file konfigurasi menjadi 640.
chmod 640 /etc/passwd-ossfsBuat direktori pemasangan.
mkdir bucket-testPasang bucket bernama bucket-test ke direktori /tmp/bucket-test/ dan tentukan titik akhir yang dipercepat dari akselerator.
ossfs bucket-test /tmp/bucket-test/ -ourl=cn-hangzhou-j-internal.oss-data-acc.aliyuncs.com
Gunakan akselerator.
Setelah akselerator dikonfigurasi untuk ossfs, Anda dapat melakukan operasi baca dan tulis secara efisien pada objek di bucket yang dipasang ke sistem file lokal. Sebagai contoh, Anda dapat memuat file model yang disimpan di OSS lebih cepat dalam tugas pelatihan model lokal.
Solusi 3: Gunakan akselerator OSS bersama dengan OSS Connector untuk AI atau ML
Gunakan Akselerator OSS Bersama dengan OSS Connector untuk AI atau ML
Contoh berikut menunjukkan cara menginstal OSS Connector untuk AI/ML untuk Python 3.12. Untuk menginstal OSS Connector untuk AI/ML untuk Python versi berbeda, ubah versi Python ke nomor versi tertentu.
Prasyarat:
Sistem operasi: Linux x86 64-bit
glibc: 2.17 atau lebih baru
Python: 3.8 hingga 3.12
PyTorch: 2.0 atau lebih baru
Untuk menggunakan fitur checkpoint OSS, kernel Linux harus mendukung userfaultfd.
CatatanDalam contoh ini, Ubuntu digunakan. Anda dapat menjalankan perintah
sudo grep CONFIG_USERFAULTFD /boot/config-$(uname -r)untuk memeriksa apakah kernel Linux mendukung userfaultfd. JikaCONFIG_USERFAULTFD=ydikembalikan, kernel Linux mendukung userfaultfd. JikaCONFIG_USERFAULTFD=ndikembalikan, kernel Linux tidak mendukung userfaultfd. Dengan cara ini, fitur checkpoint OSS tidak dapat digunakan.
Instal OSS Connector untuk AI/ML.
Jalankan perintah
pip3.12 install osstorchconnectoruntuk menginstal OSS Connector untuk AI/ML di container yang dihasilkan menggunakan Linux atau image berbasis Linux.pip3.12 install osstorchconnectorJalankan perintah
pip3.12 show osstorchconnectoruntuk memeriksa apakah OSS Connector untuk AI/ML terinstal.pip3.12 show osstorchconnectorJika informasi versi osstorchconnector dikembalikan, OSS Connector untuk AI/ML telah diinstal.

Konfigurasikan OSS Connector untuk AI/ML.
Buat file konfigurasi untuk kredensial akses.
mkdir -p /root/.alibabacloud && touch /root/.alibabacloud/credentialsTambahkan kredensial akses ke file konfigurasi dan simpan file konfigurasi.
Ganti
<Access-key-id>dan<Access-key-secret>dalam contoh dengan ID AccessKey dan Rahasia AccessKey dari pengguna RAM. Untuk informasi lebih lanjut tentang cara membuat ID AccessKey dan Rahasia AccessKey, lihat Buat Pasangan AccessKey. Untuk informasi lebih lanjut tentang item konfigurasi dan konfigurasi menggunakan kredensial akses sementara, lihat Konfigurasikan Kredensial Akses.{ "AccessKeyId": "LTAI************************", "AccessKeySecret": "At32************************" }Buat file konfigurasi untuk OSS Connector.
mkdir -p /etc/oss-connector/ && touch /etc/oss-connector/config.jsonTambahkan konfigurasi OSS connector ke file konfigurasi dan simpan file konfigurasi. Untuk informasi lebih lanjut tentang item konfigurasi, lihat Konfigurasikan OSS Connector.
Dalam kebanyakan kasus, Anda dapat menggunakan konfigurasi default berikut.
{ "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 } }
Gunakan akselerator.
Kode sampel berikut memberikan contoh tentang cara menggunakan metode from_prefix OssMapDataset untuk membangun dataset dalam kapasitas cache akselerator:
Endpointmenentukan titik akhir yang dipercepat dari akselerator.from osstorchconnector import OssMapDataset # Ganti ENDPOINT dengan titik akhir yang dipercepat dari akselerator. ENDPOINT = "cn-hangzhou-j-internal.oss-data-acc.aliyuncs.com" # Tentukan jalur file konfigurasi OSS Connector untuk AI/ML. CONFIG_PATH = "/etc/oss-connector/config.json" # Tentukan jalur file konfigurasi kredensial akses. CRED_PATH = "/root/.alibabacloud/credentials" # Tentukan jalur direktori bucket. OSS_URI = "oss://ai-testset/EnglistImg/Img/BadImag/Bmp/Sample001/" # Gunakan metode from_prefix OssMapDataset untuk membangun dataset. map_dataset = OssMapDataset.from_prefix(oss_uri=OSS_URI, endpoint=ENDPOINT, cred_path=CRED_PATH, config_path=CONFIG_PATH) # Akses objek dalam dataset yang dibuat secara acak. item = map_dataset[0] print(item.key) content = item.read() print(item.size) print(len(content)) # Telusuri objek dalam dataset. for item in map_dataset: print(item.key) print(item.size) content = item.read() print(len(content))
Solusi 4: Gunakan akselerator OSS bersama dengan OSS SDK
Gunakan Akselerator OSS Bersama dengan OSS SDK
Dalam contoh berikut, akselerator OSS bekerja dengan OSS SDK for Java. Jika Anda ingin menggunakan akselerator OSS bersama dengan OSS SDK untuk bahasa pemrograman lain, tentukan titik akhir yang dipercepat dari akselerator saat menginisialisasi instance OSSClient.
Prasyarat:
Java 1.7.0 atau lebih baru telah diinstal.
Anda dapat menjalankan perintah java -version untuk memeriksa versi Java.
Dependensi untuk OSS SDK for Java ditambahkan ke proyek Maven. Untuk informasi lebih lanjut tentang cara mengimpor paket JAR ke OSS SDK for Java, lihat Instalasi.
Untuk menggunakan OSS SDK for Java di Maven, Anda hanya perlu menambahkan dependensi yang diperlukan ke file pom.xml. Dalam contoh ini, dependensi untuk OSS SDK for Java 3.17.4 ditambahkan.
<dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>3.17.4</version> </dependency>Jika Anda menggunakan Java 9 atau lebih baru, tambahkan dependensi terkait JAXB. Kode sampel berikut memberikan contoh tentang cara menambahkan dependensi terkait 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> <!-- tidak lebih dari 2.3.3--> <dependency> <groupId>org.glassfish.jaxb</groupId> <artifactId>jaxb-runtime</artifactId> <version>2.3.3</version> </dependency>Gunakan akselerator.
Kode sampel berikut memberikan contoh tentang cara menggunakan OSS SDK for Java bersama dengan akselerator untuk mengunggah objek. Ganti nilai parameter
endpointdengan titik akhir yang dipercepat dari akselerator.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 { // Tentukan titik akhir yang dipercepat dari akselerator. String endpoint = "cn-hangzhou-j-internal.oss-data-acc.aliyuncs.com"; // Tentukan ID wilayah yang sesuai dengan titik akhir. Contoh: cn-hangzhou. String region = "cn-hangzhou"; // Tentukan kredensial akses. String alibaba_cloud_access_key_id = "LT********************CT"; String alibaba_cloud_access_key_secret = "V0q***************************OKp"; // Tentukan nama bucket. Contoh: examplebucket. String bucketName = "BucketName"; // Tentukan jalur lengkap objek. Contoh: exampledir/exampleobject.txt. Jangan sertakan nama bucket dalam jalur lengkap. String objectName = "Test.txt"; // Buat instance OSSClient. // Panggil metode shutdown untuk melepaskan sumber daya saat OSSClient tidak lagi digunakan. ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration(); // Secara eksplisit nyatakan penggunaan algoritma tanda tangan V4. clientBuilderConfiguration.setSignatureVersion(SignVersion.V4); OSS ossClient = OSSClientBuilder.create() .endpoint(endpoint) .credentialsProvider(credentialsProvider) .clientConfiguration(clientBuilderConfiguration) .region(region) .build(); String content = "##################"; // Unggah konfigurasi variabel konten ke file Test.txt di bucket. ossClient.putObject(bucketName,objectName,new ByteArrayInputStream(content.getBytes())); // Matikan instance OSSClient. ossClient.shutdown(); } }