Spec-Zone.ru › RethinkDB javascript

Запуск RethinkDB при запуске системы

Этот документ объясняет, как настроить RethinkDB для работы в качестве системной службы на поддерживаемых операционных системах, обеспечивая автоматический запуск при загрузке. Общие инструкции по запуску RethinkDB см. в статье о запуске сервера RethinkDB.

В общем случае, вам нужно выполнить следующие шаги:

  • Установите RethinkDB как службу для вашей операционной системы. (В этом документе описывается, как сделать это как для init.d-, так и для systemd-базированных дистрибутивов Linux, а также для OS X с использованием launchd и служб Windows. В зависимости от способа установки RethinkDB, это может быть уже выполнено за вас.)
  • Создайте файл конфигурации RethinkDB для каждого экземпляра RethinkDB, работающего на этом физическом сервере.

Запуск с init.d

Пакеты RethinkDB автоматически устанавливают скрипт init по адресу /etc/init.d/rethinkdb и добавляют записи для уровня запуска по умолчанию. Для автоматического запуска RethinkDB при запуске системы вам необходимо добавить файл конфигурации в /etc/rethinkdb/instances.d/.

Быстрая настройка

Скопируйте файл образца конфигурации и используйте документацию по файлу конфигурации в качестве руководства для его настройки. (Если у вас нет файла образца .conf, вы можете загрузить его здесь.)

sudo cp /etc/rethinkdb/default.conf.sample /etc/rethinkdb/instances.d/instance1.conf
sudo vim /etc/rethinkdb/instances.d/instance1.conf

Затем перезапустите службу:

sudo /etc/init.d/rethinkdb restart

Базовая настройка завершена — теперь у вас есть работающий сервер!

Несколько экземпляров

Скрипт init.d поддерживает запуск нескольких экземпляров на одном сервере с помощью нескольких файлов .conf в /etc/rethinkdb/instances.d. Это может быть полезно для изоляции баз данных для отдельных приложений, работающих на одном сервере, или для целей тестирования. (Нет прироста производительности при запуске нескольких узлов одного кластера на одном физическом компьютере.)

В каждом файле конфигурации укажите отдельный каталог данных и включите опцию конфигурации join для каждого узла с IP-адресом и портом другого узла в кластере. Если экземпляры работают не на одной машине, укажите bind=all в файле конфигурации (или --bind all в командной строке). Убедитесь, что каждый экземпляр на одном компьютере указывает разные значения для driver-port, cluster-port и http-port.

Опция bind=all представляет собой риск безопасности, если ваш компьютер открыт для интернета, и вы должны принять меры для предотвращения несанкционированного доступа. Подробнее см. на странице безопасности.

Установка из исходного кода

Если вы скомпилировали из исходного кода, получите скрипт init.d от сюда. Скачайте файл образца .conf здесь.

Запуск с systemd

Вы используете Ubuntu? Используйте инструкции по запуску с init.d, а не инструкции systemd.

Полная поддержка systemd запланирована — вы можете отслеживать прогресс на задаче 2014. Пока вам нужно будет вручную создать несколько файлов конфигурации.

Базовая настройка

Создайте файл /usr/lib/tmpfiles.d/rethinkdb.conf со следующим содержимым:

d /run/rethinkdb 0755 rethinkdb rethinkdb -

И создайте файл службы /usr/lib/systemd/system/rethinkdb@.service:

[Unit]
Description=RethinkDB database server for instance '%i'

[Service]
User=rethinkdb
Group=rethinkdb
ExecStart=/usr/bin/rethinkdb serve --config-file /etc/rethinkdb/instances.d/%i.conf
KillMode=process
PrivateTmp=true

[Install]
WantedBy=multi-user.target

Права доступа chmod для обоих файлов должны быть 644 (chmod 644 <file>).

Запуск экземпляров RethinkDB

Сначала создайте каталог данных RethinkDB с помощью следующей команды и установите права владения пользователю rethinkdb:

rethinkdb create -d /path/to/your/rethinkdb/directory
sudo chown -R rethinkdb.rethinkdb /path/to/your/rethinkdb/directory

Затем скопируйте файл образца конфигурации и используйте документацию по файлу конфигурации в качестве руководства для его настройки. (Если у вас нет файла образца .conf, вы можете загрузить его здесь.)

sudo cp /etc/rethinkdb/default.conf.sample /etc/rethinkdb/instances.d/instance1.conf
sudo vim /etc/rethinkdb/instances.d/instance1.conf

Хотя вы можете оставить многие параметры по умолчанию, вам определенно нужно изменить строку directory= в файле конфигурации, чтобы указать путь к каталогу данных RethinkDB.

directory=/path/to/your/rethinkdb/directory

Затем включите службу:

sudo systemctl enable rethinkdb@<name_instance>
sudo systemctl start rethinkdb@<name_instance>

Теперь у вас есть работающий сервер!

Несколько экземпляров

Так как systemd поддерживает несколько экземпляров на одном сервере, вам просто нужно создать несколько файлов .conf в /etc/rethinkdb/instances.d. Это может быть полезно для изоляции баз данных для отдельных приложений, работающих на одном сервере, или для целей тестирования. (Нет прироста производительности при запуске нескольких узлов одного кластера на одном физическом компьютере.)

В каждом файле конфигурации укажите отдельный каталог данных и включите опцию конфигурации join для каждого узла с IP-адресом и портом другого узла в кластере. Если экземпляры работают не на одной машине, укажите bind=all в файле конфигурации (или --bind all в командной строке). Убедитесь, что каждый экземпляр на одном компьютере указывает разные значения для driver-port, cluster-port и http-port.

Опция bind=all представляет собой риск безопасности, если ваш компьютер открыт для интернета, и вы должны принять меры для предотвращения несанкционированного доступа. Подробнее см. на странице безопасности.

Запуск с launchd (OS X)

Если вы установили RethinkDB с помощью Homebrew, файл конфигурации launchd будет установлен за вас в ~/Library/LaunchAgents/, хотя его может потребоваться изменить.

Базовая настройка

Если вы не устанавливали с помощью Homebrew, вам нужно будет создать файл конфигурации launchd и решить, где хранить ваши файлы данных. Эти инструкции предполагают следующие расположения:

  • Бинарник RethinkDB, установленный официальным пакетом, в /usr/local/bin/rethinkdb
  • Каталог данных RethinkDB будет /Library/RethinkDB/data
  • Лог RethinkDB будет /var/log/rethinkdb.log

Если вы хотите использовать другие расположения, измените текст в файле соответственно.

Создайте /Library/LaunchDaemons/com.rethinkdb.server.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>com.rethinkdb.server</string>
  <key>ProgramArguments</key>
  <array>
      <string>/usr/local/bin/rethinkdb</string>
      <string>-d</string>
      <string>/Library/RethinkDB/data</string>
  </array>
  <key>StandardOutPath</key>
  <string>/var/log/rethinkdb.log</string>
  <key>StandardErrorPath</key>
  <string>/var/log/rethinkdb.log</string>
  <key>RunAtLoad</key>
  <true/>
  <key>KeepAlive</key>
  <true/>
  <key>LowPriorityIO</key>
  <false/>
</dict>
</plist>

Установите права владения этим файлом для пользователя root:

sudo chown root:wheel /Library/LaunchDaemons/com.rethinkdb.server.plist
sudo chmod 644 /Library/LaunchDaemons/com.rethinkdb.server.plist

Затем вам нужно будет создать каталог данных RethinkDB.

sudo mkdir -p /Library/RethinkDB
sudo rethinkdb create -d /Library/RethinkDB/data

Использование файла конфигурации RethinkDB

По умолчанию ни Homebrew, ни пример файла конфигурации выше не будут читать параметры из файла конфигурации. Если вы хотите использовать его, вам нужно выполнить следующие действия:

  • Загрузите файл образца конфигурации и скопируйте его в новое расположение.
cp default.conf.sample /etc/rethinkdb.conf
  • Отредактируйте файл конфигурации в вашем любимом редакторе. Хотя вы можете оставить многие параметры по умолчанию, вам определенно нужно изменить строку directory= в файле, чтобы указать путь к вашему каталогу данных.
sudo pico /etc/rethinkdb.conf
  • Отредактируйте /Library/LaunchDaemons/com.rethinkdb.server.plist для изменения ключа ProgramArguments, чтобы RethinkDB использовал ваш файл конфигурации.
<key>ProgramArguments</key>
<array>
    <string>/usr/local/bin/rethinkdb</string>
    <string>--config-file</string>
    <string>/etc/rethinkdb.conf</string>
</array>

Запуск экземпляров RethinkDB

Для запуска RethinkDB используйте launchctl:

sudo launchctl load /Library/LaunchDaemons/com.rethinkdb.server.plist

RethinkDB будет автоматически загружаться при запуске. Чтобы отключить это поведение, измените ключ RunAtLoad на <false/> в файле plist.

Несколько экземпляров

Запуск нескольких экземпляров RethinkDB на одном сервере может быть полезен для изоляции баз данных для отдельных приложений, работающих на одном сервере, или для целей тестирования. (Нет прироста производительности при запуске нескольких узлов одного кластера на одном физическом компьютере.)

Вам нужно будет создать новые копии файла com.rethinkdb.server.plist с разными именами (например, com.rethinkdb.server2.plist), внеся следующие изменения:

  • Установите значение ключа Label в имя файла (например, com.rethinkdb.server2.plist).
  • Установите ключ ProgramArguments в новый файл конфигурации (например, /etc/rethinkdb2.conf).
  • Установите ключи StandardOutPath и StandardErrorPath в новый файл журнала.

В каждом файле конфигурации укажите отдельный каталог данных и включите опцию конфигурации join для каждого узла с IP-адресом и портом другого узла в кластере. Если экземпляры работают не на одной машине, укажите bind=all в файле конфигурации (или --bind all в командной строке). Убедитесь, что каждый экземпляр на одном компьютере указывает разные значения для driver-port, cluster-port и http-port.

END_OF_DOCUMENT_MARKER

Опция bind=all представляет собой риск безопасности, если ваш компьютер подключен к интернету, и вам следует принять меры для предотвращения несанкционированного доступа. Подробнее см. на странице безопасности.

Под ОС OS X системные версии Python и Ruby ссылаются на старые версии OpenSSL, которые не поддерживают значения по умолчанию RethinkDB для TLS. Для использования этих драйверов под OS X сервер должен указать:

  • tls-min-protocol TLSv1
  • tls-ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH:AES256-SHA

Эти параметры могут быть заданы как параметры запуска rethinkdb или в файле конфигурации.

Запуск в качестве службы Windows

Сначала вам нужно создать файл конфигурации. Вы можете загрузить образец файла и настроить его, используя в качестве руководства документацию по файлу конфигурации. Наиболее важная строка для изменения — directory: она указывает на каталог данных RethinkDB. По умолчанию RethinkDB будет использовать c:\Windows\System32\rethinkdb_data.

Чтобы протестировать файл конфигурации перед его использованием, запустите RethinkDB вручную, указав конфигурацию с флагом --config-file:

rethinkdb.exe --config-file <config-file>

Чтобы фактически установить службу RethinkDB, выполните следующую команду:

rethinkdb.exe install-service --config-file <config-file>

Служба будет установлена под именем rethinkdb_default, и после установки будет автоматически запущена. Вы можете использовать вкладку «Службы» в диспетчере задач для мониторинга, остановки и перезапуска службы. По умолчанию REthinkDB настроен на автоматический запуск при запуске системы.

По умолчанию служба будет выполняться с правами пользователя «Система». Если вы хотите установить службу с помощью другого учетной записи пользователя, вы можете использовать параметры --runuser и --runuser-password:

rethinkdb.exe install-service --config-file <config-file> --runuser <domain>\<username> --runuser-password <password>

Если пользователь локальный, то <domain> — это имя сервера; в противном случае — это имя домена Windows или Active Directory, в котором находится запись пользователя.

Если вы хотите удалить службу RethinkDB:

rethinkdb.exe remove-service

И install-service и remove-service также принимают опцию --instance-name <name>, чтобы присвоить экземпляру RethinkDB определенное имя, которое будет отображаться в диспетчере служб. Это позволит вам запускать несколько экземпляров RethinkDB на одном сервере.

Особенности

  • Служба устанавливает расположения файла конфигурации и исполняемого файла rethinkdb.exe при установке. Если вы перемещаете любой из них, вам необходимо удалить службу и переустановить её.
  • Если вы измените параметры в файле конфигурации, для применения изменений необходимо перезапустить службу.

Устранение неполадок

Вы видите сообщение «получен неверный заголовок кластеризации»? RethinkDB использует три порта для работы — порт HTTP веб-интерфейса, порт драйверов клиентов и порт межкластерного трафика. Вы можете подключить браузер к порту веб-интерфейса для администрирования кластера прямо из браузера и подключить драйверы клиентов к порту драйверов клиентов для выполнения запросов из вашего приложения. Если вы работаете с кластером, разные узлы RethinkDB общаются друг с другом через порт межкластерного трафика.

Сообщение received invalid clustering header означает несоответствие портов и что что-то подключается к неправильному порту. Например, это сообщение часто появляется, если вы случайно направили браузер или подключили драйверы клиентов к порту межкластерного трафика.

© RethinkDB contributors
Licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
https://rethinkdb.com/docs/start-on-startup/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API