Пока у меня есть полуавтоматический подход к резервному копированию для всей системы, установленной в разных LV, с использованием моментальных снимков LVM (CoW) (которые могут быть созданы при загрузке, чтобы избежать повреждения данных). То есть, если я чувствую, что мне нужно создать резервную копию, я запусту сценарий для монтирования этих файлов LV с моментальными снимками (так же, как монтируется действующая система) в какое-то место в режиме только для чтения, а затем выполню другой сценарий для выполнения сжатая резервная копия этого расположения, что в итоге создает сжатую резервную копию всей системы в виде единого архивного файла. Аккуратные ...
Теперь у меня есть новый вариант использования, для которого я пытаюсь найти хорошее решение. Скажем, у меня есть внешний жесткий диск, предназначенный для хранения вещей. Ну, вы знаете, он зашифрован, также имеет свои собственные VG и LV, каждый из которых предназначен для хранения различных типов данных, например, изображений, видео, документов и даже этих системных резервных архивов. Это дает гибкость выбора файловых систем в зависимости от типа данных и всех интересных функций LVM. То есть время от времени я подключаю этого зверя и копирую больше материала в любой из этих LV в зависимости от того, что я хочу сохранить. Далее у меня есть еще один внешний жесткий диск, который я хотел бы (в идеальном мире) выступать в качестве зеркала первого внешнего жесткого диска. Кроме того, в идеале, зеркалирование должно происходить автоматически, когда оба устройства подключены, и я явно копирую материал только на первое (т.е. что-то вроде CoW, возможно, нам следует назвать это инкрементным зеркалированием, хотя я не уверен, что это возможно). Ситуации, когда, например, первое устройство подключено и записывается, а второе нет, также должно обрабатываться. То есть, когда второе устройство подключается в следующий раз, оно должно отражать не только данные, которые записываются в первое на этот раз, но также и те, которые были пропущены в прошлый раз. Я предполагаю, что именно поэтому я имею в виду зеркалирование, которое, вероятно, невозможно выполнить постепенно в таких ситуациях, и требуется полная перезапись клона.
До сих пор я рассматривал следующие решения:
- Снимки LVM здесь кажутся бесполезными:
- они CoW, то есть они фактически не поддерживают полное зеркало на LV снимка (если только все эти данные не изменятся после записи на первое устройство);
- им потребовалось бы охватить одну VG не только отдельными и независимыми PV, но также и отдельными и, технически говоря, независимыми физическими устройствами (мне не нравится такая связь, и я хотел бы ее избежать).
- клонирование сектора через
dd
:- выглядит солидно с точки зрения производства точного клона на втором устройстве;
- в соответствии с LVM и клонированием HD, это опасно, потому что конфигурации LVM явно дублируются в этом случае и, как следствие, могут привести к повреждению данных, если не будет выполнено какое-либо переименование чёрной магии (я не хочу писать это переименование, если мы не найти другого решения в этой теме, так как оно выглядит хрупким для меня);
- пахнет как излишнее перезапись всего второго устройства каждый раз, когда я копирую пару файлов в один из LV на первом устройстве, просто чтобы сохранить зеркало;
- на самом деле не автоматизирован, так как он не обнаруживает то, что было изменено, и прозрачно копирует его, основываясь на том факте, что оба подключены, а первый написан (это то, что я называю "по требованию").
rsync
файлов между соответствующими LV двух устройств:- хорошо, что он синхронизирует только изменения и удовлетворит даже тот случай, когда мы пропустили подключение второго устройства один или два раза (и это большой плюс);
- выглядит запутанным;
- требует сценариев для одновременной установки соответствующих LV;
- не автоматизирован (должен запускаться вручную), поэтому подвержен ошибкам;
- требует ручного воссоздания той же схемы разбиения и LVM на втором устройстве на основе первого устройства (да, это может быть автоматизировано, но все же).
- LVM RAID1? Я понятия не имею, насколько надежно и / или возможно установить два подключаемых устройства, которые могут быть подключены или не подключены и / или установлены одновременно, и, таким образом, как это будет сравниваться с вышеуказанными вариантами. Любой обмен опытом очень ценится.
- Какое-то другое решение, возможно, использующее
vgimportclone
?
Я ценю любые отзывы об этом и особенно уже протестированных / использованных решениях, которые либо разработаны вами самостоятельно, либо адаптированы к существующим инструментам для управления этим сценарием. Цель состоит в том, чтобы сделать его как можно более простым / наименее подверженным ошибкам / автоматизированным. Спасибо!