Перейти к содержанию

Storage-сервер

Использование storage-сервера в качестве сетевого диска/папки по протоколу NFS на ОС Linux

Информация

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

Для использования storage-сервера в качестве сетевого диска/папки по протоколу NFS на ОС Linux необходимо:

  1. Установить NFS сервер. Устанавливаем пакеты nfs-kernel-server и rpcbind:

    sudo apt install nfs-kernel-server rpcbind
    
  2. Настроить экспорт каталогов. В конфигурационном файле /etc/exports прописываем разделяемые каталоги:

    /data 192.168.1.0/24(rw,sync,no_root_squash)
    

    Это действие разрешит доступ к чтению и записи к каталогу /data с указанной подсети.

  3. Перезапустить NFS-сервер командой:

    sudo systemctl restart nfs-kernel-server
    
  4. Выполнить монтирование на локальном устройстве:

    sudo mount 192.168.1.1:/data /mnt/nfs
    
  5. Настроить автоматическое монтирование при загрузке. Добавляем строку в /etc/fstab:

    192.168.1.1:/data /mnt/nfs nfs defaults 0 0
    

    Для проверки использования места можно использовать команду:

    df -h /mnt/nfs
    
  6. Для настройки автоматического резервного копирования помощью утилиты rsync, нужно добавить соответствующую команду в crontab (файл настроек cron):

    0 1 * * * rsync -avz /mnt/nfs /backup/nfs
    
  7. Для создания резервной копии (дампа) базы данных MySQL можно использовать утилиту mysqldump:

    mysqldump -u root -p mydb > /mnt/nfs/dump.sql
    

    Эта команда сохранит полную резервную копию базы данных mydb в файл dump.sql, расположенный по пути /mnt/nfs/dump.sql. Параметр -u указывает имя пользователя для подключения к MySQL, -p запрашивает пароль. Для создания резервных копий в автоматическом режиме, можно настроить выполнение данной команды по расписанию с помощью утилиты cron.

Использование storage-сервера в качестве сетевого диска/папки по протоколу Samba на ОС Windows

Информация

Samba - это свободно распространяемое программное обеспечение, которое позволяет осуществлять взаимодействие между системами Linux/Unix и Windows в сети на уровне файлов и принтеров. Samba реализует протоколы SMB/CIFS, по которым работает совместный доступ к файлам в Windows. Это позволяет легко организовывать общий доступ к файлам и принтерам между компьютерами под управлением Linux и Windows.

Для использования storage-сервера в качестве сетевого диска/папки по протоколу Samba на Windows необходимо:

  1. Установить на storage-сервер пакеты samba и smbclient:

    sudo apt install samba smbclient
    
  2. Создать папку, которая будет открыта для сетевого доступа, например /mnt/share:

    sudo mkdir /mnt/share
    
  3. Добавить эту папку в конфигурационный файл samba:

    sudo nano /etc/samba/smb.conf
    

    Добавить в конце конфигурационного файла:

    [share]
       comment = Network Share
       path = /mnt/share
       browsable = yes
       guest ok = yes
       read only = no
       create mask = 0755
    

  4. Перезапустить сервис Samba:

    sudo service smbd restart
    
  5. На локальном устройстве с ОС Windows открыть Проводник и выбрать вкладку Подключить сетевой диск:

  6. Ввести путь до storage-сервера и сетевой папки Share:

    После чего будет предложено ввести учетные данные для подключения к серверу и завершить создание подключения:

    После успешного создания подключения сетевая папка будет видна в проводнике в разделе Сетевые расположения:

    Если при работе с сетевой папкой возникают проблемы связанные с отсутствием прав на запись, следует проверить права для работы с папкой. Для этого можно использовать любой графический клиент протоколов SFTP и SCP, например, WinSCP:

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

  7. Чтобы примонтировать диск, использовать команду:

    sudo mount /dev/sdb1 /mnt/share
    
  8. Для отмонтирования:

    sudo umount /mnt/share 
    
  9. Для мониторинга занятого места использовать команду df:

    df -h /mnt/share
    

  1. Для автоматического копирования данных настроить задание в crontab:

    0 0 * * * rsync -av /source/dir /mnt/share
    
  2. Для бэкапа БД MSSQL использовать команду:

    mysqldump -u root -p mydb > /mnt/share/mssql_backup.sql
    

Использование storage-сервера из терминала при помощи утилит Rsync и SCP

Информация

Rsync и SCP - это утилиты командной строки в Linux и других Unix-подобных системах, предназначенные для передачи файлов по сети. Использование утилит Rsync и SCP и других для работы с файлами на удаленном storage-сервере из терминала позволяет решать множество задач:

  • Автоматизация переноса и синхронизации файлов между серверами
  • Резервное копирование данных на storage;
  • Централизованное хранение и управление файлами;
  • Быстрая и гибкая манипуляция файлами без графического интерфейса;
  • Скриптование и пакетирование различных задач по работе с данными.

Преимущества использования Rsync перед SCP и FTP:

  • Rsync работает быстрее за счет инкрементальной передачи файлов, передаются только изменения;
  • Поддержка сжатия и экономия трафика;
  • Возможность гибкой настройки параметров синхронизации;
  • Поддержка продолжения прерванной передачи файлов;
  • Удаленное зеркалирование каталогов.

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

Rsync

Rsync - утилита для синхронизации файлов и каталогов между узлами сети. Особенности Rsync:

  • Синхронизирует как всю структуру каталогов, так и отдельные файлы.
  • При повторной синхронизации передает только измененные части файлов.
  • Использует алгоритм сжатия данных Deflate и библиотеку zlib.
  • Экономно расходует пропускную способность канала.
  • Реплицирует права доступа к файлам.
  • Не требует прав root для работы.
  • Подходит для резервного копирования и восстановления данных.

Примечание

В инструкции использовано условное обозначение - user@storage-server. При работе с удаленным сервером для подключения по SSH требуются имя пользователя, например root, и IP-адрес сервера. Следовательно, при вводе команд из приведенных ниже примеров необходимо указывать свои учетные данные в формате user@IP-адрес, например root@172.217.22.14. IP-адрес сервера можно найти во вкладке Network в Invapi:

Для использования Rsync для работы с файлами на storage-сервере из терминала необходимо:

Примечание

В нашем примере используется пакетный менеджер apt, предназначенный для использования в дистрибутивах Debian/Ubuntu. Для работы в дистрибутивах, основанных на Red Hat, используется пакетный менеджер yum.

  1. Установить Rsync на локальном устройстве:

    sudo apt install rsync
    
  2. Подключиться к storage-серверу. Для подключения по SSH лучше настроить авторизацию по ключам. Для генерации SSH-ключа можно использовать команду:

    ssh-keygen -t rsa
    

    Затем скопировать ключ на storage-сервер:

    ssh-copy-id user@storage-server
    
  3. Синхронизировать каталоги. Например, для синхронизации каталога /data со storage-сервером:

    rsync -avz /data user@storage-server:/backup/data
    

    Расшифровка ключей:

    • avz:
      • a - архивный режим. Сохраняет символические ссылки, владельцев, группы, права доступа и временные метки;
      • v - вывод подробной информации. Выводит сообщения о процессе копирования файлов;
      • z - файлы копируются в сжатом виде для экономии трафика;
    • /data - исходная локальная директория;
    • user@storage-server:/backup/data - целевая директория на удаленном сервере.

    Таким образом, эта команда рекурсивно копирует каталог /data с локального компьютера в архивном режиме, с подробным выводом процесса и сжимая данные на удаленный сервер storage-server в каталог /backup/data для пользователя user.

    Копирование выполняется по сети с сохранением всех атрибутов файлов.

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

    rsync -avz --delete /data user@storage-server:/backup/data
    

    Расшифровка ключей:

    • avz:
      • a - архивный режим. Сохраняет символические ссылки, владельцев, группы, права доступа и временные метки;
      • v - вывод подробной информации. Выводит сообщения о процессе копирования файлов;
      • z - файлы копируются в сжатом виде для экономии трафика;
    • -delete - удаляет файлы в целевой директории /backup/data, которых нет в исходной каталоге /data; /data - исходная локальная директория; user@storage-server:/backup/data - целевая директория на удаленном сервере.
  5. Выполнить резервное копирование с помощью опции --backup:

    rsync -avz --backup --delete /data user@storage-server:/backup/data
    

    Выполнение этой команды позволит сохранить старые версии измененных файлов. Например:

    rsync --archive --backup --compress /home/user/documents user@storage-server:/backup/documents
    

    Эта команда создаст архивную копию каталога /home/user/documents на storage-сервер в /backup/documents. Файлы будут скопированы в сжатом виде. При копировании будут созданы резервные копии уже существующих файлов с расширением .1.

SCP и FTP: протоколы передачи файлов

Для работы с файлами на удаленном storage-сервере из терминала можно использовать несколько протоколов передачи данных.

SCP (Secure Copy)

SCP позволяет зашифровано копировать файлы между хостами. Чтобы скопировать файл на storage-сервер, используется команда:

scp file.txt user@storage-server:/path/to/destination 

Для загрузки файла с сервера:

scp user@storage-server:/path/to/file /local/path

FTP (File Transfer Protocol)

Для подключения по FTP используется команда ftp:

ftp storage-server

Загрузка файла на сервер:

put file.txt

Скачивание файла:

get file.txt

Использование storage-сервера с помощью SFTP- и FTP-клиентов

Storage-серверы используются для хранения и обмена данными. Однако, чтобы воспользоваться их преимуществами, необходим удобный и безопасный доступ к хранящимся на них файлам.

  • SFTP (Secure File Transfer Protocol) и FTP (File Transfer Protocol) - это протоколы, используемые для передачи файлов между компьютерами по сети.
  • SFTP является расширением протокола SSH и обеспечивает зашифрованную и безопасную передачу файлов. FTP использует простой текст без шифрования. SFTP более предпочтителен, когда требуется обеспечить конфиденциальность и целостность данных.
  • SFTP- и FTP-клиенты - это программы, которые позволяют пользователю подключаться к SFTP- или FTP-серверам и управлять файлами на этих серверах. Популярные SFTP-клиенты: FileZilla, WinSCP, CyberDuck. Популярные FTP-клиенты: FileZilla, SmartFTP, WinSCP.

Примечание

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

WinSCP

Для использования WinSCP в ОС Windows необходимо:

  1. Скачать и установить клиент WinSCP на локальное устройство с ОС Windows.

  2. Запустить WinSCP. В окне Логин необходимо ввести следующие данные:

    • Имя хоста: IP-адрес или доменное имя удаленного сервера;
    • Номер порта: 22;
    • Имя пользователя: логин на сервере;
    • Пароль: пароль на сервере.

  3. Нажать Войти для подключения к серверу.

  4. В левой панели будут файлы локального устройства, в правой - файлы на удаленном сервере:

  5. Чтобы скопировать файл с компьютера на сервер - перетащите его мышью из левой панели в правую.

  6. Для переноса файлов между сервером и локальным устройством достаточно перетащить их из одной панели в другую.

  7. Для завершения работы необходимо нажать кнопку Отключиться или закрыть программу.

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

FileZilla в ОС Linux

Для использования FileZilla в ОС Linux необходимо:

  1. Установить FileZilla из репозиториев используемого дистрибутива Linux. Например, в Ubuntu:

    sudo apt install filezilla
    
  2. Запустить FileZilla. В панели Быстрое подключение ввести данные:

    • Хост: протокол (SFTP) и IP-адрес или домен storage-сервера (например sftp://31.45.10.34)
    • Порт: 22
    • Имя пользователя: логин на сервере
    • Пароль: пароль на сервере
  3. Нажать Быстрое подключение. После успешного соединения слева отобразятся директории домашнего каталога локального устройства.

  4. Для переноса файлов между сервером и локальным устройством достаточно перетащить их из одной панели в другую.

  5. Для завершения работы необходимо нажать кнопку Отключиться.