Привет всем!
Есть два компьютера (ноутбук и настольный). Хочу иметь одну и ту же систему на обоих и синхронизировать с того компьютера, где более новое состояние, на тот, где более старое. Начиналось всё с настольного компьютера. Операционная система на нём стоит давно, многократно обновлялась между версиями и всё настроено как мне удобно, нужное ПО, какие-то костыли и т.п. Поэтому я хочу синхронизировать ОС целиком, а не только настройки или отдельные файлы.
На данный момент стоит Ubuntu 21.10 с KDE, обновление до 22.04 планируется. В обоих компьютерах стоят SSD, размеры которых одинаковые до байта. Накопители имеют GPT таблицу разделов и два раздела: ESP на гибибайт и LVM PE на всё остальное. Внутри LVM: /, /home и swap. Файловые системы везде ext4. Шифрования на уровне блочного устройства или самих ext4 не применяется.
Первую синхронизацию я сделал просто через DD, физически переставив один накопитель в другой компьютер. Естественно, дальше это было неприменимо. Поэтому я написал скрипт, который с использованием ключей SSH делает синхронизацию с помощью rsync. А кроме этого предварительно применяет нужные настройки, поднимает нужные сервисы (сеть, SSH). Запускаю я его из rescue режима, чтобы система в это время ничего не делала. В принципе rescue вполне достаточно, только лишь systemd успевает накидать несколько каких-то незначительных файлов. journald при этом остановлен. Хотя, конечно, загрузка с отдельного носителя или какой-то специальный initramfs подошли бы больше. Но, в общем, работает в обе стороны. Однако недостаточно быстро.
А недавно возникла необходимость изменить логические тома на LVM. И после такого изменения один rsync уже не поможет, т.к. размеры томов изменились. Мало того, что изменения размеров томов так не синхронизируются (естественно), так и на одном места для данных не хватит теперь. Конечно, можно синхронизировать опять через dd, но разбирать не хочется, а через сеть медленно. Да и перезаписывать накопитель целиком ещё раз тоже идея так себе. Можно и руками изменить размеры на целевой системе, но муторно. Надо будет сначала удалить ненужные файлы, чтобы освободилось место, потом поменять размеры, потом синхронизировать. А если понадобиться изменить размеры ещё раз, то опять? Морока...
И я подумал, нет ли какого-то решения, чтобы синхронизировать два PV или VG, но только те экстенты, что изменились? Погуглил, но ничего не нашёл. Не знаю, хранят ли экстенты время последнего изменения, чтобы это было в принципе возможно. Хотя тут хватило бы даже не времени, а просто некоторого идентификатора компьютера. Например, когда ОС записывает что-то, то в метаданных экстента записывается хеш от названия материнской платы или т.п. Но это я уже фантазирую. Так существует ли что-то подобное? Может быть как некое дополнение к обычному LVM?
Если ничего такого нет, что тогда? Я нагуглил штуку под названием Distributed Replicated Block Device. Но пока не разобрался по поводу загрузки с неё. Кроме того, она должна же быть под LVM, т.е. это надо всё переустановить. Точнее, скопировать куда-то, потом переразбить носитель и скопировать всё обратно.
Какие есть другие варианты, если без переделывания всего не получится обойтись? У меня такие мысли:
* Один LV просто на весь объём накопителя, тогда не надо будет менять его размер. Но мне это решение не очень нравится, т.к. я хотел завести себе LXC контейнеры и под них создавать отдельные LV. Кроме того, деление на LV и для бекапов полезно. Да, бекапы у меня отдельно, это не на другой компьютер.
* Какие-то иные файловые системы, вроде ZFS и BTRFS могут мне что-то предложить? Думаю, что subvolume (или что-то такое) вполне заменят отдельные LV как для LXC, так и для бекапов. Правда у меня память что там, что там без ECC. А она вроде как очень рекомендована для таких файловых систем.
Кто что думает?
P.S.: Написал в администрирование т.к. думаю, что вопрос больше подходит сюда, т.к. выходит за рамки повседневного использования, хоть это и для личных нужд и «администрирую» я локальные свои системы.
Ответ на:
комментарий
от mord0d
Ответ на:
комментарий
от vdk10
Ответ на:
комментарий
от theurs
Ответ на:
комментарий
от Shushundr
Ответ на:
комментарий
от ls-h
Ответ на:
комментарий
от ls-h
Ответ на:
комментарий
от ls-h
Ответ на:
комментарий
от mord0d
Ответ на:
комментарий
от Harliff
Ответ на:
комментарий
от mord0d
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Синхронизация home на двух компьютерах (2014)
- Форум Синхронизация звука с двух компьютеров через ethernet (2014)
- Форум синхронизация двух сайтов (2012)
- Форум синхронизация двух ВМ (2013)
- Форум синхронизация двух БД (2021)
- Форум синхронизация двух циклов (2009)
- Форум Как обезопасить свой компьютер от вредоносного кода из сторонних библиотек/модулей? (2022)
- Форум Синхронизация разных компьютеров (2011)
- Форум Постоянная синхронизация двух машин. (2018)
- Форум Синхронизация двух сетевых папок. (2015)