В этой статье мы завершим настройку компонентов системы Riak Cloud Storage.
Данная статья это завершение серии вольных переводов официального руководства по системе Riak CS 2.1.1
Часть 1. Настройка Riak KV
Часть 2. Настройка компонента Riak CS
Настройка Stanchion
В вашем кластере вы должны использовать один и только один Stanchion узел. Все узлы Riak CS в этом кластере должны быть настроены для коммуникации с Stanchion узлом, чтобы кластер мог отслеживать и согласовывать причинно-следственные операции.
Все настройки используемые узлом Stanchion содержатся в stanchion.conf файле, который расположен в директории /etc/stanchion на большинстве операционных систем.
Если вы обновляетесь с версии ранее Riak СS 2.0.0 когда stanchion.conf и riak-cs.conf были введены вы всё ещё можете использовать старый конфигурационный файл app.config. Примеры ниже будут равнозначны.
STANCHION.CONF
configuration.name = value
APP.CONFIG
{stanchion, [ %% Configs here ]}
Настройка IP-адреса и порта для Stanchion
Если у вас есть только один узел Riak CS, Вам не нужно менять настройки Stanchion, потому что Stanchion просто прослушивает запросы с локального хоста. Если Riak CS кластер имеет множество узлов, тогда вы должны задать IP-адрес и порт, на котором Stanchion будет прослушивать запросы с других узлов.
Вы можете задать IP-адрес, используя параметр listener. Замените 127.0.0.1 на IP-адрес узла Stanchion и порт 8080 на порт узла:
STANCHION.CONF
listener = 127.0.0.1:8080
APP.CONFIG
{stanchion, [ {host, {"127.0.0.1", 8085}}, %% Other configs ]}
Примечание по совпадающим IP-адресам
IP-адрес, который вы здесь введёте, должен совпадать с IP-адресом в параметре stanchion_host в конфигурационном файлах riak.conf для Riak и riak-cs.conf для Riak CS.
Если вы хотите использовать SSL, убедитесь, что параметры ssl.certfile и ssl.keyfile не закомментированны и настроены корректно.
STANCHION.CONF
ssl.certfile = "./etc/cert.pem"ssl.keyfile = "./etc/key.pem"
APP.CONFIG
{stanchion, [ {ssl, [ {certfile, "./etc/cert.pem"}, {keyfile, "./etc/key.pem"} ]}, %% Other configs ]}
Настройка учётной записи администратора
Администратор создаётся во время настройки конфигурации компонента Riak CS. Те же полномочия должны быть добавлены на каждый Stanchion, используемый в кластере. Это настраивается в stanchion.conf, который расположен в директории /etc/stanchion. Введите тот же admin.key и admin.secret
STANCHION.CONF
admin.key = OUCXMB6I3HOZ6D0GWO2Dadmin.secret = a58Mqd3qN-SqCoFIta58Mqd3qN7umE2hnunGag==
APP.CONFIG
{stanchion, [ %% Admin user credentials {admin_key, "OUCXMB6I3HOZ6D0GWO2D"}, {admin_secret, "a58Mqd3qN-SqCoFIta58Mqd3qN7umE2hnunGag=="}, %% Other configs ]}
Настройка сведений о Riak KV
Если вы запускаете один узел для экспериментов, или если узел Riak KV запущен локально и настроен для прослушивания трафика буффера протокола на 0.0.0.0, то настройка по умолчанию должна подойти.
Иначе, обновите IP-адрес и порт для хоста Riak в конфигурационном файле Stanchion.
STANCHION.CONF
riak_host = 127.0.0.1:8087
APP.CONFIG
{stanchion, [ {riak_host, {"127.0.0.1", 8087}}, %% Other configs ]}
Балансировка нагрузки и Proxy для Riak CS
Если вы планируете использовать Riak CS в промышленном использовании, мы настоятельно рекомендуем вам поставить после Riak CS балансировщик нагрузки или прокси, программный или аппаратный. Также обратите внимание, что вы не должны напрямую предоставлять Riak CS открытым сетевым интерфейсам.
Пользователи Riak CS сообщают об успешном использовании Riak CS совместно с балансировщиком нагрузки или прокси. Совместные решения включают проприоритарные аппаратные балансировщики нагрузки, облачные опции балансировщиков нагрузки такие как Amazons Elastic Load Balancer и программные решение с открытым исходным кодом, такие как HAProxy и Nginx.
Это руководство кратко обозревает совместное использование решения с исходным кодом HAProxy и Nginx и обеспечивает некоторую конфигурацию и оперативные советы собраны от сообщества пользователей и инженеров Riak.
HAProxy
HAProxy это быстрое и надёжное решение для балансировки нагрузки и проксирования HTTP и TCP трафика приложений.
Пользователи сообщают об успешном использовании HAProxy в комбинации с Riak CS в ряде конфигураций и сценариев. Больше информации и примеров конфигурации для этого раздела для опытных пользователей в сообществе Riak CS в дополнении к замечаниям от инженеров Riak.
Пример настройки
Следующий пример это начальная точка настройки HAProxy как балансировщика нагрузки для установки Riak CS.
Примечание на лимиты открытых файлов
Лимиты открытых файлов операционной системы должны быть больше 256000 для приведенного ниже примера конфигурации. Сверяйтесь с документацией на лимиты открытых файлов для детальной настройки значения для различных операционных систем.
CONFIG
global log 127.0.0.1 local0 log 127.0.0.1 local1 notice maxconn 256000 spread-checks 5 daemondefaults log global option dontlognull option redispatch option allbackups no option httpclose retries 3 maxconn 256000 timeout connect 5000 timeout client 5000 timeout server 5000frontend riak_cs bind 10.0.24.100:8080 # Example bind for SSL termination # bind 10.0.24.100:8443 ssl crt /opt/local/haproxy/etc/data.pem mode http option httplog capture request header Host len 64 acl good_ips src -f /opt/local/haproxy/etc/gip.lst block if !good_ips use_backend riak_cs_backend if good_ipsbackend riak_cs_backend mode http balance roundrobin # Ping Riak CS to determine health option httpchk GET /riak-cs/ping timeout connect 60s timeout http-request 60s server riak1 r1s01.example.com:8081 weight 1 maxconn 1024 check server riak2 r1s02.example.com:8081 weight 1 maxconn 1024 check server riak3 r1s03.example.com:8081 weight 1 maxconn 1024 check server riak4 r1s04.example.com:8081 weight 1 maxconn 1024 check server riak5 r1s05.example.com:8081 weight 1 maxconn 1024 check
Пожалуйста, обратите внимание, что приведенный выше пример считается отправной точкой и является незавершенной работой.
Вы должны быть осторожны применяя эту конфигурацию и изменяя её под ваше окружение.
Конкретная деталь конфигурации, которую стоит отметить из примера, это закомментированная опция для использования SSL. HAProxy напрямую поддерживает SSL c версии 1.5. Убедитесь, что ваш HAProxy экземпляр собран с поддержкой OpenSSL, вы можете активировать SSL путём раскомментированния строки и модификации под своё окружение. Больше информации вы можете найти в документации на HAProxy.
Так же обратите внимание на опцию проверки здоровья Riak CS через конечную точку /riak-cs/ping. Этот параметр необходим для проверки каждого узла Riak CS как части метода round robin балансировки нагрузки.
Nginx
Некоторые пользователи сообщили об успешном использовании Nginx HTTP сервера для проксирования запросов для Riak CS. Пример, предоставляющий доступ к Riak CS, приведен здесь для справки.
Пример конфигурации
Ниже приведён пример начальной конфигурации для Nginx, чтобы действовать в качестве front-end прокси для Riak CS.
CONFIG
upstream riak_cs_host { server 10.0.1.10:8080;}server { listen 80; server_name _; access_log /var/log/nginx/riak_cs.access.log; location / { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_redirect off; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 64k; # If set to a smaller value, # nginx can complain with a # "headers too large" error proxy_buffers 8 64k; # Increase from default of (8, 8k). # If left to default with increased # proxy_buffer_size, nginx complains # that proxy_busy_buffers_size is too # large. proxy_pass http://riak_cs_host; }}
Обратите внимание, что директива proxy_set_header Host $http_host необходима для обеспечения того, чтобы заголовок HTTP Host: передавался Riak CS как полученный, а не переводился в имя хоста или адрес бэкенд-сервера Riak CS.
Также важно отметить, что proxy_pass не должен заканчиваться косой чертой, так как это может привести к различным проблемам.
Настройка S3 клиента
Это руководство демонстрирует вам как использовать s3cmd как S3 клиент. Хотя оно не будет охватывать все функции клиента, оно покажет вам, как создать конфигурацию и выполнить некоторые основные команды.
Внимание: s3cmd Signature Version
Если вы используете s3cmd версии 1.5.0 или выше вам нужно добавить флаг --signature-v2 для каждой команды нацеленной на Riak CS кластера, чтобы s3cmd использовал версию AWS 2, а не версию по умолчанию AWS 3.
Первоначальная настройка
Для использования s3cmd в сочетании с Riak CS, вы должны настроить утилиту для взаимодействия с вашей Riak CS системой. Один из путей это создать файл .s3cfg и сохранить его в вашей домашней директории. Когда вы запускаете любую команду, связанную c s3cmd, содержимое файла будет считано по умолчанию. Другой вариант, вы можете указать конфигурационный файл используя флаг -c. Пример:
SHELL
s3cmd -c /PATH/TO/CONFIG/FILE <command>
Альтернативный путь настройки s3cmd это запустить s3cmd --configure, который запустит интерактивный инструмент и соберёт конфигурационный файл на основе того, что вы введёте.
В следующем разделе вы найдёте небольшой пример .s3cfg файлов, которые могут быть использованы для настройки взаимодействия с Riak CS.
Пример конфигурационного файла s3cmd для локального использования
Используйте этот пример .s3cfg конфигурационного файла для взаимодействия с Riak CS локально через порт 8080 с s3cmd (не забудьте при необходимости указать данные, относящиеcя к вашей установке Riak CS).
CONFIG
[default]access_key = 8QON4KC7BMAYYBCEX5J+bucket_location = UScloudfront_host = cloudfront.amazonaws.comcloudfront_resource = /2010-07-15/distributiondefault_mime_type = binary/octet-streamdelete_removed = Falsedry_run = Falseenable_multipart = Falseencoding = UTF-8encrypt = Falsefollow_symlinks = Falseforce = Falseget_continue = Falsegpg_command = /usr/local/bin/gpggpg_decrypt = %(gpg_command)s -d --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)sgpg_encrypt = %(gpg_command)s -c --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)sgpg_passphrase = passwordguess_mime_type = Truehost_base = s3.amazonaws.comhost_bucket = %(bucket)s.s3.amazonaws.comhuman_readable_sizes = Falselist_md5 = Falselog_target_prefix =preserve_attrs = Trueprogress_meter = Trueproxy_host = localhostproxy_port = 8080recursive = Falserecv_chunk = 4096reduced_redundancy = Falsesecret_key = rGyDLBi7clBuvrdrkFA6mAJkwJ3ApUVr4Pr9Aw==send_chunk = 4096simpledb_host = sdb.amazonaws.comskip_existing = Falsesocket_timeout = 300urlencoding_mode = normaluse_https = Falseverbosity = WARNINGsignature_v2 = True
Пример конфигурационного файла s3cmd для использования в продакшине
Используйте этот пример .s3cfg конфигурационного файла для взаимодействия с Riak CS через s3cmd в продакшин системе.
CONFIG
[default]access_key = EJ8IUJX9X0F2P9HAMIB0bucket_location = UScloudfront_host = cloudfront.amazonaws.comcloudfront_resource = /2010-07-15/distributiondefault_mime_type = binary/octet-streamdelete_removed = Falsedry_run = Falseenable_multipart = Falseencoding = UTF-8encrypt = Falsefollow_symlinks = Falseforce = Falseget_continue = Falsegpg_command = /usr/local/bin/gpggpg_decrypt = %(gpg_command)s -d --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)sgpg_encrypt = %(gpg_command)s -c --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)sgpg_passphrase = passwordguess_mime_type = Truehost_base = <YOUR DOMAIN HERE>host_bucket = %(bucket)s.<YOUR DOMAIN HERE>human_readable_sizes = Falselist_md5 = Falselog_target_prefix =preserve_attrs = Trueprogress_meter = Trueproxy_host =proxy_port = 0recursive = Falserecv_chunk = 4096reduced_redundancy = Falsesecret_key = XOY/9IFKVEDUl6Allrkj7oyH9XW+CANnFLEVuw==send_chunk = 4096simpledb_host = sdb.amazonaws.comskip_existing = Falsesocket_timeout = 300urlencoding_mode = normaluse_https = Trueverbosity = WARNINGsignature_v2 = True
Для того, чтобы настроить s3cmd клиент для пользователя, вы должны изменить access_key и secret_key.
Настройка расположения хранилища
По умолчанию .3cfg файл использует Amazon S3 сервис, как бэкэнд хранилища. Для Riak CS системы, измените следующие настройки к точке к вашей системе хранилища.
- host_base укажите имя домена или путь к вашему хранилищу данных, например data.example.com
- host_bucket укажите расположение бакета, например my_cs_bucket.data.example.com
Использование SSL в клиенте
Если вы используете SSL, тогда задайте в параметре use_https значение True.
Ссылки
Riak Cloud Storage. Часть 1. Настройка Riak KV
Riak Cloud Storage. Часть 2. Настройка компонента Riak CS
Riak Cloud Storage. Часть 3. Stanchion, Proxy и балансировка нагрузки, клиент S3
Оригинал руководства.