Резервное копирование времени с помощью домашнего сервера.


Об этом проекте

Привет народ, я начал этот проект пару недель назад в качестве побочного проекта.
Я собрал пользовательский ПК с Linux для использования в качестве сервера домашней лаборатории. Основной идеей было купить NAS для этой работы, но, к сожалению, цены сейчас довольно высоки в моей стране, поэтому я решил пойти дальше и собрать этот сервер для домашней лаборатории из некоторых запчастей, которые я получил из Интернета.

Технические характеристики компьютера, ничего слишком причудливого:

  • 2 x HDD 1TB
  • AMD Ryzen 3
  • 8 ГБ оперативной памяти DDR4
  • 1 M2 диск с 250 ГБ памяти для ОС (ubuntu server).

Давайте начнем

Предварительные требования

Во-первых, нам нужно создать простой загрузочный USB диск с сервером ubuntu. ISO файл можно бесплатно скачать на сайте Ubuntu. просто перейдите на страницу Download и выберите > Manual server installation.

После этого нужно прошить USB с достаточным количеством памяти, чтобы можно было сохранить ISO-файл.

Есть несколько хороших руководств, я советую взглянуть на это руководство, если вы используете ОС Linux: Это руководство
А если вы используете Windows, RUFUS — отличный инструмент для этой работы.

Затем установите ОС на ваш сервер, чтобы начать работу с нашей конфигурацией. Вот краткое официальное руководство

Не забудьте установить OpenSSH в процессе установки, он нам понадобится позже.

Конфигурация сервера Ubuntu.

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

Давайте начнем с конфигурации пользователя сервера.

Войдите в систему с данными пользователя, указанными в конфигурации ubuntu (home/pass).

Создайте нового пользователя (не забудьте заменить username)

sudo adduser newusername
Войдите в полноэкранный режим Выйдите из полноэкранного режима

В процессе создания пользователя вам будет предложено добавить новый пароль.

Затем добавьте этого нового пользователя в группу администраторов.

sudo usermod -aG sudo newusername
Войти в полноэкранный режим Выход из полноэкранного режима

Настройка SSH

Если мы установили инструмент OpenSSH, мы должны иметь возможность подключить наш новый сервер удаленно.

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

Для этого мы можем настроить ssh-ключ нашего удаленного терминала/компьютера.

Более подробно здесь: https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys-on-ubuntu-20-04

Скопируйте наш локальный RSA-ключ на сервер

cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"
Войдите в полноэкранный режим Выйти из полноэкранного режима

Затем удалите доступ по паролю, чтобы другие не могли получить доступ к серверу без установки ssh-ключа.

Перед этим проверьте, можете ли вы получить доступ к серверу :s

sudo nano /etc/ssh/sshd_config

Обновите доступ к ssh, чтобы отключить пароль

. . .
PasswordAuthentication no
. . .
Войдите в полноэкранный режим Выйдите из полноэкранного режима

И, наконец, перезапустите службу ssh

sudo systemctl restart ssh
Войти в полноэкранный режим Выйти из полноэкранного режима

Конфигурация дисков

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

sudo fdisk -l

С помощью этой информации мы можем выбрать один диск для работы, например, «Disk /dev/sda:». sudo fdisk /dev/sda.

Если на диске есть старые разделы (это мой случай, потому что оба диска использовались ранее), мы должны удалить каждый раздел. (Этот процесс требует повторения одной и той же операции, пока разделы не исчезнут).

  • Внутри CLI запросит вас о следующей операции. Вы можете нажать «m», чтобы получить больше информации,
  • но мы хотим удалить все разделы внутри диска.
  • Выберите «d»
  • продолжайте использовать опцию по умолчанию, пока не удалите все разделы.
  • После этого проверьте диск с помощью «p»
  • и сохраните изменения с помощью «w»

  • Повторите тот же процесс с дополнительными дисками (Это довольно утомительно, но я не знаю другого способа сделать это прямо сейчас).

После всего этого мы готовы к созданию новых разделов RAID.

Разделы RAID.

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

  • Выберите диск
sudo fdisk /dev/sda
Войдите в полноэкранный режим Выйдите из полноэкранного режима
  • Выберите «n» для создания нового раздела.
  • вы можете выбрать конфигурацию по умолчанию, нажав enter (если вы не хотите иметь пользовательскую конфигурацию)
  • затем выберите предел реестров, я буду использовать по умолчанию.
  • затем нам нужно обновить тип раздела, для этого проверим допустимые разделы
  • затем отформатируем с помощью опции «t», записав нужное нам количество разделов, в данном случае это «29» = «Linux RAID»
  • и, наконец, сохраним все изменения с помощью «w».

  • Важно: Повторите процесс с другим диском

  • Теперь, когда разделы готовы, мы можем сгенерировать RAID с помощью следующей команды:

sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
Войти в полноэкранный режим Выйти из полноэкранного режима

Не забудьте использовать имена устройств, которые вы создали, в моем случае я создал 2 (sda1, sdb1).

Мы можем проверить статус операции с помощью:

sudo cat /proc/mdstat
Войти в полноэкранный режим Выйти из полноэкранного режима

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

sudo mkfs.ext4 /dev/md0
Войти в полноэкранный режим Выход из полноэкранного режима

Наконец, мы можем смонтировать раздел RAID.

Давайте создадим новый каталог, чтобы связать его с диском.

sudo mkdir /mnt/macos_back
Вход в полноэкранный режим Выход из полноэкранного режима

Чтобы позволить ОС связать диск с каталогом, мы должны обновить конфигурацию fstab, чтобы точка монтирования была постоянной.

sudo nano /etc/fstab
Вход в полноэкранный режим Выход из полноэкранного режима

Поместите следующую строку в самый низ

/dev/md0    /mnt/macos_back ext4    defaults    0   0
Войти в полноэкранный режим Выйти из полноэкранного режима

наконец, перезагрузите сервер, чтобы смонтировать новый раздел с RAID-массивом

sudo reboot
Войти в полноэкранный режим Выйти из полноэкранного режима

Время SAMBA

Сначала мы установим samba:

sudo apt install samba
Войти в полноэкранный режим Выйти из полноэкранного режима

Затем нам нужно предоставить права доступа всем пользователям.

Добавьте пользователей, которым потребуется доступ к сетевому ресурсу

sudo adduser myuser
sudo smbpasswd -a myuser
sudo usermod -g users myuser
Войти в полноэкранный режим Выйти из полноэкранного режима

Для безопасности создадим резервную копию конфигурации по умолчанию

sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
Войдите в полноэкранный режим Выйти из полноэкранного режима

Теперь давайте напишем конфигурацию samba, необходимую для использования timemachine.

sudo nano /etc/samba/smb.conf
Войти в полноэкранный режим Выйти из полноэкранного режима

и поместите следующую конфигурацию

Не забудьте обновить конфигурационный файл своими переменными.

[global]
workgroup = myhostname
min protocol = SMB2

# security
security = user
passdb backend = tdbsam
map to guest = Bad User

# mac Support
spotlight = yes
vfs objects = acl_xattr catia fruit streams_xattr
fruit:aapl = yes
fruit:time machine = yes

#NetShares 

[volumes]
comment = Time Machine
path = /mnt/macos_back/volumes
valid users = @users
browsable = yes
writable = yes
read only = no
create mask = 0644
directory mask = 0755
Вход в полноэкранный режим Выйти из полноэкранного режима

И, наконец, сохраните изменения. Затем нам нужно создать новую папку для хранения данных, которыми мы собираемся обмениваться

sudo mkdir /mnt/macos_back/volumes
Войти в полноэкранный режим Выйти из полноэкранного режима

Чтобы папка была доступна для samba, нам нужно изменить разрешения и добавить пользователей в каталог.

sudo chmod 777 /mnt/macos_back/volumes
sudo chown root:users /mnt/macos_back/volumes
Вход в полноэкранный режим Выход из полноэкранного режима

После этого перезапустим службу и создадим новое правило в брандмауэре, чтобы разрешить доступ к SAMBA.

sudo service smbd restart
sudo ufw allow samba
Вход в полноэкранный режим Выход из полноэкранного режима

Соедините TimeMachine с вашим сервером SAMBA.

Единственное требование для использования Time Machine с нашим сервером — это обеспечить соединение с сервером. Для этого мы можем начать соединение с помощью Finder, Открыть приложение и выбрать Go > Connect to server....

Это отобразит окно соединения. Давайте добавим новое соединение с помощью пользовательского интерфейса. Мы должны написать URL соединения, примерно так: smb://<your_server_ip_address>/<your_samba_volume>.

Если вы не знаете ip вашего сервера, вы можете проверить его с помощью ifconfig.
В данном примере мы использовали volumes в качестве тома, поэтому URL подключения будет выглядеть следующим образом: smb://192.168.100.27/volumes

Если подключение прошло успешно, теперь мы должны увидеть новый сервер в настройках Time Machine. Откройте «Выбрать диск» и найдите наш новый SAMBA-сервер, чтобы начать процесс резервного копирования.

Первые впечатления

После подключения машине времени потребуется некоторое время для выполнения первой резервной копии (в моем случае 4 часа), но я смог протестировать последовательность этой реализации, и пока что резервные копии машины времени выглядят хорошо, последующие обновления происходят гораздо быстрее, а файл надежно хранится на диске нашего сервера.

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

Я надеюсь, что эта статья будет полезна для тех, кто хочет реализовать что-то подобное.

Спасибо за прочтение!

Оцените статью
devanswers.ru
Добавить комментарий