Pencadangan, bagian 1: Tujuan, tinjauan metode dan teknologi

Pencadangan, bagian 1: Tujuan, tinjauan metode dan teknologi
Mengapa Anda perlu membuat cadangan? Bagaimanapun, peralatannya sangat, sangat andal, dan selain itu, ada "cloud" yang keandalannya lebih baik daripada server fisik: dengan konfigurasi yang tepat, server "cloud" dapat dengan mudah bertahan dari kegagalan infrastruktur server fisik, dan dari dari sudut pandang pengguna layanan, akan ada lompatan kecil dalam waktu layanan yang hampir tidak terlihat. Selain itu, duplikasi informasi sering kali memerlukan pembayaran untuk waktu prosesor “ekstra”, beban disk, dan lalu lintas jaringan.

Suatu program yang ideal berjalan cepat, tidak membocorkan memori, tidak berlubang, dan tidak ada.

-Tidak dikenal

Karena program masih ditulis oleh pengembang protein, dan seringkali tidak ada proses pengujian, ditambah lagi program jarang disampaikan menggunakan “praktik terbaik” (yang juga merupakan program dan oleh karena itu tidak sempurna), administrator sistem sering kali harus memecahkan masalah yang terdengar singkat namun secara ringkas: "kembali ke keadaan semula", "membawa pangkalan ke operasi normal", "bekerja perlahan - memutar kembali", dan juga favorit saya "Saya tidak tahu apa, tapi perbaiki".

Selain kesalahan logis yang timbul sebagai akibat dari kecerobohan pengembang, atau kombinasi keadaan, serta pengetahuan yang tidak lengkap atau kesalahpahaman tentang fitur-fitur kecil dalam membangun program - termasuk koneksi dan sistem, termasuk sistem operasi, driver, dan firmware - ada juga kesalahan lainnya. Misalnya, sebagian besar pengembang mengandalkan runtime, sama sekali melupakan hukum fisik, yang masih tidak mungkin untuk dilewati dengan menggunakan program. Hal ini mencakup keandalan tak terbatas dari subsistem disk dan, secara umum, setiap subsistem penyimpanan data (termasuk RAM dan cache prosesor!), dan waktu pemrosesan nol pada prosesor, serta tidak adanya kesalahan selama transmisi melalui jaringan dan selama pemrosesan di komputer. prosesor, dan latensi jaringan, yang sama dengan 0. Anda tidak boleh mengabaikan tenggat waktu yang terkenal itu, karena jika Anda tidak memenuhinya tepat waktu, akan ada masalah yang lebih buruk daripada nuansa operasi jaringan dan disk.

Pencadangan, bagian 1: Tujuan, tinjauan metode dan teknologi

Apa yang harus dilakukan dengan masalah yang muncul dengan kekuatan penuh dan menghabiskan data berharga? Tidak ada yang bisa menggantikan pengembang yang masih hidup, dan bukan fakta bahwa hal itu akan mungkin terjadi dalam waktu dekat. Di sisi lain, hanya sedikit proyek yang berhasil membuktikan sepenuhnya bahwa program tersebut akan berjalan sebagaimana mestinya, dan belum tentu bukti tersebut dapat diambil dan diterapkan pada proyek lain yang serupa. Selain itu, bukti tersebut membutuhkan banyak waktu dan memerlukan keterampilan dan pengetahuan khusus, dan ini secara praktis meminimalkan kemungkinan penggunaannya dengan mempertimbangkan tenggat waktu. Selain itu, kita belum mengetahui cara menggunakan teknologi yang sangat cepat, murah, dan dapat diandalkan tanpa batas untuk menyimpan, memproses, dan mengirimkan informasi. Teknologi semacam itu, jika ada, berbentuk konsep, atau - paling sering - hanya ada dalam buku dan film fiksi ilmiah.

Seniman yang baik meniru, seniman yang hebat mencuri.

—Pablo Picasso.

Solusi yang paling sukses dan hal-hal yang sangat sederhana biasanya terjadi ketika konsep, teknologi, pengetahuan, dan bidang ilmu pengetahuan yang sekilas tidak cocok bertemu.

Misalnya, burung dan pesawat terbang memiliki sayap, namun meskipun memiliki kesamaan fungsional - prinsip pengoperasian dalam beberapa mode adalah sama, dan masalah teknis diselesaikan dengan cara yang sama: tulang berongga, penggunaan bahan yang kuat dan ringan, dll. - hasilnya sama sekali berbeda, meski sangat mirip. Contoh terbaik yang kita lihat dalam teknologi kita sebagian besar juga dipinjam dari alam: kompartemen kapal dan kapal selam bertekanan adalah analogi langsung dengan Annelida; membangun susunan serangan dan memeriksa integritas data - menggandakan rantai DNA; serta organ berpasangan, kemandirian kerja organ yang berbeda dari sistem saraf pusat (otomatisasi jantung) dan refleks - sistem otonom di Internet. Tentu saja, mengambil dan menerapkan solusi yang sudah jadi secara langsung penuh dengan masalah, tapi siapa tahu, mungkin tidak ada solusi lain.

Kalau saja saya tahu di mana Anda akan jatuh, saya akan meletakkan sedotan!

—Pepatah rakyat Belarusia

Artinya, salinan cadangan sangat penting bagi mereka yang ingin:

  • Mampu memulihkan pengoperasian sistem Anda dengan waktu henti minimal, atau bahkan tanpa waktu henti sama sekali
  • Bertindak berani, karena jika terjadi kesalahan selalu ada kemungkinan rollback
  • Meminimalkan konsekuensi dari kerusakan data yang disengaja

Berikut sedikit teorinya

Klasifikasi apa pun bersifat arbitrer. Alam tidak mengklasifikasikan. Kami mengklasifikasikan karena lebih nyaman bagi kami. Dan kami mengklasifikasikan berdasarkan data-data yang juga kami ambil sembarangan.

—Jean Bruler

Terlepas dari metode penyimpanan fisiknya, penyimpanan data logis dapat dibagi menjadi dua cara untuk mengakses data ini: blok dan file. Pembagian ini baru-baru ini menjadi sangat kabur, karena tidak ada penyimpanan logis yang murni blok, serta file murni. Namun, untuk mempermudah, kami berasumsi bahwa mereka ada.

Penyimpanan data blok menyiratkan bahwa ada perangkat fisik di mana data ditulis dalam bagian tetap tertentu, blok. Blok diakses pada alamat tertentu; setiap blok memiliki alamatnya sendiri di dalam perangkat.

Cadangan biasanya dibuat dengan menyalin blok data. Untuk memastikan integritas data, pencatatan blok baru, serta perubahan pada blok yang sudah ada, ditangguhkan pada saat penyalinan. Jika kita analogikan dari dunia biasa, yang terdekat adalah lemari dengan nomor sel yang sama.

Pencadangan, bagian 1: Tujuan, tinjauan metode dan teknologi

Penyimpanan data file berdasarkan prinsip perangkat logis mirip dengan penyimpanan blok dan sering kali diatur di atas. Perbedaan penting adalah adanya hierarki penyimpanan dan nama yang dapat dibaca manusia. Abstraksi dialokasikan dalam bentuk file - area data bernama, serta direktori - file khusus yang menyimpan deskripsi dan akses ke file lain. File dapat diberikan dengan metadata tambahan: waktu pembuatan, tanda akses, dll. Pencadangan biasanya dilakukan dengan cara ini: mencari file yang diubah, lalu menyalinnya ke penyimpanan file lain dengan struktur yang sama. Integritas data biasanya diterapkan dengan tidak adanya file yang sedang ditulis. Metadata file dicadangkan dengan cara yang sama. Analogi yang paling dekat adalah perpustakaan, yang memiliki bagian-bagian dengan buku-buku yang berbeda, dan juga memiliki katalog dengan nama-nama buku yang dapat dibaca manusia.

Pencadangan, bagian 1: Tujuan, tinjauan metode dan teknologi

Baru-baru ini, opsi lain kadang-kadang dijelaskan, dari mana, pada prinsipnya, penyimpanan data file dimulai, dan yang memiliki fitur kuno yang sama: penyimpanan data objek.

Berbeda dengan penyimpanan file karena tidak memiliki lebih dari satu sarang (skema datar), dan nama file, meskipun dapat dibaca manusia, masih lebih cocok untuk diproses oleh mesin. Saat melakukan pencadangan, penyimpanan objek paling sering diperlakukan serupa dengan penyimpanan file, namun terkadang ada opsi lain.

— Ada dua jenis administrator sistem, mereka yang tidak membuat cadangan, dan mereka yang SUDAH melakukannya.
- Sebenarnya ada tiga jenis: ada juga yang memeriksa apakah backup bisa dikembalikan.

-Tidak dikenal

Perlu juga dipahami bahwa proses pencadangan data itu sendiri dilakukan oleh program, sehingga memiliki kelemahan yang sama seperti program lainnya. Untuk menghilangkan (bukan menghilangkan!) ketergantungan pada faktor manusia, serta ciri-ciri - yang secara individual tidak mempunyai pengaruh yang kuat, tetapi bersama-sama dapat memberikan pengaruh yang nyata - yang disebut aturan 3-2-1. Ada banyak pilihan cara menguraikannya, tetapi saya lebih menyukai interpretasi berikut: 3 set data yang sama harus disimpan, 2 set harus disimpan dalam format berbeda, dan 1 set harus disimpan di penyimpanan yang jauh secara geografis.

Format penyimpanan harus dipahami sebagai berikut:

  • Jika ada ketergantungan pada metode penyimpanan fisik, kami mengubah metode fisik.
  • Jika ada ketergantungan pada metode penyimpanan logis, kami mengubah metode logis.

Untuk mencapai efek maksimal dari aturan 3-2-1, disarankan untuk mengubah format penyimpanan dengan kedua cara.

Dari sudut pandang kesiapan pencadangan untuk tujuan yang dimaksudkan - memulihkan fungsionalitas - perbedaan dibuat antara pencadangan "panas" dan "dingin". Yang panas berbeda dari yang dingin hanya dalam satu hal: mereka segera siap digunakan, sedangkan yang dingin memerlukan beberapa langkah tambahan untuk pemulihan: dekripsi, ekstraksi dari arsip, dll.

Jangan bingung antara salinan panas dan dingin dengan salinan online dan offline, yang menyiratkan isolasi data secara fisik dan, pada kenyataannya, merupakan tanda lain dari klasifikasi metode pencadangan. Jadi salinan offline - tidak terhubung langsung ke sistem yang perlu dipulihkan - bisa panas atau dingin (dalam hal kesiapan untuk pemulihan). Salinan online dapat tersedia langsung di tempat yang perlu dipulihkan, dan paling sering panas, tetapi ada juga yang dingin.

Selain itu, jangan lupa bahwa proses pembuatan salinan cadangan itu sendiri biasanya tidak berakhir dengan pembuatan satu salinan cadangan, dan jumlah salinannya bisa cukup banyak. Oleh karena itu, perlu dibedakan antara full backup, yaitu full backup. salinan yang dapat dipulihkan secara independen dari cadangan lainnya, serta salinan diferensial (inkremental, diferensial, dekremental, dll.) - salinan yang tidak dapat dipulihkan secara independen dan memerlukan pemulihan awal dari satu atau lebih cadangan lainnya.

Pencadangan tambahan diferensial adalah upaya untuk menghemat ruang penyimpanan cadangan. Dengan demikian, hanya data yang diubah dari cadangan sebelumnya yang ditulis ke salinan cadangan.

Penurunan diferensial dibuat untuk tujuan yang sama, tetapi dengan cara yang sedikit berbeda: salinan cadangan lengkap dibuat, tetapi hanya perbedaan antara salinan baru dan salinan sebelumnya yang benar-benar disimpan.

Secara terpisah, ada baiknya mempertimbangkan proses pencadangan penyimpanan, yang mendukung tidak adanya penyimpanan duplikat. Jadi, jika Anda menulis cadangan lengkap di atasnya, hanya perbedaan antara cadangan yang akan ditulis, namun proses memulihkan cadangan akan serupa dengan memulihkan dari salinan lengkap dan sepenuhnya transparan.

Apa yang dimaksud dengan pemeliharaan ipsos?

(Siapa yang akan menjaga para penjaga itu sendiri? - lat.)

Sangat tidak menyenangkan bila tidak ada salinan cadangan, namun lebih parah lagi jika salinan cadangan sepertinya sudah dibuat, tetapi ketika dipulihkan ternyata tidak dapat dipulihkan karena:

  • Integritas data sumber telah dikompromikan.
  • Penyimpanan cadangan rusak.
  • Pemulihan bekerja sangat lambat; Anda tidak dapat menggunakan data yang telah dipulihkan sebagian.

Proses pencadangan yang dibangun dengan benar harus mempertimbangkan komentar-komentar tersebut, terutama dua komentar pertama.

Integritas data sumber dapat dijamin dengan beberapa cara. Yang paling umum digunakan adalah sebagai berikut: a) membuat snapshot sistem file pada tingkat blok, b) "membekukan" status sistem file, c) perangkat blok khusus dengan penyimpanan versi, d) perekaman file secara berurutan atau blok. Checksum juga diterapkan untuk memastikan data diverifikasi selama pemulihan.

Kerusakan penyimpanan juga dapat dideteksi menggunakan checksum. Metode tambahan adalah penggunaan perangkat khusus atau sistem file di mana data yang sudah direkam tidak dapat diubah, namun yang baru dapat ditambahkan.

Untuk mempercepat pemulihan, digunakan pemulihan data dengan beberapa proses pemulihan - dengan syarat tidak ada hambatan berupa jaringan yang lambat atau sistem disk yang lambat. Untuk mengatasi situasi dengan data yang dipulihkan sebagian, Anda dapat membagi proses pencadangan menjadi subtugas yang relatif kecil, yang masing-masing dilakukan secara terpisah. Dengan demikian, pemulihan kinerja dapat dilakukan secara konsisten sambil memperkirakan waktu pemulihan. Masalah ini paling sering terletak pada bidang organisasi (SLA), jadi kami tidak akan membahasnya secara detail.

Seorang ahli rempah-rempah bukanlah orang yang menambahkan rempah-rempah ke dalam setiap masakan, tapi orang yang tidak pernah menambahkan tambahan apa pun ke dalamnya.

-DI DALAM. Sinyavsky

Praktik mengenai perangkat lunak yang digunakan oleh administrator sistem mungkin berbeda-beda, namun prinsip umumnya, bagaimanapun, tetap sama, khususnya:

  • Sangat disarankan untuk menggunakan solusi yang sudah jadi.
  • Program harus bekerja dengan cara yang dapat diprediksi, mis. Seharusnya tidak ada fitur atau hambatan yang tidak terdokumentasi.
  • Menyiapkan setiap program harus sangat sederhana sehingga Anda tidak perlu membaca manual atau lembar contekan setiap saat.
  • Jika memungkinkan, solusinya harus bersifat universal, karena server dapat sangat bervariasi dalam karakteristik perangkat kerasnya.

Ada program umum berikut untuk mengambil cadangan dari perangkat blok:

  • dd, akrab bagi para veteran administrasi sistem, ini juga mencakup program serupa (dd_rescue yang sama, misalnya).
  • Utilitas dibangun ke dalam beberapa sistem file yang membuat dump dari sistem file.
  • Utilitas omnivora; misalnya partclone.
  • Keputusan sendiri, seringkali merupakan hak milik; misalnya, NortonGhost dan yang lebih baru.

Untuk sistem file, masalah pencadangan diselesaikan sebagian menggunakan metode yang berlaku untuk perangkat blok, namun masalah tersebut dapat diselesaikan dengan lebih efisien menggunakan, misalnya:

  • Rsync, program dan protokol tujuan umum untuk menyinkronkan keadaan sistem file.
  • Alat pengarsipan bawaan (ZFS).
  • Alat pengarsipan pihak ketiga; perwakilan paling populer adalah tar. Ada yang lain, misalnya dar - pengganti tar yang ditujukan untuk sistem modern.

Perlu disebutkan secara terpisah tentang alat perangkat lunak untuk memastikan konsistensi data saat membuat salinan cadangan. Opsi yang paling umum digunakan adalah:

  • Memasang sistem file dalam mode hanya-baca (ReadOnly), atau membekukan sistem file (freeze) - metode penerapannya terbatas.
  • Membuat snapshot status sistem file atau perangkat blok (LVM, ZFS).
  • Penggunaan alat pihak ketiga untuk mengatur tayangan, meskipun poin sebelumnya tidak dapat diberikan karena alasan tertentu (program seperti hotcopy).
  • Namun, teknik copy-on-change (CopyOnWrite) paling sering dikaitkan dengan sistem file yang digunakan (BTRFS, ZFS).

Jadi, untuk server kecil Anda perlu menyediakan skema cadangan yang memenuhi persyaratan berikut:

  • Mudah digunakan - tidak diperlukan langkah tambahan khusus selama pengoperasian, langkah minimal untuk membuat dan memulihkan salinan.
  • Universal - berfungsi pada server besar dan kecil; ini penting ketika menambah jumlah server atau melakukan penskalaan.
  • Diinstal oleh manajer paket, atau dalam satu atau dua perintah seperti "unduh dan buka paket".
  • Stabil - format penyimpanan standar atau lama digunakan.
  • Cepat dalam bekerja.

Pelamar dari yang kurang lebih memenuhi persyaratan :

  • rdiff-cadangan
  • rsnapshot
  • sendawa
  • duplikat
  • tipu daya
  • biarkan dup
  • memberikan
  • zbackup
  • istirahat
  • borgbackup

Pencadangan, bagian 1: Tujuan, tinjauan metode dan teknologi

Mesin virtual (berdasarkan XenServer) dengan karakteristik berikut akan digunakan sebagai bangku pengujian:

  • 4 inti 2.5GHz,
  • RAM 16GB,
  • Penyimpanan hybrid 50 GB (sistem penyimpanan dengan caching pada SSD 20% dari ukuran disk virtual) dalam bentuk disk virtual terpisah tanpa partisi,
  • Saluran Internet 200 Mbits.

Mesin yang hampir sama akan digunakan sebagai server penerima cadangan, hanya dengan hard drive 500 GB.

Sistem operasi - Centos 7 x64: partisi standar, partisi tambahan akan digunakan sebagai sumber data.

Sebagai data awal, mari kita ambil situs WordPress dengan file media 40 GB dan database mysql. Karena server virtual sangat bervariasi dalam karakteristiknya, dan juga untuk reproduktifitas yang lebih baik, berikut ini

hasil pengujian server menggunakan sysbench.sysbench --threads=4 --time=30 --cpu-max-prime=20000 cpu dijalankan
sysbench 1.1.0-18a9f86 (menggunakan paket LuaJIT 2.1.0-beta3)
Menjalankan tes dengan opsi berikut:
Jumlah utas: 4
Menginisialisasi generator nomor acak dari waktu saat ini

Batas bilangan prima: 20000

Menginisialisasi thread pekerja…

Utas dimulai!

Kecepatan CPU:
kejadian per detik: 836.69

Throughput:
acara/s (eps): 836.6908
waktu berlalu: 30.0039 detik
jumlah total acara: 25104

Latensi (ms):
menit: 2.38
rata-rata: 4.78
maks: 22.39
Persentil ke-95: 10.46
jumlah: 119923.64

Keadilan benang:
acara (rata-rata/stddev): 6276.0000/13.91
waktu eksekusi (rata-rata/stddev): 29.9809/0.01

sysbench --threads=4 --time=30 --memory-block-size=1K --memory-scope=global --memory-total-size=100G --memory-oper=membaca memori berjalan
sysbench 1.1.0-18a9f86 (menggunakan paket LuaJIT 2.1.0-beta3)
Menjalankan tes dengan opsi berikut:
Jumlah utas: 4
Menginisialisasi generator nomor acak dari waktu saat ini

Menjalankan tes kecepatan memori dengan opsi berikut:
ukuran blok: 1KiB
ukuran total: 102400MiB
operasi: baca
ruang lingkup: global

Menginisialisasi thread pekerja…

Utas dimulai!

Total operasi: 50900446 (1696677.10 per detik)

49707.47 MiB ditransfer (1656.91 MiB/dtk)

Throughput:
acara/s (eps): 1696677.1017
waktu berlalu: 30.0001 detik
jumlah total acara: 50900446

Latensi (ms):
menit: 0.00
rata-rata: 0.00
maks: 24.01
Persentil ke-95: 0.00
jumlah: 39106.74

Keadilan benang:
acara (rata-rata/stddev): 12725111.5000/137775.15
waktu eksekusi (rata-rata/stddev): 9.7767/0.10

sysbench --threads=4 --time=30 --memory-block-size=1K --memory-scope=global --memory-total-size=100G --memory-oper=tulis memori dijalankan
sysbench 1.1.0-18a9f86 (menggunakan paket LuaJIT 2.1.0-beta3)
Menjalankan tes dengan opsi berikut:
Jumlah utas: 4
Menginisialisasi generator nomor acak dari waktu saat ini

Menjalankan tes kecepatan memori dengan opsi berikut:
ukuran blok: 1KiB
ukuran total: 102400MiB
operasi: tulis
ruang lingkup: global

Menginisialisasi thread pekerja…

Utas dimulai!

Total operasi: 35910413 (1197008.62 per detik)

35068.76 MiB ditransfer (1168.95 MiB/dtk)

Throughput:
acara/s (eps): 1197008.6179
waktu berlalu: 30.0001 detik
jumlah total acara: 35910413

Latensi (ms):
menit: 0.00
rata-rata: 0.00
maks: 16.90
Persentil ke-95: 0.00
jumlah: 43604.83

Keadilan benang:
acara (rata-rata/stddev): 8977603.2500/233905.84
waktu eksekusi (rata-rata/stddev): 10.9012/0.41

sysbench --threads=4 --file-test-mode=rndrw --time=60 --file-block-size=4K --file-total-size=1G fileio dijalankan
sysbench 1.1.0-18a9f86 (menggunakan paket LuaJIT 2.1.0-beta3)
Menjalankan tes dengan opsi berikut:
Jumlah utas: 4
Menginisialisasi generator nomor acak dari waktu saat ini

Bendera terbuka file tambahan: (tidak ada)
128 file, masing-masing 8MiB
Ukuran file total 1GiB
Ukuran blok 4KiB
Jumlah permintaan IO: 0
Rasio Baca/Tulis untuk uji IO acak gabungan: 1.50
FSYNC berkala diaktifkan, memanggil fsync() setiap 100 permintaan.
Memanggil fsync() di akhir pengujian, Diaktifkan.
Menggunakan mode I/O sinkron
Melakukan tes r/w acak
Menginisialisasi thread pekerja…

Utas dimulai!

Throughput:
baca: IOPS=3868.21 15.11 MiB/dtk (15.84 MB/dtk)
tulis: IOPS=2578.83 10.07 MiB/dtk (10.56 MB/dtk)
fsinkronisasi: IOPS=8226.98

Latensi (ms):
menit: 0.00
rata-rata: 0.27
maks: 18.01
Persentil ke-95: 1.08
jumlah: 238469.45

Catatan ini dimulai dari sebuah hal besar

serangkaian artikel tentang cadangan

  1. Pencadangan, bagian 1: Mengapa diperlukan pencadangan, ikhtisar metode, teknologi
  2. Cadangan Bagian 2: Meninjau dan menguji alat cadangan berbasis rsync
  3. Cadangan Bagian 3: Meninjau dan menguji duplikasi, duplikasi, deja dup
  4. Cadangan Bagian 4: Meninjau dan menguji zbackup, restic, borgbackup
  5. Cadangan Bagian 5: Menguji cadangan bacula dan veeam untuk linux
  6. Cadangan Bagian 6: Membandingkan Alat Cadangan
  7. Cadangan Bagian 7: Kesimpulan

Sumber: www.habr.com

Tambah komentar