Как использовать LVM в Rackspace Cloud
Я пытаюсь создать простое, но эффективное решение для резервного копирования моих облачных серверов RackSpace. Каждый из этих серверов запускает subversion, trac и некоторые поддерживаемые базой данных приложения php.
Моя идея состоит в том, чтобы настроить LVM и смонтировать том, скажем, в /srv. В этом томе я храню данные всех приложений. Вместо того, чтобы заботиться о том, как создавать резервные копии каждого приложения по-разному (svn hotcopy, trac-admin hotcopy, огромный беспорядок для mysql), я просто делаю снимок LVM и создаю резервную копию этих облачных файлов, используя отличный скрипт cloudcity ( http://github.com/jspringman/cloudcity/blob/master/cloudcity).
Преимущество этого решения в том, что оно быстрое и простое, а LVM позволяет создавать достойные резервные копии. По мере добавления новых приложений не нужно сильно менять скрипт резервного копирования.
Недостатком и главным вопросом моего вопроса здесь является то, что я не уверен, как заставить LVM работать в облаке Rackspace, потому что есть только один корневой том и нет службы, подобной Amazon EBS. Я думал, что возможно создать большой пустой файл и использовать его как "физический том".
Кто-нибудь делал что-то подобное раньше? Или вы знаете, почему это никогда не может работать? Было бы здорово услышать от вас.
Спасибо,
batrick
2 ответа
Это можно сделать через петлю. Вот небольшой пример скрипта, который использует LVM в файле; используемые методы могут быть легко адаптированы для ваших целей.
Имейте в виду, что снимок LVM может значительно снизить производительность записи. В вашей ситуации это, вероятно, не концерт.
Еще одна важная вещь: если вы делаете снимок файловой системы, резервное копирование mysql может находиться в несогласованном состоянии, поскольку некоторые данные все еще могут находиться в буферах памяти и еще не записаны на диск. Правильный способ резервного копирования mysql с помощью снимка lvm описан здесь. В худшем случае вы можете получить поврежденную базу данных.
Совет: чтобы создать shapshot, в вашей группе томов должно быть свободное пространство для копирования измененных экстентов (shapshots создаются с помощью стратегии Copy on Write).