Files
tromcho.net/docs/installation/source.ru.md
Vitaliy Filippov a0cae4c180 Rename "jerasure" to "ec" in pool configuration, function names, fix documentation and Debian build scripts
Old pool configurations with "jerasure" also remain supported as an alias for "ec"
2022-06-03 15:40:00 +03:00

4.4 KiB
Raw Permalink Blame History

Документация → Установка → Сборка из исходных кодов


Read in English

Сборка из исходных кодов

Требования

  • gcc и g++ >= 8, либо clang >= 10, либо другой компилятор с поддержкой C++11 плюс назначенных инициализаторов (designated initializers) из C++20
  • CMake
  • Заголовки и библиотеки liburing, jerasure
  • Опционально - заголовки и библиотеки ISA-L, libibverbs
  • tcmalloc (google-perftools-dev)

Базовая инструкция

Скачайте исходные коды, например, из git: git clone --recurse-submodules https://yourcmc.ru/git/vitalif/vitastor/

Скачайте исходные коды пакета fio, распакуйте их и создайте символическую ссылку на них в директории исходников Vitastor: <vitastor>/fio. Либо, если вы не хотите собирать плагин fio, его можно исключить из сборки путём передачи -DWITH_FIO=no в cmake.

Собрать и установить Vitastor:

cd vitastor
mkdir build
cd build
cmake .. && make -j8 install

Драйвер QEMU

Драйвер QEMU (qemu_driver.c) рекомендуется собирать вместе с самим QEMU. Для этого:

  • Установите заголовки клиентской библиотеки Vitastor (из исходников или из пакета vitastor-client-dev)
  • Возьмите соответствующий патч из patches/qemu-*-vitastor.patch и примените его к исходникам QEMU
  • Скопируйте src/qemu_driver.c в директорию исходников QEMU как block/block-vitastor.c
  • Соберите QEMU как обычно

Однако в целях отладки драйвер также можно собирать отдельно от QEMU. Для этого:

  • Установите QEMU, возьмите исходные коды установленного пакета, начните его пересборку, через некоторое время остановите её и скопируйте следующие заголовки:
    • <qemu>/include<vitastor>/qemu/include
    • Debian:
      • Берите qemu из основного репозитория
      • <qemu>/b/qemu/config-host.h<vitastor>/qemu/b/qemu/config-host.h
      • <qemu>/b/qemu/qapi<vitastor>/qemu/b/qemu/qapi
    • CentOS 8:
      • Берите qemu из репозитория Advanced-Virtualization. Чтобы включить его, запустите yum install centos-release-advanced-virtualization.noarch и далее yum install qemu
      • <qemu>/config-host.h<vitastor>/qemu/b/qemu/config-host.h
      • Для QEMU 3.0+: <qemu>/qapi<vitastor>/qemu/b/qemu/qapi
      • Для QEMU 2.0+: <qemu>/qapi-types.h<vitastor>/qemu/b/qemu/qapi-types.h
    • config-host.h и qapi нужны, т.к. в них содержатся автогенерируемые заголовки
  • Сконфигурируйте cmake Vitastor с WITH_QEMU=yes (cmake .. -DWITH_QEMU=yes) и, если вы используете RHEL-подобый дистрибутив, также с QEMU_PLUGINDIR=qemu-kvm.
  • После этого в процессе сборки Vitastor также будет собираться подходящий для вашей версии QEMU block-vitastor.so.
  • Таким образом можно использовать драйвер даже с немодифицированным QEMU, но в этом случае диски Vitastor не будут работать через QAPI и через JSON-синтаксис -blockdev, а также потребуется устанавливать переменную окружения LD_PRELOAD=/usr/lib/x86_64-linux-gnu/qemu/block-vitastor.so.