Searchable Snapshot memungkinkan Anda menyimpan data historis sebagai snapshot di Alibaba Cloud OSS sambil tetap mempertahankan kemampuan kueri. Fitur ini mengurangi biaya penyimpanan tanpa mengorbankan ketersediaan data. Untuk informasi selengkapnya, lihat ES Searchable snapshots.
Restrictions
Enable archive data nodes
Untuk menggunakan Searchable Snapshot, Anda harus mengaktifkan archive data nodes pada instans Alibaba Cloud Elasticsearch Anda. Archive data node merupakan lapisan komputasi untuk Searchable Snapshot yang memelihara metadata indeks, mengelola cache lokal, dan mengambil blok data dari Alibaba Cloud OSS sesuai permintaan.
-
Masuk ke Alibaba Cloud Elasticsearch console.
-
Ikuti langkah-langkah berikut sesuai jenis instans Anda:
-
Untuk instans 8.17.0 baru: Pada halaman Create Instance, pilih versi 8.17.0. Di bagian spesifikasi instans, pilih Archive Data Node dan konfigurasikan jumlah serta spesifikasi node.
-
-
Pilih spesifikasi node.
Archive data nodes tidak memerlukan disk lokal berkapasitas besar karena datanya disimpan di Alibaba Cloud OSS. Kami menyarankan untuk mengonfigurasi memori yang cukup guna meningkatkan tingkat hit cache. Konfigurasi yang direkomendasikan: 4 core dan memori 16 GB atau lebih tinggi, dengan disk minimal 500 GB (Efficient Cloud Disk atau ESSD).
-
Konfirmasi pembelian dan tunggu hingga perubahan selesai. Setelah archive data nodes siap, fitur Searchable Snapshot diaktifkan secara default dan tidak memerlukan tindakan tambahan.
Configure an OSS snapshot repository
Alibaba Cloud Elasticsearch dilengkapi plugin repository-oss yang telah dipra-instal. Anda dapat menggunakan Alibaba Cloud OSS sebagai repositori snapshot tanpa perlu menginstal plugin tambahan.
Repositori default aliyun_auto_snapshot yang disertakan pada instans Alibaba Cloud Elasticsearch secara berkala menghapus data snapshot lama. Jika Anda menggunakan repositori ini untuk Searchable Snapshots, data dalam indeks yang dimount akan hilang permanen dan tidak dapat dipulihkan setelah snapshot dihapus. Di lingkungan produksi, Anda harus membuat repositori OSS Snapshot terpisah.
Di Kibana Dev Tools, jalankan perintah berikut untuk mendaftarkan repositori snapshot OSS:
PUT _snapshot/my_oss_repo
{
"type": "oss",
"settings": {
"endpoint": "http://oss-cn-hangzhou-internal.aliyuncs.com",
"access_key_id": "<your_access_key_id>",
"secret_access_key": "<your_secret_access_key>",
"bucket": "<your_bucket_name>",
"base_path": "es_snapshots",
"compress": true,
"chunk_size": "500mb"
}
}
|
Parameter |
Description |
|
|
Titik akhir wilayah Alibaba Cloud OSS. Menggunakan titik akhir pribadi |
|
|
ID AccessKey Alibaba Cloud Anda. Pengguna RAM yang sesuai harus memiliki izin baca dan tulis pada bucket target. |
|
|
Rahasia AccessKey Alibaba Cloud Anda. |
|
|
Nama bucket Alibaba Cloud OSS. Kami menyarankan agar bucket berada di wilayah yang sama dengan instans Alibaba Cloud Elasticsearch Anda. |
|
|
Awal path penyimpanan untuk snapshot di dalam bucket. |
|
|
Menentukan apakah file metadata dikompresi. Kami menyarankan mengatur nilai ini ke |
|
|
Ukuran chunk untuk unggahan file besar. Ini berguna untuk indeks besar. |
Verifikasi koneksi repositori:
POST _snapshot/my_oss_repo/_verify
Tanggapan sukses akan mencantumkan node kluster, yang mengonfirmasi bahwa mereka telah terhubung ke Alibaba Cloud OSS dengan izin baca dan tulis yang diperlukan. Untuk daftar lengkap parameter plugin OSS, lihat elasticsearch-repository-oss.
Create and mount a snapshot
Create a snapshot
Buat snapshot dari indeks yang ingin Anda arsipkan.
Perintah berikut membuat snapshot bernama snapshot_20260227 dan menyimpannya di repositori my_oss_repo.
PUT _snapshot/my_oss_repo/snapshot_20260227
{
"indices": "logs-2025-*",
"ignore_unavailable": true,
"include_global_state": false
}
|
Parameter |
Example |
Description |
|
Repository name |
|
• Lokasi penyimpanan snapshot: Nama repositori yang sesuai dengan bucket Alibaba Cloud OSS yang telah diverifikasi. |
|
Snapshot name |
|
• Identifikasi file backup: Nama unik untuk file backup yang dihasilkan di Alibaba Cloud OSS. |
|
indices |
|
• Menentukan cakupan backup: Menggunakan wildcard |
|
ignore_unavailable |
|
• Mekanisme toleransi kesalahan: Jika diatur ke |
|
include_global_state |
|
• Kontrol status global: Jika |
Periksa progres snapshot:
GET _snapshot/my_oss_repo/snapshot_20260227/_status
Dalam tanggapan, jika bidang state bernilai SUCCESS dan shards_stats.failed bernilai 0, perintah snapshot berhasil.
Data berikut hanya untuk tujuan pengujian.
POST logs-2025-01-01/_doc
{ "message": "test log data 01", "level": "info", "timestamp": "2025-01-01T10:00:00" }
POST logs-2025-01-02/_doc
{ "message": "test log data 02", "level": "warn", "timestamp": "2025-01-02T10:00:00" }
POST logs-2025-01-03/_doc
{ "message": "test log data 03", "level": "error", "timestamp": "2025-01-03T10:00:00" }
POST logs-2025-01-04/_doc
{ "message": "test log data 04", "level": "info", "timestamp": "2025-01-04T10:00:00" }
POST logs-2025-01-05/_doc
{ "message": "test log data 05", "level": "debug", "timestamp": "2025-01-05T10:00:00" }
Mount to the Frozen Tier
Gunakan Mount Snapshot API untuk memount indeks dari snapshot dalam mode partially mounted:
POST _snapshot/my_oss_repo/snapshot_20260227/_mount?storage=shared_cache&wait_for_completion=true
{
"index": ".ds-logs-2025-01-01-2026.03.03-000001",
"renamed_index": "frozen-logs-2025-01-01",
"index_settings": {
"index.number_of_replicas": 0
},
"ignore_index_settings": ["index.refresh_interval"]
}
|
Parameter |
Description |
|
|
Nama indeks. Anda dapat menjalankan |
|
|
Menggunakan mode partially mounted, di mana data tetap berada di Alibaba Cloud OSS dan hanya data yang sering diakses yang di-cache secara lokal. |
|
|
Nama baru untuk indeks yang dimount. Kami menyarankan menambahkan awalan seperti Penting
Untuk memount beberapa indeks, jalankan perintah ini untuk setiap indeks, dengan memperbarui parameter |
|
|
Atur ke |
|
|
Atur ke |
Menghapus snapshot yang dirujuk oleh Searchable Snapshot akan membuat data indeks tidak tersedia.
Query the mounted index
Menanyakan indeks Searchable Snapshot identik dengan menanyakan indeks biasa:
GET frozen-logs-2025-01-01/_search
{
"query": {
"match": {
"message": "error"
}
}
}
Anda dapat menggunakan wildcard untuk menanyakan indeks online dan arsip secara bersamaan:
GET logs-2025-*,frozen-logs-2025-*/_search
{
"query": {
"range": {
"timestamp": {
"gte": "2025-01-01",
"lt": "2025-02-01"
}
}
}
}
Tanggapan dianggap sukses ketika _shards.successful sama dengan jumlah total shard, dan hits.total.value lebih besar dari 0.
Unmount a Searchable Snapshot index
Untuk unmount indeks Searchable Snapshot, hapus indeks tersebut. Tindakan ini tidak memengaruhi data snapshot yang mendasarinya di Alibaba Cloud OSS, yang dapat dimount kembali nanti.
DELETE frozen-logs-2025-01-01
Untuk memulihkan data arsip sebagai indeks biasa yang dapat ditulis, gunakan Restore API standar untuk memulihkan data snapshot dari Alibaba Cloud OSS ke kluster Elasticsearch:
POST _snapshot/my_oss_repo/snapshot_20260227/_restore
{
"indices": ".ds-logs-2025-01-01-2026.03.03-000001",
"rename_pattern": "(.+)",
"rename_replacement": "restored-$1"
}
Automate the data lifecycle with ILM
Gunakan kebijakan Index Lifecycle Management (ILM) untuk secara otomatis memigrasikan indeks ke Frozen Tier. Kebijakan berikut menerapkan siklus hidup lengkap Hot → Warm → Frozen → Delete. Saat indeks memasuki fase Frozen, ILM secara otomatis membuat snapshot di Alibaba Cloud OSS dan memount-nya dalam mode partially mounted, semuanya tanpa intervensi manual:
PUT _ilm/policy/logs_lifecycle_policy
{
"policy": {
"phases": {
"hot": {
"min_age": "0ms",
"actions": {
"rollover": {
"max_primary_shard_size": "50gb",
"max_age": "7d"
}
}
},
"warm": {
"min_age": "30d",
"actions": {
"shrink": { "number_of_shards": 1 },
"forcemerge": { "max_num_segments": 1 }
}
},
"frozen": {
"min_age": "90d",
"actions": {
"searchable_snapshot": {
"snapshot_repository": "my_oss_repo"
}
}
},
"delete": {
"min_age": "365d",
"actions": {
"delete": {}
}
}
}
}
}
Ikhtisar fase siklus hidup:
|
Phase |
Trigger time |
Core action |
Description |
|
Hot |
|
Rollover |
|
|
Warm |
|
Shrink |
|
|
Frozen |
|
Searchable Snapshot |
|
|
Delete |
|
Delete |
|
How it works
Searchable Snapshot menggunakan arsitektur pemisahan penyimpanan dan komputasi, di mana archive data nodes (lapisan komputasi) dan Alibaba Cloud OSS (lapisan penyimpanan) bekerja sama:
-
Alibaba Cloud OSS berfungsi sebagai lapisan penyimpanan persisten, bertindak sebagai repositori snapshot. Semua data snapshot disimpan di Alibaba Cloud OSS dan menggunakan redundansi internalnya sendiri untuk menjamin keandalan data. Hal ini menghilangkan kebutuhan akan shard replika di Elasticsearch.
-
Archive data node adalah lapisan komputasi yang bertanggung jawab menerima permintaan kueri dan mengoordinasikan akses data. Setiap node berisi tiga komponen utama:
-
Metadata: Menyimpan struktur indeks dan informasi pemetaan shard, memelihara tampilan logis dari indeks Searchable Snapshot.
-
Shared Cache: Menyimpan cache blok data yang sering diakses. Cache ini dibagi oleh semua shard dari indeks Searchable Snapshot pada node yang sama.
-
Query Engine: Menerima permintaan kueri, memeriksa cache hit, dan mengambil blok data dari Alibaba Cloud OSS sesuai permintaan jika terjadi cache miss.
-
Alur data dibagi menjadi jalur tulis dan kueri:
-
Jalur Tulis: Melalui tindakan manual atau kebijakan ILM, indeks di-snapshot ke Alibaba Cloud OSS. Saat dimount dengan parameter
storage=shared_cache, indeks memasuki mode partially mounted: data tetap berada di Alibaba Cloud OSS sementara archive data node hanya memuat metadata. -
Jalur Kueri: Archive data node pertama-tama memeriksa Shared Cache lokal untuk blok data yang diperlukan. Jika terjadi cache hit, hasil langsung dikembalikan dengan performa mirip data lokal. Jika terjadi cache miss, node mengambil blok data yang diperlukan dari Alibaba Cloud OSS, mengembalikan hasil, lalu menyimpan data tersebut dalam cache untuk kueri mendatang.
Shared Cache secara default menggunakan 90% dari total ruang disk node (atau total ruang dikurangi 100 GB, mana yang lebih kecil). Cache ini menggunakan kebijakan Least Recently Used (LRU) untuk mengeluarkan blok data dingin.
Elasticsearch mengkategorikan data ke dalam beberapa tier berdasarkan frekuensi akses. Searchable Snapshot melayani tier paling hemat biaya, yaitu Frozen Tier:
|
Data tier |
Storage medium |
Characteristics |
|
Hot Tier |
Local SSD |
Menangani tulis real-time dan kueri yang sering. Mempertahankan shard replika untuk menjamin ketersediaan tinggi. |
|
Warm Tier |
Standard disk |
Data tidak lagi ditulis tetapi masih tersedia untuk kueri frekuensi menengah. |
|
Frozen Tier |
OSS object storage + local cache |
Data berada di Alibaba Cloud OSS, dengan archive data nodes hanya menyimpan cache data hot. Biaya penyimpanan jauh lebih rendah dibandingkan Hot Tier. |
Searchable Snapshot mengurangi biaya melalui mekanisme berikut:
-
Penghapusan shard replika: Keandalan data dijamin oleh mekanisme multi-replika Alibaba Cloud OSS, sehingga tidak diperlukan shard replika. Hal ini mengurangi kebutuhan penyimpanan hingga 50% dan menghilangkan biaya traffic lintas zona ketersediaan.
-
Pemisahan penyimpanan dan komputasi: Semua data disimpan di Alibaba Cloud OSS, yang memiliki harga satuan jauh lebih rendah dibandingkan penyimpanan disk cloud (seringkali lebih murah hingga sepuluh kali lipat atau lebih). Archive data nodes hanya menyimpan metadata dan cache data hot.
-
Rasio kerapatan data yang sangat tinggi: Archive data nodes dapat mencapai rasio memori terhadap data sebesar 1:1500. Node dengan memori 64 GB dapat mengelola sekitar 100 TB data arsip, sedangkan sumber daya yang sama di Warm Tier hanya dapat mendukung sekitar 10 TB.
Use cases
-
Pengarsipan log: Migrasikan log lama ke Frozen Tier untuk mengurangi biaya penyimpanan sambil tetap mempertahankan kemampuan pencarian.
-
Kepatuhan dan audit: Simpan data jangka panjang untuk keperluan kepatuhan dengan biaya rendah, dengan pengambilan sesuai permintaan.
-
Analisis data historis: Analisis data historis yang jarang diakses tanpa menggunakan penyimpanan berkinerja tinggi yang mahal.