Однонодовый файловый сервер с помощью консоли управления
Чтобы создать инфраструктуру для однонодового файлового сервера c помощью консоли управления Yandex Cloud:
- Подготовьте облако к работе.
- Создайте группу безопасности.
- Создайте виртуальную машину для файлового сервера.
- Настройте Samba и NFS.
- Протестируйте работу файлового сервера.
Если созданные ресурсы вам больше не нужны, удалите их.
Перед началом работы
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
- Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь. - На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его и привяжите к нему облако.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака
Подробнее об облаках и каталогах.
Необходимые платные ресурсы
В стоимость поддержки однонодового файлового сервера входит:
- плата за постоянно запущенную ВМ (см. тарифы Yandex Compute Cloud);
- плата за использование динамического или статического публичного IP-адреса (см. тарифы Yandex Virtual Private Cloud);
- плата за исходящий трафик (см. тарифы Yandex Virtual Private Cloud).
Подготовьте сетевую инфраструктуру
- Перейдите в консоль управления
Yandex Cloud и выберите каталог, в котором будете выполнять операции. - Убедитесь, что в выбранном каталоге есть сеть с подсетью, к которой можно подключить виртуальную машину. Для этого на странице каталога выберите сервис Virtual Private Cloud. Если в списке есть сеть — нажмите на нее, чтобы увидеть доступные подсети. Если ни одной подсети или сети нет, создайте их.
Создайте группу безопасности
Чтобы создать группу безопасности для файлового сервера:
-
В консоли управления
выберите сервис Virtual Private Cloud. -
Откройте вкладку Группы безопасности.
-
Создайте группу безопасности:
-
Нажмите кнопку Создать группу безопасности.
-
В поле Имя укажите имя группы:
fileserver-sg
. -
В поле Сеть выберите сеть, в которой расположена ВМ
fileserver-tutorial
. -
В блоке Правила создайте следующие правила по инструкции под таблицей:
Направление
трафикаОписание Диапазон портов Протокол Назначение /
ИсточникCIDR блоки Исходящий any
Весь
Любой
CIDR
0.0.0.0/0
Входящий ssh
22
TCP
CIDR
0.0.0.0/0
Входящий ext-http
80
TCP
CIDR
0.0.0.0/0
Входящий ext-https
443
TCP
CIDR
0.0.0.0/0
Входящий nfs
2049
TCP
CIDR
0.0.0.0/0
- Выберите вкладку Исходящий трафик или Входящий трафик.
- Нажмите кнопку Добавить правило.
- В открывшемся окне в поле Диапазон портов укажите один порт или диапазон портов, куда или откуда будет поступать трафик. Чтобы открыть все порты, нажмите Выбрать весь диапазон.
- В поле Протокол укажите нужный протокол или оставьте Любой, чтобы разрешить передачу трафика по всем протоколам.
- В поле Назначение или Источник выберите
CIDR
— правило будет применено к диапазону IP-адресов. В поле CIDR блоки укажите0.0.0.0/0
. - Нажмите кнопку Сохранить. Таким образом создайте все правила из таблицы.
-
Нажмите кнопку Сохранить.
-
Создайте виртуальную машину для файлового сервера
Чтобы создать виртуальную машину:
-
В консоли управления
выберите каталог, в котором будет создана ВМ. -
В списке сервисов выберите Compute Cloud.
-
На панели слева выберите
Виртуальные машины. -
Нажмите кнопку Создать виртуальную машину.
-
В блоке Образ загрузочного диска выберите публичный образ Ubuntu.
-
В блоке Расположение выберите зону доступности, в которой будет находиться ВМ.
-
Добавьте дополнительный диск для хранения данных:
-
В блоке Диски и файловые хранилища нажмите кнопку Добавить.
-
В открывшемся окне выберите Диск.
-
Выберите
Создать новый
и укажите параметры:- Наполнение —
Пустой
. - Имя —
fileserver-tutorial-disk
. - Тип —
SSD
. - Размер —
100 ГБ
.
- Наполнение —
-
Нажмите кнопку Добавить диск.
-
-
В блоке Вычислительные ресурсы перейдите на вкладку Своя конфигурация, выберите платформу и укажите рекомендуемые параметры для файлового сервера:
- vCPU —
8
или больше. - Гарантированная доля vCPU —
100%
. - RAM —
56 ГБ
или больше.
- vCPU —
-
В блоке Сетевые настройки:
-
В поле Подсеть укажите идентификатор подсети в зоне доступности создаваемой ВМ или выберите облачную сеть из списка.
-
У каждой сети должна быть как минимум одна подсеть. Если подсети нет, создайте ее, выбрав Создать подсеть.
-
Если сети нет, нажмите Создать сеть и создайте ее:
- В открывшемся окне укажите имя сети и выберите каталог, в котором она будет создана.
- (Опционально) Выберите опцию Создать подсети, чтобы автоматически создать подсети во всех зонах доступности.
- Нажмите Создать сеть.
-
-
В поле Публичный адрес выберите
Автоматически
, чтобы назначить виртуальной машине случайный внешний IP-адрес из пула Yandex Cloud, или выберите статический адрес из списка, если вы зарезервировали его заранее. -
В поле Группы безопасности выберите созданную ранее группу безопасности
fileserver-sg
.
-
-
В блоке Доступ выберите SSH-ключ и укажите данные для доступа к ВМ:
-
В поле Логин введите имя пользователя, который будет создан на виртуальной машине, например
ubuntu
.Внимание
Не используйте логин
root
или другие имена, зарезервированные операционной системой. Для выполнения операций, требующих прав суперпользователя, используйте командуsudo
. -
В поле SSH-ключ выберите SSH-ключ, сохраненный в вашем профиле пользователя организации.
Если в вашем профиле нет сохраненных SSH-ключей или вы хотите добавить новый ключ:
- Нажмите кнопку Добавить ключ.
- Задайте имя SSH-ключа.
- Загрузите или вставьте содержимое открытого SSH-ключа. Пару SSH-ключей для подключения к ВМ по SSH необходимо создать самостоятельно.
- Нажмите кнопку Добавить.
SSH-ключ будет добавлен в ваш профиль пользователя организации.
Если в организации отключена возможность добавления пользователями SSH-ключей в свои профили, добавленный открытый SSH-ключ будет сохранен только в профиле пользователя создаваемой виртуальной машины.
-
-
В блоке Общая информация задайте имя ВМ:
fileserver-tutorial
. -
Нажмите Создать ВМ.
Создание ВМ может занять несколько минут. Когда ВМ перейдет в статус RUNNING
, скопируйте публичный IP-адрес: он будет указан на странице ВМ в блоке Сеть. IP-адрес потребуются далее, чтобы настроить NFS и Samba.
Настройте Samba и NFS
После того как виртуальная машина fileserver-tutorial
перейдет в статус RUNNING
, выполните:
-
В блоке Сеть на странице виртуальной машины в консоли управления
найдите публичный IP-адрес виртуальной машины. -
Подключитесь к виртуальной машине по протоколу SSH.
Рекомендуемый способ аутентификации при подключении по SSH — с помощью пары ключей. Не забудьте настроить использование созданной пары ключей: закрытый ключ должен соответствовать открытому ключу, переданному на виртуальную машину.
-
Настройте Samba и NFS:
Ubuntu-
Скачайте и установите Samba:
sudo apt-get update sudo apt-get install nfs-kernel-server samba
-
Подготовьте и смонтируйте файловую систему на диске:
sudo mkfs -t ext4 -L data /dev/vdb
-
Подготовьте и смонтируйте папку для хранения данных на диске:
sudo mkdir /<имя_папки> echo "LABEL=data /<имя_папки> ext4 defaults 0 0" | sudo tee -a /etc/fstab sudo mount /<имя_папки>
-
Задайте конфигурацию NFS в файле
/etc/exports
. Вы можете отредактировать файл с помощью утилитыnano
:sudo nano /etc/exports
Добавьте в файл следующие строки:
/<имя_папки> <IP-адрес>(rw,no_subtree_check,fsid=100) /<имя_папки> 127.0.0.1(rw,no_subtree_check,fsid=100)
Где
<IP-адрес>
– IP-адрес компьютера, к которому вы будете подключать по NFS сетевой диск с данными. -
Задайте конфигурацию Samba в файле
/etc/samba/smb.conf
. Вы можете отредактировать файл с помощью утилитыnano
:sudo nano /etc/samba/smb.conf
Приведите файл к виду:
[global] workgroup = WORKGROUP server string = %h server (Samba) dns proxy = no log file = /var/log/samba/log.%m max log size = 1000 syslog = 0 panic action = /usr/share/samba/panic-action %d server role = standalone server passdb backend = tdbsam obey pam restrictions = yes unix password sync = yes passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . pam password change = yes map to guest = bad user usershare allow guests = yes [printers] comment = All Printers browseable = no path = /var/spool/samba printable = yes guest ok = no read only = yes create mask = 0700 [print$] comment = Printer Drivers path = /var/lib/samba/printers browseable = yes read only = yes guest ok = no [data] comment = /<имя_папки> path = /<имя_папки> browseable = yes read only = no writable = yes guest ok = yes hosts allow = <IP-адрес> 127.0.0.1 hosts deny = 0.0.0.0/0
Где
<IP-адрес>
в блоке[data]
– IP-адрес компьютера, к которому вы будете подключать по NFS сетевой диск с данными. -
Перезапустите NFS и Samba:
sudo service nfs-kernel-server restart sudo service smbd restart
-
Протестируйте работу файлового сервера
-
Установите ACL на виртуальной машине
fileserver-tutorial
:Ubuntusudo apt install acl
-
Создайте на ВМ
fileserver-tutorial
директориюremote
и файл test.txt:Ubuntusudo mkdir /<имя_папки>/remote sudo setfacl -m u:<имя_вашего_пользователя>:rwx /<имя_папки>/remote echo "Hello world!" > /<имя_папки>/remote/test.txt
-
Подключите по NFS сетевой диск к вашему компьютеру и проверьте доступность тестового файла:
Linux/macOSWindowsЕсли необходимо, установите утилиту для работы с сетевыми дисками:
sudo apt-get install nfs-common
Создайте точку монтирования:
sudo mkdir /remote-test-dir
Подключите сетевой диск:
sudo mount -t nfs <публичный_IP-адрес_виртуальной_машины>:/<имя_папки> /remote-test-dir
В результате в указанной точке монтирования должны быть доступны тестовая директория и файл.
-
Запустите утилиту cmd.exe. Для этого нажмите сочетание клавиш Windows + R и выполните команду
cmd
. -
В командной строке выполните команду:
net use x: \\<публичный_IP-адрес_ВМ>\имя_папки
В результате появится диск X с тестовой директорией и файлом.
-
Как удалить созданные ресурсы
Чтобы перестать платить за созданные ресурсы:
- Удалите ВМ.
- Удалите статический публичный IP-адрес, если вы его зарезервировали.