История изменений
Исправление vbr, (текущая версия) :
Тебе надо заморозить диски. Чтобы скинулись все кеши и не писались после этого никакие данные. Вот в таком состоянии и можно через dd копировать диски. По крайней мере они будут хоть как-то консистентны. lvm fsfreeze вроде что-то из этого рода. Сам я так не делал, поэтому не факт, что всё будет адекватно. Ошибки при загрузке всё равно будут, т.к. это не полноценное отмонтирование, но это хотя бы что-то.
Основная проблема, когда ты просто копируешь наживую в том, что на дисках появятся данные «из будущего». Файловые системы и базы устойчивы к потере питания, но при этом подразумевается, что на диске записаны данные не поздней какого-то момента, более ранние данные могут быть записаны, могут быть не записаны, что через fsync синхронизировалось - тоже долно быть записано. Но на твой юз-кейс код никто не расчитывал и не мог расчитывать, когда ранние секторы в диске будут иметь ранние данные, а поздние секторы - поздние данные.
Именно для этого и нужна заморозка диска - чтобы, начиная с какого-то момента, никакие записи на него не проходили.
Возможно тебе могут помочь lvm snapshots, если ты заставишь их работать. Тогда, вероятно, это можно будет сделать вообще без прерывания работы.
Но в целом я бы советовал, если это не вопрос жизни и смерти, таким не заниматься и мигрировать сервисы по-нормальному, с даунтаймом.
Исходная версия vbr, :
Тебе надо заморозить диски. Чтобы скинулись все кеши и не писались после этого никакие данные. Вот в таком состоянии и можно через dd копировать диски. По крайней мере они будут хоть как-то консистентны. lvm fsfreeze вроде что-то из этого рода. Сам я так не делал, поэтому не факт, что всё будет адекватно. Ошибки при загрузке всё равно будут, т.к. это не полноценное отмонтирование, но это хотя бы что-то.
Основная проблема, когда ты просто копируешь наживую в том, что на дисках появятся данные «из будущего». Файловые системы и базы устойчивы к потере питания, но при этом подразумевается, что на диске записаны данные не поздней какого-то момента, более ранние данные могут быть записаны, могут быть не записаны, что через fsync синхронизировалось - тоже долно быть записано. Но на твой юз-кейс код никто не расчитывал и не мог расчитывать, когда ранние секторы в диске будут иметь ранние данные, а поздние секторы - поздние данные.
Именно для этого и нужна заморозка диска - чтобы, начиная с какого-то момента, никакие записи на него не проходили.
Возможно тебе могут помочь lvm snapshots, если ты заставишь их работать. Тогда, вероятно, это можно будет сделать вообще без прерывания работы.