1 What: /sys/class/rnbd-client 1 What: /sys/class/rnbd-client 2 Date: Feb 2020 2 Date: Feb 2020 3 KernelVersion: 5.7 3 KernelVersion: 5.7 4 Contact: Jack Wang <jinpu.wang@cloud.ion 4 Contact: Jack Wang <jinpu.wang@cloud.ionos.com> Danil Kipnis <danil.kipnis@cloud.ionos.com> 5 Description: Provide information about RNBD 5 Description: Provide information about RNBD-client. 6 All sysfs files that are not r 6 All sysfs files that are not read-only provide the usage information on read: 7 7 8 Example:: !! 8 Example: >> 9 # cat /sys/class/rnbd-client/ctl/map_device 9 10 10 # cat /sys/class/rnbd-clie !! 11 > Usage: echo "sessname=<name of the rtrs session> path=<[srcaddr,]dstaddr> 11 !! 12 > [path=<[srcaddr,]dstaddr>] device_path=<full path on remote side> 12 > Usage: echo "sessname=<n !! 13 > [access_mode=<ro|rw|migration>] > map_device 13 > [path=<[srcaddr,]dstaddr !! 14 > 14 > [access_mode=<ro|rw|migr !! 15 > addr ::= [ ip:<ipv4> | ip:<ipv6> | gid:<gid> ] 15 > << 16 > addr ::= [ ip:<ipv4> | i << 17 16 18 What: /sys/class/rnbd-client/ctl/map 17 What: /sys/class/rnbd-client/ctl/map_device 19 Date: Feb 2020 18 Date: Feb 2020 20 KernelVersion: 5.7 19 KernelVersion: 5.7 21 Contact: Jack Wang <jinpu.wang@cloud.ion 20 Contact: Jack Wang <jinpu.wang@cloud.ionos.com> Danil Kipnis <danil.kipnis@cloud.ionos.com> 22 Description: Expected format is the followi !! 21 Description: Expected format is the following: 23 22 24 sessname=<name of the rtrs !! 23 sessname=<name of the rtrs session> 25 path=<[srcaddr,]dstaddr> [ !! 24 path=<[srcaddr,]dstaddr> [path=<[srcaddr,]dstaddr> ...] 26 device_path=<full path on !! 25 device_path=<full path on remote side> 27 [access_mode=<ro|rw|migrat !! 26 [access_mode=<ro|rw|migration>] 28 27 29 Where: 28 Where: 30 29 31 sessname: !! 30 sessname: accepts a string not bigger than 256 chars, which identifies 32 accepts a string not bigge !! 31 a given session on the client and on the server. 33 a given session on the cli !! 32 I.e. "clt_hostname-srv_hostname" could be a natural choice. 34 I.e. "clt_hostname-srv_hos !! 33 35 !! 34 path: describes a connection between the client and the server by 36 path: !! 35 specifying destination and, when required, the source address. 37 describes a connection bet !! 36 The addresses are to be provided in the following format: 38 specifying destination and << 39 The addresses are to be pr << 40 << 41 ip:<IPv6> << 42 ip:<IPv4> << 43 gid:<GID> << 44 37 45 for example:: !! 38 ip:<IPv6> >> 39 ip:<IPv4> >> 40 gid:<GID> 46 41 47 path=ip:10.0.0.66 !! 42 for example: 48 43 >> 44 path=ip:10.0.0.66 49 The single addr is treated as 45 The single addr is treated as the destination. 50 The connection will be establi 46 The connection will be established to this server from any client IP address. 51 47 52 :: !! 48 path=ip:10.0.0.66,ip:10.0.1.66 53 << 54 path=ip:10.0.0.66,ip:10.0. << 55 << 56 First addr is the source addre 49 First addr is the source address and the second is the destination. 57 50 58 If multiple "path=" options ar 51 If multiple "path=" options are specified multiple connection 59 will be established and data w 52 will be established and data will be sent according to 60 the selected multipath policy 53 the selected multipath policy (see RTRS mp_policy sysfs entry description). 61 54 62 device_path: !! 55 device_path: Path to the block device on the server side. Path is specified 63 Path to the block device o !! 56 relative to the directory on server side configured in the 64 relative to the directory !! 57 'dev_search_path' module parameter of the rnbd_server. 65 'dev_search_path' module p !! 58 The rnbd_server prepends the <device_path> received from client 66 The rnbd_server prepends t !! 59 with <dev_search_path> and tries to open the 67 with <dev_search_path> and !! 60 <dev_search_path>/<device_path> block device. On success, 68 <dev_search_path>/<device_ !! 61 a /dev/rnbd<N> device file, a /sys/block/rnbd_client/rnbd<N>/ 69 a /dev/rnbd<N> device file !! 62 directory and an entry in /sys/class/rnbd-client/ctl/devices 70 directory and an entry in !! 63 will be created. 71 will be created. << 72 64 73 If 'dev_search_path' contains 65 If 'dev_search_path' contains '%SESSNAME%', then each session can 74 have different devices namespa 66 have different devices namespace, e.g. server was configured with 75 the following parameter "dev_s 67 the following parameter "dev_search_path=/run/rnbd-devs/%SESSNAME%", 76 client has this string "sessna 68 client has this string "sessname=blya device_path=sda", then server 77 will try to open: /run/rnbd-de 69 will try to open: /run/rnbd-devs/blya/sda. 78 70 79 access_mode: !! 71 access_mode: the access_mode parameter specifies if the device is to be 80 the access_mode parameter !! 72 mapped as "ro" read-only or "rw" read-write. The server allows 81 mapped as "ro" read-only o !! 73 a device to be exported in rw mode only once. The "migration" 82 a device to be exported in !! 74 access mode has to be specified if a second mapping in read-write 83 access mode has to be spec !! 75 mode is desired. 84 mode is desired. << 85 76 86 By default "rw" is used. 77 By default "rw" is used. 87 78 88 nr_poll_queues << 89 specifies the number of poll << 90 the block-layer will send th << 91 For fast network and device << 92 IO handling because it saves << 93 another process, handling th << 94 issuing process. << 95 << 96 Set -1 if you want to set it << 97 By default rnbd client creat << 98 << 99 NOTICE: MUST make a unique s << 100 << 101 Exit Codes: 79 Exit Codes: 102 80 103 If the device is already mappe 81 If the device is already mapped it will fail with EEXIST. If the input 104 has an invalid format it will 82 has an invalid format it will return EINVAL. If the device path cannot 105 be found on the server, it wil 83 be found on the server, it will fail with ENOENT. 106 84 107 Finding device file after mapp 85 Finding device file after mapping 108 ------------------------------ 86 --------------------------------- 109 87 110 After mapping, the device file 88 After mapping, the device file can be found by: 111 o The symlink /sys/class/rnbd< !! 89 o The symlink /sys/class/rnbd-client/ctl/devices/<device_id> 112 points to /sys/block/<dev-name 90 points to /sys/block/<dev-name>. The last part of the symlink destination 113 is the same as the device name 91 is the same as the device name. By extracting the last part of the 114 path the path to the device /d 92 path the path to the device /dev/<dev-name> can be build. 115 93 116 * /dev/block/$(cat /sys/class/< !! 94 o /dev/block/$(cat /sys/class/rnbd-client/ctl/devices/<device_id>/dev) 117 95 118 How to find the <device_id> of 96 How to find the <device_id> of the device is described on the next 119 section. 97 section. 120 98 121 What: /sys/class/rnbd-client/ctl/dev 99 What: /sys/class/rnbd-client/ctl/devices/ 122 Date: Feb 2020 100 Date: Feb 2020 123 KernelVersion: 5.7 101 KernelVersion: 5.7 124 Contact: Jack Wang <jinpu.wang@cloud.ion 102 Contact: Jack Wang <jinpu.wang@cloud.ionos.com> Danil Kipnis <danil.kipnis@cloud.ionos.com> 125 Description: For each device mapped on the 103 Description: For each device mapped on the client a new symbolic link is created as 126 /sys/class/rnbd-client/ctl/dev< !! 104 /sys/class/rnbd-client/ctl/devices/<device_id>, which points 127 to the block device created by 105 to the block device created by rnbd (/sys/block/rnbd<N>/). 128 The <device_id> of each device 106 The <device_id> of each device is created as follows: 129 107 130 - If the 'device_path' provide 108 - If the 'device_path' provided during mapping contains slashes ("/"), 131 they are replaced by exclama !! 109 they are replaced by exclamation mark ("!") and used as as the 132 <device_id>. Otherwise, the !! 110 <device_id>. Otherwise, the <device_id> will be the same as the 133 "device_path" provided. !! 111 "device_path" provided.
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.