
Artikel ini adalah bagian dari seri tentang membangun NAS , dan ditulis untuk jenis sistem tertentu.
Cadangan adalah tugas utama kedua yang ingin saya selesaikan menggunakan NAS, setelah sistem manajemen repositori .
Keputusannya berlarut-larut ...
Banyak artikel dan bahkan beberapa buku telah ditulis tentang topik ini, dan banyak salinan telah dipecah dalam perselisihan tentang ini.
Di bawah ini adalah upaya untuk mengetahui tumpukan material ini, menaruhnya di kepala Anda dan membangun sistem kecil yang relatif kompeten.
Sistem Cadangan (SRK) ditentukan oleh:
- Kebijakan cadangan. Kebijakan menetapkan tujuan dan sasaran utama cadangan, persyaratan untuknya, berdasarkan daftar ancaman untuk setiap sistem cadangan, dan juga membenarkan kebutuhannya.
- Peraturan cadangan berbasis kebijakan. Peraturan ini menjelaskan algoritma pencadangan dan pemulihan yang bertanggung jawab untuk pencadangan, kondisi penyimpanan untuk pencadangan, dll.
- Implementasi instrumental. Sebenarnya, perangkat lunak dan perangkat keras.
Proses pencadangan reguler dibagi menjadi beberapa bagian utama berikut:
- Mulai menyalin secara berkala.
- Mulai pemulihan sesuai permintaan.
- Menguji proses penyalinan.
Titik antarmuka sistem dengan platform NAS:
tank0/apps/backup
- penyimpanan tank0/apps/backup
.tank1/apps/backup
- penyimpanan tank1/apps/backup
.https://backup.NAS.cloudns.cc
- Antarmuka sistem berbasis web.
Repositori cadangan adalah sistem file yang terpisah .
Ini perlu karena opsi mereka bisa sangat berbeda, baik dari sistem file normal, dan di antara mereka sendiri.
Misalnya, jika perlu, deduplikasi melalui FS dapat diaktifkan dan kompresi dapat dinonaktifkan.
Prinsip Pencadangan

Penting untuk dipahami bahwa meskipun saya menggambarkan di sini kasus khusus cadangan yang disesuaikan dengan kebutuhan jaringan kecil, prinsip-prinsip, pengamatan dan pola di mana-mana umum terjadi.
Dalam kasus-kasus sederhana, beberapa dari mereka dapat diabaikan, tetapi diinginkan untuk mengetahuinya.
Prinsip-prinsip ini didasarkan pada kebijakan dan peraturan.
Berikut ini beberapa yang mendasar:
- 3-2-1 . Buat setidaknya tiga cadangan, dalam dua format penyimpanan, yang setidaknya satu harus disimpan di tempat yang terpisah secara fisik. Prinsipnya diinginkan untuk diperhatikan. Dalam kasus saya, prinsip ini sebagian diterapkan. Pertama, ada tiga mesin yang berbeda di mana data digandakan sebagian: NAS, kerja dan laptop. Kedua, replikasi ke cloud direncanakan.
- Periksa apa yang sudah disalin . Jika tidak, dapat terjadi bahwa pada saat yang genting, data tidak dapat dipulihkan. Periksa lebih baik melalui proses pemulihan.
- Gunakan alat yang tepat untuk tugas itu . Sangat mungkin bahwa dengan menyalin armada mesin virtual, sistem untuk menyalin file dengan agen pada mesin akan melakukan hal yang buruk. Perangkat lunak khusus akan menyalin lebih cepat dan lebih murah pada sumber daya mesin. Penting bahwa alat ini andal dan sederhana. IBS bukanlah sesuatu yang biasanya ingin Anda gali.
- Lebih baik menyalin semuanya, dengan pengecualian yang jelas . Atau "lebih baik menyalip daripada tidak menyelesaikannya." Dimungkinkan untuk membuang kelebihan, tetapi jika kebijakan sebaliknya digunakan, mungkin tidak mungkin untuk mengembalikan file berharga yang Anda lupa tentukan secara eksplisit.
- Seharusnya dimungkinkan untuk memilih dan mengembalikan data dengan cepat . Dianjurkan, "satu klik", dan tidak menunggu satu jam. Secara formal, Anda harus memiliki RTO yang cukup rendah, dan RPO yang cukup. Sangat nyaman jika IBS memungkinkan Anda untuk memulihkan dihapus secara tidak sengaja, dan memilih dari beberapa versi, dan bukan hanya yang terbaru (misalnya, jika rusak, karena kesalahan logis tidak dikecualikan).
Di akhir artikel ada tautan ke sumber-sumber yang dapat Anda pelajari untuk lebih membiasakan diri dengan poin-poin ini, serta membaca tentang orang lain.
Kebijakan cadangan
Jelas, tujuan dari cadangan apa pun adalah untuk mengurangi biaya penghancuran data yang tidak direncanakan dalam situasi darurat.
Ini dicapai dengan menduplikasi data berharga dari mesin yang bekerja ke penyimpanan pihak ketiga.
Tugas cadangan
Tugas-tugas berikut ini didefinisikan untuk tujuan cadangan:
- Sorot data target.
- Menyimpan data yang ditentukan untuk pemulihan selanjutnya.
- Pemulihan data yang disimpan.
- Memastikan stabilitas data yang disimpan berubah dan rusak.
- Diferensiasi akses ke data yang disimpan.
- Menyediakan kontrol sistem dan proses pencadangan.
Persyaratan sistem
Lebih jauh dalam daftar, persyaratan fungsional dan non-fungsional dicampur:
- Pencadangan harus dilakukan:
- Sesuai jadwal.
- Atas permintaan.
- Jika Anda melewatkan yang sebelumnya.
- Cadangan data harus disediakan setidaknya 1 kali per hari hingga kedalaman 1 bulan. Praktek mengambil foto, serta menggunakan versi sistem sebelumnya pada mesin yang berfungsi, menunjukkan bahwa ini sudah cukup bagi saya.
- Waktu pemulihan data tidak boleh lebih dari 2 menit per 1 GB (batas bandwidth jaringan adalah 81 detik. Per 1 GB). Mempertimbangkan bandwidth LAN dan kecepatan disk, sebagai faktor pembatas.
- Semua saluran harus dienkripsi. Data sensitif, seperti data otorisasi dalam layanan online, dapat disimpan.
- Seharusnya dimungkinkan untuk mengenkripsi cadangan pengguna dengan kunci rahasia di mesin pengguna, tanpa kemungkinan dekripsi di server. Ini penting karena pengguna tidak perlu mempercayai server sama sekali.
- Penyalinan yang tidak lengkap seharusnya tidak memakan banyak waktu, misalnya, lebih dari 30 menit. Internet digunakan untuk menyalin data dari laptop.
- Seharusnya ada potensi untuk menyalin salinan ke cloud (kemampuan untuk secara fleksibel mengkonfigurasi replikasi untuk penyimpanan cloud tertentu) dengan enkripsi cadangan. Ini juga salah satu konsekuensi dari "prinsip 3-2-1."
- Seharusnya ada manajemen terpusat sederhana dengan integrasi ke dalam antarmuka web.
- Minimal penyempurnaan dan pengaturan yang rumit di server.
Komposisi Sumber Daya Cadangan
Dalam kasus saya, ini sangat khas:
- Mesin kerja utama. Komputer desktop.
- Mesin kerja bergerak. Laptop itu.
- Router LAN. Ini menyimpan pengaturan jaringan, yang dapat berisi login dan kata sandi untuk koneksi Internet dan beberapa layanan.
- NAS Ya, konfigurasi NAS juga berlebihan. Terlepas dari kenyataan bahwa sebagian besar FS memiliki snapshot.
Komposisi Ancaman
Di sinilah, apa dan apa yang harus dilindungi dan dengan cara apa.
Untuk melakukan ini, saya menyusun tabel kecil ancaman. Semua ancaman utama pada komputer seluler mengulangi ancaman itu menjadi yang diam.
Komputer tablet praktis tidak berbeda dengan ponsel, dari sudut pandang ini.
Ketentuan Kebijakan Tambahan
Dianjurkan untuk memperhitungkannya:
- Pengujian pemulihan rutin harus dilakukan.
- Prosedur pemulihan yang gagal harus didokumentasikan.
- Tindakan harus diatur jika terjadi kegagalan sekunder: apa yang harus dilakukan jika, setelah pemulihan, sistem tidak beroperasi, atau data tidak dapat dipulihkan.
- Penting untuk menguji apakah proses pemulihan tergantung pada peralatan tertentu
(yang mungkin gagal pada saat pemulihan). Saya, dalam kasus saya, tidak akan memeriksa ini, terbatas hanya pada pemeriksaan sistem dasar. - Jika Anda memiliki cadangan sistem lengkap, Anda harus segera mencadangkan setelah peningkatan yang substansial.
- Jika volume kumulatif cadangan inkremental melebihi volume cadangan penuh, adalah rasional untuk membuat cadangan penuh yang tidak terjadwal. Artinya, frekuensi membuat cadangan lengkap harus ditingkatkan dalam kasus ini.
Saya tidak memperhitungkan poin terakhir kebijakan, karena biasanya alur kerja saya tidak berubah, dan cukup untuk memantau volume untuk sementara waktu, hanya untuk pengaturan awal.
Secara empiris, ditemukan bahwa skema "bulan, minggu, hari, jam" cukup baik untuk saya.
Untuk sistem yang lebih besar, Anda mungkin perlu mengubah frekuensi cadangan secara dinamis untuk setiap sistem.
Peraturan cadangan
Setelah pengembangan kebijakan, dimungkinkan untuk melanjutkan pengembangan regulasi secara langsung.
Dalam kasus umum, mungkin ada beberapa peraturan: umum, untuk administrator IBS, untuk pengguna, bagi mereka yang bertanggung jawab untuk penyimpanan, untuk administrator sistem target, dll ...
Tetapi dalam kasus sistem kecil, ini biasanya satu orang, dan karena itu hanya ada satu peraturan.
Tujuan regulasi
- Menentukan prosedur cadangan data.
- Menentukan prosedur pemulihan data.
- Menentukan prosedur pemeriksaan kesehatan sistem.
- Kondisi penyimpanan cadangan dan persyaratan media.
- Merampingkan pekerjaan.
Contoh regulasi
Di bawah spoiler, Anda dapat melihat seperti apa aturannya dalam organisasi besar, menggunakan contoh peraturan Rosreestr yang diambil dari sumber terbuka .
Peraturan Rosreestr.PERATURAN CADANGAN DATA DI DEPARTEMEN TERRITORIAL ROSRESTR
Daftar isi
- Ketentuan Umum
- Pesanan cadangan.
- Memantau hasilnya.
- Dukungan regulasi.
- Rotasi media cadangan.
- Kembalikan informasi dari cadangan.
- Lampiran 1
- Lampiran 2 Daftar orang yang bertanggung jawab untuk pencadangan.
1 Umum
Peraturan ini menetapkan persyaratan dasar untuk organisasi cadangan (pemulihan) program dan data yang disimpan dalam database di server otoritas teritorial Rosreestr, serta untuk cadangan perangkat keras.
Peraturan ini dirancang untuk:
- penentuan kategori informasi yang tunduk pada cadangan wajib;
- menentukan prosedur untuk mencadangkan data untuk pemulihan kinerja sistem informasi selanjutnya jika terjadi kehilangan sebagian atau seluruh informasi yang disebabkan oleh kegagalan atau kegagalan fungsi perangkat keras atau perangkat lunak, kesalahan pengguna, keadaan darurat (kebakaran, bencana alam, dll.);
- menentukan prosedur untuk memulihkan informasi jika terjadi kebutuhan seperti itu;
- merampingkan pekerjaan dan menentukan tanggung jawab pejabat terkait dengan pencadangan dan pemulihan informasi.
Informasi pencadangan berarti pembuatan salinan lengkap dari basis data produksi Kantor untuk pemulihan cepat sistem manajemen informasi dari Daftar Perusahaan Negara yang Disatukan Perusahaan "Keadilan" AIS jika terjadi keadaan darurat yang mengakibatkan kerusakan atau kehilangan data.
Semua basis data produksi dari semua departemen teritorial Kantor dapat dicadangkan.
Media penyimpanan mesin yang berisi salinan cadangan diberikan cap kerahasiaan untuk cap informasi tertinggi yang terkandung di dalamnya.
Cadangan disimpan di luar ruang server, akses ke cadangan terbatas. Daftar orang yang memiliki akses ke data dibentuk berdasarkan aplikasi tertulis dari kepala unit teknologi informasi, yang disetujui oleh kepala unit keamanan informasi (SI). Hak akses ke sarana teknis, array, dan media penyimpanan yang dilindungi diubah berdasarkan aplikasi dari kepala departemen TI, disepakati dengan kepala departemen IS. Upaya yang terdeteksi dari akses tidak sah ke informasi yang dilindungi dan perangkat keras, serta pelanggaran IS lainnya yang terjadi selama proses pencadangan, dilaporkan ke unit IS dengan catatan layanan selama hari kerja setelah deteksi peristiwa yang ditentukan.
2 Pesanan Cadangan
Pencadangan dilakukan dengan menggunakan Oracle DBMS biasa. Pencadangan dapat dilakukan:
- Secara manual - operator yang bertanggung jawab atas pencadangan memulai prosedur ekspor Oracle (contoh memulai prosedur pada Lampiran 1).
- Secara otomatis - file yang dapat dieksekusi yang memanggil prosedur ekspor Oracle diluncurkan secara otomatis oleh sistem operasi sesuai jadwal.
Pencadangan basis data dilakukan setidaknya 1 kali per hari. Masa penyimpanan basis data cadangan minimal 1 bulan.
Strategi cadangan harus menjamin pemulihan data secara sinkron yang terletak di skema basis data yang berbeda. Misalnya, skema HED (repositori dokumen elektronik) harus disalin secara bersamaan dengan skema AIS Justice.
Sarana material dan teknis dari sistem cadangan harus memberikan kinerja yang cukup untuk menyimpan informasi, tepat waktu dan pada interval yang ditentukan. Orang-orang yang bertanggung jawab untuk mengatur cadangan harian memantau ketersediaan jumlah ruang disk yang diperlukan untuk cadangan.
3 Pemantauan hasil
Hasil dari semua prosedur pencadangan dipantau oleh pejabat yang bertanggung jawab yang ditunjukkan dalam Lampiran 2, hingga 10 jam pada hari kerja setelah tanggal yang ditetapkan untuk melakukan prosedur ini.
Jika kesalahan terdeteksi, orang yang bertanggung jawab untuk memantau hasil melaporkannya ke layanan dukungan teknis pengembang selambat-lambatnya 11 jam dari hari kerja saat ini.
4 Dukungan regulasi
Untuk mengatur proses pencadangan, Anda harus:
- Tetapkan daftar orang yang bertanggung jawab untuk melakukan proses pencadangan dan memantau hasilnya (Lampiran 2).
- Mempersiapkan dan menyetujui jadwal cadangan.
- Mempersiapkan dan menyetujui dokumen peraturan internal tentang penunjukan mereka yang bertanggung jawab untuk membuat cadangan data.
5 Memutar media cadangan
Sistem cadangan harus menyediakan kemampuan untuk mengganti (membongkar) media pencadangan secara berkala tanpa kehilangan informasi tentangnya, dan juga memastikan pemulihan informasi terkini dari sistem otomatis jika terjadi kegagalan perangkat cadangan apa pun. Semua prosedur untuk memuat, mengeluarkan media dari sistem cadangan, serta transfernya ke Layanan Keamanan dan sebaliknya, dilakukan oleh administrator cadangan atas permintaan dan di hadapan karyawan yang bertanggung jawab atas Layanan Keamanan Pelanggan (sesuai dengan Lampiran No. 2).
Sebagai operator baru, diizinkan untuk menggunakan kembali yang masa penyimpanan informasi yang terkandung telah berakhir.
Informasi rahasia dari media yang tidak lagi digunakan dalam sistem cadangan harus dihapus menggunakan perangkat lunak PGP.
Jika perlu, pemulihan data dari cadangan dilakukan oleh karyawan yang bertanggung jawab di departemen TI yang ditentukan dalam Lampiran No. 2.
Pemulihan data dari cadangan terjadi jika hilang atau dilanggar karena akses tidak sah ke sistem, paparan virus, kesalahan perangkat lunak, kesalahan karyawan, dan kegagalan perangkat keras.
Pemulihan perangkat lunak sistem dan perangkat lunak serba guna dilakukan dari medianya sesuai dengan instruksi pabrik.
Pemulihan perangkat lunak khusus dilakukan dari media distribusi atau salinan cadangannya sesuai dengan instruksi untuk menginstal atau memulihkan perangkat lunak ini.
Informasi yang tidak terkait dengan database yang terus berubah dipulihkan dari media cadangan. Ini menggunakan salinan informasi terbaru.
Dalam kasus sebagian pelanggaran atau hilangnya catatan basis data, pemulihan dilakukan dari salinan harian terakhir yang tidak terganggu. Semua informasi dipulihkan dari salinan terakhir.
7 Lampiran 1
Contoh memulai utilitas ekspor Oracle dari baris perintah:
exp userid = JUST_USER / PASSWORD @ pemilik SERVER = (JUST_USER, HED_USER) langsung = Y konsisten = Y statistik = NONE kompres = N file = C: \ BACKUP.DMP log = C: \ BACKUP.LOG
dimana:
JUST_USER / PASSWORD @ SERVER - schema_owner_name / password @ server_name;
owner = (JUST_USER, HED_USER) - daftar skema yang disalin, dalam contoh ini, skema AIS Justice dan skema HED secara bersamaan diekspor;
file = C: \ BACKUP.DMP - path dan nama file ekspor yang dibuat;
log = C: \ BACKUP.LOG - path dan nama file log ekspor yang dibuat.
8 Lampiran 2. Daftar orang yang bertanggung jawab untuk pencadangan
Di sini Anda akan menemukan contoh lain dengan deskripsi singkat.
Prosedur reservasi
Komposisi data cadangan:
- Mesin bekerja:
- Direktori pengguna pribadi (
/home/*
). . - .
- , (
/opt
). - (
/etc
). - .
- .
- .
- .
- :
- NAS:
- :
:
- .
- , .
/etc/apt/apt.conf.d
, , .- Mikrotik .
- NAS .
:

:
, Debian ( Squeeze 2011 ), Slackware ReiserFS .
:
Mikrotik , RouterOS .
, .
, .
:
- Veeam , , . , Acronis, , .
- .
- .
.
, .
.Solusi Utilitas Unix
Solusi berdasarkan rsync, tar, rdiff-backup, dll. tidak dianggap karena banyaknya pekerjaan yang perlu dilakukan dan kurangnya antarmuka WEB yang diperlukan.

BareOS (Backup Archiving Recovery Open Sourced) - garpu Bacula sejak 2010.
Pro:
- Sistem debugged yang stabil.
- Mendukung beberapa jenis agen di bawah OS yang berbeda.
- Ini mendukung berbagai jenis cadangan: inkremental, diferensial, penuh.
- WEB-interface sangat maju dan fungsional.
- Konfigurasi yang fleksibel.
- Ada driver FUSE yang menunjukkan cadangan.
- Ada ikatan untuk Python yang memungkinkan Anda untuk berinteraksi dengan Direktur.
- (, ).
- .
- .
Cons:

.
:
- .
- .
- Web-.
- .
- . , .
- .
- , SMB, rsync.
- Web-.
- , .
- , , .
- .
Cons:
- Perl, CPAN.
- , , .
, , , . , SSH , , , .. . - ( , ).

- .
:
- .
- Web-.
- .
- ( .. ).
- Windows, Linux, MacOS X.
- : , .
- .
- .
- (, Outlook, ).
- . , .
- (, ..) .
- .
- , .
- , .
- .
- Internet.
- (, ) .
- .
- (, USB ).
- .
- GUI .
Cons:
- Windows, , .
- NTFS.
- LDAP, , , AD .
.
:
- .
- .
- . , .
- / . . .
- . .
- .
- FUSE , host/.
Cons:
- Web- .
- RAM (~2.7GB 1TB).
- ACL .
- RAM .
- ( ).
- ( ). .
- restic.

.
:
- .
- .
- ( Python, C ).
- .
- : LZ4, zlib, LZMA.
- FUSE , .
- : Linux, macOS, BSD, etc.
- Web-, .
- .
Cons:
- Web- .
- Windows ( Linux subsystem cygwin).
, rsync.
:
- inotify fsevents . rsync .
- rsync.
- Lua, Lua.
- .
- .
Cons:

.
.
:
- , .
- , TLS, , SSL .
- , "" , .
- .
- , : , .
- , .
- .
- : .
- RAID.
- *nix-like , Windows native, Windows cygwin.
- GUI.
Cons:
UrBackup .
, .
.
UrBackup
, :
# zfs create -o com.sun:auto-snapshot=false -p tank0/apps/backup # zfs set compression=on tank0/apps/backup
, , UrBackup ZFS .
, :
# zfs set dedup=on tank0/apps/backup
UrBackup :
# mkdir /tank0/docker/services/urbackup # cd /tank0/docker/services/urbackup # vim docker-compose.yml # docker-compose up -d
docker-compose .
Web- .
docker-compose.yml version: '2' networks: docker0: external: name: docker0 services: urbackup: uroni/urbackup-server image: restart: always expose: - 55414 ports: # - 55413:55413 - 55415:55415 - 35623:35623/udp volumes: - /tank0/apps/backup/urbackup/database:/var/urbackup - /tank0/apps/backup/urbackup/backups:/backups - /tank0/apps/backup/urbackup/log:/var/log - /etc/localtime:/etc/localtime:ro networks: - docker0 environment: - VIRTUAL_HOST=backup.* - VIRTUAL_PORT=55414 - VIRTUAL_PROTO=http - CERT_NAME=NAS.cloudns.cc - TZ=Europe/Moscow
Docker uroni/urbackup-server
, tristanteu/urbackup-docker
.
.
, :
- . UrBackup LDAP .
- LDAP. LDAP . " ". , .
- .
- , . . . , NAS, .
- -.
:

:

LDAP , : , .
:
ou=users,dc=nas,dc=nas?memberOf,objectClass?sub?(&(memberOf=cn=users_backup,ou=groups,dc=nas,dc=nas)(uid={USERNAME}))
- , .

, , .
, :

-:

, , .
, UrBackup:
- TCP 55415 — .
- TCP 55414 — Web- HTTP.
- TCP 55413 — Web- FastCGI, Web-. Karena NAS HTTP/HTTPS, .
- TCP 35621 — .
- UDP 35622 — . . .
- TCP 35623 — .
- UDP 35623 — .
, 55415 , 35621, 35622, 35623 .
, .
:
UrBackup , .. , :

.
shell :
TF=`mktemp` && wget "https://NAS.system.cloudns.cc/x?a=download_client&lang=ru&clientid=1&authkey=KEY&os=linux" -O $TF && sh $TF; rm $TF
:
~
NAS , :
- :
/etc;/home;/var;/root;/tank0/apps;/tank0/docker
. - :
/tank0/apps/backup;/tank1/apps/backup;/tank0/apps/cloud/nextcloud/html/data
.
, , , , , .
, , , " ", , :

:
~
Masalahnya
, UrBackup , . .
— -, .
:
ERROR: Internet mode not enabled. Please set "internet_mode_enabled" to "true".
.
:
~
/etc/default/urbackupclient
, .
, /usr/local/var/urbackup/data/settings.cfg
.
, , :
internet_server=NAS.system.cloudns.cc internet_server_port=55415 internet_authkey=44R3MUIdB computername=zenbook internet_mode_enabled=true
, , -.
, , , .
Debian, , /etc/apt/apt.conf.d/80full-backup
:
DPkg::Post-Invoke {"test -x /usr/local/bin/urbackupclientctl && /usr/local/bin/urbackupclientctl start -f || true"; };
NAS, . , mtbackup SSH, NAS.
Python , , , UrBakup, .
:
, : . , .
, :
, - , .

.
, , .
- , , Storj .
Sastra
, , :
, :
.
, RTO, RPA, RPO. , , , .
- NAS , , , .