Домашний сервер — одна из самых важных и полезных частей домашней компьютерной инфраструктуры. В нашем блоге мы многократно рассказывали, насколько круто иметь свой сервер и какие функции он способен выполнять: это система управления умным домом, медиасервер, хранение и раздача файлов, скачивание торрентов и многое другое.

Но есть случаи, когда виртуальный сервер удобнее домашнего. Например, он удобнее для раздачи файлов в интернете и обслуживания личного веб-сайта, а также для мониторинга и тестирования сервисов (программа должна быть постоянно в онлайне). Для создания дополнительной резервной копии файлового архива, которая будет физически удалена от основного домашнего хранилища. Даже ультрадешёвый сервер за 130 рублей в месяц способен одновременно поддерживать несколько процессов.

Даже при наличии VPS на хостинге свой домашний сервер никуда не денется. Это незаменимая техника. Лучший софт для самохостинга включает десятки полезных программ, в том числе последние веяния: софт для хостинга LLM, скачивания видео с YouTube и локального архива веб-страниц и медиафайлов (на случай отключения интернета в будущем).

Sandstorm — опенсорсная платформа для самохостинга веб-приложений

Есть энтузиасты, для которых свой сервер — это святое. Например, вот один 16-летний школьник держит дома сервер c медиахостингом для одноклассников. На нём крутится викторина в реальном времени и парочка игровых серверов. Конечно, он не откажется от своего железа (на КДПВ).

Другое дело — офисные машины, которые требуют больших инвестиций в обслуживание и ремонт, зарплату обслуживающему персоналу. Вот там зачастую бывает выгоднее переехать на виртуальный хостинг просто из финансовых соображений. Относительно мощная конфигурация в дата-центре может оказаться дешевле покупки и обслуживания собственного железа:


▍ Перенос сервера на другой VPS


В статье «Как перенести файлы с одного облака на другое минуя свой ПК» мы публиковали инструкцию по миграции данных между облачными хостингами. Для этих целей проще всего использовать миграционный менеджер, такой как Rclone. Устанавливаем его на новый сервер, настраиваем для доступа к старому серверу — и спокойно забираем свои данные. Подробнее см. в статье «Файлохранилище на своём сервере».

Установка Rclone на виртуальном сервере:

sudo -v ; curl https://rclone.org/install.sh | sudo bash


Но просто скопировать данные — это не значит «перенести сервер». Хотелось бы получить точную копию существующего сервера, но только на другом хостинге. Чтобы ничего вообще не менялось в его работе, кроме IP-адреса. Этого можно добиться через копирование образа сервера.

В нашем справочнике есть статьи «Создание образа сервера и перенос его на другой VPS», и «Создание образа сервера с помощью Disk2vhd». Первая рассматривает сценарий переноса сервера между Linux-серверами под Debian 12, а вторая — с сервера Windows Server 2019 на локальный компьютер.

В первом сценарии для хранения образа диска используется промежуточный сервер, как показано на схеме:


Если вкратце, то схема переноса сервера между Linux-системами выглядит примерно так:

  1. С помощью серверного приложения Samba на промежуточном сервере создаётся общедоступный каталог. Он подмонтируется к обоим серверам.
  2. На обоих серверах серверах устанавливаются программы cifs-utils для подключения к сетевому диску и net-tools для внесения изменений в сетевые настройки:

    $ sudo apt update
    $ sudo apt install cifs-utils
    $ sudo apt install net-tools

  3. На промежуточном сервере устанавливаем и настраиваем серверное приложение Samba.
  4. Создаём образ исходного сервера (предварительно сохранив его сетевые настройки):

    # dd if=/dev/sda of=/mnt/server1.img bs=4M oflag=sync

  5. Восстанавливаем образ на целевой машине, куда мы переносим свой сервер.

    # dd if=/mnt/server1.img of=/dev/sda bs=4M oflag=sync

  6. Перезагружаем сервер.

В случае операционной системы Windows алгоритм действий тот же, а основное отличие заключается в том, что здесь используется утилита Disk2vhd из комплекта Sysinternals, которая создаёт виртуальный образ жёсткого диска сервера в формате VDH/VHDX. Этот образ можно загрузить в виртуальную машину Microsoft Hyper-V или Microsoft Virtual PC, запустить дома на персональном компьютере или развернуть в точную копию оригинала на другом удалённом сервере. При переносе Windows-сервера техподдержка RUVDS прямо рекомендует делать образ старого сервера с помощью Disk2vhd. В простейшем примере к виртуальной машине подключается сетевой диск на другом VDS или даже другом хостинге, чтобы на расшаренный ресурс поместился образ исходного сервера.

Утилита может создавать образ сразу на сетевой диск. Затем требуется новый сервер с характеристиками не хуже исходного и связаться с техподдержкой нового хостинга через форму обратной связи, попросив их забрать созданный образ и воссоздать образ на заказанном сервере.

▍ Переход с физического сервера на виртуальный


При переходе с физического сервера на виртуальный не существует единого алгоритма действий для переноса сервера, как при переходе с одного VPS-хостинга на другой. А в некоторых случаях для максимальной производительности вообще лучше не «переносить» сервер, а поднять его с нуля, установить чистую ОС и только необходимый софт, исключив лишнее (тот софт, который на виртуалке будет неэффективен или вообще не заработает).

В редких случаях миграция происходит по удобному сценарию. Рассмотрим два таких случая:

  • Контейнеры Docker
  • Перенос виртуальной машины

Если каждая программа на сервере у нас работает в докер-контейнере, то можно установить Docker на VPS — и просто скопировать туда контейнеры с локальной машины. То же самое в случае с VM, если есть возможность скопировать файлы виртуальной машины типа *.vmdk — и они запустятся на сервере, то проблема решена.

Зачастую оптимальный вариант — рассмотреть установку сервера с нуля или из готовых шаблонов:


В маркетплейсе RuVDS большой выбор готовых шаблонов, которые можно бесплатно установить на новый сервер. Каждый шаблон — это операционная система и предварительно настроенный комплект программного обеспечения для конкретной задачи:


В остальных случаях можно использовать сценарий с созданием образа диска в формате VDH/VHDX физического сервера, как описано в предыдущем разделе с копированием VPS-серверов.

Точно так же, после этого можно оформить заявку на виртуальный сервер и отправить сообщение по форме обратной связи в техподдержку, чтобы они помогли накатить этот образ на новый сервер. Способ работает аналогично и при переезде с другого хостинга, и при переезде с физического сервера.

▍ Вывод


Подводя итог, переход с физического на виртуальный сервер может происходить несколькими способами:

  1. Чистая установка ОС с нуля, переустановка и настройка приложений заново
  2. Копирование докер-контейнеров
  3. Создание и перенос образа диска (и настроек)
  4. Использование шаблонов

Создаётся впечатление, что в последнее время большую популярность получают докер-контейнеры, которые значительно упрощают копирование приложений с одного сервера на другой. В этом случае даже создание образа диска не требуется, а перенос приложения вместе с конфигурацией буквально сводится к копированию одного файла (контейнера). Для такого варианта миграции можно выбрать в маркетплейсе шаблон Docker CE, где уже установлены Docker CE и Docker Compose в соответствии с официальными рекомендациями.

В других случаях можно рекомендовать установку виртуального сервера с нуля, выбор одного из готовых шаблонов или перенос физического сервера из образа.

Telegram-канал со скидками, розыгрышами призов и новостями IT ?

Комментарии (9)


  1. AlexeichD
    04.06.2024 09:17
    +2

    Почему интересно ни один хостер не оказывает услугу по переносу между VPS?

    Порвали бы рынок, честно...


    1. Stanislavvv
      04.06.2024 09:17

      Если между впс у разных провайдеров прямо в онлайне — вряд ли возможно без геморроя. Если "скачать образ в одном месте, залить в другом" — можно и найти.
      А так — помощь в переезде техподдержка обычно оказывает.


  1. N-Cube
    04.06.2024 09:17
    +2

    Главный вопрос, во что обойдется трафик и место для хранения. В то время как на Cloudflare в сутки бесплатно доступны 100 000 программируемых запросов (запусков воркеров), трафик не лимитируется (у меня терабайты в сутки раздаются порой, это рельеф всей планеты в разрешении 30 метров), есть интеграция с GiHub и еще много всего. GiHub Pages тоже отлично работают, если не планируется терабайтами данные скачивать.


  1. iwram
    04.06.2024 09:17
    +5

    Где точные расчет по цене облачного провайдера и своего хостинга с учетом затрат? Если проводите сравнение, сделайте в полной мере.

    Например, вот у меня дома работает nettop 16 виртуальных ядер, 32 Gb ОЗУ и 4 тб SSD, оплата электричества и интернета стоит 1500р в месяц, покупка мини ПК оценивается в 40.000р. Дополнительно так и быть, купил удаленный S3 для бэкапов, - 300 гб в месяц хранится. Вопрос, за сколько времени окупиться мой ПК и появятся свободные деньги для дальнейшего масштабирования.

    Ну и сравним факапы провайдеров, где сервер удаляется без возможности возврата в отношении моего кота, который лапой сбил писюк. :)

    Допишите еще, на сколько за последние 2 года увеличилась стоимость ваших услуг.


    1. makapohmgn
      04.06.2024 09:17

      Дома, конечно, хорошо, для бизнеса условия чуток другие) до переноса в облако мы только за интернет 6к в месяц платили, сейчас 3к за виртуальный сервер.

      Из минусов, наверное, только очень дорогое дисковое пространство. В случае с личным сервером можно купить за несколько тысяч диск и пользоваться им много лет.


    1. qenoamej
      04.06.2024 09:17
      +1

      Это всё индивидуально надо рассчитывать.

      Простенький системник с большими дисками на работе тоже стоит, давно уже окупился даже с учётом перебоев с электричеством и интернетом.

      А вот нормальный сервер с полным резервированием - это уже два сервера, два схд, два мощных ибп, два провайдера с разными магистралями. И потом при нехватке мощностей - заменить оба сервера, возможно схд и ибп.

      Тут уже с учётом всех затрат не всё так однозначно.


  1. vagon333
    04.06.2024 09:17
    +3

    Но есть случаи, когда виртуальный сервер удобнее домашнего.

    Виртуальный сервер вполне может хоститься дома.
    Есть масса решений виртуализации серверов: Proxmox, VMWare ...


  1. slavius
    04.06.2024 09:17

    Созданный disk2vhd образ диска машины на захотел открываться в VirtualBox :(

    Руки не дошли до VirtualPC.


  1. mxr
    04.06.2024 09:17

    Черные схематические картинки без фона не лучшая идея, т.к некоторые(как я) сидят с темной темой.

    Hidden text
    Пруф
    Пруф