Файловый сервер SMB 1.0: различия между версиями
Владимир (обсуждение | вклад) мНет описания правки |
Владимир (обсуждение | вклад) м Владимир переименовал страницу Файловый сервер SMB в Файловый сервер SMB (Устарело): (Устарело) |
(нет различий)
| |
Версия от 17:12, 2 июля 2021
Постараюсь описать, что мне нужно от данного сервера. Его задача хранить в себе большой объем данных. На данный момент это 12 терабайт. Данные представляют из себя видео файлы (Фильмы, сериалы, мультфильмы, мультсериалы). Приблизительно 200 фильмов, 30 сериалов. И надежда на то, что это можно будет 2х кратно расширить. Почему 12 терабайт? Да все очень просто, весь этот контент представляет из себя исходники Blu Ray дисков. Суть задачи именно хранить медиафайлы в максимально возможном качестве, доступном простому смертному. На данный момент потолком являются Blu ray диски. Если посмотреть на этот стандарт, и изучить, станет понятно, что поток может быть до 100 мегабит, а размерность до 100 гигабайт на единицу. Это допустимый максимум, в реальности таких нет. можно сделать процентное распределение так: 70 процентов до 30 гигабайт, 20 процентов до 50 гигабайт, 10 процентов до 70 гигабайт. Это если говорить о Фильмах. К сериалам это относится мало. Редко бывает так, что сериал выпускают на blu ray, или любой другой носитель. Сейчас сериалы живут в онлайн сервисах, и достигают смешных 20 мегабит в потоке для 4К.
И снова, крутиться это будет на нашем сервере, в proxmox.
Как я говорил ранее, в самом сервере нет места для установки накопителя 3.5 дюйма. Поэтому принято решение подключать этот диск по USB 3.1.
Имеется кейс AGE STAR 3UB3A8-6G для накопителей 3.5 с внешним питанием.
Интересный вопрос был в том, а как же серверный дисковый накопитель на 12 терабайт впихнуть в кейс, на котором указано максимум 4 терабайта. Откуда взято данное ограничение одному производителю известно. Возможно, производитель посчитал, что дисковый накопитель большей ёмкости сильно греется.
На данный момент есть очень интересная закономерность. Дисковые накопители малого объема (до 10 Терабайт) перешли в режим сверх дешевости. То есть их делают из отбраковки топовых решений. А топовое решение - это обычно максимально емкий накопитель в серии. Toshiba [MG07ACA12TE] и является таковым на 18 год. То есть в таком накопителе применены самые передовые технологии изготовления, какие были на 18 год. И соответственно качество их очень и очень высоко. На 20 год уже топовыми являются 16 терабайтные накопители, они также являются сверхкачественными.
И еще один немаловажный фактор - это энергопотребление. В какой-то момент индустрия высоко ёмких накопителей сломалась. Рост ёмкости сопрягался с энергопотреблением, накопители могли потреблять до 15 - 20 ватт, на единицу. Но появились SSD, и теперь накопитель несравненно медленнее. Поэтому правильным решением стало взять не скоростью, а ёмкостью. Дешевой ёмкостью. А чтобы эту емкость приумножать, нужно толкать в сервер просто уйму этих дисков, до 100 штук на одно устройство. И если такая сотня будет потреблять по 15 ватт каждый, как это охлаждать? Пошли по пути снижения энергопотребления. Бытовой накопитель работает при мощности 8 - 10 ватт. Серверные накопители пошли еще дальше, 4 - 5 ватт. Это удивительное преображение.
Но видимо производители кейса так не считают, и перестраховываются. Иные ограничения сложно представить. А мы же без опаски вставляем накопитель в коробочку, и мониторим температуру, в работе. Нельзя допускать чтобы она была 50 градусов. Если температура такова, то лучше подумать о другом способе установки накопителя. Без принудительного охлаждения ему работать нельзя.
Одна из основных сложностей возникла с тем, чтобы этот USB диск мог парковаться и переходить в сон. Зачем это нужно? Сам по себе сервер, состоит полностью из пассивных элементов, он не издает звуки. А вот 12 терабайтный накопитель, издает. И в целом даже пяти ватный накопитель, в кейсе при длительной работе прогревается до 45 градусов. Не критично, но и не идеально. Изначально возник вопрос, а может ли вообще засыпать накопитель подключенный по USB. Подключив к ПК с Windows и установив таймер на сон накопителей в настройках электропитания на 1 минуту, получили реальный переход накопителя, при отсутствии обращений. Но подключив тоже самое к серверу с proxmox, диск не заснул.
Подготовка Proxmox
Обращения к накопителю proxmox
Внести изменения, так как данная инструкция неактуальна. От сюда!
Также была постоянная активность к нему, каждые 10 секунд. Оказалось, что это происходит именно на машине с proxmox, на других машинах с linux, ничего подобного не наблюдалось.
За данное действие отвечает некий процесс в proxmox “pvestatd”.
Для того чтобы отключить его, нужно добавить накопитель в исключения в конфигурационном файле /etc/lvm/lvm.conf.
Так же чтобы привязать эти настройки к конкретному носителю, нужно выяснить какой у него ID. Так как при различных обстоятельствах может поменяться буква накопителя.
Для этого выполняем команду в консоли proxmox или подключившись по ssh через Powershell:
ls -lah /dev/disk/by-id
Ищем нужный нам накопитель:
usb-TOSHIBA_MG07ACA12TE_98765432100C-0:0
В данном случае такой. Их будет несколько, в зависимости от того сколько будет разделов.
И теперь его выписываем в:
nano /etc/lvm/lvm.conf
Выглядеть это должно так:
.... global_filter = ["r|usb-TOSHIBA_MG07ACA12TE_98765432100C-0:0|", "r | /dev/zd.* |", "r | / dev / mapper / pve -. * |" "r | / dev / mapper /.*- (vm | base) - [0-9] + - диск - [0-9] + |"] ...
Данный конфигурационный файл очень чувствителен к пробелам и оформлению, очень внимательно прописываем наши данные.
Данная проверка необходима накопителям участвующим в группе “Контейнер”, те на которые мы устанавливаем наши виртуальные маны.
Готово, теперь обращения к накопителю прекратились, осталось только заставить его переходить в сон.
Таймер сна накопителя
Первым делом озадачился поиском как в linux указать таймер сна накопителя. Первым делом наткнулись на hdparm. Утилита позволяет посмотреть информацию о накопителе, также сделать таймер сна. Но указание параметров ни к чему не вело. Выяснилось, что hdparm зачастую не работает с USB накопителями. Попалась на глаза утилита hd-idle.
Но её потребовалось скомпилировать. Так как распространяется в виде исходников.
---
Описание как это сделать
---
Данная утилита дала результат.
Устанавливаем её:
dpkg -i hd-idle-1.04.tgz
После чего вводим информацию о таймере сна в виде 600 секунд для нашего накопителя.
hd-idle - a usb-TOSHIBA_MG07ACA12TE_98765432100C-0:0 -i 600
А также включаем автозагрузку службы.
systemctl enable hd-idle
Вот теперь у нас работает сон у накопителя. Теперь, когда кто-то захочет посмотреть фильм или сериал накопитель запуститься, по окончанию просмотра, через 10 минут произойдет переход в спящий режим. И в итоге снова тишина.
Подключение хранилища 12 терабайт
Название одно, а по факту другое.
Раньше, подключал. Но стало понятно, что это бессмысленно.
Дело в том, что у меня конкретные диски подключены для конкретной задачи. Так уж получилось. И этот 12 терабайтник кроме как для этой машины, не требуется. Тогда зачем сдавать файловую систему внутри файловой системы.Терять на этом лишние пол терабайта. Принято решение выполнит проброс физического диска в требуемую виртуалку. И уже в ней произвести разметку и форматирование. И плюсов еще то, что можно будет этот диск подкинуть другой машине. Так как там обычный раздел ext4.
Поэтому ничего не делаем кроме как знаем что этот диск нужно подключить к созданной виртуалке.
Настройка VM SMB
Кратко по нюансам установки.
Переходим к созданию Виртуальной машины.
Общее
Узел: pve
VM ID: 101
Имя: smb
ОС
Хранилище: local
ISO образ:
Жесткий диск
Шина: VirtIO Block
Хранилище: local-lvm
Размер: 20
Кэш: Write through
Процессор
Ядра: 2
Память
Память: 2048
Появилась виртуальная машина с номером 102 и названием smb в разделе pve.
Теперь сразу же подкинем этой машине нашь накопитель на 12 терабайт для хранения “облачных данных”.
Подключение физического диска
Для данной манипуляци нучно просто вписать название нашего накопителя, причем в любом виде, как dev или можно взять его ID. Лучше второе, так как если внезапно при перезагрузке ОС решит поменять букву диска, а это происходит постоянно, ничего хорошего из этого не выйдет.
Поэтому узнаём ID накопителя. Это не ID раздела как мы узнавали ранее, нам нужен именно сам накопитель.
ls -lah /dev/disk/by-id/
ищем там наш дисковый накопитель. в конце будет подписано какой это девайс или буква.
ata-TOSHIBA_MG07ACA12TE_59D0A12KF95G
теперь пеходим к конфигупации виртуальной машины. К сожалению подбный функционал не реализован в веб интерфейсе. Поэтому придется через терминал proxmox.
nano /etc/pve/qemu-server/"немер машины".conf
Мой номер 101
nano /etc/pve/qemu-server/101.conf
и вписываем в конце
virtio2: /dev/disk/by-id/ata-TOSHIBA_MG07ACA12TE_59D0A12KF95G
virtio - то тот самый метод эмуляции, мы его применим и к физическому накопителю
номер в после virtio - это номер устройсв, смотрим не занят ли он чем то еще. Иначе машина перестанет запускаться.
Делать это все нужно на выключений машине. Ну или, придется её полностью отключать. И запускать по новой.
Готово, как только файл конфигурации будет сохранён в списке оборудования в веб интерфейсе появиться новый накопитель.
Подключение виртуальной сети
После чего двигаемся в настройки виртуальной машины.
Оборудование:
“Добавить”
Сетевое устройство и добавляем нашу дополнительную подсеть net1
Модель выбираем VirtO
Установка Ubuntu для SMB
Установка точно такая же как на реальном железе. Но все буде рассказано.
Переходим в раздел Консоль нашей 102 виртуальной машины.
Видим запуск ОС и выбор языка. Выбираем Русский.
Клавиатура остается на Английском.
Видим, что машина получила IP адрес от нашего DHCP сервера.
192.168.1.92/24
Вторая подсеть не будет прописана, мы это сделаем уже в системе
В разделе Filesystem setup выбираем Вручную. Мы же профессионалы.
Видим 2 накопителя:
Сначало: /dev/vda/ 20G
Жмем и выбираем: Add Partition
Size: 2
Format: swop
Create
Снова выбираем: /dev/vda/ 20G
Жмем и выбираем: Add Partition
Size: 1
Format: ext4
Mount: /boot
Create
Снова выбираем: /dev/vda/ 20G
Жмем и выбираем: Add Partition
Size: ничего
Format: ext4
Mount: /
Create
Теперь: /dev/vdb/ 10.9T
Жмем и выбираем: Add Partition
Size: ничего
Format: ext4
Mount: other /media/shara
Create
Идем в самый низ и выбираем Готово. Продолжить Да.
Начинается установка. При этом она идет в фоне.
В это время заполняем данные пользователя и машины.
Your name: vova
your server’s name: smb
Pick a username: vova
Choose password: пароль_пользователя_smb
Confirm your password: пароль_пользователя_smb
Готово
На вопрос установить ли ssh соглашаемся, поставив крестик пробелом.
Готово
Ничего не выбираем и говорим Готово. Ждем окончания установки.
По окончании Reboot
enter
ОС перезагрузиться, но уже в установленном виде. С ней бы выполнить стандартный набор операций.
PowerShell
ssh vova@192.168.1.92 тут уже пользователь vova, а не root
yes
Вот мы и в консоли будущего облака. Так как мы не root нужно выполнять все действия через команду sudo, или ввести sudo su и ввести пароль. Это сделает все наши операции от root.
apt-get update
apt-get upgrade -y
apt-get install mc -y
ОС готова переходим к установке SMB.
Установка SMB
Установим.
apt-get install -y samba samba-client
Бекап файла конфигурации.
mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
Шара без Пароля то:
nano /etc/samba/smb.conf
Добавляем параметры в конфиг Самбы
[global]
workgroup = WORKGROUP
security = user
map to guest = bad user
wins support = no
dns proxy = no
[media]
path = /media/shara/media
guest ok = yes
force user = nobody
browsable = yes
writable = yes
read only = no
create mask = 0775
directory mask = 0775
service smbd restart
Тут мы даем принадлежность папке /media/shara/ пользователю nobody и группе nogroup.
chmod -R 0777 /media/shara chown -R nobody:nogroup /media/shara/
Все теперь есть доступ к папке со стороны windows.
Веб Torrent клиент
Также неплохо бы, поднять веб Torrent сервер, чтобы можно было добавлять файлы на загрузку, отовсюду, и они могли загружаться независимо от рабочего ПК.
Загрузка должна производиться в shara/temp/torrent
Как клиент выбран Deluge.
Начнем, для начала создадим папку:
mkdir /media/shara/torrent
Дадим ей права
chmod -R 0777 /media/shara/torrent chown -R nobody:nogroup /media/shara/torrent
Теперь установим сам Deluge.
apt install deluged deluge-webui -y
Добавляем пользователя
adduser --system --group deluge
Добавляем vova в созданную группу
gpasswd -a your-vova deluge
Настраиваем конфиг
nano /etc/systemd/system/deluged.service
Вписываем:
[Unit]
Description=Deluge Bittorrent Client Daemon
After=network-online.target
[Service]
Type=simple
User=deluge
Group=deluge
UMask=000
ExecStart=/usr/bin/deluged -d
Restart=on-failure
# Configures the time to wait before service is stopped forcefully.
TimeoutStopSec=300
[Install]
WantedBy=multi-user.target
Сохраняем.
systemctl start deluged systemctl enable deluged systemctl status deluged
Убеждаемся что все в порядке.
Создаем конфиг для веб доступа.
nano /etc/systemd/system/deluge-web.service
Вписываем:
[Unit]
Description=Deluge Bittorrent Client Web Interface
After=network-online.target
[Service]
Type=simple
User=deluge
Group=deluge
UMask=027
ExecStart=/usr/bin/deluge-web -d
Restart=on-failure
[Install]
WantedBy=multi-user.target
Сохраняем.
systemctl start deluge-web systemctl enable deluge-web systemctl status deluge-web
Переходим в веб браузере по адресу машины
192.168.1.92:8112
Видим веб интерфейс
вводим пароль по умолчанию: deluge
Подключаемся к своему серверу.
Открывается окно настроек
Указываем путь доля загрузок: /media/shara/temp/torrent
Меняем пароль на свой: пароль_deluge
Готово, теперь у нас есть свой сервер загрузки.
Настройка доступа к этому серверу через доменное имя, можно посмотреть в разделе Nginx.
Настройка виртуальной подсети.
Для данного дела нужно открыть файл /etc/netplan/01-netcfg.yaml
Пока я не знаю будет ли он отличаться по названию, но он там один и в него вносятся изменения.
Прописываем в нем следующее:
С учетом пробелов
Для ens18 уже прописан параметр о том, что dhcp выдается автоматически. А вот наша виртуальная сеть не имеет dhcp сервера, поэтому адреса машинам мы дадим сами.
nano /etc/netplan/01-netcfg.yaml
network:
ethernets:
ens18:
dhcp4: true
#Это уже есть, дописываем:
ens19:
dhcp4: no
dhcp6: no
addresses: [192.168.2.3/24, ]
version: 2
Сохраняем
NFS сервер
Установку сервера делать по гайду в разделе NFS
Симлинк на другой диск
Суть задачи в том, чтобы внутри одного каталога находились папки с разных дисков.
В линуксе существует метод своего рода ярлыка.
ln -s /media/temp/Сериалы1/ /media/shara/Сериалы1
Выглядит это так
Тут я хочу чтобы зайдя /shara/Сериалы1 я попадал в /temp/Сериалы1/
Так же чтобы SMB могла нормально с этим работать нужно отредактировать конфиг.
nano /etc/samba/smb.conf
[global] ... allow insecure wide links = yes
[media] ... wide links = yes follow symlinks = yes
готово, перезагрузим SMB
service smbd restart
Теперь и в проводнике windows у нас все работает, и никто даже и не узнает что оказывается папочка то не настоящая)