Настройка Swift Proxy Server: Полное Руководство по Конфигурации для OpenStack

Что такое Swift Proxy Server и зачем он нужен?

Swift Proxy Server – ключевой компонент OpenStack Object Storage (Swift), отвечающий за обработку входящих запросов к объектному хранилищу. Он действует как интеллектуальный посредник: принимает HTTP-запросы от клиентов, взаимодействует с нодами хранения, управляет метаданными и обеспечивает отказоустойчивость. Правильная конфигурация прокси-сервера критична для производительности, безопасности и масштабируемости вашего облачного хранилища.

Пошаговая настройка Swift Proxy Server

Для корректной конфигурации выполните следующие действия:

  1. Установка пакетов:
    sudo apt-get install swift swift-proxy memcached python3-swiftclient
  2. Создание базовых конфигов:
    Скопируйте шаблоны в /etc/swift:
    cd /etc/swift
    sudo cp proxy-server.conf-sample proxy-server.conf
    sudo cp proxy-server.conf-sample /etc/swift/proxy-server.conf
  3. Настройка аутентификации:
    В файле /etc/swift/proxy-server.conf укажите параметры Keystone:
    [filter:authtoken]
    auth_url = http://controller:5000
    username = swift
    project_name = service
  4. Конфигурация Memcached:
    Убедитесь в работе сервера кэширования и пропишите его адрес:
    memcached -d -u memcache
    В proxy-server.conf:
    [DEFAULT]
    memcache_servers = 127.0.0.1:11211
  5. Запуск сервиса:
    sudo systemctl restart swift-proxy

Ключевые параметры конфигурации proxy-server.conf

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

  • [DEFAULT]:
    – bind_port = 8080
    – workers = auto (количество worker-процессов)
  • [pipeline:main]:
    Порядок обработки middleware (пример):
    pipeline = healthcheck cache authtoken proxy-logging proxy-server
  • [filter:cache]:
    use = egg:swift#memcache
    memcache_servers = 127.0.0.1:11211
  • [filter:authtoken]:
    auth_type = password
    project_domain_id = default
  • Безопасность:
    bind_ip = 0.0.0.0 (только для тестов!)
    disable_path_info = yes

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

Для высоконагруженных систем:

  1. Используйте балансировщики нагрузки (HAProxy, Nginx)
  2. Настройте worker_processes = 2 * CPU_cores
  3. Увеличьте лимиты в memcached
  4. Включите сжатие: [filter:proxy-logging] set log_headers = true
  5. Используйте SSD для кэша метаданных

FAQ: Частые вопросы по настройке Swift Proxy

Как проверить работоспособность прокси?

Выполните: swift -V 3 -A http://controller:5000/v3 -U user -K password stat. Код ответа 200 OK подтверждает корректность конфигурации.

Ошибка “Invalid WSGI request” – как исправить?

Проверьте:
1) Корректность секции [pipeline:main]
2) Наличие всех указанных middleware в /usr/lib/python3/dist-packages/swift
3) Права доступа к /var/log/swift

Как настроить SSL/TLS терминацию?

Используйте Nginx перед Swift Proxy:

server {
listen 443 ssl;
ssl_certificate /path/to/cert.pem;
location / {
proxy_pass http://swift-proxy:8080;
}
}

Почему прокси не видит storage nodes?

Убедитесь, что:
– ring-файлы актуальны и скопированы на все узлы
– В /etc/swift/proxy-server.conf указан правильный путь к ring: app:proxy-server /etc/swift

Как настроить кэширование для больших файлов?

В [filter:cache] добавьте:
cache_time = 3600
object_size_threshold = 1048576 (1MB)

Типичные ошибки и их решение

  • 403 Forbidden: Неверные учетные данные Keystone
  • 503 Service Unavailable: Ноды хранения недоступны (проверьте swift-recon)
  • Медленные ответы: Увеличьте memcache_max_connections
  • Утечки памяти: Обновите версию Swift, настройте worker_timeout

Регулярно обновляйте конфигурацию при изменении кластера и используйте инструменты мониторинга (Prometheus + Grafana) для отслеживания метрик прокси-сервера.

Proxy Ninja
Добавить комментарий