[ English | 日本語 | Deutsch | Indonesia ]

Cadangan dan Pemulihan

Praktik terbaik cadangan standar berlaku saat membuat kebijakan cadangan OpenStack Anda. Misalnya, seberapa sering membuat cadangan data Anda terkait erat dengan seberapa cepat Anda perlu pulih dari kehilangan data.

Catatan

Jika Anda tidak dapat kehilangan data sama sekali, Anda juga harus fokus pada penyebaran yang sangat tersedia. The OpenStack High Availability Guide menawarkan saran untuk menghilangkan satu titik kegagalan yang dapat menyebabkan gangguan sistem. Meskipun ini bukan dokumen yang sepenuhnya preskriptif, ia menawarkan metode dan teknik untuk menghindari downtime dan kehilangan data.

Pertimbangan cadangan lainnya termasuk:

  • Berapa banyak cadangan yang harus disimpan?

  • Haruskah cadangan disimpan off-site?

  • Seberapa sering cadangan harus diuji?

Sama pentingnya dengan kebijakan cadangan adalah kebijakan pemulihan (atau setidaknya pengujian pemulihan).

Yang Harus Dicadangkan

Sementara OpenStack terdiri dari banyak komponen dan komponen yang bergerak, membuat cadangan data penting cukup sederhana.

Bab ini hanya menjelaskan cara mencadangkan file konfigurasi dan database yang harus dijalankan oleh berbagai komponen OpenStack. Bab ini tidak menjelaskan cara membuat cadangan objek di dalam Object Storage atau data yang terkandung di dalam Block Storage. Umumnya area ini dibiarkan bagi pengguna untuk membuat cadangan sendiri.

Backup Database

Contoh arsitektur OpenStack menunjuk pengontrol cloud sebagai server MySQL. Server MySQL ini meng-host basis data untuk nova, glance, cinder, dan keystone. Dengan semua basis data ini di satu tempat, sangat mudah untuk membuat cadangan basis data:

# mysqldump --opt --all-databases > openstack.sql

Jika Anda hanya ingin membuat cadangan satu database, Anda dapat menjalankan:

# mysqldump --opt nova > nova.sql

di mana nova adalah basis data yang ingin Anda buat cadangannya.

Anda dapat dengan mudah mengotomatiskan proses ini dengan membuat tugas cron yang menjalankan skrip berikut sekali sehari:

#!/bin/bash
backup_dir="/var/lib/backups/mysql"
filename="${backup_dir}/mysql-`hostname`-`eval date +%Y%m%d`.sql.gz"
# Dump the entire MySQL database
/usr/bin/mysqldump --opt --all-databases | gzip > $filename
# Delete backups older than 7 days
find $backup_dir -ctime +7 -type f -delete

Skrip ini membuang seluruh database MySQL dan menghapus cadangan yang lebih lama dari tujuh hari.

Cadangan Sistem File

Bagian ini membahas file dan direktori mana yang harus didukung secara teratur, yang diatur oleh layanan.

Compute

Direktori /etc/nova pada cloud controller dan compute node harus secara teratur dicadangkan.

/var/log/nova tidak perlu dicadangkan jika semua log masuk ke area pusat. Sangat disarankan untuk menggunakan server logging pusat atau membuat cadangan direktori log.

/var/lib/nova adalah direktori penting lainnya untuk dicadangkan. Pengecualian untuk hal ini adalah subdirektori /var/lib/nova/instances pada compute node. Subdirektori ini berisi image KVM dari instance yang sedang berjalan. Anda ingin mencadangkan direktori ini hanya jika Anda perlu mempertahankan salinan cadangan dari semua instance. Dalam sebagian besar keadaan, Anda tidak perlu melakukan ini, tetapi ini dapat bervariasi dari cloud ke cloud dan tingkat layanan Anda. Perlu diketahui juga bahwa membuat cadangan instance KVM langsung dapat menyebabkan instance tersebut tidak bisa boot dengan benar jika pernah dipulihkan dari cadangan.

Katalog Image dan Pengiriman

/etc/glance and /var/log/glance ikuti aturan yang sama dengan counterpart Nova mereka.

/var/lib/glance juga harus didukung. Perhatikan /var/lib/glance/images.Jika Anda menggunakan back end berbasis file dari glance, /var/lib/glance/images Di sinilah image disimpan dan perawatan harus diambil.

Ada dua cara untuk memastikan stabilitas dengan direktori ini. Yang pertama adalah memastikan direktori ini dijalankan pada array RAID. Jika disk gagal, direktori tersedia. Cara kedua adalah menggunakan alat seperti rsync untuk mereplikasi image ke server lain:

# rsync -az --progress /var/lib/glance/images backup-server:/var/lib/glance/images/

Identity

/etc/keystone and /var/log/keystone ikuti aturan yang sama dengan komponen lainnya.

/var/lib/keystone, meskipun tidak boleh berisi data apa pun yang digunakan, juga dapat dicadangkan untuk berjaga-jaga.

Block Storage

/etc/cinder and /var/log/cinder ikuti aturan yang sama dengan komponen lainnya.

/var/lib/cinder juga harus didukung.

Networking (jaringan)

/etc/neutron and /var/log/neutron ikuti aturan yang sama dengan komponen lainnya.

/var/lib/neutron juga harus didukung.

Object Storage

/etc/swift sangat penting untuk didukung. Direktori ini berisi file konfigurasi swift serta file ring dan ring builder files, yang jika hilang, membuat data di cluster Anda tidak dapat diakses. Praktik terbaik adalah menyalin file pembangun ke semua node penyimpanan bersama dengan file ring. Beberapa salinan cadangan tersebar di seluruh kluster penyimpanan Anda.

Telemetry

Cadangkan direktori /etc/ceilometer yang berisi file konfigurasi Telemetry.

Orchestration

Buat cadangan file templat HOT yaml, dan direktori /etc/heat/ yang berisi file konfigurasi Orchestration.

Memulihkan Cadangan

Memulihkan cadangan adalah proses yang cukup sederhana. Untuk memulai, pertama pastikan bahwa layanan yang Anda pulihkan tidak berjalan. Misalnya, untuk melakukan pemulihan penuh nova pada pengontrol cloud, pertama-tama hentikan semua layanan nova:

# stop nova-api
# stop nova-consoleauth
# stop nova-novncproxy
# stop nova-objectstore
# stop nova-scheduler

Sekarang Anda dapat mengimpor basis data yang dicadangkan sebelumnya:

# mysql nova < nova.sql

Anda juga dapat mengembalikan direktori nova yang didukung:

# mv /etc/nova{,.orig}
# cp -a /path/to/backup/nova /etc/

Setelah file dipulihkan, mulai kembali semuanya:

# start mysql
# for i in nova-api nova-consoleauth nova-novncproxy \
  nova-objectstore nova-scheduler
> do
> start $i
> done

Layanan lain mengikuti proses yang sama, dengan direktori dan database masing-masing.

Ringkasan

Pencadangan dan pemulihan selanjutnya adalah salah satu tugas pertama yang dipelajari oleh administrator sistem. Namun, setiap sistem memiliki item berbeda yang perlu diperhatikan. Dengan menjaga basis data, layanan gambar, dan lokasi sistem file yang sesuai, Anda dapat yakin bahwa Anda dapat menangani segala peristiwa yang membutuhkan pemulihan.