URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 90497
[ Назад ]

Исходное сообщение
"Как реализовать копирование отдельных файлов через снапшоты?"

Отправлено nulltime , 08-Дек-10 16:10 
Доброго времени суток!
Если ошибся темой, извините, но это самое близкое, что я нашел.
В связи с Концепцией Всеобщей Секурности на меня свалилась задача сделать прозрачное и незаметное копирование изменяемых файлов налету на сервере связи с контрагентами:
Есть сервер, на него работники и внешние контрагенты выкладывают файлы для обмена. Файлы должны автоматически копироваться в скрытый раздел "для отчетности".
Порешили что копирование должно начинаться в момент закрытия файла, ранее открытого на запись. Плюс к этому, если файл был удален сразу после закрытия, то его копия тоже должна быть сохранена. Если файл был записан, изменен и снова закрыт - должны быть сохранены обе версии файла.
Задача разделяется на две - отслеживание события закрытия файла, ранее открытого на запись, и возможность сделать снимок файла.
Первую задачу я думал решить через incron+скрипты, а со снапшотом возникли проблемы: мне думается, что снапшот должен создаваться при каждом событии окончания записи, затем снапшот и имя файла передаются скрипту, который производит копирование и после удаляет снапшот. Решение через LVM мне не понравилось - оно заметно тормозит дисковые операции и при ситуации, когда один крупный файл насколько раз меняется, приводит  к накоплению снапшотов и полной деградации сервера и сервиса. Могут ли уважаемые Гуру подсказать другой способ получения снапшотов? Может ФС с поддержкой снапшотов? Или ФС с сохранением версий файлов? Я не совсем понял технологию Copy-on Write в контексте ФС и в каких ФС она есть. Может подскажете как можно ее можно использовать для решения?
Предположительно, операционка будет CentOS 5.5, но это не принципиально, просто она неплохо дружит с драйверами НР DL360 от разработчика.
Заранее спасибо!

Содержание

Сообщения в этом обсуждении
"Как реализовать копирование отдельных файлов через снапшоты?"
Отправлено senimore , 08-Дек-10 17:26 
>[оверквотинг удален]
> заметно тормозит дисковые операции и при ситуации, когда один крупный файл
> насколько раз меняется, приводит  к накоплению снапшотов и полной деградации
> сервера и сервиса. Могут ли уважаемые Гуру подсказать другой способ получения
> снапшотов? Может ФС с поддержкой снапшотов? Или ФС с сохранением версий
> файлов? Я не совсем понял технологию Copy-on Write в контексте ФС
> и в каких ФС она есть. Может подскажете как можно ее
> можно использовать для решения?
> Предположительно, операционка будет CentOS 5.5, но это не принципиально, просто она неплохо
> дружит с драйверами НР DL360 от разработчика.
> Заранее спасибо!

А DMS (http://en.wikipedia.org/wiki/Document_management_system) вам не подойдет? Их много всяких есть(http://sourceforge.net/search/?words=Document+Management+Sys...)


"Как реализовать копирование отдельных файлов через снапшоты?"
Отправлено nulltime , 08-Дек-10 18:06 
> А DMS (http://en.wikipedia.org/wiki/Document_management_system) вам не подойдет? Их
> много всяких есть(http://sourceforge.net/search/?words=Document+Management+Sys...)

Нее, надо, чтоб крякала ка утка, ходила как утка(FTP или NFS) но, с копированием :о)



"Как реализовать копирование отдельных файлов через снапшоты?"
Отправлено sage444 , 08-Дек-10 17:33 
>[оверквотинг удален]
> заметно тормозит дисковые операции и при ситуации, когда один крупный файл
> насколько раз меняется, приводит  к накоплению снапшотов и полной деградации
> сервера и сервиса. Могут ли уважаемые Гуру подсказать другой способ получения
> снапшотов? Может ФС с поддержкой снапшотов? Или ФС с сохранением версий
> файлов? Я не совсем понял технологию Copy-on Write в контексте ФС
> и в каких ФС она есть. Может подскажете как можно ее
> можно использовать для решения?
> Предположительно, операционка будет CentOS 5.5, но это не принципиально, просто она неплохо
> дружит с драйверами НР DL360 от разработчика.
> Заранее спасибо!

ZFS (solaris, freebsd) может делать снапшоты паравда сразу целого "раздела" но размер у них очень правильный ;)
если вы можете отловить момент закрытия файла то сделать снапшот несложно.
только вот при даже небольшой нагрузке у вас будет очень много снапшотов и нужно еще продумать как в них потом не потеряться ну и систему зачистки старых


"Как реализовать копирование отдельных файлов через снапшоты?"
Отправлено nulltime , 08-Дек-10 18:13 
> ZFS (solaris, freebsd) может делать снапшоты паравда сразу целого "раздела" но размер
> у них очень правильный ;)
> если вы можете отловить момент закрытия файла то сделать снапшот несложно.
> только вот при даже небольшой нагрузке у вас будет очень много снапшотов
> и нужно еще продумать как в них потом не потеряться ну
> и систему зачистки старых

Я сразу подумал про ZFS, просто с Линуксом лучше знаком, а Солярку без поддержки ставить не хочется. Насчет накопления  - не знаю, надо пробовать. Просто люди будут лить по FTP, а система копировать по FibreChannel. По поводу самого обменника склоняемся к ФТП а на нем и скорость можно притормозить. Насчет зачистки - я думал, что копирующий скрипт будет и уничтожать снапшот после копирования. Плюс структура var файлов и скрипт раз в 5 минут чистящий все то что потеряли.


"Как реализовать копирование отдельных файлов через снапшоты?"
Отправлено pavel_simple , 08-Дек-10 17:46 
nilfs

"Как реализовать копирование отдельных файлов через снапшоты?"
Отправлено nulltime , 08-Дек-10 18:14 
> nilfs

Спасибо, посмотрю