TGViewer
ServerAdmin.ru ServerAdmin.ru @srv_admin · 32.6K subscribers
Post #5909 2.46K
Рассказываю про небольшой трюк, который я лично на днях проделал для решения небольшой задачи. Есть одиночная VPS на Debian 12. Задача - обновить её до 13-й версии и попутно обновить версию PHP. Задача довольно простая, но всё равно потенциально опасная. Наживую такие обновления делать не рекомендую. Там бывают проблемы с зависимостями, на разрешение которых уходит некоторое время. Я сталкивался не раз.

Расскажу, как это сделать по-нормальному, а потом, как это сделал я. Настраивается новая система и делается миграция. Попутно приводится в порядок инфраструктура, документация, настройки, в идеале в этот момент пишется или актуализируется автоматизация, чтобы потом можно было быстро мигрировать в другое место, если твой ДЦ сгорит.

Но в данном случае это одиночная арендованная VPS без какой-либо обвязки вокруг. С неё даже образ нормально не снять. Я поступил следующим образом. Создал у себя в тестовом контуре VM и добавил к ней второй диск такого же размера, как у VPS. С этой VM сделал следующее:

# ssh -T root@1.2.3.4 'dd if=/dev/sda bs=16M status=none' | dd of=/dev/sdb bs=16M iflag=fullblock status=progress conv=fsync

Прямо наживую запустил посекторное копирование удалённого диска sda на свой локальный sdb. В моём случае диск был 60 ГБ, нормально скопировался примерно за час без единого разрыва. При этом на сервере был запущен сервер MySQL.

Очевидно, что консистентную копию таким образом не сделать, но мне и не надо. Если бы побились данные, я бы их накатил из бэкапа. Мне главное окружение скопировать, чтобы не воспроизводить его вручную.

У этой виртуалки отключил основной диск, а sdb, на который залил копию VPS, сделал загрузочным. После этого успешно загрузился в полной копии VPS. Система ругнулась при запуске, что у неё повреждена файловая система, что ожидаемо. Запустил fsck -y, потом перезагрузил систему. Она при загрузке запустила ещё раз проверку диска, все ошибки исправила, и я получил полностью рабочую копию своей VPS. Даже базу данных не пришлось перезаливать. СУБД запустилась в режиме innodb_force_recovery. Мне этого было достаточно, хотя какие-то таблицы и побились. Я только поменял IP адрес, поправил файрвол под реалии своего тестового контура и отладил обновление.

Выполнил всё, что мне было нужно. Там возникли проблемы. Убедился, что исправил все ошибки, записал команды и воспроизвёл на VPS.

Способ выглядит жутко колхозным и на первый взгляд нерабочим, но на деле я такое проворачивал уже не один раз. Ранее были заметки на эту тему. Он вполне рабочий, система всегда копируется нормально. Иногда только данные бьются, которые изменились в процессе копирования. Но сама система, как правило, приезжает в рабочем состоянии. Конечно, если есть доступ к образу диска, а тем более, к снепшотам, проще копировать его. Причём это можно сделать так же наживую. Тоже побьётся файловая система, но в целом систему можно будет починить и запустить.

Основное преимущество этого способа - не надо останавливать исходную машину вообще. И не надо ставить дополнительное ПО. К примеру, сюда можно было бы установить Veeam Agent for Linux и снять образ с его помощью. Но для разовых задач не хочется ничего лишнего устанавливать. Задача решена и без этого.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#linux
  • 👍 74
  • 👎 1
More from @srv_admin
  1. Oct 14, 2026Что будет, если убрать репликацию с диска?☁️ В K2 Cloud проверили и запустили сетевые нере…
  2. Oct 12, 2026Вот мы и вступили в новую реальность, когда стали пропадать датацентры целиком, что повлек…
  3. Oct 12, 2026💻Практический вебинар «СТРАТЕГИЯ РЕЗЕРВНОГО КОПИРОВАНИЯ» 📹 15 октября в 11:00 Мск за 90…
  4. Oct 10, 2026Когда я работал в одной небедной компании, там регулярно обновляли парк оборудования, а ст…
  5. Oct 9, 2026▶️ Очередная подборка авторских IT роликов, которые я лично посмотрел и посчитал интересны…
  6. Oct 9, 2026Астра Мониторинг впустил ИИ-агентов в системы мониторинга заказчика И приглашает вас увиде…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →