Document NFS-RDMA
This commit is contained in:
@@ -36,6 +36,7 @@
|
|||||||
- [Clustered file system](../usage/nfs.en.md#vitastorfs)
|
- [Clustered file system](../usage/nfs.en.md#vitastorfs)
|
||||||
- [Experimental internal etcd replacement - antietcd](../config/monitor.en.md#use_antietcd)
|
- [Experimental internal etcd replacement - antietcd](../config/monitor.en.md#use_antietcd)
|
||||||
- [Built-in Prometheus metric exporter](../config/monitor.en.md#enable_prometheus)
|
- [Built-in Prometheus metric exporter](../config/monitor.en.md#enable_prometheus)
|
||||||
|
- [NFS RDMA support](../usage/nfs.en.md#rdma) (probably also usable for GPUDirect)
|
||||||
|
|
||||||
## Plugins and tools
|
## Plugins and tools
|
||||||
|
|
||||||
|
|||||||
@@ -38,6 +38,7 @@
|
|||||||
- [Кластерная файловая система](../usage/nfs.ru.md#vitastorfs)
|
- [Кластерная файловая система](../usage/nfs.ru.md#vitastorfs)
|
||||||
- [Экспериментальная встроенная замена etcd - antietcd](../config/monitor.ru.md#use_antietcd)
|
- [Экспериментальная встроенная замена etcd - antietcd](../config/monitor.ru.md#use_antietcd)
|
||||||
- [Встроенный Prometheus-экспортер метрик](../config/monitor.ru.md#enable_prometheus)
|
- [Встроенный Prometheus-экспортер метрик](../config/monitor.ru.md#enable_prometheus)
|
||||||
|
- [Поддержка NFS RDMA](../usage/nfs.ru.md#rdma) (вероятно, также подходящая для GPUDirect)
|
||||||
|
|
||||||
## Драйверы и инструменты
|
## Драйверы и инструменты
|
||||||
|
|
||||||
|
|||||||
+25
-5
@@ -111,6 +111,21 @@ 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
|
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.
|
the Linux NFS client repeats all uncommitted writes if it loses the connection.
|
||||||
|
|
||||||
|
## RDMA
|
||||||
|
|
||||||
|
vitastor-nfs supports NFS over RDMA, which, in theory, should also allow to use
|
||||||
|
VitastorFS from GPUDirect.
|
||||||
|
|
||||||
|
You can test NFS-RDMA even if you don't have an RDMA NIC using SoftROCE:
|
||||||
|
|
||||||
|
1. First, add SoftROCE device on both servers: `rdma link add rxe0 type rxe netdev eth0`.
|
||||||
|
Here, `rdma` utility is a part the iproute2 package, and `eth0` should be replaced with
|
||||||
|
the name of your Ethernet NIC.
|
||||||
|
|
||||||
|
2. Start vitastor-nfs with RDMA: `vitastor-nfs start (--fs <NAME> | --block) --pool <POOL> --port 20049 --nfs_rdma 20049 --portmap 0`
|
||||||
|
|
||||||
|
3. Mount the FS: `mount 192.168.0.10:/mnt/test/ /mnt/vita/ -o port=20049,mountport=20049,nfsvers=3,soft,nolock,rdma`
|
||||||
|
|
||||||
## Commands
|
## Commands
|
||||||
|
|
||||||
### mount
|
### mount
|
||||||
@@ -131,11 +146,16 @@ The server will be automatically stopped when the FS is unmounted.
|
|||||||
|
|
||||||
Start network NFS server. Options:
|
Start network NFS server. Options:
|
||||||
|
|
||||||
| <!-- --> | <!-- --> |
|
| <!-- --> | <!-- --> |
|
||||||
|-----------------|------------------------------------------------------------|
|
|------------------------|-----------------------------------------------------------------------------------------------------------------------------|
|
||||||
| `--bind <IP>` | bind service to \<IP> address (default 0.0.0.0) |
|
| `--bind <IP>` | bind service to \<IP> address (default 0.0.0.0) |
|
||||||
| `--port <PORT>` | use port \<PORT> for NFS services (default is 2049) |
|
| `--port <PORT>` | use port \<PORT> for NFS services (default is 2049). Specify "auto" to auto-select and print port |
|
||||||
| `--portmap 0` | do not listen on port 111 (portmap/rpcbind, requires root) |
|
| `--portmap 0` | do not listen on port 111 (portmap/rpcbind, requires root) |
|
||||||
|
| `--nfs_rdma <PORT>` | enable NFS-RDMA at RDMA-CM port \<PORT> (you can try 20049). If RDMA is enabled and --port is set to 0, TCP will be disabled |
|
||||||
|
| `--nfs_rdma_credit 16` | maximum operation credit for RDMA clients (max iodepth) |
|
||||||
|
| `--nfs_rdma_send 1024` | maximum RDMA send operation count (should be larger than iodepth) |
|
||||||
|
| `--nfs_rdma_alloc 1M` | RDMA memory allocation rounding |
|
||||||
|
| `--nfs_rdma_gc 64M` | maximum unused RDMA buffers |
|
||||||
|
|
||||||
### upgrade
|
### upgrade
|
||||||
|
|
||||||
|
|||||||
+25
-5
@@ -116,6 +116,21 @@ JSON-формате :-). Для инспекции содержимого БД
|
|||||||
даже без `immediate_commit=all`, потому что NFS-клиент ядра Linux повторяет все
|
даже без `immediate_commit=all`, потому что NFS-клиент ядра Linux повторяет все
|
||||||
незафиксированные запросы при потере соединения.
|
незафиксированные запросы при потере соединения.
|
||||||
|
|
||||||
|
## RDMA
|
||||||
|
|
||||||
|
vitastor-nfs поддерживает NFS через RDMA. В теории это также должно позволять использовать
|
||||||
|
VitastorFS из GPUDirect.
|
||||||
|
|
||||||
|
Вы можете протестировать NFS-RDMA, даже если у вас нет RDMA-карты, с помощью SoftROCE:
|
||||||
|
|
||||||
|
1. Сначала создайте SoftROCE устройства на обоих тестовых серверах: `rdma link add rxe0 type rxe netdev eth0`.
|
||||||
|
Утилита `rdma` входит в состав пакета iproute2, а `eth0` вам нужно заменить на имя своей
|
||||||
|
сетевой карты.
|
||||||
|
|
||||||
|
2. Запустите vitastor-nfs с RDMA: `vitastor-nfs start (--fs <NAME> | --block) --pool <POOL> --port 20049 --nfs_rdma 20049 --portmap 0`
|
||||||
|
|
||||||
|
3. Смонтируйте ФС: `mount 192.168.0.10:/mnt/test/ /mnt/vita/ -o port=20049,mountport=20049,nfsvers=3,soft,nolock,rdma`
|
||||||
|
|
||||||
## Команды
|
## Команды
|
||||||
|
|
||||||
### mount
|
### mount
|
||||||
@@ -136,11 +151,16 @@ JSON-формате :-). Для инспекции содержимого БД
|
|||||||
|
|
||||||
Запустить сетевой NFS-сервер. Опции:
|
Запустить сетевой NFS-сервер. Опции:
|
||||||
|
|
||||||
| <!-- --> | <!-- --> |
|
| <!-- --> | <!-- --> |
|
||||||
|-----------------|-----------------------------------------------------------------------|
|
|------------------------|-----------------------------------------------------------------------------------------------------------------------------|
|
||||||
| `--bind <IP>` | принимать соединения по адресу \<IP> (по умолчанию 0.0.0.0 - на всех) |
|
| `--bind <IP>` | принимать соединения по адресу \<IP> (по умолчанию 0.0.0.0 - на всех) |
|
||||||
| `--port <PORT>` | использовать порт \<PORT> для NFS-сервисов (по умолчанию 2049) |
|
| `--port <PORT>` | использовать порт \<PORT> для NFS-сервисов (по умолчанию 2049). Укажите "auto", чтобы выбрать и напечатать случайный порт |
|
||||||
| `--portmap 0` | отключить сервис portmap/rpcbind на порту 111 (по умолчанию включён и требует root привилегий) |
|
| `--portmap 0` | отключить сервис portmap/rpcbind на порту 111 (по умолчанию включён и требует root привилегий) |
|
||||||
|
| `--nfs_rdma <PORT>` | включить NFS-RDMA на порту RDMA-CM \<PORT> (попробуйте 20049). Если RDMA включено и указано `--port 0`, TCP будет отключено |
|
||||||
|
| `--nfs_rdma_credit 16` | максимальный "кредит", глубина очереди для NFS-клиентов |
|
||||||
|
| `--nfs_rdma_send 1024` | максимальное число операций RDMA отправки (должно быть больше nfs_rdma_credit) |
|
||||||
|
| `--nfs_rdma_alloc 1M` | округление выделения памяти для RDMA-клиентов |
|
||||||
|
| `--nfs_rdma_gc 64M` | максимальный объём неиспользуемой памяти RDMA-клиентом перед освобождением |
|
||||||
|
|
||||||
### upgrade
|
### upgrade
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user