Подключение внешнего локального диска в ownCloud 9
К чему это подходит и что важно знать
- Цель: добавить дополнительное хранилище к существующему серверу ownCloud 9, не меняя основного каталога данных. Подходит для небольших серверов и ситуаций, когда нужно расширить объём через отдельный диск.
- Краткое определение: External Storage — модуль ownCloud для подключения внешних хранилищ (локальных папок, SMB/CIFS, S3 и др.) к интерфейсу ownCloud.
Важно: в примерах использован CentOS 7 и пользователь nginx. На Ubuntu/Debian SELinux шаги не требуются, а веб-сервер может работать под другим пользователем (www-data, apache и т.д.).
Необходимые условия
- Сервер с установленным ownCloud 9 (CentOS 7 в примере).
- root или sudo-привилегии.
- Физический или виртуальный диск, в примере — /dev/sdb.
- Доступ к администраторской панели ownCloud.
Шаг 1 — Подготовка и форматирование диска
Подключитесь к серверу по SSH (или откройте терминал локально):
ssh root@owncloudIPПроверьте наличие устройства /dev/sdb:
sudo fdisk -l /dev/sdbСоздайте новую таблицу разделов и раздел с помощью fdisk:
fdisk /dev/sdbВ интерактивном меню введите:
- o — создать новую таблицу разделов
- n — создать новый раздел
- p — выбрать первичный раздел
- номер раздела: 1
- Для первого и последнего сектора нажмите Enter (использовать весь диск)
- w — записать изменения и завершить

Отформатируйте новый раздел в ext4 и проверьте размер:
mkfs.ext4 /dev/sdb1
fdisk -s /dev/sdb1
Создайте точку монтирования и смонтируйте раздел:
sudo mkdir -p /data
sudo mount /dev/sdb1 /dataДалее создайте каталог для ownCloud и назначьте владельца веб-сервера (в примере — nginx):
sudo mkdir -p /data/sdb-owncloud
sudo chown -R nginx:nginx /data/sdb-owncloudЕсли на системе включён SELinux (CentOS/RHEL), выполните метки безопасности, чтобы веб-сервер мог записывать в каталог:
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/data/sdb-owncloud(/.*)?'
sudo restorecon -Rv /data/sdb-owncloud/Пропишите постоянное монтирование в /etc/fstab. Откройте файл:
vim /etc/fstabДобавьте в конец:
/dev/sdb1 /data ext4 defaults 0 1Сохраните и выполните проверку монтирования:
umount /data
mount -a
df -h
Проверки и советы:
- Убедитесь, что права и SELinux метки установлены корректно: ls -la /data/sdb-owncloud и ls -Z /data/sdb-owncloud.
- Если веб-сервер работает не под nginx, замените владельца на соответствующего пользователя (www-data, apache и т.д.).
Шаг 2 — Включение поддержки внешнего хранилища в ownCloud
Войдите в ownCloud как администратор через веб-интерфейс.

Перейдите в «Файлы» → «Приложения» (Apps). Откройте вкладку «Не включено» и найдите «External storage support» — включите её.


После включения модуля появится пункт «Внешнее хранилище» в админ-панели.
Шаг 3 — Добавление локального хранилища в ownCloud
Перейдите в Администрирование → Внешнее хранилище.

Добавьте новое хранилище типа Local и укажите параметры:
- Folder name — имя, которое будет видно в интерфейсе ownCloud, например: sdb-owncloud
- Configuration — путь к каталогу: /data/sdb-owncloud/
- Available for — группы или пользователи, которым доступно это хранилище
Если рядом появляется зелёная точка, подключение успешно.

Шаг 4 — Проверка под обычным пользователем
Войдите под обычным пользователем (в примере — hakase) и убедитесь, что папка sdb-owncloud видна и доступна для загрузки файлов.

При загрузке файлов они будут сохраняться в /data/sdb-owncloud и станут доступны другим пользователям, у которых есть соответствующие права.
Проверки и критерии приёмки
- Папка sdb-owncloud видна в админке и у назначенных пользователей.
- При загрузке файла он появляется в файловой системе сервера: ls -l /data/sdb-owncloud.
- Права доступа и SELinux метки позволяют веб-серверу читать и записывать.
- После перезагрузки сервера точка монтирования остаётся активной (mount -a без ошибок).
Безопасность и рекомендации
- Рекомендовано делать бэкапы данных на отдельное хранилище (удалённый бэкап, snapshot или S3), поскольку локальный диск — единая точка отказа.
- Если сервер виден в сети, ограничьте доступ по правам и используйте HTTPS для ownCloud.
- Для многопользовательской среды рассмотрите выделение квот и мониторинг использования диска.
- При использовании SELinux избегайте понижения политики; корректно ставьте метки httpd_sys_rw_content_t.
Альтернативные подходы
- SMB/CIFS (Windows shares) — используйте, если требуется общий доступ с Windows-серверов.
- NFS — подходит для корпоративной сети и больших хранилищ, удобен при масштабировании.
- Объектные хранилища (Amazon S3, OpenStack Swift) — когда нужен горизонтально масштабируемый бэкенд.
Мини-таблица сравнения (качественно):
- Local (ext4) — простая настройка, низкая задержка, единая точка отказа.
- NFS/SMB — централизованное хранилище, требует сети и конфигурации прав.
- S3/Swift — высокая масштабируемость, возможная задержка и плата за трафик.
Чек-лист для администратора перед вводом в эксплуатацию
- Диск отформатирован и правильно смонтирован (/data/sdb1 → /data).
- Каталог /data/sdb-owncloud принадлежит пользователю веб-сервера.
- SELinux метки установлены (если применимо).
- Запись в fstab добавлена и mount -a прошёл без ошибок.
- Модуль External storage включён в ownCloud.
- Права доступа в ownCloud настроены для нужных групп/пользователей.
- Тест загрузки и скачивания файла пройдены.
Краткая методология внедрения
- Подготовить диск и точку монтирования на уровне ОС.
- Проверить права и контекст безопасности (SELinux).
- Включить модуль External storage в ownCloud и добавить Local storage.
- Тестировать под администратором и обычным пользователем.
- Настроить мониторинг и бэкапы.
Частые ошибки и как их исправить
- Симптом: зелёная/красная индикаторка в админке. Причина: неправильный путь или права. Решение: проверьте точный путь в конфигурации и права владельца.
- Симптом: файлы не видны в /data/sdb-owncloud. Причина: монтирование не произошло. Решение: mount -a и проверка /etc/fstab.
- Симптом: 403 Forbidden при доступе. Причина: SELinux блокирует запись. Решение: semanage/restorecon как указано выше.
Модель принятия решения (Mermaid)
flowchart TD
A[Нужен дополнительный диск?] -->|Да| B{Локальная машина или сеть}
B -->|Локальная| C[Использовать Local в ownCloud]
B -->|Сетевая| D{Тип сети}
D -->|Windows| E[SMB/CIFS]
D -->|Linux| F[NFS]
D -->|Облако/масштаб| G[S3/Swift]
C --> H[Настроить fstab, права, SELinux]
E --> H
F --> H
G --> H
H --> I[Добавить в ownCloud External Storage]
I --> J[Тест и мониторинг]Локальные особенности и миграция
- На CentOS/RHEL требуется semanage/restorecon; на Debian/Ubuntu этого шага нет.
- Если вы переносите данные с существующего каталога ownCloud, выполните перенос аккуратно, соблюдая владелец/группу и права, и обновите config.php при необходимости.
Краткий итог
- Подготовьте и промонтируйте диск на уровне ОС.
- Установите права и метки SELinux при необходимости.
- Включите External storage в ownCloud и добавьте Local storage с путём к каталогу.
- Проверьте доступы под обычным пользователем и настройте бэкап/мониторинг.
Ссылки и справка
- Документация ownCloud: https://doc.owncloud.org/server/9.1/admin_manual/configuration_files/external_storage_configuration_gui.html
Автор: инструкция адаптирована для администраторов Linux / ownCloud.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента