Назад | Перейти на главную страницу

Зеркальное копирование продуктивных файлов на локальной виртуальной машине

Я ищу решение, которое позволит мне получить доступ к любому файлу моей производственной среды на моей локальной виртуальной машине для тестирования. Обе системы работают под управлением Ubuntu 10.04 lts.

Текущее решение представляет собой комбинацию cron и rsync. Это означает, что мы должны периодически переносить каждый продуктивный файл в среду тестирования. Недостатком является то, что передача этих файлов требует времени и требует значительных затрат на емкость жесткого диска. Я также должен добавить, что большинство живых файлов не нужны во время тестирования, но нет четкого шаблона для исключения файлов.

Другое решение - это установка ssh, например sshfs. Но это не позволило бы нам создавать файлы на локальной тестовой машине без изменения файлов живой системы.

Есть ли какое-нибудь решение, подобное креплению ssh, которое позволяет мне вытащить файлы из живая система по запросу не толкая обратно в живую систему?


Обновить

Решение cjc / Zerodache - именно то, что мне нужно:

apt-get install sshfs
apt-get install unionfs-fuse

cd /root/
mkdir local_delta
mkdir live_system
mkdir test_system

sshfs root@someserver.org:/www/ /root/live_system
unionfs-fuse -o cow /root/local_delta=RW:/root/live_system=RO /root/test_system

Сейчас /root/test_system показывает все файлы живого сайта. Файлы, созданные в test_system папки создаются только в local_delta но не на сервере. Также изменения и удаления файлов записываются только в первую ветку local_delta как вторая ветвь live_system установлен на RO (только чтение), а -o cow опция установлена.

Поскольку вы можете удаленно смонтировать файловую систему из производственной установки, я предлагаю (cjc ​​также упомянул об этом в комментарии) использовать что-то вроде unionfs. Unionfs - это инструмент, часто используемый в средах livecd / liveusb для представления системы с файловой системой только для чтения, объединенной с RAM-диском для чтения и записи, так что чтение происходило из файловой системы только для чтения, если файл не присутствует в области чтения-записи.

Если вы использовали что-то вроде vCenter Orchestrator и запускали его поверх vSphere, вы могли бы использовать для этого связанный клон. Это создаст новую виртуальную машину с базовым диском вашего живого сервера и дельта-диском со всеми вашими изменениями. Объем занятого места на жестком диске будет равен только изменениям, которые вы вносите в клон. Затем, когда вы закончите, его можно отбросить, пока вам не понадобится создать новый связанный клон.

Поскольку похоже, что вы работаете с сервером на «голом железе», а ваша виртуальная машина является локальной для вашего рабочего стола, вам придется придерживаться того, что вы уже делаете.