Запуск и остановка экземпляров
В этом разделе описано управление экземплярами в кластере Tarantool с помощью утилиты tt. Кластер может включать несколько экземпляров, выполняющих разный код. Типичный пример - кластерное приложение, включающее экземпляры роутеров и хранилищ. В частности, доступны следующие действия:
- Запуск всех экземпляров в кластере или отдельных экземпляров.
- Проверка статуса экземпляров.
- Подключение к конкретному экземпляру.
- Остановка всех экземпляров или отдельных экземпляров.
Подробнее о том, как может выглядеть структура приложения, см. в разделе Окружение и структура приложения.
Для запуска экземпляров Tarantool используйте команду tt start:
$ tt start sharded_cluster_crud• Starting an instance [sharded_cluster_crud:storage-a-001]...• Starting an instance [sharded_cluster_crud:storage-a-002]...• Starting an instance [sharded_cluster_crud:storage-b-001]...• Starting an instance [sharded_cluster_crud:storage-b-002]...• Starting an instance [sharded_cluster_crud:router-a-001]...
После запуска кластера и его работы в течение некоторого времени артефакты можно найти в каталогах, указанных в
конфигурации tt. Ниже приведены расположения по умолчанию в локальном
режиме запуска:
sharded_cluster_crud/var/log/<instance_name>/– журналы экземпляра.sharded_cluster_crud/var/lib/<instance_name>/– снимки и журналы упреждающей записи.sharded_cluster_crud/var/run/<instance_name>/– управляющие сокеты и PID-файлы.
В системном режиме запуска артефакты создаются в следующих расположениях:
/var/log/tarantool/<instance_name>/;/var/lib/tarantool/<instance_name>/;/var/run/tarantool/<instance_name>/.
Большинство команд, описанных в этом разделе, можно вызывать как с указанием имени экземпляра, так и без него.
Без указания имени экземпляра команда выполняется для всех экземпляров, определенных в файле instances.yaml.
Чтобы проверить статус экземпляров, выполните команду tt status:
$ tt status sharded_cluster_crudINSTANCE STATUS PID MODE CONFIG BOX UPSTREAMsharded_cluster_crud:router-a-001 RUNNING 8382 RW ready running --sharded_cluster_crud:storage-a-001 RUNNING 8386 RW ready running --sharded_cluster_crud:storage-a-002 RUNNING 8390 RO ready running --sharded_cluster_crud:storage-b-001 RUNNING 8379 RW ready running --sharded_cluster_crud:storage-b-002 RUNNING 8380 RO ready running --
Для проверки статуса конкретного экземпляра укажите его имя:
$ tt status sharded_cluster_crud:storage-a-001INSTANCE STATUS PID MODE CONFIG BOX UPSTREAMsharded_cluster_crud:storage-a-001 RUNNING 8386 RW ready running --
Для подключения к экземпляру используйте команду tt connect:
$ tt connect sharded_cluster_crud:storage-a-001• Connecting to the instance...• Connected to sharded_cluster_crud:storage-a-001sharded_cluster_crud:storage-a-001>
В консоли экземпляра можно выполнять команды, предоставляемые модулем box. Например, с помощью команды box.info можно получить различную информацию о запущенном экземпляре:
sharded_cluster_crud:storage-a-001> box.info.ro---- false...
Для перезапуска экземпляра используйте команду tt restart:
$ tt restart sharded_cluster_crud:storage-a-002
После выполнения tt restart необходимо подтвердить эту операцию:
Confirm restart of 'sharded_cluster_crud:storage-a-002' [y/n]: y• The Instance sharded_cluster_crud:storage-a-002 (PID = 2026) has been terminated.• Starting an instance [sharded_cluster_crud:storage-a-002]...
Для остановки конкретного экземпляра используйте команду tt stop:
$ tt stop sharded_cluster_crud:storage-a-002
Также можно остановить все экземпляры сразу:
$ tt stop sharded_cluster_crud• The Instance sharded_cluster_crud:storage-b-001 (PID = 2020) has been terminated.• The Instance sharded_cluster_crud:storage-b-002 (PID = 2021) has been terminated.• The Instance sharded_cluster_crud:router-a-001 (PID = 2022) has been terminated.• The Instance sharded_cluster_crud:storage-a-001 (PID = 2023) has been terminated.• can't "stat" the PID file. Error: "stat /home/testuser/myapp/instances.enabled/sharded_cluster_crud/var/run/storage-a-002/tt.pid: no such file or directory"
Команда tt clean удаляет артефакты экземпляра (например, журналы или снимки):
$ tt clean sharded_cluster_crud• List of files to delete:• /home/testuser/myapp/instances.enabled/sharded_cluster_crud/var/log/storage-a-001/tt.log• /home/testuser/myapp/instances.enabled/sharded_cluster_crud/var/lib/storage-a-001/00000000000000001062.snap• /home/testuser/myapp/instances.enabled/sharded_cluster_crud/var/lib/storage-a-001/00000000000000001062.xlog• ...Confirm [y/n]:
Введите y и нажмите Enter для подтверждения удаления артефактов каждого экземпляра.
В Tarantool поддерживается загрузка и выполнение фрагментов Lua-кода перед запуском экземпляров. Для загрузки
или выполнения Lua-кода непосредственно при запуске Tarantool задайте переменную окружения TT_PRELOAD.
Ее значением может быть путь к Lua-скрипту или имя Lua-модуля:
-
Чтобы запустить Lua-скрипт
preload_script.luaиз каталогаsharded_cluster_crud, задайтеTT_PRELOADследующим образом:$ TT_PRELOAD=preload_script.lua tt start sharded_cluster_crudTarantool выполняет код из
preload_script.lua, дожидается его завершения, а затем запускает экземпляры. -
Чтобы загрузить модуль
preload_moduleиз каталогаsharded_cluster_crud, задайтеTT_PRELOADследующим образом:$ TT_PRELOAD=preload_module tt start sharded_cluster_crud
Для загрузки нескольких скриптов или модулей передайте их в одной строке в кавычках, разделив точкой с запятой:
$ TT_PRELOAD="preload_script.lua;preload_module" tt start sharded_cluster_crud
Если при выполнении предварительно загружаемого скрипта или модуля происходит ошибка, Tarantool сообщает о проблеме и завершает работу.