Apa itu JuiceFS?
Kolaborasi antara komunitas sumber terbuka adalah hal yang ajaib. Para sukarelawan yang bersemangat, cerdas, dan kreatif tidak hanya membuat solusi sumber terbuka tetap inovatif, mereka juga bekerja untuk menyatukan berbagai alat yang berbeda dengan cara yang menarik dan bermanfaat. Milvus, basis data vektor paling populer di dunia, dan JuiceFS, sistem berkas bersama yang dirancang untuk lingkungan cloud-native, disatukan dalam semangat ini oleh komunitas sumber terbuka masing-masing. Artikel ini menjelaskan apa itu JuiceFS, cara membangun cluster Milvus berdasarkan penyimpanan file bersama JuiceFS, dan kinerja yang dapat diharapkan pengguna dengan menggunakan solusi ini.
Apa itu JuiceFS?
JuiceFS adalah sistem berkas POSIX terdistribusi sumber terbuka berkinerja tinggi, yang dapat dibangun di atas Redis dan S3. Sistem ini dirancang untuk lingkungan cloud-native dan mendukung pengelolaan, analisis, pengarsipan, dan pencadangan data jenis apa pun. JuiceFS biasanya digunakan untuk memecahkan tantangan data besar, membangun aplikasi kecerdasan buatan (AI), dan pengumpulan log. Sistem ini juga mendukung berbagi data di beberapa klien dan dapat digunakan secara langsung sebagai penyimpanan bersama di Milvus.
Setelah data, dan metadata yang sesuai, disimpan ke penyimpanan objek dan Redis, JuiceFS berfungsi sebagai middleware tanpa kewarganegaraan. Berbagi data direalisasikan dengan memungkinkan berbagai aplikasi yang berbeda untuk saling terhubung satu sama lain secara mulus melalui antarmuka sistem berkas standar. JuiceFS mengandalkan Redis, sebuah penyimpanan data dalam memori sumber terbuka, untuk penyimpanan metadata. Redis digunakan karena menjamin atomisitas dan menyediakan operasi metadata berkinerja tinggi. Semua data disimpan dalam penyimpanan objek melalui klien JuiceFS. Diagram arsitekturnya adalah sebagai berikut:
juicefs-architecture.png
Membangun kluster Milvus berdasarkan JuiceFS
Milvus cluster yang dibangun dengan JuiceFS (lihat diagram arsitektur di bawah ini) bekerja dengan memecah permintaan hulu menggunakan Mishards, sebuah middleware cluster sharding, untuk mengalirkan permintaan ke sub-modul. Ketika memasukkan data, Mishards mengalokasikan permintaan hulu ke simpul tulis Milvus, yang menyimpan data yang baru dimasukkan dalam JuiceFS. Saat membaca data, Mishards memuat data dari JuiceFS melalui simpul baca Milvus ke memori untuk diproses, kemudian mengumpulkan dan mengembalikan hasil dari sub-layanan di hulu.
milvus-cluster-dibangun-dengan-juicefs.png
Langkah 1: Meluncurkan layanan MySQL
Luncurkan layanan MySQL pada setiap node di dalam cluster. Untuk detailnya, lihat Mengelola Metadata dengan MySQL.
Langkah 2: Membuat sistem berkas JuiceFS
Untuk tujuan demonstrasi, digunakan program JuiceFS biner yang sudah dikompilasi. Unduh paket instalasi yang tepat untuk sistem Anda dan ikuti Panduan Memulai Cepat JuiceFS untuk petunjuk instalasi yang mendetail. Untuk membuat sistem berkas JuiceFS, pertama-tama siapkan basis data Redis untuk penyimpanan metadata. Direkomendasikan untuk penerapan awan publik, Anda meng-host layanan Redis pada awan yang sama dengan aplikasi. Selain itu, siapkan penyimpanan objek untuk JuiceFS. Dalam contoh ini, Azure Blob Storage digunakan; namun, JuiceFS mendukung hampir semua layanan objek. Pilih layanan penyimpanan objek yang paling sesuai dengan kebutuhan skenario Anda.
Setelah mengonfigurasi layanan Redis dan penyimpanan objek, format sistem berkas baru dan pasang JuiceFS ke direktori lokal:
1 $ export AZURE_STORAGE_CONNECTION_STRING="DefaultEndpointsProtocol=https;AccountName=XXX;AccountKey=XXX;EndpointSuffix=core.windows.net"
2 $ ./juicefs format \
3 --storage wasb \
4 --bucket https://<container> \
5 ... \
6 localhost test #format
7 $ ./juicefs mount -d localhost ~/jfs #mount
8
Jika server Redis tidak berjalan secara lokal, ganti hos lokal dengan alamat berikut ini:
redis://<user:password>@host:6379/1.
Ketika instalasi berhasil, JuiceFS mengembalikan halaman penyimpanan bersama /root/jfs.
instalasi-sukses.png
Langkah 3: Mulai Milvus
Semua node dalam klaster harus sudah terinstal Milvus, dan setiap node Milvus harus dikonfigurasi dengan izin baca atau tulis. Hanya satu node Milvus yang dapat dikonfigurasi sebagai node tulis, dan sisanya harus menjadi node baca. Pertama, atur parameter bagian cluster dan general dalam berkas konfigurasi sistem Milvus server_config.yaml:
Bagian cluster
| Parameter | Deskripsi | Konfigurasi |
|---|---|---|
enable | Apakah akan mengaktifkan mode cluster | true |
role | Peran penyebaran Milvus | rw/ro |
Bagian general
# meta_uri is the URI for metadata storage, using MySQL (for Milvus Cluster). Format: mysql://<username:password>@host:port/database
general:
timezone: UTC+8
meta_uri: mysql://root:milvusroot@host:3306/milvus
Selama instalasi, jalur penyimpanan bersama JuiceFS yang dikonfigurasi ditetapkan sebagai /root/jfs/milvus/db.
1 sudo docker run -d --name milvus_gpu_1.0.0 --gpus all \
2 -p 19530:19530 \
3 -p 19121:19121 \
4 -v /root/jfs/milvus/db:/var/lib/milvus/db \ #/root/jfs/milvus/db is the shared storage path
5 -v /home/$USER/milvus/conf:/var/lib/milvus/conf \
6 -v /home/$USER/milvus/logs:/var/lib/milvus/logs \
7 -v /home/$USER/milvus/wal:/var/lib/milvus/wal \
8 milvusdb/milvus:1.0.0-gpu-d030521-1ea92e
9
Setelah instalasi selesai, mulai Milvus dan konfirmasikan bahwa Milvus telah diluncurkan dengan benar. Terakhir, mulai layanan Mishards pada salah satu node dalam kluster. Gambar di bawah ini menunjukkan peluncuran Mishards yang berhasil. Untuk informasi lebih lanjut, lihat tutorial GitHub.
mishards-launch-success.png
Tolok ukur kinerja
Solusi penyimpanan bersama biasanya diimplementasikan oleh sistem penyimpanan yang terhubung ke jaringan (NAS). Jenis sistem NAS yang umum digunakan termasuk Network File System (NFS) dan Server Message Block (SMB). Platform cloud publik umumnya menyediakan layanan penyimpanan terkelola yang kompatibel dengan protokol-protokol ini, seperti Amazon Elastic File System (EFS).
Tidak seperti sistem NAS tradisional, JuiceFS diimplementasikan berdasarkan Filesystem in Userspace (FUSE), di mana semua pembacaan dan penulisan data dilakukan secara langsung di sisi aplikasi, sehingga mengurangi latensi akses. Terdapat juga fitur unik pada JuiceFS yang tidak dapat ditemukan pada sistem NAS lainnya, seperti kompresi data dan caching.
Pengujian benchmark menunjukkan bahwa JuiceFS menawarkan keunggulan utama dibandingkan EFS. Pada benchmark metadata (Gambar 1), JuiceFS menunjukkan operasi I/O per detik (IOPS) hingga sepuluh kali lebih tinggi daripada EFS. Selain itu, tolok ukur throughput I/O (Gambar 2) menunjukkan JuiceFS mengungguli EFS baik dalam skenario pekerjaan tunggal maupun banyak pekerjaan.
performance-benchmark-1.png
performance-benchmark-2.png
Selain itu, pengujian benchmark menunjukkan waktu pengambilan kueri pertama, atau waktu untuk memuat data yang baru dimasukkan dari disk ke memori, untuk cluster Milvus berbasis JuiceFS rata-rata hanya 0,032 detik, yang mengindikasikan bahwa data dimuat dari disk ke memori hampir seketika. Untuk pengujian ini, waktu pengambilan kueri pertama diukur dengan menggunakan satu juta baris data vektor 128 dimensi yang disisipkan dalam kelompok 100 ribu dengan interval 1 hingga 8 detik.
JuiceFS adalah sistem penyimpanan file bersama yang stabil dan dapat diandalkan, dan cluster Milvus yang dibangun di atas JuiceFS menawarkan kinerja tinggi dan kapasitas penyimpanan yang fleksibel.
Pelajari lebih lanjut tentang Milvus
Milvus adalah alat canggih yang mampu mendukung beragam kecerdasan buatan dan aplikasi pencarian kemiripan vektor. Untuk mempelajari lebih lanjut tentang proyek ini, lihat sumber daya berikut:
- Baca blog kami.
- Berinteraksi dengan komunitas sumber terbuka kami di Slack.
- Gunakan atau kontribusikan database vektor paling populer di dunia di GitHub.
- Menguji dan menerapkan aplikasi AI dengan cepat dengan bootcamp baru kami.
penulis bio-changjian gao.png
penulis bio-jingjing jia.png
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word



