Я ищу решение, которое позволит мне получить доступ к любому файлу моей производственной среды на моей локальной виртуальной машине для тестирования. Обе системы работают под управлением 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, вы могли бы использовать для этого связанный клон. Это создаст новую виртуальную машину с базовым диском вашего живого сервера и дельта-диском со всеми вашими изменениями. Объем занятого места на жестком диске будет равен только изменениям, которые вы вносите в клон. Затем, когда вы закончите, его можно отбросить, пока вам не понадобится создать новый связанный клон.
Поскольку похоже, что вы работаете с сервером на «голом железе», а ваша виртуальная машина является локальной для вашего рабочего стола, вам придется придерживаться того, что вы уже делаете.