diff --git a/README-ru.md b/README-ru.md
index 63b13963..3af0ec3b 100644
--- a/README-ru.md
+++ b/README-ru.md
@@ -6,8 +6,8 @@
Вернём былую скорость кластерному блочному хранилищу!
-Vitastor - распределённая блочная SDS (программная СХД), прямой аналог Ceph RBD и
-внутренних СХД популярных облачных провайдеров. Однако, в отличие от них, Vitastor
+Vitastor - распределённая блочная и файловая SDS (программная СХД), прямой аналог Ceph RBD и CephFS,
+а также внутренних СХД популярных облачных провайдеров. Однако, в отличие от них, Vitastor
быстрый и при этом простой. Только пока маленький :-).
Vitastor архитектурно похож на Ceph, что означает атомарность и строгую консистентность,
@@ -63,7 +63,7 @@ Vitastor поддерживает QEMU-драйвер, протоколы NBD и
- [fio](docs/usage/fio.ru.md) для тестов производительности
- [NBD](docs/usage/nbd.ru.md) для монтирования ядром
- [QEMU и qemu-img](docs/usage/qemu.ru.md)
- - [NFS](docs/usage/nfs.ru.md)-прокси для VMWare и подобных
+ - [NFS](docs/usage/nfs.ru.md) кластерная файловая система и псевдо-ФС прокси
- Производительность
- [Понимание сути производительности](docs/performance/understanding.ru.md)
- [Теоретический максимум](docs/performance/theoretical.ru.md)
diff --git a/README.md b/README.md
index a18e8999..f34b4590 100644
--- a/README.md
+++ b/README.md
@@ -6,9 +6,9 @@
Make Clustered Block Storage Fast Again.
-Vitastor is a distributed block SDS, direct replacement of Ceph RBD and internal SDS's
-of public clouds. However, in contrast to them, Vitastor is fast and simple at the same time.
-The only thing is it's slightly young :-).
+Vitastor is a distributed block and file SDS, direct replacement of Ceph RBD and CephFS,
+and also internal SDS's of public clouds. However, in contrast to them, Vitastor is fast
+and simple at the same time. The only thing is it's slightly young :-).
Vitastor is architecturally similar to Ceph which means strong consistency,
primary-replication, symmetric clustering and automatic data distribution over any
@@ -63,7 +63,7 @@ Read more details below in the documentation.
- [fio](docs/usage/fio.en.md) for benchmarks
- [NBD](docs/usage/nbd.en.md) for kernel mounts
- [QEMU and qemu-img](docs/usage/qemu.en.md)
- - [NFS](docs/usage/nfs.en.md) emulator for VMWare and similar
+ - [NFS](docs/usage/nfs.en.md) clustered file system and pseudo-FS proxy
- Performance
- [Understanding storage performance](docs/performance/understanding.en.md)
- [Theoretical performance](docs/performance/theoretical.en.md)
diff --git a/docs/intro/features.en.md b/docs/intro/features.en.md
index f58afd19..432a5bad 100644
--- a/docs/intro/features.en.md
+++ b/docs/intro/features.en.md
@@ -14,6 +14,7 @@
- Basic part: highly-available block storage with symmetric clustering and no SPOF
- [Performance](../performance/comparison1.en.md) ;-D
+- [Cluster file system](../usage/nfs.en.md#vitastorfs)
- [Multiple redundancy schemes](../config/pool.en.md#scheme): Replication, XOR n+1, Reed-Solomon erasure codes
based on jerasure and ISA-L libraries with any number of data and parity drives in a group
- Configuration via simple JSON data structures in etcd (parameters, pools and images)
@@ -46,13 +47,12 @@
- [CSI plugin for Kubernetes](../installation/kubernetes.en.md)
- [OpenStack support: Cinder driver, Nova and libvirt patches](../installation/openstack.en.md)
- [Proxmox storage plugin and packages](../installation/proxmox.en.md)
-- [Simplified NFS proxy for file-based image access emulation (suitable for VMWare)](../usage/nfs.en.md)
+- [Simplified NFS proxy for file-based image access emulation (suitable for VMWare)](../usage/nfs.en.md#pseudo-fs)
## Roadmap
The following features are planned for the future:
-- File system
- Control plane optimisation
- Other administrative tools
- Web GUI
diff --git a/docs/intro/features.ru.md b/docs/intro/features.ru.md
index 467b621c..7db765c4 100644
--- a/docs/intro/features.ru.md
+++ b/docs/intro/features.ru.md
@@ -14,6 +14,7 @@
- Базовая часть - надёжное кластерное блочное хранилище без единой точки отказа
- [Производительность](../performance/comparison1.ru.md) ;-D
+- [Кластерная файловая система](../usage/nfs.ru.md#vitastorfs)
- [Несколько схем отказоустойчивости](../config/pool.ru.md#scheme): репликация, XOR n+1 (1 диск чётности), коды коррекции ошибок
Рида-Соломона на основе библиотек jerasure и ISA-L с любым числом дисков данных и чётности в группе
- Конфигурация через простые человекочитаемые JSON-структуры в etcd
@@ -48,11 +49,10 @@
- [CSI-плагин для Kubernetes](../installation/kubernetes.ru.md)
- [Базовая поддержка OpenStack: драйвер Cinder, патчи для Nova и libvirt](../installation/openstack.ru.md)
- [Плагин для Proxmox](../installation/proxmox.ru.md)
-- [Упрощённая NFS-прокси для эмуляции файлового доступа к образам (подходит для VMWare)](../usage/nfs.ru.md)
+- [Упрощённая NFS-прокси для эмуляции файлового доступа к образам (подходит для VMWare)](../usage/nfs.ru.md#псевдо-фс)
## Планы развития
-- Файловая система
- Оптимизация слоя управления
- Другие инструменты администрирования
- Web-интерфейс
diff --git a/docs/intro/quickstart.en.md b/docs/intro/quickstart.en.md
index 7209ab10..f1360adb 100644
--- a/docs/intro/quickstart.en.md
+++ b/docs/intro/quickstart.en.md
@@ -14,6 +14,7 @@
- [Check cluster status](#check-cluster-status)
- [Create an image](#create-an-image)
- [Install plugins](#install-plugins)
+- [Create VitastorFS](#create-vitastorfs)
## Preparation
@@ -114,3 +115,9 @@ After that, you can [run benchmarks](../usage/fio.en.md) or [start QEMU manually
- [Proxmox](../installation/proxmox.en.md)
- [OpenStack](../installation/openstack.en.md)
- [Kubernetes CSI](../installation/kubernetes.en.md)
+
+## Create VitastorFS
+
+If you want to use clustered file system in addition to VM or container images:
+
+- [Follow the instructions here](../usage/nfs.en.md#vitastorfs)
diff --git a/docs/intro/quickstart.ru.md b/docs/intro/quickstart.ru.md
index 2585bf02..04359224 100644
--- a/docs/intro/quickstart.ru.md
+++ b/docs/intro/quickstart.ru.md
@@ -14,6 +14,7 @@
- [Проверьте состояние кластера](#проверьте-состояние-кластера)
- [Создайте образ](#создайте-образ)
- [Установите плагины](#установите-плагины)
+- [Создайте VitastorFS](#создайте-vitastorfs)
## Подготовка
@@ -116,3 +117,10 @@ vitastor-cli create -s 10G testimg
- [Proxmox](../installation/proxmox.ru.md)
- [OpenStack](../installation/openstack.ru.md)
- [Kubernetes CSI](../installation/kubernetes.ru.md)
+
+## Создайте VitastorFS
+
+Если вы хотите использовать не только блочные образы виртуальных машин или контейнеров,
+а также кластерную файловую систему, то:
+
+- [Следуйте инструкциям](../usage/nfs.en.md#vitastorfs)
diff --git a/docs/usage/nfs.en.md b/docs/usage/nfs.en.md
index 92cdf290..294e6a58 100644
--- a/docs/usage/nfs.en.md
+++ b/docs/usage/nfs.en.md
@@ -4,42 +4,146 @@
[Читать на русском](nfs.ru.md)
-# NFS
+# VitastorFS and pseudo-FS
-Vitastor has a simplified NFS 3.0 proxy for file-based image access emulation. It's not
-suitable as a full-featured file system, at least because all file/image metadata is stored
-in etcd and kept in memory all the time - thus you can't put a lot of files in it.
+Vitastor has two file system implementations. Both can be used via `vitastor-nfs`.
-However, NFS proxy is totally fine as a method to provide VM image access and allows to
-plug Vitastor into, for example, VMWare. It's important to note that for VMWare it's a much
-better access method than iSCSI, because with iSCSI we'd have to put all VM images into one
-Vitastor image exported as a LUN to VMWare and formatted with VMFS. VMWare doesn't use VMFS
-over NFS.
+Commands:
+- [mount](#mount)
+- [start](#start)
-NFS proxy is stateless if you use immediate_commit=all mode (for SSD with capacitors or
-HDDs with disabled cache), so you can run multiple NFS proxies and use a network load
-balancer or any failover method you want to in that case.
+## Pseudo-FS
-vitastor-nfs usage:
+Simplified pseudo-FS proxy is used for file-based image access emulation. It's not
+suitable as a full-featured file system: it lacks a lot of FS features, it stores
+all file/image metadata in memory and in etcd. So it's fine for hundreds or thousands
+of large files/images, but not for millions.
+
+Pseudo-FS proxy is intended for environments where other block volume access methods
+can't be used or impose additional restrictions - for example, VMWare. NFS is better
+for VMWare than, for example, iSCSI, because with iSCSI, VMWare puts all VM images
+into one large shared block image in its own VMFS file system, and with NFS, VMWare
+doesn't use VMFS and puts each VM disk in a regular file which is equal to one
+Vitastor block image, just as originally intended.
+
+To use Vitastor pseudo-FS locally, run `vitastor-nfs mount --block /mnt/vita`.
+
+Also you can start the network server:
```
-vitastor-nfs [STANDARD OPTIONS] [OTHER OPTIONS]
-
---subdir
export images prefixed / (default empty - export all images)
---portmap 0 do not listen on port 111 (portmap/rpcbind, requires root)
---bind bind service to address (default 0.0.0.0)
---nfspath set NFS export path to (default is /)
---port use port for NFS services (default is 2049)
---pool use as default pool for new files (images)
---foreground 1 stay in foreground, do not daemonize
+vitastor-nfs start --block --etcd_address 192.168.5.10:2379 --portmap 0 --port 2050 --pool testpool
```
-Example start and mount commands (etcd_address is optional):
+To mount the FS exported by this server, run:
```
-vitastor-nfs --etcd_address 192.168.5.10:2379 --portmap 0 --port 2050 --pool testpool
+mount server:/ /mnt/ -o port=2050,mountport=2050,nfsvers=3,soft,nolock,tcp
```
-```
-mount localhost:/ /mnt/ -o port=2050,mountport=2050,nfsvers=3,soft,nolock,tcp
-```
+## VitastorFS
+
+VitastorFS is a full-featured clustered (Read-Write-Many) file system. It supports most POSIX
+features like hierarchical organization, symbolic links, hard links, quick renames and so on.
+
+VitastorFS metadata is stored in a Parallel Optimistic B-Tree key-value database,
+implemented over a regular Vitastor block volume. Directory entries and inodes
+are stored in a simple human-readable JSON format in the B-Tree. `vitastor-kv` tool
+can be used to inspect the database.
+
+To use VitastorFS:
+
+1. Create a pool or choose an existing empty pool for FS data
+2. Create an image for FS metadata, preferably in a faster (SSD or replica-HDD) pool,
+ but you can create it in the data pool too if you want (image size doesn't matter):
+ `vitastor-cli create -s 10G -p fastpool testfs`
+3. Mark data pool as an FS pool: `vitastor-cli modify-pool --used-for-fs testfs data-pool`
+4. Either mount the FS: `vitastor-nfs mount --fs testfs --pool data-pool /mnt/vita`
+5. Or start the NFS server: `vitastor-nfs start --fs testfs --pool data-pool`
+
+### Supported POSIX features
+
+- Read-after-write semantics (read returns new data immediately after write)
+- Linear and random read and write
+- Writing outside current file size
+- Hierarchical structure, immediate rename of files and directories
+- File size change support (truncate)
+- Permissions (chmod/chown)
+- Flushing data to stable storage (if required) (fsync)
+- Symbolic links
+- Hard links
+- Special files (devices, sockets, named pipes)
+- File modification and attribute change time tracking (mtime and ctime)
+- Modification time (mtime) and last access time (atime) change support (utimes)
+- Correct handling of directory listing during file creation/deletion
+
+### Limitations
+
+POSIX features currently not implemented in VitastorFS:
+- File locking is not supported
+- Actually used space is not counted, so `du` always reports apparent file sizes
+ instead of actually allocated space
+- Access times (`atime`) are not tracked (like `-o noatime`)
+- Modification time (`mtime`) is updated lazily every second (like `-o lazytime`)
+
+Other notable missing features which should be addressed in the future:
+- Defragmentation of "shared" inodes. Files smaller than pool object size (block_size
+ multiplied by data part count if pool is EC) are internally stored in large block
+ volumes sequentially, one after another, and leave garbage after deleting or resizing.
+ Defragmentator will be implemented to collect this garbage.
+- Inode ID reuse. Currently inode IDs always grow, the limit is 2^48 inodes, so
+ in theory you may hit it if you create and delete a very large number of files
+- Compaction of the key-value B-Tree. Current implementation never merges or deletes
+ B-Tree blocks, so B-Tree may become bloated over time. Currently you can
+ use `vitastor-kv dumpjson` & `loadjson` commands to recreate the index in such
+ situations.
+- Filesystem check tool. VitastorFS doesn't have journal because it would impose a
+ severe performance hit, optimistic CAS-based transactions are used instead of it.
+ So, again, in theory an abnormal shutdown of the FS server may leave some garbage
+ in the DB. The FS is implemented is such way that this garbage doesn't affect its
+ function, but having a tool to clean it up still seems a right thing to do.
+
+## Horizontal scaling
+
+Linux NFS 3.0 client doesn't support built-in scaling or failover, i.e. you can't
+specify multiple server addresses when mounting the FS.
+
+However, you can use any regular TCP load balancing over multiple NFS servers.
+It's absolutely safe with `immediate_commit=all` and `client_enable_writeback=false`
+settings, because Vitastor NFS proxy doesn't keep uncommitted data in memory
+with these settings. But it may even work without `immediate_commit=all` because
+the Linux NFS client repeats all uncommitted writes if it loses the connection.
+
+## Commands
+
+### mount
+
+`vitastor-nfs (--fs | --block) [-o ] mount `
+
+Start local filesystem server and mount file system to .
+
+Use regular `umount ` to unmount the FS.
+
+The server will be automatically stopped when the FS is unmounted.
+
+| `-o|--options ` | Pass additional NFS mount options (ex.: -o async). |
+
+### start
+
+`vitastor-nfs (--fs | --block) start`
+
+Start network NFS server. Options:
+
+| `--bind ` | bind service to address (default 0.0.0.0) |
+| `--port ` | use port for NFS services (default is 2049) |
+| `--portmap 0` | do not listen on port 111 (portmap/rpcbind, requires root) |
+
+## Common options
+
+| `--fs ` | use VitastorFS with metadata in image |
+| `--block` | use pseudo-FS presenting images as files |
+| `--pool ` | use as default pool for new files |
+| `--subdir ` | export instead of root directory |
+| `--nfspath ` | set NFS export path to (default is /) |
+| `--pidfile ` | write process ID to the specified file |
+| `--logfile ` | log to the specified file |
+| `--foreground 1` | stay in foreground, do not daemonize |
diff --git a/docs/usage/nfs.ru.md b/docs/usage/nfs.ru.md
index 73025d2c..51d089ff 100644
--- a/docs/usage/nfs.ru.md
+++ b/docs/usage/nfs.ru.md
@@ -4,41 +4,152 @@
[Read in English](nfs.en.md)
-# NFS
+# VitastorFS и псевдо-ФС
-В Vitastor реализована упрощённая NFS 3.0 прокси для эмуляции файлового доступа к образам.
-Это не полноценная файловая система, т.к. метаданные всех файлов (образов) сохраняются
-в etcd и всё время хранятся в оперативной памяти - то есть, положить туда много файлов
-не получится.
+В Vitastor есть две реализации файловой системы. Обе используются через `vitastor-nfs`.
-Однако в качестве способа доступа к образам виртуальных машин NFS прокси прекрасно подходит
-и позволяет подключить Vitastor, например, к VMWare.
+Команды:
+- [mount](#mount)
+- [start](#start)
-При этом, если вы используете режим immediate_commit=all (для SSD с конденсаторами или HDD
-с отключённым кэшем), то NFS-сервер не имеет состояния и вы можете свободно поднять
-его в нескольких экземплярах и использовать поверх них сетевой балансировщик нагрузки или
-схему с отказоустойчивостью.
+## Псевдо-ФС
-Использование vitastor-nfs:
+Упрощённая реализация псевдо-ФС используется для эмуляции файлового доступа к блочным
+образам Vitastor. Это не полноценная файловая система - в ней отсутствуют многие функции
+POSIX ФС, а метаданные всех файлов (образов) сохраняются в etcd и всё время хранятся в
+оперативной памяти - то есть, псевдо-ФС подходит для сотен или тысяч файлов, но не миллионов.
+
+Псевдо-ФС предназначена для доступа к образам виртуальных машин в средах, где другие
+способы невозможны или неудобны - например, в VMWare. Для VMWare это лучшая опция, чем
+iSCSI, так как при использовании iSCSI VMWare размещает все виртуальные машины в одном
+большом блочном образе внутри собственной ФС VMFS, а с NFS VMFS не используется и каждый
+диск ВМ представляется в виде одного файла, то есть, соответствует одному блочному образу
+Vitastor, как это и задумано изначально.
+
+Чтобы подключить псевдо-ФС Vitastor, выполните команду `vitastor-nfs mount --block /mnt/vita`.
+
+Либо же запустите сетевой вариант сервера:
```
-vitastor-nfs [СТАНДАРТНЫЕ ОПЦИИ] [ДРУГИЕ ОПЦИИ]
-
---subdir экспортировать "поддиректорию" - образы с префиксом имени / (по умолчанию пусто - экспортировать все образы)
---portmap 0 отключить сервис portmap/rpcbind на порту 111 (по умолчанию включён и требует root привилегий)
---bind принимать соединения по адресу (по умолчанию 0.0.0.0 - на всех)
---nfspath установить путь NFS-экспорта в (по умолчанию /)
---port использовать порт для NFS-сервисов (по умолчанию 2049)
---pool использовать пул для новых образов (обязательно, если пул в кластере не один)
---foreground 1 не уходить в фон после запуска
+vitastor-nfs start --block --etcd_address 192.168.5.10:2379 --portmap 0 --port 2050 --pool testpool
```
-Пример монтирования Vitastor через NFS (etcd_address необязателен):
+Примонтировать ФС, запущенную с такими опциями, можно следующей командой:
```
-vitastor-nfs --etcd_address 192.168.5.10:2379 --portmap 0 --port 2050 --pool testpool
+mount server:/ /mnt/ -o port=2050,mountport=2050,nfsvers=3,soft,nolock,tcp
```
-```
-mount localhost:/ /mnt/ -o port=2050,mountport=2050,nfsvers=3,soft,nolock,tcp
-```
+## VitastorFS
+
+VitastorFS - полноценная кластерная (Read-Write-Many) файловая система. Она поддерживает
+большую часть функций POSIX - иерархическую организацию, символические ссылки, жёсткие
+ссылки, быстрые переименования и так далее.
+
+Метаданные VitastorFS хранятся в собственной реализации БД формата ключ-значения,
+основанной на Параллельном Оптимистичном Б-дереве поверх обычного блочного образа Vitastor.
+И записи каталогов, и иноды, как обычно в Vitastor, хранятся в простом человекочитаемом
+JSON-формате :-). Для инспекции содержимого БД можно использовать инструмент `vitastor-kv`.
+
+Чтобы использовать VitastorFS:
+
+1. Создайте пул для данных ФС или выберите существующий пустой пул
+2. Создайте блочный образ для метаданных ФС, желательно, в более быстром пуле (на SSD
+ или по крайней мере на HDD, но без EC), но можно и в том же пуле, что данные
+ (размер образа значения не имеет):
+ `vitastor-cli create -s 10G -p fastpool testfs`
+3. Пометьте пул данных как ФС-пул: `vitastor-cli modify-pool --used-for-fs testfs data-pool`
+4. Либо примонтируйте ФС: `vitastor-nfs mount --fs testfs --pool data-pool /mnt/vita`
+5. Либо запустите сетевой NFS-сервер: `vitastor-nfs start --fs testfs --pool data-pool`
+
+### Поддерживаемые функции POSIX
+
+- Чтение актуальной версии данных сразу после записи
+- Последовательное и произвольное чтение и запись
+- Запись за пределами текущего размера файла
+- Иерархическая организация, мгновенное переименование файлов и каталогов
+- Изменение размера файла (truncate)
+- Права на файлы (chmod/chown)
+- Фиксация данных на диски (когда необходимо) (fsync)
+- Символические ссылки
+- Жёсткие ссылки
+- Специальные файлы (устройства, сокеты, каналы)
+- Отслеживание времён модификации (mtime), изменения атрибутов (ctime)
+- Ручное изменение времён модификации (mtime), последнего доступа (atime)
+- Корректная обработка изменений списка файлов во время листинга
+
+### Ограничения
+
+Отсутствующие на данный момент в VitastorFS функции POSIX:
+- Блокировки файлов не поддерживаются
+- Фактически занятое файлами место не подсчитывается и не возвращается вызовами
+ stat(2), так что `du` всегда показывает сумму размеров файлов, а не фактически занятое место
+- Времена доступа (`atime`) не отслеживаются (как будто ФС смонтирована с `-o noatime`)
+- Времена модификации (`mtime`) отслеживаются асинхронно (как будто ФС смонтирована с `-o lazytime`)
+
+Другие недостающие функции, которые нужно добавить в будущем:
+- Дефрагментация "общих инодов". На уровне реализации ФС файлы, меньшие, чем размер
+ объекта пула (block_size умножить на число частей данных, если пул EC),
+ упаковываются друг за другом в большие "общие" иноды/тома. Если такие файлы удалять
+ или увеличивать, они перемещаются и оставляют за собой "мусор", вот тут-то и нужен
+ дефрагментатор.
+- Переиспользование номеров инодов. В текущей реализации номера инодов всё время
+ увеличиваются, так что в теории вы можете упереться в лимит, если насоздаёте
+ и наудаляете больше, чем 2^48 файлов.
+- Очистка места в Б-дереве метаданных. Текущая реализация никогда не сливает и не
+ удаляет блоки Б-дерева, так что в теории дерево может разростись и стать неоптимальным.
+ Если вы столкнётесь с такой ситуацией сейчас, вы можете решить её с помощью
+ команд `vitastor-kv dumpjson` и `loadjson` (т.е. пересоздав и загрузив обратно все метаданные ФС).
+- Инструмент проверки метаданных файловой системы. У VitastorFS нет журнала, так как
+ журнал бы сильно замедлил реализацию, вместо него используются оптимистичные
+ транзакции на основе CAS (сравнить-и-записать), и теоретически при нештатном
+ завершении сервера ФС в БД также могут оставаться неконсистентные "мусорные"
+ записи. ФС устроена так, что на работу они не влияют, но для порядка и их стоит
+ уметь подчищать.
+
+## Горизонтальное масштабирование
+
+Клиент Linux NFS 3.0 не поддерживает встроенное масштабирование или отказоустойчивость.
+То есть, вы не можете задать несколько адресов серверов при монтировании ФС.
+
+Однако вы можете использовать любые стандартные сетевые балансировщики нагрузки
+или схемы с отказоустойчивостью. Это точно безопасно при настройках `immediate_commit=all` и
+`client_enable_writeback=false`, так как с ними NFS-сервер Vitastor вообще не хранит
+в памяти ещё не зафиксированные на дисках данные; и вполне вероятно безопасно
+даже без `immediate_commit=all`, потому что NFS-клиент ядра Linux повторяет все
+незафиксированные запросы при потере соединения.
+
+## Команды
+
+### mount
+
+`vitastor-nfs (--fs | --block) mount [-o ] `
+
+Запустить локальный сервер и примонтировать ФС в директорию .
+
+Чтобы отмонтировать ФС, используйте обычную команду `umount `.
+
+Сервер автоматически останавливается при отмонтировании ФС.
+
+| `-o|--options ` | Передать дополнительные опции монтирования NFS (пример: -o async). |
+
+### start
+
+`vitastor-nfs (--fs | --block) start`
+
+Запустить сетевой NFS-сервер. Опции:
+
+| `--bind ` | принимать соединения по адресу (по умолчанию 0.0.0.0 - на всех) |
+| `--port ` | использовать порт для NFS-сервисов (по умолчанию 2049) |
+| `--portmap 0` | отключить сервис portmap/rpcbind на порту 111 (по умолчанию включён и требует root привилегий) |
+
+## Общие опции
+
+| `--fs ` | использовать VitastorFS с метаданными в образе |
+| `--block` | использовать псевдо-ФС для доступа к блочным образам |
+| `--pool ` | использовать пул для новых файлов (обязательно, если пул в кластере не один) |
+| `--subdir ` | экспортировать подкаталог , а не корень ФС |
+| `--nfspath ` | установить путь NFS-экспорта в (по умолчанию /) |
+| `--pidfile ` | записать ID процесса в заданный файл |
+| `--logfile ` | записывать логи в заданный файл |
+| `--foreground 1` | не уходить в фон после запуска |