Files
tromcho.net/docs/usage/ublk.ru.md
T

3.9 KiB

Документация → Использование → ublk


Read in English

UBLK

ublk - это новый Linux-интерфейс на основе io_uring для реализации блочных устройств в пространстве пользователя, доступный, начиная с Linux 6.0.

ublk тоже копирует память (т.е. не является zero-copy), но всё равно на данный момент является самым быстрым интерфейсом ядерного блочного устройства и обгоняет и NBD, и VDUSE. Также он позволяет оживлять устройства, у которых умер сервер (процесс-обработчик vitastor-ublk).

Поддерживаются следующие команды:

map

Чтобы создать локальное блочное устройство для образа, выполните команду:

vitastor-ublk map [/dev/ublkbN] --image testimg

Команда напечатает название блочного устройства вида /dev/ublkb0, которое потом можно будет использовать как обычный диск.

Для обращения по номеру инода, аналогично другим командам, можно использовать опции --pool <POOL> --inode <INODE> --size <SIZE> вместо --image testimg.

vitastor-ublk поддерживает все обычные опции Vitastor, например, --config_path <path_to_config>, плюс специфичные для ublk:

  • --recover
    Восстановить ранее подключённое устройство, у которого умер обработчик.
  • --queue_depth 256
    Максимальная глубина очереди устройства.
  • --max_io_size 1M
    Максимальный размер запроса ввода-вывода для устройства. По умолчанию: max(1 MB, блок данных пула * число частей данных EC).
  • --readonly
    Подключить устройство в режиме только для чтения.
  • --hdd
    Пометить устройство как вращающийся жёсткий диск (флаг rotational).
  • --logfile /path/to/log/file.txt
    Писать сообщения о процессе работы в заданный файл, вместо пропуска их при фоновом режиме запуска или печати на стандартный вывод при запуске в консоли с --foreground 1.
  • --dev_num N
    Использовать заданное устройство /dev/ublkbN вместо автоматического подбора.
  • --foreground 1
    Не уводить процесс в фоновый режим.

Обратите внимание, что опции ublk_queue_depth и ublk_max_io_size можно также задавать в /etc/vitastor/vitastor.conf или в другом файле конфигурации, заданном опцией --config_path.

unmap

Для отключения устройства выполните:

vitastor-ublk unmap /dev/ublkb0

ls

vitastor-ublk ls [--json]

Вывести подключённые устройства.

Пример вывода в обычном формате:

/dev/ublkb0
image: bench
pid: 584536

/dev/ublkb1
image: bench1
pid: 584546

Пример вывода в JSON-формате:

{"/dev/ublkb0": {"image": "bench", "pid": 584536}, "/dev/ublkb1": {"image": "bench1", "pid": 584546}}