Установка 1С на Linux ARM: Ubuntu, Debian, Raspberry Pi | AdminWiki

Установка 1С на Linux ARM: Полное руководство для серверов и Raspberry Pi

18 декабря 2025 11 мин. чтения #1С:Предприятие #1с #Linux ARM #aarch64 #debian #devops #postgresql #raspberry pi #ubuntu
Содержание статьи

Развертывание 1С:Предприятие на архитектуре ARM (aarch64) — это не миф, а реальность для современных энергоэффективных серверов и одноплатных компьютеров, таких как Raspberry Pi. Давай разберем этот процесс от подготовки системы до запуска рабочего кластера серверов 1С.

Ключевое отличие: Официальные дистрибутивы 1С для Linux существуют только для архитектуры x86_64. Для ARM-систем используется технология эмуляции через binfmt_misc и QEMU, что позволяет запускать бинарные файлы x86_64 на ARM-процессорах.

Подготовка системы Linux ARM

Представь, что у тебя свежеустановленный Ubuntu Server 22.04 LTS или Debian 11/12 на ARM-совместимом оборудовании. Первым делом нужно подготовить окружение.

1. Обновление системы и установка зависимостей

Выполни эти команды для установки базовых пакетов:

bash
# Обновление списка пакетов и системы
sudo apt update && sudo apt upgrade -y

# Установка необходимых зависимостей
sudo apt install -y \
    wget \
    curl \
    gnupg \
    ca-certificates \
    lsb-release \
    apt-transport-https \
    software-properties-common

2. Настройка эмуляции x86_64 через QEMU и binfmt_misc

Это самый важный этап для установки 1С на ARM архитектуру. Без него пакеты 1С просто не запустятся.

bash
# Установка QEMU для эмуляции x86_64
sudo apt install -y qemu-user-static binfmt-support

# Проверка, что binfmt настроен корректно
sudo update-binfmts --display | grep qemu-x86_64

# Должна быть строка вида:
# qemu-x86_64 (enabled)

# Если не enabled, включи вручную:
sudo update-binfmts --enable qemu-x86_64
Внимание! На некоторых дистрибутивах (особенно контейнеризованных) может потребоваться дополнительная настройка ядра. Убедись, что в системе установлен пакет binfmt-support и модуль ядра binfmt_misc загружен (lsmod | grep binfmt).

Установка сервера 1С:Предприятие

Теперь перейдем непосредственно к установке компонентов 1С. Мы будем использовать официальные репозитории 1С, адаптированные для работы через эмуляцию.

3. Добавление репозитория 1С

bash
# Создание файла репозитория 1С
sudo tee /etc/apt/sources.list.d/1c-enterprise.list << EOF
deb [arch=amd64,i386] http://deb.1c.ru/deb all main
deb [arch=amd64,i386] http://deb.1c.ru/deb testing main
deb [arch=amd64,i386] http://deb.1c.ru/deb additional main
EOF

# Импорт ключа репозитория
wget -qO - http://deb.1c.ru/key.asc | sudo apt-key add -

# Обновление списка пакетов с учетом нового репозитория
sudo apt update

4. Установка основных компонентов 1С

Устанавливаем сервер 1С:Предприятие и утилиты администрирования:

bash
# Установка сервера 1С:Предприятие
sudo apt install -y 1c-enterprise83-server

# Установка дополнительных компонентов (рекомендуется)
sudo apt install -y \
    1c-enterprise83-server-nls \
    1c-enterprise83-ws \
    1c-enterprise83-common \
    1c-enterprise83-common-nls

# Установка утилит администрирования
sudo apt install -y 1c-enterprise83-server-admin 1c-enterprise83-server-admin-thin

5. Проверка установки 1С

bash
# Проверка версии установленного сервера
/opt/1C/v8.3/x86_64/ragent -v

# Проверка, что процессы запускаются через QEMU
file /opt/1C/v8.3/x86_64/ragent
# Должно быть: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked

# Проверка с помощью ldd (будет показывать зависимости через qemu)
ldd /opt/1C/v8.3/x86_64/ragent | head -5

Установка и настройка PostgreSQL для ARM

PostgreSQL для ARM устанавливается нативно, без эмуляции. Давай настроим оптимальную конфигурацию для работы с 1С.

6. Установка PostgreSQL

bash
# Установка PostgreSQL (версия 13+)
sudo apt install -y postgresql postgresql-contrib

# Проверка статуса службы
sudo systemctl status postgresql

# Включение автозапуска
sudo systemctl enable postgresql

7. Настройка PostgreSQL для работы с 1С

bash
# Переход в учетную запись postgres
sudo -u postgres psql

-- В интерактивной консоли PostgreSQL выполняем:
-- Создание пользователя для 1С
CREATE USER user_1c WITH PASSWORD 'StrongPassword123!';

-- Создание базы данных с владельцем user_1c
CREATE DATABASE db_1c OWNER user_1c;

-- Выход из консоли PostgreSQL
\q

8. Оптимизация postgresql.conf для ARM

Создаем оптимальную конфигурацию с учетом ограничений ARM-процессоров (обычно меньше ядер и RAM):

bash
# Резервное копирование оригинального конфига
sudo cp /etc/postgresql/*/main/postgresql.conf /etc/postgresql/*/main/postgresql.conf.backup

# Редактирование конфигурации
sudo nano /etc/postgresql/*/main/postgresql.conf

Добавь или измени следующие параметры:

config
# Основные настройки для ARM (пример для Raspberry Pi 4 с 4-8GB RAM)
max_connections = 100
shared_buffers = 256MB          # 1/4 от доступной RAM
effective_cache_size = 768MB    # 3/4 от доступной RAM
work_mem = 8MB
maintenance_work_mem = 64MB

# Настройки для производительности
synchronous_commit = off
full_page_writes = off
wal_buffers = 16MB
checkpoint_completion_target = 0.9
random_page_cost = 1.1

# Логирование
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_rotation_age = 1d
log_rotation_size = 100MB
log_min_duration_statement = 1000
bash
# Перезапуск PostgreSQL для применения настроек
sudo systemctl restart postgresql

Настройка кластера серверов 1С

Теперь настроим кластер серверов 1С, который будет управлять рабочими процессами.

9. Создание и настройка кластера

bash
# Остановка всех служб 1С
sudo systemctl stop srv1cv83
sudo systemctl stop s1c-server

# Создание каталога для баз данных 1С
sudo mkdir -p /opt/1C/databases
sudo chown -R usr1cv83:grp1cv83 /opt/1C/databases

# Запуск службы кластера
sudo systemctl start srv1cv83

# Проверка статуса
sudo systemctl status srv1cv83

10. Настройка через консоль администрирования

Используем утилиту ras для настройки кластера:

bash
# Запуск консоли администрирования
sudo -u usr1cv83 /opt/1C/v8.3/x86_64/ras cluster

В интерактивном режиме выполни:

1c-admin
# Создание центрального сервера
cluster --create --port=1545 --name="ARM Cluster"

# Добавление рабочего сервера
cluster --add=localhost:1541

# Создание информационной базы
infobase --create \
    --name="Тестовая БД" \
    --dbms=PostgreSQL \
    --db-server=localhost \
    --db-name=db_1c \
    --db-user=user_1c \
    --db-pwd=StrongPassword123! \
    --date-offset=2000 \
    --security-level=0 \
    --license-distribution=allow \
    --descr="Тестовая база на ARM"

Оптимизация производительности на ARM

Из-за эмуляции x86_64 на ARM производительность может быть ниже. Вот несколько советов по оптимизации:

Рекомендации по настройке:

  • Используйте SSD накопитель — это критически важно для компенсации накладных расходов эмуляции
  • Увеличьте размер swap — рекомендуется 2-4GB для систем с 4-8GB RAM
  • Настройте параметры ядра для лучшей работы с памятью
  • Используйте последнюю версию QEMU — в новых версиях улучшена производительность эмуляции
  • Рассмотрите использование ZRAM для компрессии памяти на маломощных системах

Настройка параметров ядра для оптимизации

bash
# Редактирование параметров ядра
sudo nano /etc/sysctl.conf

# Добавь в конец файла:
# Оптимизация для работы с памятью и сетью
vm.swappiness = 10
vm.vfs_cache_pressure = 50
vm.dirty_ratio = 10
vm.dirty_background_ratio = 5

# Увеличение лимитов для 1С
fs.file-max = 2097152
fs.nr_open = 2097152

# Применение изменений
sudo sysctl -p

Автоматизация запуска и мониторинг

11. Создание systemd служб для автозапуска

bash
# Создание службы для рабочего сервера 1С
sudo tee /etc/systemd/system/s1c-server.service << EOF
[Unit]
Description=1C:Enterprise Application Server
After=network.target postgresql.service srv1cv83.service
Requires=postgresql.service srv1cv83.service

[Service]
Type=forking
User=usr1cv83
Group=grp1cv83
Environment=LC_ALL=ru_RU.UTF-8
ExecStart=/opt/1C/v8.3/x86_64/ras cluster --daemon cluster
ExecStop=/opt/1C/v8.3/x86_64/ras cluster stop --daemon cluster
Restart=on-failure
RestartSec=10
TimeoutStopSec=300

[Install]
WantedBy=multi-user.target
EOF

# Перезагрузка systemd и запуск служб
sudo systemctl daemon-reload
sudo systemctl enable s1c-server
sudo systemctl start s1c-server
sudo systemctl status s1c-server

12. Мониторинг работы системы

Создадим простой скрипт для проверки состояния системы:

bash
#!/bin/bash
# Файл: /usr/local/bin/check-1c-status.sh

echo "=== Статус служб 1С на ARM ==="
echo ""
echo "1. Служба кластера:"
systemctl status srv1cv83 --no-pager -l

echo ""
echo "2. Рабочий сервер:"
systemctl status s1c-server --no-pager -l

echo ""
echo "3. PostgreSQL:"
systemctl status postgresql --no-pager -l

echo ""
echo "4. Потребление памяти QEMU:"
ps aux | grep qemu-x86_64 | grep -v grep

echo ""
echo "5. Соединения с кластером:"
netstat -tlnp | grep :154
bash
# Делаем скрипт исполняемым
sudo chmod +x /usr/local/bin/check-1c-status.sh

# Запуск проверки
check-1c-status.sh

Решение распространенных проблем

Частые ошибки и их решение:

Проблема 1: Ошибка "Cannot execute binary file"

Решение: Проверьте настройку binfmt_misc и установку qemu-user-static.

bash
# Переустановка QEMU
sudo apt install --reinstall qemu-user-static binfmt-support
sudo systemctl restart systemd-binfmt

Проблема 2: Низкая производительность

Решение: Убедитесь, что используете аппаратную версию QEMU и настроили кэширование.

bash
# Проверка версии QEMU
qemu-x86_64 --version
# Должна быть версия 5.0+

# Установка последней версии из backports (для Debian)
sudo apt install -t bullseye-backports qemu-user-static

Проблема 3: Ошибки при подключении к PostgreSQL

Решение: Проверьте настройки аутентификации в pg_hba.conf.

bash
# Добавьте в /etc/postgresql/*/main/pg_hba.conf
host    all             all             127.0.0.1/32            md5
host    all             all             ::1/128                 md5

Сравнение производительности ARM vs x86_64

Параметр ARM (Raspberry Pi 4) x86_64 (Intel i5) Рекомендации для ARM
Запуск сервера 1С 15-30 секунд 5-10 секунд Используйте SSD, увеличьте swap
Производительность БД 60-70% от x86 100% (база) Оптимизируйте PostgreSQL конфиг
Потребление памяти Выше на 20-30% Базовый уровень Используйте ZRAM для компрессии
Поддержка пользователей 5-10 одновременных 20-50+ Для тестовых/небольших БД
Профессиональный совет: Для production-сред на ARM архитектуре рассмотрите использование более мощных ARM-серверов (AWS Graviton, Ampere Altra) вместо Raspberry Pi. Они обеспечивают производительность, сравнимую с x86, при меньшем энергопотреблении.

FAQ: Часто задаваемые вопросы

Можно ли использовать 1С на Raspberry Pi для production?

Да, но с ограничениями. Raspberry Pi подходит для:

  • Тестовых и учебных сред
  • Небольших баз данных (до 1-2 GB)
  • Малого количества одновременных пользователей (3-5)
  • Резервных/вспомогательных серверов

Для серьезных production-нагрузок лучше использовать профессиональные ARM-серверы.

Какая версия 1С лучше всего работает на ARM?

Рекомендуется использовать последние версии платформы 1С:Предприятие 8.3.20 и выше. В них улучшена:

  • Поддержка современных дистрибутивов Linux
  • Оптимизация работы с памятью
  • Стабильность при длительной работе

Избегайте версий ниже 8.3.15 — в них могут быть проблемы с эмуляцией.

Как обновлять 1С на ARM системе?

Процесс обновления стандартный, но с учетом эмуляции:

bash
# Остановка служб
sudo systemctl stop s1c-server
sudo systemctl stop srv1cv83

# Обновление пакетов 1С
sudo apt update
sudo apt upgrade 1c-enterprise83-*

# Перезапуск служб
sudo systemctl start srv1cv83
sudo systemctl start s1c-server

Перед обновлением обязательно сделайте бэкап баз данных!

Поддерживается ли тонкий клиент на ARM?

Да, тонкий клиент 1С можно запустить на ARM, но для этого потребуется:

  • Установка графической среды (если ее нет)
  • Настройка эмуляции x86_64 для клиентских библиотек
  • Установка пакета 1c-enterprise83-thin-client

Для production рекомендуется использовать тонкие клиенты на x86 машинах, подключаясь к ARM-серверу.

Заключение

Установка 1С:Предприятие на Linux ARM архитектуре — полностью работоспособное решение, хотя и требующее дополнительной настройки через эмуляцию QEMU. Основные выводы:

  • Технология работает — эмуляция через binfmt_misc и QEMU позволяет запускать x86_64 бинарники на ARM
  • Требует оптимизации — производительность ниже нативной, но достаточна для многих сценариев
  • Идеально для специфичных задач — тестовые среды, малые предприятия, энергоэффективные решения
  • Будущее за нативными ARM-сборками — с ростом популярности ARM-серверов можно ожидать официальной поддержки от 1С

Для успешного развертывания следуй пошаговому руководству выше, обращай внимание на рекомендации по оптимизации и мониторингу. Помни, что каждая система уникальна — некоторые параметры могут потребовать дополнительной настройки под конкретное железо и нагрузку.

Следующий шаг: После успешной установки рекомендую настроить автоматическое резервное копирование баз данных и мониторинг ресурсов системы. Это особенно важно для стабильной работы в production-среде.
Поделиться:
Сохранить гайд? В закладки браузера