92 lines
4.3 KiB
Markdown
92 lines
4.3 KiB
Markdown
[Документация](../../README-ru.md#документация) → Использование → NBD
|
||
|
||
-----
|
||
|
||
[Read in English](nbd.en.md)
|
||
|
||
# NBD
|
||
|
||
NBD расшифровывается как "сетевое блочное устройство", но на самом деле оно также
|
||
работает просто как аналог FUSE для блочных устройств, то есть, представляет собой
|
||
"блочное устройство в пространстве пользователя".
|
||
|
||
NBD на данный момент необходимо, чтобы монтировать диски Vitastor ядром Linux.
|
||
NBD немного снижает производительность из-за дополнительных копирований памяти,
|
||
но она всё равно остаётся на неплохом уровне (см. для примера [тест](../performance/comparison1.ru.md#vitastor-0-4-0-nbd)).
|
||
|
||
Смотрите также [VDUSE](qemu.ru.md#vduse), как лучшую альтернативу NBD.
|
||
|
||
CSI-драйвер Kubernetes Vitastor использует NBD, когда VDUSE недоступен.
|
||
|
||
## Подключить устройство
|
||
|
||
Чтобы создать локальное блочное устройство для образа, выполните команду:
|
||
|
||
```
|
||
vitastor-nbd map --image testimg
|
||
```
|
||
|
||
Команда напечатает название блочного устройства вида /dev/nbd0, которое потом можно
|
||
будет использовать как обычный диск.
|
||
|
||
Для обращения по номеру инода, аналогично другим командам, можно использовать опции
|
||
`--pool <POOL> --inode <INODE> --size <SIZE>` вместо `--image testimg`.
|
||
|
||
vitastor-nbd поддерживает все обычные опции Vitastor, например, `--config_file <path_to_config>`,
|
||
плюс специфичные для NBD:
|
||
|
||
* `--nbd_timeout 30` \
|
||
Максимальное время выполнения любой операции чтения/записи в секундах, при
|
||
превышении которого ядро остановит NBD-устройство. Вы можете установить опцию
|
||
в 0, чтобы отключить ограничение времени, но имейте в виду, что в этом случае
|
||
вы вообще не сможете отключить NBD-устройство при нештатном завершении процесса
|
||
vitastor-nbd.
|
||
* `--nbd_max_devices 64 --nbd_max_part 3` \
|
||
Опции, передаваемые модулю ядра nbd, если его загружает vitastor-nbd
|
||
(`nbds_max` и `max_part`). Имейте в виду, что (nbds_max)*(1+max_part)
|
||
обычно не должно превышать 256.
|
||
* `--logfile /path/to/log/file.txt` \
|
||
Писать сообщения о процессе работы в заданный файл, вместо пропуска их
|
||
при фоновом режиме запуска или печати на стандартный вывод при запуске
|
||
в консоли с `--foreground 1`.
|
||
* `--dev_num N` \
|
||
Использовать заданное устройство `/dev/nbdN` вместо автоматического подбора.
|
||
* `--foreground 1` \
|
||
Не уводить процесс в фоновый режим.
|
||
|
||
Обратите внимание, что опции `nbd_timeout`, `nbd_max_devices` и `nbd_max_part` можно
|
||
также задавать в `/etc/vitastor/vitastor.conf` или в другом файле конфигурации,
|
||
заданном опцией `--config_file`.
|
||
|
||
## Отключить устройство
|
||
|
||
Для отключения устройства выполните:
|
||
|
||
```
|
||
vitastor-nbd unmap /dev/nbd0
|
||
```
|
||
|
||
## Вывести подключённые устройства
|
||
|
||
```
|
||
vitastor-nbd ls [--json]
|
||
```
|
||
|
||
Пример вывода в обычном формате:
|
||
|
||
```
|
||
/dev/nbd0
|
||
image: bench
|
||
pid: 584536
|
||
|
||
/dev/nbd1
|
||
image: bench1
|
||
pid: 584546
|
||
```
|
||
|
||
Пример вывода в JSON-формате:
|
||
|
||
```
|
||
{"/dev/nbd0": {"image": "bench", "pid": 584536}, "/dev/nbd1": {"image": "bench1", "pid": 584546}}
|
||
```
|