Kita perlu mengkloning layanan Linux ketika masih hidup, bukan hanya karena kita tidak dapat reboot atau sesuatu; itu hanya karena skenario khusus kami (ya, saya sudah membaca jawaban ini, tetapi ini sedikit berbeda dari milik saya Clone server Linux yang berfungsi ).
Kami memiliki simpul penghitungan, Anda dapat mengatakan simpul penghitungan NLP yang menjalankan beberapa model di atasnya. Ketika kita memulai node (dengan layanan tentu saja), perhitungannya akan sangat lambat sampai kita memberinya makan beberapa kali. Kami menyebutnya pemanasan.
Sayangnya, pekerjaan pemanasan membutuhkan waktu lama bagi kami untuk menunggu (mungkin penghitungan kami selesai sebelum simpul dipanaskan).
Jadi, masalahnya, apakah ada cara yang stabil untuk mem-hot clone server Linux agar node tetap pada performa terbaik sehingga kita bisa mengkloning dan membuatnya online dalam waktu yang lebih singkat?
Jawaban:
Mungkin Anda tidak dapat "hot clone" seluruh server (Anda bisa, tetapi hanya jika itu adalah mesin virtual), tetapi Anda dapat membekukan dan mengembalikan satu proses, dengan criu , Checkpoint / Restore di Userspace.
Ini memungkinkan Anda untuk menyimpan status internal program ke disk dan menghentikan program, dan kemudian, mengembalikan program ke status itu dari file yang disimpan.
Untuk mendukung operasi yang Anda inginkan, Anda dapat menyalin file yang mewakili program tersimpan ke server lain, dan mengembalikannya di sana.
criu membutuhkan kernel terbaru dengan berbagai fitur yang dikompilasi, sehingga distribusi Linux yang lebih lama mungkin tidak berfungsi. Anda dapat menjalankan
criu check
pada mesin tertentu untuk menentukan apakah prasyarat untuk criu ada.sumber
Ini mungkin sedikit keluar dari lingkup lingkungan Anda saat ini, tetapi cara standar industri untuk melakukan ini adalah dengan memvirtualisasikan server Anda. Banyak host virtualisasi (VMware, virtualbox, dll.) Memungkinkan "snapshots" yang menyimpan status server, yang kemudian dapat dikloning ke instance baru. Mesin virtual baru ini akan memiliki kondisi yang sama persis seperti aslinya, hingga proses yang berjalan. Tentu saja Anda ingin memastikan bahwa perangkat lunak yang Anda jalankan masih akan bekerja dengan benar di lingkungan virtual (perhitungan CUDA / GPU muncul dalam pikiran).
sumber
Pertanyaan yang Anda sebutkan merujuk ke tautan, http://www.linuxfocus.org/English/March2005/article370.shtml , yang menjelaskan semua cara yang saya bayangkan untuk melakukan permintaan Anda.
Bahwa opsi yang ada di sana tidak berarti banyak untuk apa yang sedang berjalan di server. Anda harus mempertimbangkan bahwa semua file yang dapat berubah dalam proses kloning bisa menjadi file yang tidak konsisten pada mesin target. Pada posting itu Anda memberikan mereka berbicara tentang database, dan mengkloningnya seperti itu tidak memberikan asuransi integritas data.
Tidak jelas apa yang Anda maksud dengan "sampai kami memberinya makan beberapa kali" .
Tetapi jika saya mengerti dengan baik apa yang Anda tanyakan, Anda harus mempertimbangkan bahwa untuk mengkloning suatu sistem diperlukan waktu untuk menyalin dan menghitung sumber daya.
Untuk melakukan "ON / OF" atau lebih baik disebut lingkungan yang aktif / cadangan, server harus dikonfigurasi dengan benar dalam cluster.
Maaf jika bukan jawaban yang Anda harapkan, tetapi opsi yang Anda dapatkan adalah itu.
sumber
Ada banyak masalah potensial dengan apa yang Anda coba lakukan, dan tentu saja seperti yang Anda tahu akan lebih baik untuk membuat server offline dan mengkloningnya sementara tidak ada data yang disimpan secara dinamis.
Namun, apa yang ingin Anda lakukan sepenuhnya masuk akal, seperti yang telah saya lakukan sebelumnya. Jika Anda menggunakan,
dd
Anda dapat mengkloning server lengkap di tingkat blok ke drive lain atau server lain. Namun itu akan memerlukan beberapa pengaturan tambahan pada server baru, dan Anda mungkin tidak akan dapat dengan mudah mematikan yang lain dan yang baru aktif. Agar kami dapat memahami hal ini, kami perlu mengetahui beberapa hal tentang perangkat keras dan perangkat lunak server Anda.Pertama, untuk menentukan strategi data terbaik, akan sangat membantu untuk mengetahui apa yang diperbarui secara berkala. Apakah Anda memiliki server SQL yang memperbarui secara dinamis tetapi memiliki konten statis? Atau, apakah Anda memiliki tim pengembang melalui sistem subversi seperti git mengirimkan pembaruan data konstan ke konten Anda? Bergantung pada apa yang diperbarui akan menentukan tindakan penuh terbaik.
Jika misalnya, hanya SQL yang diperbarui secara berkala, maka Anda dapat bermigrasi ke server baru saat server tersebut aktif dengan cara berikut:
dd
untuk mengkloning semua data server baru.Anda mungkin perlu membuat server asli Anda luring sementara untuk memastikan bahwa Anda tidak kehilangan data apa pun. Atau, untuk tidak memiliki downtime, Anda dapat membuat siaran langsung yang kedua, arahkan dns ke server baru, dan kemudian perbarui entri dns secara manual di server baru, sehingga secara efektif nol downtime. Ini lebih merepotkan daripada beberapa menit downtime meskipun untuk membuat cadangan sql dan mengembalikan ke server baru, tetapi mungkin diperlukan untuk nol downtime.
Ini tentu saja hanya satu contoh kasus penggunaan, dan tergantung pada konfigurasi Anda dan beberapa variabel, Anda mungkin perlu membuat strategi Anda sendiri untuk migrasi berdasarkan kasus khusus Anda.
Masalah lainnya adalah sehubungan dengan konfigurasi perangkat keras server. Apakah server baru 100% identik dalam perangkat keras dengan server lama? Jika demikian, maka pengaturannya lebih mudah. Namun, jika di sisi lain, ini merupakan konfigurasi perangkat keras yang sama sekali berbeda, maka Anda mungkin perlu menerapkan strategi yang berbeda yaitu dengan hanya menyiapkan server kedua sebelumnya, kemudian buat cadangan semua data Anda dan pangkalan data sql di server pertama dan secara manual memindahkannya, mengubah konfigurasi yang diinginkan.
Migrasi server sama sekali tidak sepele, dan untuk dapat berhasil, Anda perlu memiliki pengetahuan yang mendalam tentang server, atau staf yang memiliki hal yang sama. Bagaimanapun, sangat disarankan agar Anda segera mengambil cadangan penuh dan menyimpannya pada sumber ketiga, bahkan di komputer lokal Anda, sehingga jika skenario terburuk terjadi (kedua server macet dan mati tidak dapat diperbaiki), Anda masih memiliki yang lain salinan data Anda untuk membangun kembali server Anda dengan.
Semoga ini bisa membantu, dan semoga sukses dengan server Anda bergerak!
sumber