Однонодовый файловый сервер с помощью консоли управления
Чтобы создать инфраструктуру для однонодового файлового сервера 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
. - Нажмите кнопку Сохранить. Таким образом создайте все правила из таблицы.
-
Нажмите кнопку Сохранить.
-
Создайте виртуальную машину для файлового сервера
Чтобы создать виртуальную машину:
-
На странице каталога в консоли управления
нажмите кнопку Создать ресурс и выберите Виртуальная машина. -
В поле Имя введите имя ВМ —
fileserver-tutorial
. -
Выберите зону доступности, в которой будет находиться ВМ.
-
В блоке Выбор образа/загрузочного диска перейдите на вкладку Marketplace и выберите публичный образ Ubuntu.
-
В блоке Диски и файловые хранилища нажмите Добавить диск. В окне Добавление дополнительного диска укажите параметры диска для хранения данных:
- Имя —
fileserver-tutorial-disk
. - Тип —
SSD
. - Размер —
100 ГБ
. - Наполнение —
Пустой
.
Нажмите Добавить.
- Имя —
-
В блоке Вычислительные ресурсы:
- Выберите платформу.
- Укажите необходимое количество vCPU и объем RAM.
Рекомендованные значения для файлового сервера:
- Гарантированная доля vCPU —
100%
. - vCPU —
8
или больше. - RAM —
56 ГБ
или больше.
-
В блоке Сетевые настройки выберите, к какой подсети будет подключена виртуальная машина при создании, и укажите группу безопасности
fileserver-sg
. -
Укажите данные для доступа на виртуальную машину:
- В поле Логин введите имя пользователя.
- В поле SSH-ключ вставьте содержимое файла открытого ключа. Пару ключей для подключения по SSH необходимо создать самостоятельно.
-
Нажмите кнопку Создать ВМ.
Создание ВМ может занять несколько минут. Когда ВМ перейдет в статус 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-адрес, если вы его зарезервировали.