Bagaimana melindungi dari kehilangan server dengan anggaran terbatas

22

Saya adalah perusahaan kecil dengan anggaran yang tidak sedikit untuk menyediakan situs web dan database untuk klien amal dan nirlaba.

Saya memiliki beberapa server VPS Debian Linux dan memastikan saya memiliki cadangan harian ke VPS yang berbeda dari yang di-host di layanan ini.

Baru-baru ini salah satu perusahaan hosting saya memberi tahu saya dua hard disk gagal secara bersamaan sehingga data hilang selamanya. Banyak hal terjadi, kata mereka minta maaf, apa lagi yang bisa mereka lakukan? Tapi itu membuat saya bertanya-tanya tentang cara yang hemat biaya untuk mendapatkan VPS pada dasarnya lagi jika terjadi masalah perangkat keras atau kegagalan terkait host lainnya.

Saat ini saya harus

  1. Putar VPS baru
  2. Dapatkan cadangan hari terakhir (yang meliputi basis data, root web, dan konfigurasi khusus situs web) ke VPS, dan konfigurasikan seperti yang terakhir dll.
  3. Perbarui DNS dan tunggu sampai menyebar.

Mungkin butuh satu hari atau lebih untuk mencapai hal ini, dengan propagasi DNS menjadi tidak diketahui, meskipun saya memiliki set TTL yang cukup rendah (sekitar satu jam).

Beberapa host memberikan snapshot yang dapat digunakan untuk mereplikasi set up ke VPS baru, tetapi masih ada IP dan ini tidak membantu jika perusahaan host membatalkan / menangguhkan akun secara langsung (saya telah membaca tentang ini perilaku dari penyedia hosting tertentu dan itu membuatku takut! Saya tidak melakukan apa-apa spam / cerdik dan mengawasi keamanan, tapi saya menyadari bahwa mereka benar-benar memiliki kekuatan untuk melakukan ini dan saya cukup suka menolak).

Apakah ini, dikombinasikan dengan memilih host yang memiliki reputasi baik, yang terbaik yang dapat saya lakukan tanpa menggunakan solusi yang luar biasa mahal?

artfulrobot
sumber
1
Sangat skeptis terhadap klaim bahwa 2 drive gagal secara bersamaan, khususnya pada vps
symcbean
Rupanya satu gagal lalu yang lain sementara yang baru membangun kembali.
artfulrobot
lihat drbd.linbit.com , ini mungkin sesuai dengan kebutuhan Anda ..
The Unix Janitor
2
@symcbean: Masalahnya adalah pembangunan kembali RAID-5 mengharuskan membaca semua data dari semua disk yang tersisa. Itu operasi yang cukup panjang (berjam-jam jika tidak berhari-hari). Sistem RAID-5 yang murah mungkin memiliki pengaturan 9 + 1 menggunakan drive desktop. Kesemua 9 disk tersebut akan ditekankan di luar batas desain dalam pembangunan kembali RAID. Kenyataannya, kegagalan memang bisa diharapkan.
MSalters
1
Yah sebenarnya mereka memiliki kolam penyimpanan dan kolam memori prosesor + sebagai entitas yang terpisah, tetapi pertanyaannya bukan tentang apa yang terjadi atau tidak pada satu penyedia tertentu; ini lebih umum daripada implementasi spesifik.
artfulrobot

Jawaban:

28

Bagi saya, memilih host yang memiliki reputasi baik dan melakukan pencadangan rutin - yang tampaknya sudah Anda lakukan sebelumnya - adalah tentang sebaik yang dapat Anda lakukan tanpa mulai memikirkan perencanaan kesinambungan bisnis, pengaturan ketersediaan tinggi, SLA, dan sebagainya.

Saya memberi tahu orang-orang bahwa Anda mendapatkan 99% uptime gratis (yaitu, tanpa mengeluarkan biaya tambahan untuk ketersediaan tinggi). Itu sekitar tiga setengah hari downtime setahun. Setiap tambahan 9 pada uptime itu meningkatkan biaya sekitar tiga hingga sepuluh kali lipat.

Jika orang tidak siap untuk membayar uang sebanyak itu, menurut hemat saya adalah kesalahan untuk menyesatkan mereka agar berpikir bahwa mereka bisa mendapatkan perlindungan tambahan apa pun yang penting.

MadHatter mendukung Monica
sumber
3
Ini jawaban yang bagus. Saya memiliki pengaturan dan jenis klien yang sangat mirip dengan @artfulrobot (kami bahkan menggunakan perusahaan hosting yang sama), dan pertanyaannya serta jawaban Anda telah membuat saya menyadari bahwa adalah tanggung jawab saya untuk berkomunikasi dengan klien saya mengenai batasan dan risiko, dalam bahasa Inggris yang sangat sederhana, untuk memastikan mereka memiliki harapan yang realistis. Kebanyakan dari mereka sangat non-tecie, jadi ada kemungkinan yang sangat nyata mereka berpikir semuanya akan secara ajaib bekerja, non-stop dan tanpa batas. Saya tidak ingin mengelola harapan mereka selama / setelah kegagalan besar, saya harus melakukannya sebelumnya!
Simon Blackbourn
Saya tidak mengatakan bahwa kegagalan sepenuhnya tidak berkorelasi, tetapi 1 + 1 redundansi dalam teori harus memberi Anda dua kali sembilan tambahan untuk dua kali biaya. Anda menyarankan biaya untuk dua kali sembilan tambahan adalah antara 9 kali dan 100 kali. 2x versus ~ 30x adalah perbedaan besar.
MSalters
2
@Pemutar itu benar, terhadap jenis kegagalan tertentu (kegagalan server). Terhadap misalnya kegagalan situs, itu tidak melakukan apa-apa, kecuali dua server berada di situs yang berbeda, dan itu menjadi sangat kompleks dalam hal admin jaringan. Anda juga hanya mempertimbangkan biaya modal, dan mengabaikan peningkatan biaya operasional - menjaga agar dua server tetap tersinkron dengan sempurna bukanlah hal yang sepele, tergantung pada hal apa yang mereka lakukan, dan ada biaya admin penyeimbang beban. Perasaan saya adalah bahwa server berlebihan di satu situs, berbagi beban LB, memberi Anda sembilan dalam pertukaran untuk 3-4 kali biaya.
MadHatter mendukung Monica
Cara yang baik dan mudah untuk menyajikannya. (Tapi ... saya hanya akan menambahkan harga di suatu tempat, karena 3 sampai 10 kali "gratis" masih gratis;). Atau, tentu saja, maksud Anda keseluruhan biaya layanan itu sendiri? )
Olivier Dulac
@OlivierDulac tepatnya begitu!
MadHatter mendukung Monica
8

Usaha kecil dengan anggaran kecil, terutama organisasi nirlaba, biasanya tidak akan mampu membeli ketersediaan tinggi. Pertanyaannya adalah, jika Anda hampir tidak memiliki anggaran, seperti yang biasa terjadi dalam situasi seperti ini, apa strategi pemulihan Anda?

Saya memiliki beberapa klien seperti ini, dan inilah yang saya lakukan:

Pertama, untuk beberapa dari mereka saya memiliki cadangan incremental dan dump database lengkap setiap enam jam. Satu klien sudah menggunakan CrashPlan Pro jadi saya hanya menggunakannya. Apa pun yang Anda lakukan, Anda perlu memastikan Anda memiliki cadangan yang dapat disimpan.

Saya memiliki buku pedoman sederhana yang saya buat dalam waktu sekitar satu jam (tidak pernah bekerja sebelumnya dengan kemungkinan) yang menginstal nginx, php-fpm dan MariaDB dan menyiapkannya untuk meng-host situs web atau situs. Menjalankan buku pedoman ini menghasilkan server (atau server) yang siap untuk meng-host aplikasi web biasa, dan saya dapat dengan mudah mengembalikan host virtual nginx, file aplikasi, dan database ke sana.

Hasil dari ini adalah bahwa saya dapat membuka situs web seperti itu dari cadangan hanya dalam beberapa menit, sebagai lawan dari cara manual yang bisa memakan waktu satu jam atau lebih.

Michael Hampton
sumber
Hei itu kedengarannya tepat. Saya akan melihat itu. Terima kasih.
artfulrobot
Ketersediaan tinggi sudah tersedia bahkan untuk klien kecil dari penyedia yang baik. Mereka mendapatkan skala ekonomis.
JamesRyan
@ JamesRyan Ya, tetapi Anda tidak mendapatkan ekonomi ... ekonomi. Katakan padaku apakah masuk akal untuk menjalankan dua mesin virtual Amazon dan penyeimbang beban elastis untuk situs web yang melihat 300 klik sebulan?
Michael Hampton
@MichaelHampton itu bahkan tidak jauh dari apa yang saya sarankan. Sebuah perusahaan hosting VPS untuk ratusan klien dapat menyebar mereka di antara perangkat keras yang berlebihan daripada hanya menempatkan banyak dari mereka di server fisik tunggal dan bersilangan.
JamesRyan
4

Kompleksitas implementasi tergantung pada tumpukan aplikasi, tetapi idealnya Anda ingin mengatur "siaga panas" (di penyedia yang berbeda), dengan data yang direplikasi secara real-time (atau sedekat mungkin dengan real time).

Membuat kasus bisnis untuk memiliki 2 server "hidup" adalah sesederhana membandingkan potensi kehilangan pendapatan selama periode "pemulihan dari gambar" dengan biaya server lain.

Mark R.
sumber
Terima kasih. Saya menggunakan tumpukan LAMP. Saya kira real time akan menjadi sesuatu seperti replikasi MySQL, meskipun itu bisa sangat rumit untuk dikelola. Dan ini menggandakan server yang harus saya kelola. Mungkin masuk akal untuk memiliki satu kotak spec rendah yang memiliki salinan langsung dari semua server lain, jadi itu hanya propagasi DNS. Lalu saya bisa mengkloning itu kembali ke VPS baru dan mengubah DNS (hmmm.).
artfulrobot
Replikasi MySQL biasanya cukup sederhana untuk diatur dan dikonfigurasi, selain dari waktu yang dihabiskan untuk mentransfer dataset awal. Adapun DNS, sebagian besar penyelesai menghormati TTL rendah hari ini, dan menetapkan TTL rekor serendah 60 detik biasanya bekerja dengan baik.
Mark R.
Replikasi MySQL lebih kompleks ketika Anda perlu menambahkan database tambahan baru dan saya percaya itu masih sulit untuk memiliki satu server menjadi budak untuk lebih dari satu master (mereplikasi beberapa dbs pada satu server siaga). Juga tentu saja Anda perlu mengamankan akses antar server, misalnya stunnel, jadi itu adalah PKI untuk mempertahankan dll kecuali Anda memiliki jalur pribadi tetapi itu dikesampingkan oleh kebutuhan akan hal ini dengan perusahaan hosting terpisah.
artfulrobot
Selalu ada replikasi-do-db dan terowongan SSH dengan kunci.
Mark R.
Digunakan untuk menjalankan terowongan SSH standar tetapi tidak dapat diandalkan. Stunnel sangat brilian begitu Anda dapat menjalankannya.
artfulrobot
2

Ingatlah bahwa uptime tidak sama dengan integritas data. Anda dapat memiliki waktu aktif 99,99% dan kehilangan semua data Anda dua kali dalam setahun selama server dimulai kembali "segera". Sebagian besar penyedia VPS menjamin bahwa server Anda berjalan, BUKAN bahwa data Anda aman. Data Anda adalah masalah Anda :(.

Apa yang Anda cari adalah sesuatu yang akan menyimpan cadangan Anda di server terpisah dan (IMHO) bahkan di penyedia yang sama. Bergantung pada ukuran data yang Anda bicarakan, hard drive portabel dapat digunakan sebagai garis pertahanan offline ketiga. Cadangkan data Anda seperti yang telah Anda lakukan dan kemudian salin secara teratur (atau hanya perubahan jika mungkin) ke hard drive portabel atau bahkan komputer lokal. Ada juga opsi yang cukup murah seperti Backblaze untuk solusi cadangan, tetapi harga akan tergantung pada jumlah data yang Anda bicarakan. Jika Anda dapat melakukan backup inkremental, maka akan jauh lebih murah daripada backup penuh, tetapi backup inkremental bisa sangat sulit tergantung di mana data disimpan (file flat = mudah, database = tidak begitu mudah).

millebi
sumber
Ya, saya melakukan itu :-) Dan ya, perusahaan hosting tidak peduli dengan data, saya pernah berurusan dengan korupsi disk sebelumnya juga!
artfulrobot
0

Jawabannya sangat tergantung pada arsitektur dan persyaratan Anda. Beberapa waktu lalu 3 disc gagal di server saya, mencatat 20+ vm ketika Raid 6 gagal.

Saya menulis tentang itu di

https://www.linkedin.com/pulse/20140827173324-2064263-how-i-nearly-lost-my-business-to-3-hard-discs

Tetapi: Karena ini sangat penting, kami memiliki cadangan - setiap hari untuk hal-hal yang tidak penting, 15 menit untuk database dan email. Heck, sekarang saya menambahkan server yang akan direplikasi ke komputer lain setiap 30 detik.

Anda tidak mengatakan apa-apa tentang tumpukan, tidak ada tentang anggaran apa pun - jadi saran terbaik dan satu-satunya di sini adalah pergi ke beberapa penyedia cloud dan mulai menggunakan mekanisme cadangan mereka. Tetapi mulailah mendefinisikan apa yang sebenarnya Anda butuhkan.

Juga - anggaran untuk cadangan ini harus sesuai dengan harga Anda. Perlu dibayar. Dan infrastruktur apa pun yang Anda butuhkan .... Anda membutuhkannya. Itu bukan "konyol konyol" kalau begitu.

TomTom
sumber
TomTom: aoe + openfiler dan beberapa kotak dan Anda dapat membangun micro-san ketersediaan sangat tinggi
symcbean