СтартФоткиЖелезкиПрограммыШпаргалкиРадиоКонтактСоглашение

Причина

За последние несколько лет в домохозяйстве собралось опредленное количество электронных устройств, которые содержат фотографии и другую информацию.
Организовать эту информацию нет времени, но когда что-нибудь становится нужным, то поиск превращается в проблему.
Решением послужило хранилище данных, доступное с любого устройства по сети Wi-fi.

Техническое задание

- Устройство должно быть доступным с любого домашнего электронного устройства.
- Отсутствие шума от устройства.
- Наличие резервного копирования.

Комплектующие

Реализация позволила использовать, лежащие без дела, устройства и адаптеры.
Картинки электроники скопированы с сайта amazon.de
Для устройства достаточно мощности Raspberry Pi 2.

Схема подключения на рис.1 с использованием usb адаптеров не позволяет достичь оптимальной скорости передачи данных к жестким дискам. Связано это с особенностью подключения: usb соединение -> raspberry pi -> samba сервер -> powerline адаптер -> роутер -> Wi-fi соединение.

Такое решение позволяет писать/читать со скоростью 4-6 МБ/сек. и для домашних условий этого оказалось достаточным.
Скорость передачи напрямую с использованием scp и без samba составляет 10 МБ/сек., что соответствует каналу 100 Мбит и является максимальным для малины второй версии.
С версией Raspberry Pi 3 и samba скорость можно увеличить до 8 МБ/сек. и с последним Raspberry Pi 3B+ до 17 МБ/сек.

Адаптер powerline (передача данных по линии элекропередач) скрывал несколько особенностей. Оказалось, что полярность подключения в сеть влияет на скорость передачи данных. Для этого потребовалось два адаптера попеременно выключать, переворачивать, включать снова и тестировать передачу. Таким образом, неудачное соединение может уменьшать скорость до 30%.
На адаптер оказывают сильное влияние помехи от импульсных источников питания, особенно если они стоят рядом. Подключение источников питания через фильтр электромагнитных помех увеличивает стабильность соединения и скорость до 20%.

Прототип

После стандартной процедуры установки Raspbian Lite c официального сайта https://www.raspberrypi.org/downloads/raspbian/, можно настраивать наши диски.

В конфигурации установим пароль, сетевое имя и включим ssh сервер.

sudo raspi-config

1 Change User Password
2 Network Options -> N1 Hostname -> введём имя, например, am-nas
5 Interfacing Options -> P2 SSH -> включить

7 Advanced Options -> A3 Memory Split -> можно установить 32

Всё остальное можно настраивать удалённо. Устанавливаем samba и дисковую утилиту
ssh pi@am-nas
sudo apt-get install samba samba-common-bin hdparm
sudo mkdir /mnt/NAS1
sudo mkdir /mnt/NAS2

Настроим автоматическое подключение дисков, для этого нужны их UUID, они обычно находятся в названиях /dev/sda1, /dev/sdb1
sudo blkid
sudo nano /etc/fstab

В конце файла добавить для каждого диска точку монтирования, например, такие
UUID=997fc8f7-3f89-4fec-a594-c1df53e68866 /mnt/NAS1 ext4 defaults,noatime 0 0
UUID=610be642-0900-40cf-a989-f8d6689fe49b /mnt/NAS2 ext4 defaults,noatime 0 0
UUID=bdfb80e3-c3a2-4d3f-a711-62a95eb71c9b /mnt/NAS3 ext4 defaults,noatime 0 0
UUID=1cd8b8bc-35f1-458e-94d1-7c98055bbf5e /mnt/NAS4 ext4 defaults,noatime 0 0

После чего можно перегрузить малину. Если удачно перезагрузились и диски подключились, то создаём примерно такую структуру папок:
/mnt
├── NAS1
│   ├── Private
│   ├── Software
│   └── Stage
├── NAS2
│   └── For Kids
├── NAS3
│   ├── Backup Monthly
│   ├── Backup Weekly
│   └── Backup Yearly
└── NAS4
     └── For Parents

Samba

Создадим пользователя для samba и установим его вледельцем удалённых папок

sudo useradd am-nas -m -G users
sudo passwd am-nas
sudo smbpasswd -a am-nas
sudo chown -R am-nas:users /mnt/NAS1

Проверяем права доступа
ls -l /mnt
drwxr-xr-x 5 am-nas users 4096 Apr 14 17:46 NAS1
drwxr-xr-x 3 am-nas users 4096 Apr 14 23:25 NAS2

Настроим удалённые папки samba

sudo nano /etc/samba/smb.conf

Если теперь перезапустить файловый сервер, то удалённые папки должны быть доступны в сети

sudo /etc/init.d/samba restart

Резервное копирование

Резервные копии можно легко организовать с помощью crontab и утилиты rsync, заодно будем отправлять диски пораньше спать, примерно через 5 минут бездействия

sudo -u pi crontab -e

Версия 2.0

Сетевое хранилище переехало в коробочку поприличнее. Это позволило решить проблему с неустойчивым питанием от зарядных блоков питания. В системных сообщениях периодически появлялось сообщение о низком напряжении:  sudo dmesg сообщение undervoltage.

USB хабы убраны их схемы, для этого необходимо адаптировать USB адаптеры для возможности подачи напряжения 5В от внешнего источника питания.

Дополнительное место в корпусе позволило разместить ещё два Raspberry Pi для локального сервера доменных имён и веб сервера. Веб сервер доступен по адресу https://www.am-web.ddnss.de

Вывод

Устройство успешно работает уже несколько лет. Кроме радиаторов в Raspberry Pi была установлена (приклеена) металлическая пластина на микросхему памяти с обратной стороны, что позволило лучше расрпделить выделяемое тепло.

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

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