Gawe serep, bagean 1: Tujuan, review metode lan teknologi

Gawe serep, bagean 1: Tujuan, review metode lan teknologi
Napa sampeyan kudu nggawe serep? Sawise kabeh, peralatan kasebut bisa dipercaya banget, lan uga ana "awan" sing luwih linuwih tinimbang server fisik: kanthi konfigurasi sing tepat, server "awan" bisa gampang slamet saka kegagalan server fisik infrastruktur, lan saka titik tampilan pangguna layanan, bakal ana lompat cilik, lagi wae ngelingke ing layanan wektu. Kajaba iku, duplikasi informasi asring mbutuhake mbayar wektu prosesor "ekstra", beban disk, lan lalu lintas jaringan.

Program becik mlaku cepet, ora bocor memori, ora ana bolongan, lan ora ana.

- Ora dingerteni

Wiwit program isih ditulis dening pangembang protein, lan asring ora ana proses testing, plus program arang dikirim nggunakake "praktik paling apik" (kang dhewe uga program lan mulane ora sampurna), administrator sistem paling kerep kudu ngatasi masalah sing muni sedhela nanging succinctly: "bali menyang carane iku", "nggawa basa kanggo operasi normal", "dianggo alon - muter maneh", lan uga favorit "Aku ora ngerti apa, nanging ndandani iku".

Saliyane kesalahan logis sing muncul minangka akibat saka karya pangembang sing ceroboh, utawa kombinasi kahanan, uga kawruh sing ora lengkap utawa salah pangerten babagan fitur cilik program bangunan - kalebu nyambungake lan sistem, kalebu sistem operasi, driver lan perangkat kukuh - ana uga kasalahan liyane. Contone, paling pangembang gumantung ing runtime, rampung lali bab hukum fisik, kang isih mokal kanggo circumvent nggunakake program. Iki kalebu linuwih tanpa wates subsistem disk lan, umume, subsistem panyimpenan data (kalebu RAM lan cache prosesor!), Lan wektu pangolahan nol ing prosesor, lan ora ana kesalahan nalika transmisi liwat jaringan lan sajrone proses ing prosesor. prosesor, lan latensi jaringan, kang padha karo 0. Sampeyan kudu ora nglirwakake deadline kondhang, amarga yen sampeyan ora ketemu ing wektu, bakal ana masalah Samsaya Awon saka nuansa saka jaringan lan operasi disk.

Gawe serep, bagean 1: Tujuan, review metode lan teknologi

Apa apa karo masalah sing munggah ing pasukan lengkap lan nyumerepi liwat data terkenal? Ana apa-apa kanggo ngganti pangembang urip, lan iku ora kasunyatan sing bakal bisa ing mangsa cedhak. Ing sisih liya, mung sawetara proyek sing bisa mbuktekake kanthi lengkap manawa program kasebut bakal mlaku kaya sing dikarepake, lan ora mesthi bisa njupuk lan ngetrapake bukti kasebut menyang proyek liyane sing padha. Uga, bukti kuwi njupuk akèh wektu lan mbutuhake skills khusus lan kawruh, lan iki prakteke nyilikake kamungkinan saka nggunakake njupuk menyang akun tenggat wektu. Kajaba iku, kita durung ngerti carane nggunakake teknologi ultra-cepet, murah lan dipercaya tanpa wates kanggo nyimpen, ngolah lan ngirim informasi. Teknologi kasebut, yen ana, ana ing wangun konsep, utawa - paling asring - mung ing buku fiksi ilmiah lan film.

Artis apik copy, seniman gedhe nyolong.

—Pablo Picasso.

Solusi sing paling sukses lan perkara sing nggumunake prasaja biasane kedadeyan ing ngendi konsep, teknologi, kawruh, lan lapangan ilmu sing pancen ora kompatibel nalika sepisanan ketemu.

Contone, manuk lan pesawat duwe swiwi, nanging senadyan mirip fungsional - prinsip operasi ing sawetara mode padha, lan masalah teknis ditanggulangi kanthi cara sing padha: balung kothong, panggunaan bahan sing kuwat lan entheng, lan liya-liyane - asil temen beda, sanajan banget padha. Conto paling apik sing kita deleng ing teknologi kita uga akeh dipinjam saka alam: kompartemen tekanan kapal lan kapal selam minangka analogi langsung karo annelida; mbangun susunan serangan lan mriksa integritas data - duplikat rantai DNA; uga organ sing dipasangake, kamardikan saka karya organ sing beda saka sistem saraf pusat (otomatis jantung) lan refleks - sistem otonom ing Internet. Mesthi, njupuk lan nglamar solusi siap-digawe "head-on" iku fraught karo masalah, nanging sing ngerti, bisa uga ora ana solusi liyane.

Yen aku ngerti sampeyan bakal tiba ing endi, aku mesthi wis nyelehake sedotan!

- Paribasan rakyat Belarusia

Iki tegese salinan serep penting kanggo wong sing pengin:

  • Bisa mulihake operasi sistem kanthi downtime minimal, utawa malah tanpa
  • Tumindak kanthi kendel, amarga yen ana kesalahan mesthi ana kemungkinan mundur
  • Nyilikake akibat saka korupsi data sing disengaja

Punika teori sethitik

Sembarang klasifikasi iku sembarang. Alam ora nggolongake. Kita klasifikasi amarga luwih trep kanggo kita. Lan kita nggolongake miturut data sing uga dijupuk kanthi sewenang-wenang.

— Jean Bruler

Preduli saka cara panyimpenan fisik, panyimpenan data logis bisa dipérang dadi rong cara kanggo ngakses data iki: pamblokiran lan file. Divisi iki bubar banget burem, amarga sejatine pamblokiran, uga file murni, panyimpenan logis ora ana. Nanging, kanggo kesederhanaan, kita bakal nganggep manawa ana.

Panyimpenan data pamblokiran tegese ana piranti fisik sing data ditulis ing bagean tetep tartamtu, pamblokiran. Blok diakses ing alamat tartamtu; saben blok duwe alamat dhewe ing piranti kasebut.

Serep biasane digawe kanthi nyalin blok data. Kanggo mesthekake integritas data, rekaman blok anyar, uga owah-owahan sing wis ana, ditundha nalika disalin. Yen kita njupuk analogi saka jagad biasa, sing paling cedhak yaiku lemari kanthi sel nomer sing padha.

Gawe serep, bagean 1: Tujuan, review metode lan teknologi

Panyimpenan data file adhedhasar prinsip piranti logis cedhak karo pamblokiran panyimpenan lan asring diatur ing ndhuwur. Bedane penting yaiku anane hirarki panyimpenan lan jeneng sing bisa diwaca manungsa. Abstraksi dialokasikan ing wangun file - area data sing dijenengi, uga direktori - file khusus ing ngendi deskripsi lan akses menyang file liyane disimpen. File bisa diwenehake karo metadata tambahan: wektu nggawe, panji akses, lsp. Serep biasane ditindakake kanthi cara iki: goleki file sing diganti, banjur nyalin menyang panyimpenan file liyane kanthi struktur sing padha. Integritas data biasane ditindakake kanthi ora ana file sing ditulis. Metadata file digawe serep kanthi cara sing padha. Analogi sing paling cedhak yaiku perpustakaan, sing nduweni bagean karo buku sing beda-beda, lan uga nduweni katalog kanthi jeneng buku sing bisa diwaca manungsa.

Gawe serep, bagean 1: Tujuan, review metode lan teknologi

Bubar, opsi liyane kadhangkala diterangake, saka ngendi, ing asas, panyimpenan data file diwiwiti, lan sing nduweni fitur kuna sing padha: panyimpenan data obyek.

Beda karo panyimpenan file amarga ora duwe luwih saka siji nesting (skema flat), lan jeneng file, sanajan bisa diwaca manungsa, isih luwih cocok kanggo diproses dening mesin. Nalika nindakake serep, panyimpenan obyek paling kerep dianggep padha karo panyimpenan file, nanging sok-sok ana opsi liyane.

- Ana rong jinis administrator sistem, sing ora nggawe serep, lan sing wis nindakake.
- Bener, ana telung jinis: ana uga sing mriksa manawa serep bisa dipulihake.

- Ora dingerteni

Sampeyan uga kudu ngerti manawa proses serep data dhewe ditindakake dening program, saengga duwe kekurangan sing padha karo program liyane. Kanggo mbusak (ora ngilangi!) Katergantungan ing faktor manungsa, uga fitur - sing ora duwe efek sing kuat, nanging bebarengan bisa menehi efek sing katon - sing diarani aturan 3-2-1. Ana akeh pilihan kanggo carane decipher, nanging aku luwih seneng interpretasi ing ngisor iki: 3 set data sing padha kudu disimpen, 2 set kudu disimpen ing macem-macem format, lan 1 set kudu disimpen ing panyimpenan remot geografis.

Format panyimpenan kudu dimangerteni kaya ing ngisor iki:

  • Yen ana katergantungan ing cara panyimpenan fisik, kita ngganti cara fisik.
  • Yen ana katergantungan ing cara panyimpenan logis, kita ngganti cara logis.

Kanggo entuk efek maksimal saka aturan 3-2-1, disaranake ngganti format panyimpenan kanthi rong cara.

Saka sudut pandang kesiapan serep kanggo tujuan sing dituju - mulihake fungsi - bedane digawe ing antarane serep "panas" lan "kadhemen". Panas beda-beda saka kadhemen mung ing siji bab: padha langsung siap kanggo nggunakake, kadhemen mbutuhake sawetara langkah tambahan kanggo Recovery: decryption, extraction saka arsip, etc.

Aja galau salinan panas lan kadhemen karo salinan online lan offline, sing nuduhake isolasi fisik data lan, nyatane, minangka tandha liya saka klasifikasi metode serep. Dadi salinan offline - ora langsung nyambung menyang sistem sing kudu dipulihake - bisa dadi panas utawa kadhemen (ing babagan kesiapan kanggo pemulihan). Salinan online bisa kasedhiya langsung ing ngendi kudu dibalèkaké, lan paling asring panas, nanging ana uga sing kadhemen.

Kajaba iku, aja lali yen proses nggawe salinan serep dhewe biasane ora rampung karo nggawe salinan serep, lan bisa uga ana jumlah salinan sing cukup akeh. Mulane, iku perlu kanggo mbedakake antarane serep lengkap, i.e. sing bisa dibalèkaké independen saka serep liyane, uga diferensial (incremental, diferensial, decremental, etc.) salinan - sing ora bisa dibalèkaké independen lan mbutuhake pemugaran awal siji utawa luwih serep liyane.

Serep inkremental diferensial minangka upaya kanggo ngirit ruang panyimpenan serep. Mangkono, mung data sing diganti saka serep sadurunge ditulis menyang salinan serep.

Dekremental diferensial digawe kanggo tujuan sing padha, nanging kanthi cara sing rada beda: salinan serep lengkap digawe, nanging mung beda antarane salinan seger lan sing sadurunge disimpen.

Dhewe, kudu dipikirake proses serep liwat panyimpenan, sing ndhukung ora ana panyimpenan duplikat. Dadi, yen sampeyan nulis serep lengkap ing ndhuwur, mung beda antarane serep sing bener bakal ditulis, nanging proses mulihake serep bakal padha karo mulihake saka salinan lengkap lan transparan.

Apa custodiet ipsos custodes?

(Sapa sing bakal njaga penjaga dhewe? - lat.)

Ora nyenengake yen ora ana salinan serep, nanging luwih elek yen salinan serep katon digawe, nanging nalika dipulihake ternyata ora bisa dipulihake amarga:

  • Integritas data sumber wis dikompromi.
  • Panyimpenan serep rusak.
  • Pemulihan kerjane alon banget; sampeyan ora bisa nggunakake data sing wis pulih sebagian.

Proses serep sing dibangun kanthi bener kudu nggatekake komentar kasebut, utamane loro sing pertama.

Integritas data sumber bisa dijamin ing sawetara cara. Sing paling umum digunakake yaiku: a) nggawe snapshot sistem file ing tingkat blok, b) "beku" kahanan sistem file, c) piranti blok khusus kanthi panyimpenan versi, d) rekaman urutan file utawa pamblokiran. Checksum uga ditrapake kanggo mesthekake yen data wis diverifikasi sajrone pemulihan.

Korupsi panyimpenan uga bisa dideteksi nggunakake checksums. Cara tambahan yaiku nggunakake piranti khusus utawa sistem file sing data sing wis direkam ora bisa diganti, nanging sing anyar bisa ditambahake.

Kanggo nyepetake pemulihan, pemulihan data digunakake kanthi pirang-pirang proses kanggo pemulihan - kasedhiya yen ora ana bottleneck ing wangun jaringan alon utawa sistem disk alon. Kanggo ngubengi kahanan kanthi data sing wis pulih sebagian, sampeyan bisa ngilangi proses serep dadi subtugas sing relatif cilik, sing saben-saben ditindakake kanthi kapisah. Mangkono, dadi bisa kanggo terus-terusan mulihake kinerja nalika prédhiksi wektu Recovery. Masalah iki paling kerep ana ing bidang organisasi (SLA), mula kita ora bakal ngrembug babagan iki kanthi rinci.

Pakar ing rempah-rempah dudu wong sing nambahake ing saben sajian, nanging sing ora tau nambah apa-apa.

-IN. Sinyavsky

Praktek babagan piranti lunak sing digunakake dening administrator sistem bisa beda-beda, nanging prinsip umum isih, kanthi cara siji utawa liyane, padha, utamane:

  • Apike banget kanggo nggunakake solusi sing wis siap.
  • Program kudu bisa katebak, i.e. Ora ana fitur utawa bottlenecks sing ora didokumentasikan.
  • Nyiyapake saben program kudu gampang banget supaya sampeyan ora kudu maca manual utawa cheat sheet saben wektu.
  • Yen bisa, solusi kudu universal, amarga server bisa beda-beda banget ing karakteristik hardware.

Ana program umum ing ngisor iki kanggo njupuk serep saka piranti pamblokiran:

  • dd, menowo kanggo veteran administrasi sistem, iki uga kalebu program padha (dd_rescue padha, contone,).
  • Utilitas sing dibangun ing sawetara sistem file sing nggawe mbucal sistem file.
  • Utilitas omnivora; contone partclone.
  • Dhewe, asring kepemilikan, keputusan; contone, NortonGhost lan mengko.

Kanggo sistem file, masalah serep sebagian ditanggulangi kanthi nggunakake metode sing ditrapake kanggo piranti pamblokiran, nanging masalah kasebut bisa ditanggulangi kanthi luwih efisien nggunakake, contone:

  • Rsync, program lan protokol tujuan umum kanggo nyinkronake status sistem file.
  • Piranti pengarsipan sing dibangun (ZFS).
  • Piranti arsip pihak katelu; wakil sing paling populer yaiku tar. Ana liyane, contone, dar - panggantos kanggo tar ngarahke ing sistem modern.

Perlu disebutake kanthi kapisah babagan piranti lunak kanggo njamin konsistensi data nalika nggawe salinan serep. Pilihan sing paling umum digunakake yaiku:

  • Pasang sistem file ing mode mung diwaca (ReadOnly), utawa pembekuan sistem file (beku) - cara iki ditrapake kanthi winates.
  • Nggawe gambar saka negara file sistem utawa piranti mblokir (LVM, ZFS).
  • Panggunaan alat pihak katelu kanggo ngatur tayangan, sanajan ing kasus-kasus ing ngendi titik sadurunge ora bisa diwenehake kanthi alesan (program kaya hotcopy).
  • Teknik copy-on-change (CopyOnWrite), Nanging, paling asring disambungake menyang sistem file sing digunakake (BTRFS, ZFS).

Dadi, kanggo server cilik sampeyan kudu nyedhiyakake skema serep sing nyukupi syarat ing ngisor iki:

  • Gampang digunakake - ora ana langkah tambahan khusus sing dibutuhake sajrone operasi, langkah minimal kanggo nggawe lan mulihake salinan.
  • Universal - bisa digunakake ing server gedhe lan cilik; iki penting nalika nambah nomer server utawa njongko.
  • Diinstal dening manajer paket, utawa ing siji utawa loro printah kaya "download lan unpack".
  • Stabil - format panyimpenan standar utawa dawa digunakake.
  • Cepet ing karya.

Pelamar saka wong sing kurang utawa kurang memenuhi syarat:

  • rdiff-serep
  • gambarbaru
  • nyuda
  • duplikat
  • duplikat
  • ayo dup
  • dar
  • zbackup
  • ngaso
  • borgbackup

Gawe serep, bagean 1: Tujuan, review metode lan teknologi

Mesin virtual (adhedhasar XenServer) kanthi karakteristik ing ngisor iki bakal digunakake minangka bangku tes:

  • 4 inti 2.5 GHz,
  • RAM 16 GB,
  • 50 GB panyimpenan hibrida (sistem panyimpenan karo caching ing SSD 20% saka ukuran disk virtual) ing wangun disk virtual kapisah tanpa partisi,
  • 200 Mbps saluran Internet.

Meh mesin padha bakal digunakake minangka server panrima serep, mung karo 500 GB hard drive.

Sistem operasi - Centos 7 x64: partisi standar, partisi tambahan bakal digunakake minangka sumber data.

Minangka data awal, ayo njupuk situs WordPress kanthi file media 40 GB lan database mysql. Wiwit server virtual beda-beda banget ing karakteristik, lan uga kanggo reproducibility luwih, punika

asil testing server nggunakake sysbench.sysbench --threads=4 --time=30 --cpu-max-prime=20000 cpu run
sysbench 1.1.0-18a9f86 (nggunakake paket LuaJIT 2.1.0-beta3)
Mlaku tes kanthi pilihan ing ngisor iki:
Cacahing utas: 4
Initializing generator nomer acak saka wektu saiki

Watesan nomer prima: 20000

Miwiti thread buruh…

Utas diwiwiti!

Kacepetan CPU:
acara per detik: 836.69

Hasil:
acara / s (eps): 836.6908
wektu liwati: 30.0039s
gunggung acara: 25104

Latensi (ms):
min: 2.38
rata-rata: 4.78
maksimal: 22.39
persentil kaping 95: 10.46
gunggunge: 119923.64

Keadilan benang:
acara (rata-rata / stddev): 6276.0000 / 13.91
wektu 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=read memory run
sysbench 1.1.0-18a9f86 (nggunakake paket LuaJIT 2.1.0-beta3)
Mlaku tes kanthi pilihan ing ngisor iki:
Cacahing utas: 4
Initializing generator nomer acak saka wektu saiki

Mlaku tes kacepetan memori kanthi pilihan ing ngisor iki:
ukuran blok: 1 KiB
ukuran total: 102400MiB
operasi: maca
orane katrangan: global

Miwiti thread buruh…

Utas diwiwiti!

Total operasi: 50900446 (1696677.10 per detik)

49707.47 MiB ditransfer (1656.91 MiB/detik)

Hasil:
acara / s (eps): 1696677.1017
wektu liwati: 30.0001s
gunggung acara: 50900446

Latensi (ms):
min: 0.00
rata-rata: 0.00
maksimal: 24.01
persentil kaping 95: 0.00
gunggunge: 39106.74

Keadilan benang:
acara (rata-rata / stddev): 12725111.5000 / 137775.15
wektu 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=write memory run
sysbench 1.1.0-18a9f86 (nggunakake paket LuaJIT 2.1.0-beta3)
Mlaku tes kanthi pilihan ing ngisor iki:
Cacahing utas: 4
Initializing generator nomer acak saka wektu saiki

Mlaku tes kacepetan memori kanthi pilihan ing ngisor iki:
ukuran blok: 1 KiB
ukuran total: 102400MiB
operasi: nulis
orane katrangan: global

Miwiti thread buruh…

Utas diwiwiti!

Total operasi: 35910413 (1197008.62 per detik)

35068.76 MiB ditransfer (1168.95 MiB/detik)

Hasil:
acara / s (eps): 1197008.6179
wektu liwati: 30.0001s
gunggung acara: 35910413

Latensi (ms):
min: 0.00
rata-rata: 0.00
maksimal: 16.90
persentil kaping 95: 0.00
gunggunge: 43604.83

Keadilan benang:
acara (rata-rata / stddev): 8977603.2500 / 233905.84
wektu 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 run
sysbench 1.1.0-18a9f86 (nggunakake paket LuaJIT 2.1.0-beta3)
Mlaku tes kanthi pilihan ing ngisor iki:
Cacahing utas: 4
Initializing generator nomer acak saka wektu saiki

File ekstra mbukak gendera: (ora ana)
128 file, saben 8MiB
Ukuran file total 1 GiB
Ukuran blok 4 KiB
Jumlah panjalukan IO: 0
Waca / Nulis rasio kanggo test IO acak gabungan: 1.50
FSYNC périodik aktif, nelpon fsync () saben 100 panjalukan.
Nelpon fsync () ing mburi test, Aktifake.
Nggunakake mode I/O sinkron
Nglakoni tes r/w acak
Miwiti thread buruh…

Utas diwiwiti!

Hasil:
diwaca: IOPS=3868.21 15.11 MiB/s (15.84 MB/s)
nulis: IOPS=2578.83 10.07 MiB/s (10.56 MB/s)
fsync: IOPS=8226.98

Latensi (ms):
min: 0.00
rata-rata: 0.27
maksimal: 18.01
persentil kaping 95: 1.08
gunggunge: 238469.45

Cathetan iki wiwit gedhe

seri artikel bab serep

  1. Gawe serep, bagean 1: Napa serep dibutuhake, ringkesan metode, teknologi
  2. Bagean Serep 2: Priksa lan nguji alat serep basis rsync
  3. Backup Part 3: Reviewing lan testing duplikat, duplikat, deja dup
  4. Backup Part 4: Reviewing lan testing zbackup, restic, borgbackup
  5. Backup Part 5: Testing bacula lan veeam backup kanggo linux
  6. Serep Part 6: Mbandhingaké Serep Tools
  7. Serep Part 7: Kesimpulan

Source: www.habr.com

Add a comment