Pada instance Elastic Compute Service (ECS) yang sedang berjalan, beberapa data aplikasi seperti database mungkin masih tersimpan di memori atau sedang ditulis ke perangkat penyimpanan. Snapshot tidak dapat merekam data yang belum ditulis ke disk, yang dapat menyebabkan hilangnya data aplikasi atau ketidaksesuaian data saat Anda ingin memulihkan data menggunakan snapshot. Alibaba Cloud menggabungkan layanan snapshot dengan Cloud Assistant untuk menyediakan fitur snapshot konsisten aplikasi, yang memastikan konsistensi data dalam aplikasi Anda saat Anda memulihkan data dari snapshot.
Informasi latar belakang
Saat membuat grup snapshot konsisten, Anda dapat mengaktifkan fitur snapshot konsisten aplikasi. Sistem membuat snapshot konsisten aplikasi atau konsisten sistem file berdasarkan skenario bisnis. Tabel berikut menjelaskan dua jenis snapshot tersebut.
Item | Snapshot konsisten aplikasi | Snapshot konsisten sistem file |
Konsistensi data | Memastikan konsistensi data dalam data yang disimpan dan aplikasi, seperti database. | Memastikan konsistensi data dalam sistem file. |
Implementasi |
|
|
Skenario yang didukung | Snapshot konsisten aplikasi cocok untuk aplikasi yang memerlukan konsistensi data, seperti database dan sistem bisnis penting. | Snapshot konsisten sistem file cocok untuk skenario di mana diperlukan konsistensi keseluruhan sistem file, seperti server file dan sistem manajemen dokumen. |
Tag | APPConsistent:True | FsConsistent:True |
Cara kerja snapshot konsisten aplikasi
Berikut ini menjelaskan cara kerja snapshot konsisten aplikasi.
Instance Linux
Setelah fitur snapshot konsisten aplikasi diaktifkan untuk instance Linux, sistem secara default berada dalam keadaan konsisten sistem file. Setelah Anda mengunggah skrip shell, termasuk prescript.sh dan postscript.sh, yang telah disiapkan sebelumnya, sistem memeriksa konsistensi aplikasi berdasarkan skrip. Jika pemeriksaan berhasil, snapshot ditandai sebagai snapshot konsisten aplikasi. Jika pemeriksaan gagal, snapshot ditandai sebagai snapshot konsisten sistem file.
Tabel berikut menjelaskan skrip prescript.sh dan postscript.sh.
Nama skrip | Fungsionalitas | Jenis | Path | Izin | Isi |
prescript.sh | Digunakan untuk menangguhkan semua operasi tulis ke aplikasi sebelum Anda melakukan operasi yang dapat memengaruhi aplikasi. Ini mencegah ketidaksesuaian data akibat data baru yang dihasilkan selama operasi. | Shell | /tmp/prescript.sh | Hanya pengguna root yang memiliki izin baca, tulis, dan eksekusi pada skrip. | Anda harus menyusun skrip kustom berdasarkan persyaratan bisnis Anda. Sebagai contoh, susun skrip dengan mengikuti prosedur di Langkah 1: Buat skrip prescript.sh dan postscript.sh. |
postscript.sh | Setelah operasi yang dapat memengaruhi aplikasi, seperti pencadangan data, selesai, skrip postscript.sh dijalankan untuk memulihkan aplikasi dan melanjutkan operasi tulis. | Shell | /tmp/postscript.sh |
Nama skrip, jenis skrip, dan jalur penyimpanan untuk membuat snapshot konsisten aplikasi bersifat tetap. Gunakan nilai tetap saat Anda menyusun skrip kustom. Jika tidak, skrip mungkin gagal dijalankan.
Aktifkan fitur snapshot konsisten aplikasi untuk instance ECS tempat Anda ingin membuat snapshot dan periksa apakah Cloud Assistant terinstal pada instance tersebut.
CatatanJika Anda tidak menginstal Cloud Assistant pada instance dan Anda memilih opsi Aktifkan Snapshot Konsisten Aplikasi, plug-in Cloud Assistant yang diperlukan akan otomatis diinstal pada instance.
Cloud Assistant mengakses instance ECS untuk secara otomatis menjalankan perintah terkait, menjalankan skrip prescript.sh, menangguhkan operasi I/O, dan membuat snapshot.
Pengaturan skrip benar dan skrip berjalan sesuai harapan untuk membuat snapshot konsisten aplikasi.
Jika pengaturan skrip, seperti izin, jalur penyimpanan, atau nama skrip, tidak valid atau skrip gagal dijalankan, snapshot konsisten sistem file dibuat alih-alih snapshot konsisten aplikasi.
Cloud Assistant mengakses skrip postscript.sh untuk melanjutkan operasi I/O.
Instance Windows
Setelah Anda mengaktifkan fitur snapshot konsisten aplikasi untuk instance Windows, Cloud Assistant melakukan pemeriksaan konsisten aplikasi bersama dengan VSS. Jika pemeriksaan berhasil, snapshot ditandai sebagai snapshot konsisten aplikasi. Jika pemeriksaan gagal, snapshot ditandai sebagai snapshot konsisten sistem file.
Aktifkan fitur snapshot konsisten aplikasi untuk instance ECS tempat Anda ingin membuat snapshot dan periksa apakah Cloud Assistant terinstal pada instance tersebut.
CatatanJika Anda tidak menginstal Cloud Assistant pada instance dan Anda memilih opsi Aktifkan Snapshot Konsisten Aplikasi, plug-in Cloud Assistant yang diperlukan akan otomatis diinstal pada instance.
Cloud Assistant mengakses instance ECS untuk secara otomatis menjalankan perintah terkait, menangguhkan operasi I/O, dan membuat snapshot.
Cloud Assistant memanggil VSS dan menangguhkan semua operasi I/O.
Periksa apakah opsi Contain Writers by Default dipilih.
Jika opsi dipilih, snapshot konsisten aplikasi dibuat.
Jika opsi tidak dipilih, snapshot konsisten sistem file dibuat.
Lanjutkan operasi I/O.
Batasan
Snapshot konsisten aplikasi hanya didukung oleh Enterprise SSD (ESSD) yang fitur multi-attach-nya dinonaktifkan.
Anda dapat membuat snapshot konsisten aplikasi untuk disk cloud yang terpasang ke instance ECS yang sama, tetapi tidak untuk instance ECS yang berbeda.
Prasyarat
Sebuah instance ECS telah dibuat dan menjalankan salah satu versi sistem operasi berikut:
Windows: Windows Server 2012 R2 atau yang lebih baru.
Linux: CentOS 7.6 atau yang lebih baru, Ubuntu 18.04 atau yang lebih baru, atau Alibaba Cloud Linux 2.
Instance ECS berada dalam keadaan Running. Cloud Assistant berada dalam keadaan Normal pada instance. Untuk informasi tentang cara melihat status Cloud Assistant, lihat Lihat Status Cloud Assistant dan Tangani Anomali.
Peran RAM Resource Access Management (RAM) dilampirkan ke instance ECS dan kebijakan kustom yang berisi izin terkait snapshot konsisten aplikasi dilampirkan ke peran RAM. Untuk informasi lebih lanjut, lihat Buat Peran RAM Instance dan Lampirkan Peran RAM ke Instance ECS.
CatatanSaat Anda membuat snapshot konsisten aplikasi, Anda harus memanggil Cloud Assistant untuk mengakses instance ECS dan menjalankan perintah. Sebelum Anda memanggil Cloud Assistant, berikan Cloud Assistant izin yang diperlukan menggunakan peran RAM.
Konfigurasikan peran RAM kustom, seperti AppSnapshotRoleName.
Lampirkan kebijakan kustom ke peran RAM. Contoh kode berikut menunjukkan kebijakan kustom, yang menunjukkan bahwa peran RAM memiliki izin untuk menanyakan snapshot, membuat snapshot, menambahkan tag, dan menanyakan informasi disk.
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:DescribeSnapshot*", "ecs:CreateSnapshot*", "ecs:TagResources", "ecs:DescribeDisks" ], "Resource": [ "*" ], "Condition": {} } ] }
Prosedur
Gunakan konsol ECS
Instance Linux
Unggah skrip prescript.sh dan postscript.sh yang telah disiapkan ke instance ECS terlebih dahulu.
Untuk informasi lebih lanjut, lihat Gunakan Workbench untuk Mengunggah File ke atau Mengunduh File dari Instance ECS.
CatatanUntuk informasi tentang skrip prescript.sh dan postscript.sh, lihat Cara Kerja Snapshot Konsisten Aplikasi.
Pergi ke ECS Console - Snapshot-consistent Groups.
Di bilah navigasi atas, pilih wilayah dan grup sumber daya dari sumber daya yang ingin Anda kelola.
Di tab Snapshot-consistent Groups, klik Create Snapshot-consistent Group.
Di kotak dialog Create Snapshot, konfigurasikan parameter yang dijelaskan dalam tabel berikut untuk membuat grup konsistensi snapshot.
Secara default, parameter Resource Type diatur ke Instance.
Pilih instance Linux dari daftar drop-down Select Instances. Kemudian, di bagian Select Cloud Disks, pilih ESSD tempat Anda ingin membuat snapshot dari instance tersebut.
Perluas Advanced Settings dan konfigurasikan pengaturan snapshot konsisten aplikasi.
Jika Anda memilih Enable Application-consistent Snapshot dan mengonfigurasi skrip dengan benar, snapshot konsisten aplikasi dibuat.
Jika Anda memilih Enable Application-consistent Snapshot tetapi tidak mengonfigurasi atau salah mengonfigurasi skrip, snapshot konsisten sistem file dibuat.
CatatanJika Anda tidak menginstal Cloud Assistant pada instance dan Anda memilih Enable Application-consistent Snapshot, plug-in Cloud Assistant yang diperlukan akan otomatis diinstal pada instance.
Anda juga dapat memilih Enable untuk mengaktifkan fitur Penangguhan dan Pemulihan I/O Sistem File dan menentukan periode timeout.
CatatanJika Anda mengaktifkan fitur File System I/O Suspension and Resume, sistem menangguhkan operasi I/O ke sistem file saat snapshot sedang dibuat untuk mencegah ketidaksesuaian data yang disebabkan oleh operasi I/O yang sedang berlangsung. Jika Anda mengatur parameter Periode Timeout ke nilai lebih besar dari 16 dan penangguhan operasi I/O tidak selesai dalam periode tersebut, penangguhan operasi I/O gagal, yang dapat menyebabkan masalah ketidaksesuaian data.
Untuk informasi tentang parameter, lihat bagian Prosedur dari topik ini.
Klik OK.
Setelah grup konsistensi snapshot dibuat, pesan yang berisi ID perintah Cloud Assistant dan ID tugas ditampilkan. Anda dapat memeriksa apakah snapshot konsisten aplikasi dibuat berdasarkan ID tugas.
Di tab Command Execution Result halaman ECS Cloud Assistant, klik ID tugas dan periksa apakah snapshot konsisten aplikasi dibuat.

Nilai dari ExitCode adalah
0seperti yang ditunjukkan pada gambar di atas. Ini menunjukkan bahwa snapshot konsisten aplikasi dibuat sesuai harapan di Cloud Assistant. Dalam hal ini, ID grup konsistensi snapshot muncul di output perintah.CatatanJika nilai dari ExitCode bukan
0, terjadi kesalahan. Lakukan pemecahan masalah berdasarkan nilai di kolom ExitCode. Untuk informasi lebih lanjut, lihat bagian Kode Kesalahan dari topik ini.Lihat informasi tentang grup konsistensi snapshot yang dibuat dan snapshot dalam grup tersebut.
Pergi ke ECS Console - Snapshot-consistent Groups.
Di tab Snapshot-consistent Groups, temukan grup konsistensi snapshot yang Anda buat dan klik ID grup konsistensi snapshot untuk melihat detail snapshot.
Di bagian Snapshot Information, periksa apakah snapshot merupakan snapshot konsisten aplikasi atau snapshot konsisten sistem file berdasarkan tag.
Jika tag
AppConsistent:Truemuncul, snapshot konsisten aplikasi dibuat.
Jika tag
FsConsistent:Truemuncul, snapshot konsisten sistem file dibuat.
Instance Windows
Pergi ke ECS Console - Snapshot-consistent Groups.
Di bilah navigasi atas, pilih wilayah dan grup sumber daya dari sumber daya yang ingin Anda kelola.
Di tab Snapshot-consistent Groups, klik Create Snapshot-consistent Group.
Di kotak dialog Create Snapshot, konfigurasikan parameter yang dijelaskan dalam tabel berikut untuk membuat grup konsistensi snapshot.
Secara default, parameter Resource Type diatur ke Instance.
Pilih instance Windows dari daftar drop-down Select Instances. Kemudian, di bagian Select Cloud Disks, pilih ESSD tempat Anda ingin membuat snapshot dari instance tersebut.
Perluas Advanced Settings dan konfigurasikan pengaturan snapshot konsisten aplikasi.
Jika Anda memilih Enable Application-consistent Snapshot dan Contain Writers by Default, snapshot konsisten aplikasi dibuat. Setelah memilih Enable Application-consistent Snapshot, Anda dapat melihat opsi Contain Writers by Default.
Jika Anda hanya memilih Enable Application-consistent Snapshot, snapshot konsisten sistem file dibuat.
CatatanJika Anda tidak menginstal Cloud Assistant pada instance dan Anda memilih Enable Application-consistent Snapshot, plug-in Cloud Assistant yang diperlukan akan otomatis diinstal pada instance.
Untuk informasi tentang parameter, lihat bagian Prosedur dari topik ini.
Klik OK.
Setelah grup konsistensi snapshot dibuat, pesan yang berisi ID perintah Cloud Assistant dan ID tugas ditampilkan.
Di tab Command Execution Result halaman ECS Cloud Assistant, klik ID tugas dan periksa apakah snapshot konsisten aplikasi telah dibuat.

Nilai dari ExitCode adalah
0seperti yang ditunjukkan pada gambar di atas. Ini menunjukkan bahwa snapshot konsisten aplikasi dibuat sesuai harapan di Cloud Assistant. Dalam hal ini, ID grup konsistensi snapshot muncul di output perintah.CatatanJika nilai dari ExitCode bukan
0, terjadi kesalahan. Lakukan pemecahan masalah berdasarkan nilai di kolom ExitCode. Untuk informasi lebih lanjut, lihat bagian Kode Kesalahan dari topik ini.Lihat informasi tentang grup konsistensi snapshot yang dibuat dan snapshot dalam grup tersebut.
Pergi ke ECS Console - Snapshot-consistent Groups.
Di tab Snapshot-consistent Groups, temukan grup konsistensi snapshot yang Anda buat dan klik ID grup konsistensi snapshot untuk melihat detail snapshot.
Di bagian Snapshot Information, periksa apakah snapshot merupakan snapshot konsisten aplikasi atau snapshot konsisten sistem file berdasarkan tag.
Jika tag
AppConsistent:Truemuncul, snapshot konsisten aplikasi dibuat.
Jika tag
FsConsistent:Truemuncul, snapshot konsisten sistem file dibuat.
Panggil Operasi API
Panggil operasi RunCommand untuk menggunakan Cloud Assistant membuat snapshot konsisten aplikasi untuk satu atau lebih instance ECS.
Konfigurasikan parameter, seperti
RegionId,Type,CommandContent, danInstanceId, berdasarkan persyaratan bisnis Anda. Bagian berikut menyediakan contohCommandContentdan menjelaskan parameter yang ditentukan dalam isi perintah.Instance Linux
acs-plugin-manager --exec --plugin app-snapshot-plugin --params=-RamRoleName=\"AppSnapshotRoleName\",-EnableFsFreeze=true,-TimeoutInSeconds=30,-PreScriptPath=\"/tmp/prescript.sh\",-PostScriptPath=\"/tmp/postscript.sh\",-ExcludeDiskId=\"\",-Name=\"LinuxApp1\",-Description=\"LinuxApp\"acs-plugin-manager --exec --plugin app-snapshot-pluginmenunjukkan plug-in app-snapshot-plugin yang digunakan untuk menjalankan perintah Cloud Assistant.--params=menunjukkan parameter konfigurasi dari plug-in. Tabel berikut menjelaskan parameter ini.Parameter
Tipe
Diperlukan
Deskripsi
RamRoleName
String
Ya
Peran RAM yang dilampirkan ke instance ECS.
EnableFsFreeze
Boolean
Tidak
Menentukan apakah akan mengaktifkan fitur FsFreeze Linux untuk menyetel sistem file ke status hanya-baca sebelum snapshot dibuat.
Nilai default: True.
TimeoutInSeconds
Integer
Tidak
Periode timeout untuk operasi I/O. Unit: detik.
Nilai default: 30.
PreScriptPath
String
Tidak
Jalur tempat skrip prescript.sh disimpan. Contoh: /tmp/prescript.sh. Skrip prescript.sh harus memenuhi persyaratan berikut:
Izin: Atur nilai izin menjadi 700, yang menunjukkan bahwa hanya pengguna root yang memiliki izin baca, tulis, dan eksekusi.
Isi skrip: Susun konten skrip kustom berdasarkan persyaratan bisnis Anda.
PentingJika Anda membuat snapshot konsisten aplikasi untuk instance Linux, parameter ini diperlukan. Jika skrip berisi pengaturan tidak valid, seperti izin, jalur, atau nama file, snapshot konsisten sistem file dibuat alih-alih snapshot konsisten aplikasi.
PostScriptPath
String
Tidak
Jalur tempat skrip postscript.sh disimpan. Contoh: /tmp/postscript.sh. Skrip postscript.sh harus memenuhi persyaratan berikut:
Izin: Atur nilai izin menjadi 700, yang menunjukkan bahwa hanya pengguna root yang memiliki izin baca, tulis, dan eksekusi.
Isi skrip: Susun konten skrip kustom berdasarkan persyaratan bisnis Anda.
PentingJika Anda membuat snapshot konsisten aplikasi untuk instance Linux, parameter ini diperlukan. Jika skrip berisi pengaturan tidak valid, seperti izin, jalur, atau nama file, snapshot konsisten sistem file dibuat alih-alih snapshot konsisten aplikasi.
ExcludeDiskId
String
Tidak
Disk cloud yang ingin Anda kecualikan dari snapshot.
Name
String
Ya
Nama grup konsistensi snapshot.
Description
String
Tidak
Deskripsi grup konsistensi snapshot.
Instance Windows
acs-plugin-manager --exec --plugin app-snapshot-plugin-win --params=-RamRoleName=\"AppSnapshotRoleName\",-EnableWriters=true,-ExcludeDiskId=\"\",-Name=\"APPSnapshot-1\",-Description=\"AppSnapshot\"acs-plugin-manager --exec --plugin app-snapshot-plugin-winmenunjukkan plug-in app-snapshot-plugin-win yang digunakan untuk menjalankan perintah Cloud Assistant.--params=menunjukkan parameter konfigurasi dari plug-in. Tabel berikut menjelaskan parameter ini.Parameter
Tipe
Diperlukan
Deskripsi
RamRoleName
String
Ya
Peran RAM yang dilampirkan ke instance ECS.
EnableWriters
Boolen
Tidak
Menentukan apakah akan membuat snapshot konsisten aplikasi. Nilai valid:
true
false
Nilai default: true.
ExcludeDiskId
String
Tidak
Disk cloud yang ingin Anda kecualikan dari snapshot.
Name
String
Ya
Nama grup konsistensi snapshot.
Description
String
Tidak
Deskripsi grup konsistensi snapshot.
Panggil operasi DescribeInvocationResults berdasarkan nilai balik dari
InvokeId.Periksa apakah snapshot konsisten aplikasi telah dibuat.
ExitCodemengembalikan kode kesalahan.Nilai
0menunjukkan bahwa snapshot konsisten aplikasi telah dibuat.Jika nilai ExitCode bukan
0, terjadi kesalahan. Perbaiki kesalahan berdasarkan kode kesalahan yang dikembalikan di kolom ExitCode. Untuk informasi lebih lanjut, lihat bagian Kode Kesalahan dari topik ini.
Outputadalah keluaran setelah perintah dijalankan. Jika grup konsistensi snapshot dibuat, informasi grup, seperti ID grup, ditampilkan.[time=\"2025-03-04 16:09:25.8200239\"][message=\"Selesai Pembuatan SnapshotGroup=ssg-2zefohc25d7n1grq****, TotalCost=3.8204978s, QueryCost=2.9307022s\"]\n[level=\"info\"][time=\"2025-03-04 16:09:25.8200239\"][message=\"Persiapkan untuk Mencairkan Sistem File atau Aplikasi\"]\n[requestor=\"\n\"]\n[level=\"info\"][time=\"2025-03-04 16:09:27.7133096\"][message=\"Permintaan Tulis Cair Selesai\"]\n[level=\"info\"][time=\"2025-03-04 16:09:28.0355042\"][message=\"Tag snapshot dengan AppConistent\"]\n[level=\"info\"][time=\"2025-03-04 16:09:28.0365941\"][message=\"Ambil snapshot konsisten aplikasi berhasil\"]
Kode kesalahan
Kode kesalahan (ExitCode) | Deskripsi |
0 | Snapshot dibuat sesuai harapan. |
1 | Satu atau lebih kondisi tidak terpenuhi. Salah satu kesalahan berikut mungkin terjadi:
|
2 | Tipe atau jumlah parameter yang mengikuti string |
3 | Salah satu kesalahan berikut mungkin terjadi:
|
4 | Grup konsistensi snapshot tidak dapat dibuat. |
5 | Grup konsistensi snapshot tidak dalam keadaan yang diharapkan. |
6 | Permintaan untuk membuat grup konsistensi snapshot habis waktu. |
7 | Snapshot disk dalam grup konsistensi snapshot tidak dalam keadaan yang diharapkan. |
8 | Tag tidak dapat ditambahkan ke snapshot. |
9 | Skrip prescript.sh tidak dapat dijalankan. |
10 | Skrip postscript.sh tidak dapat dijalankan. |
11 | Operasi I/O tidak dapat ditangguhkan. |
12 | Operasi I/O tidak dapat dilanjutkan. |
13 | Tidak ada peran RAM yang dilampirkan ke instance. |
14 | Jumlah snapshot melebihi batas atas. |
15 | Snapshot tidak dalam keadaan yang diharapkan. |
16 | Snapshot sebelumnya sedang dibuat, dan snapshot baru tidak dapat dibuat. |
255 | Kesalahan tidak dikenal terjadi. |
Referensi
Anda dapat membuat snapshot konsisten aplikasi untuk database MySQL atau SQL Server. Untuk informasi lebih lanjut, lihat Praktik Terbaik untuk Membuat Snapshot Konsisten Aplikasi untuk Instance Linux Tempat MySQL Diterapkan atau Praktik Terbaik untuk Membuat Snapshot Konsisten Aplikasi untuk Instance Windows Tempat SQL Server Diterapkan.