Хранение файлов 1С в томах на nfs-шаре Linux
Большинство современных конфигураций позволяет осуществлять хранение прикрепленных файлов не только в базе, но и на файловом сервере.
Последний вариант хорош тем, что помогает предотвратить неоправданно быстрый рост базы данных из-за прикладываемых пользователями файлов.
В этой статье мы ответим на следующие вопросы:
1. Как сделать Network File System (NFS) — шару на linux?
2. Как настроить 1С для хранения файлов в томах?
3. Какие могут быть ошибки при настройке nfs-шары для 1С?
О том, как происходит взаимодействие пользователя с системой при хранения файлов в томах на nfs-шаре файлового сервера можно увидеть на схеме.
Как сделать Network File System (NFS) — шару на linux?
Описание установки и настройки nfs-шары приведём для ОС Linux дистрибутивов RHEL/CentOS 7.
Установим и настроим NFS-сервер
1. Установим пакеты для NFS-сервера.
1 |
yum install nfs-utils |
2. Включим автозагрузку для служб rpcbind и nfs-server.
1 |
systemctl enable rpcbind nfs-server |
3. Запустим службы rpcbind и nfs-server.
1 |
systemctl start rpcbind nfs-server |
4. Создадим каталог под NFS-шару.
1 |
mkdir -p /nfs_share_1c |
5. Дадим необходимые права на каталог. Важно понимать, что у пользователя под которым запущена служба 1С – должны быть права на запись в данный каталог.
1 |
chmod -R 777 /nfs_share_1c |
6. Настроим NFS-шару в файле /etc/exports:
1 |
vim /etc/exports |
Приведем к виду:
1 |
/nfs_share_1c *(rw,sync,no_root_squash,no_all_squash) |
где
/nfs_share_1c — путь к папке, для которой предоставляется общий доступ;
* –IP-подсеть, которой разрешён доступ к шаре — в нашем случае — все;
(rw,sync,no_root_squash,no_all_squash) — набор опций для шары.
7. Перечитаем конфигурацию службы nfs-server
1 |
exportfs -r |
8. Убедимся, что публикация выполнена.
1 |
exportfs |
Результат должен быть:
1 |
/nfs_share_1c <world> |
9. Добавляем разрешающие правила брандмауэра:
1 2 3 4 5 6 7 |
firewall-cmd --permanent --zone=public --add-service=nfs firewall-cmd --permanent --zone=public --add-service=mountd firewall-cmd --permanent --zone=public --add-service=rpc-bind firewall-cmd --reload |
Установим и настроим NFS- клиент
1. Установим пакеты для NFS.
1 |
yum install nfs-utils |
2. Запустим службу rpcbind.
1 |
systemctl start rpcbind |
3. Включим автозагрузку для службы rpcbind.
1 |
systemctl enable rpcbind |
4. Создадим каталог, в который будет смонтирована шара и монтируем шару:
1 |
mkdir /nfs_share |
5. Смонтируем шару в каталог.
1 |
mount -t nfs XXX.XX.XX.XX:/nfs_share_1c/ /nfs_share/ |
где
XXX.XX.XX.XX – ip-адрес nfs-сервера.
5. Проверим, что каталог примонтирован, используя команду mount .
1 |
mount | grep nfs4 |
Результат выполнения команды должен быть следующим.
1 2 3 4 5 6 7 |
XXX.XX.XX.XX:/nfs_share_1c/ on /nfs_share/ type nfs4 (rw,relatime,vers=4.0,rsize=1048888,wsize=1048888, namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys, clientaddr=*,local_lock=none,addr=* |
6. Проверим, что каталог примонтирован, используя команду df.
1 |
df -hT | grep nfs4 |
Результат выполнения команды df должен быть следующим.
1 |
XXX.XX.XX.XX:/nfs_share_1c nfs4 5.8T 88M 5.5T 1% /nfs-share |
Проверим возможность записи в шару.
1. Создадим файл
1 |
touch /nfs-share/testfile.txt |
2. Удалим файл
1 |
rm /nfs-share/testfile.txt |
3. Настроим автоматическое монтирование шары при перезагрузке системы.
1 |
vim /etc/fstab |
Добавим в конец файла:
1 |
XXX.XX.XX.XX:/nfs_share_1c/ /nfs_share/ nfs defaults 0 0 |
где
XXX.XX.XX.XX – ip-адрес nfs-сервера.
Как настроить 1С для хранения файлов в томах?
Рассмотрим на примере1С:ERP 2.
1. Зайдём в 1С под пользователем с правами Администратора.
2. Откроем раздел «НСИ и администрирование» -> «Настройки работы с файлами».
3. Установим признак «Хранить файлы в томах на диске» и откроем окно списка томов из «Тома хранения файлов».
4. Создадим том для хранения. Укажем в нем наш каталог с сервера 1С. При необходимости ограничим максимальный размер тома.
Список томов хранения файла теперь будет выглядеть следующим образом.
Какие могут быть ошибки при настройке nfs-шары для 1С?
Ошибка при добавлении тома хранения файла.
Пример полного текста ошибки:
1 2 3 |
Путь к тому некорректен. Возможно учетная запись, от лица которой работает сервер 1С:Предприятия, не имеет прав доступа к каталогу тома. Ошибка доступа к файлу «»: Permission denied |
Описание:
Отсутствуют права на каталог, созданный на сервере 1С.
Либо имя каталога указано не верно и такой каталог просто не существует на сервере 1С.
Решение:
Дадим права на редактирование каталога пользователю usr1cv8. В данном примере на каталог предоставляются полные права всем пользователям.
1 |
chmod -R 777 /nfs_share_1c |
Ошибка при добавлении файла.
Пример полного текста ошибки:
1 2 3 4 5 6 7 8 9 10 11 |
Ошибка при добавлении присоединенного файла «»: Не удалось добавить файл ни в один из томов. Список ошибок: Ошибка при добавлении файла «» В том «»: Ошибка совместного доступа к файлу «» |
Описание:
При добавлении файла выдается ошибка.
Сам файл при этом появляется и в 1С и на шаре, но при этом он пустой.
Решение:
1. На nfs-клиенте и nfs-сервере сверим uid и gid пользователя usr1cv8. Они должны совпадать.
Зайдем под пользователем usr1cv8
1 |
su - usr1cv8 |
покажем id пользователя
1 |
id |
Если имеются отличия — исправим.
2. На nfs-клиенте и nfs-сервере проверим наличие прав на запись у пользователя usr1cv8 в каталоги шары.
Если права отсутствуют права на запись — добавим.
Еще можно посмотреть
Похожие записи
- Подключение репозитория под ОС Linux
- Ошибка 1С:Предприятие «Потеряно соединение»
- Расследование конфликтов управляемых блокировок (TTIMEOUT) 1С:Предприятия
- Что такое PG_TEMP в PostgreSQL для 1С
- НАСТРОЙКА PG_PROFILE ДЛЯ POSTGRESQL 1.
- Статистика PostgreSQL при работе с 1С:Предприятием
- Очистка кэша: серверного и клиентского для 1С:Предприятия
- Настройка непрерывного архивирования (point-in-time-recovery, PITR) в PostgresPro 11 Linux
- Пропажа индексов дескрипторов в 1С:Документообороте
- Технологический журнал 1С и бесконечный цикл в коде 1С