Мені потрібно клонувати працюючий сервер Linux. Ми не можемо вимкнути робочий сервер. Чи є спосіб отримати клон і розгорнути його на іншому сервері?
Мені потрібно клонувати працюючий сервер Linux. Ми не можемо вимкнути робочий сервер. Чи є спосіб отримати клон і розгорнути його на іншому сервері?
Відповіді:
Існує багато способів копіювання дисків, файлових систем або файлів. Як правило, копіювання файлової системи дає хороший клон з гнучкістю, що вона може бути трохи іншого розміру в цільовій системі. Якщо цільова система працює з яким-небудь прямим Linux (knoppix, ubuntu live тощо), завантаженим з cdrom, ви можете створювати розділи на диску за допомогою fdisk або улюбленого додатка для розділів. Якщо припустити, що у вихідній системі працює сервер SSH, скористайтеся подібним підходом:
http://www.linuxfocus.org/English/March2005/article370.shtml
Магія відбувається в цій команді:
ssh sourcePC 'dump -0 -f - /' | restore -r -f -
Якщо ви використовуєте який-небудь конкретний метод для клонування дисків у прямому середовищі Linux, ваша проблема, швидше за все, буде стосуватися баз даних. Найкращий спосіб резервного копіювання та відновлення бази даних - це використовувати їх інструмент демпінгу, щоб зробити знімок файлів ascii бази даних безпосередньо перед скиданням файлової системи. Для mysql є:
mysqldump --all-databases > mysql_databases.sql
Для postgresql є:
pg_dumpall > pg_databases.sql
Якщо ви зіткнулися з будь-якою помилкою узгодженості в новій системі, відновіть базу даних. Крім того, щойно ви вимкнули сервіси у вихідній системі, виконайте скидання БД ще раз і відновіть ціль, і ви не пропустите жодних нещодавно змінених даних.
Побудуйте макет диска на новій машині так, як вам цього хочеться.
Використовуйте rsync для передачі вмісту диска. Повторіть кілька разів, щоб повністю наздогнати.
На новій машині експериментуйте з тим, що вам потрібно зробити додатково для належного завантаження. Скажімо, погладьте, і переконайтеся, що він знаходиться у постійному стані.
Поки ви не зможете вимкнути стару машину, регулярно синхронізуйте, щоб новий диск був близьким до старого.
Потім переведіть стару в режим обслуговування, ще раз rsync і завантажте новий, який повинен придумати себе так, як старий.
Мій колега клянеться System Imager:
http://wiki.systemimager.org/index.php/Main_Page
Я не знаю, наскільки добре це би працювало для "живих" систем.
Інакше я думаю, що ви застрягли робити речі вручну:
За умови, що ви можете перевести свої бази даних на постійний стан на диску, ви можете просто використовувати DAR, щоб зробити копію всього, а потім записати його на новий сервер.
Синхронізація баз даних у постійному стані на диску може бути складною, але просто зробити знімок та відновити його після відновлення зображення DAR може спрацювати. DAR вплине на продуктивність сервера під час роботи.
Як тільки ви отримаєте ваше зображення, ви можете налаштувати мережеві налаштування, і ви зможете їх відновити без проблем.