Configuring file replication
This section describes how to work with the File Replication FSR.
Overview
Unlike BSR, FSR connections are 1-channel connections that handle both replication and meta-packets. If you look at the drx connection information, you will see that it is marked as a complex type.
λ drx-ctl co all
------------------------------------------------------------------------------------------
Name Type replicator State local-drx State remote-drx
------------------------------------------------------------------------------------------
r0_node2_node1 complex (local-fsr) -established-> (local-drx) -----bridged-> (remote-drx)
------------------------------------------------------------------------------------------
r0_node3_node1 complex (local-fsr) -established-> (local-drx) -----bridged-> (remote-drx)
------------------------------------------------------------------------------------------
All connections : 2, Established : 2
Configuration files
Below is a description of the properties you need to specify for each section.
proxy connections
- Section: connections/node1/proxy, connections/node2/proxy
properties | type | format | description |
---|---|---|---|
name | string | name | Connection name. Auto-generated if not specified. Auto-generated format: {resource name}_{relative node name}_{node name} |
inside | string | {IP:Port} | Address of the local DRX for the local FSR → local DRX connection |
outside | string | {IP:Port} | Address of the local DRX for remote DRX → local DRX connection |
hostname | string | host name | Hostname of the machine on which DRX is operating Operates according to the hostname specification in the system configuration. |
options | Object | Proxy option | option |
The FSR connects to the inside address and the remote DRX connects to the outside address.
- node1 connection
Local FSR Local DRX Remote DRX
(node1 url) <-> (node1/proxy/inside | node1/proxy/outside) <-> (node2/proxy/outside)
- node2 connection
Remote DRX Local DRX Local FSR
(node1/proxy/outside) <-> (node2/proxy/outside | node2/proxy/inside) <-> (node2 url)
proxy options
- section: proxy, connections/node1/proxy/options, connections/node2/proxy/options
Each option can be overridden hierarchically lower down the hierarchy.
properties | type | format | description | |
---|---|---|---|---|
memlimit | string | {number}{unit} | TX BAB size. | |
bwlimit | string | {number}{unit} | Limit transfers per second | |
plugin | Object | Plugin settings list | ||
svc_autostart | string | true, yes, on,1 | Auto-start resources on DRX startup. | |
rx_memlimit | string | {number}{unit} | RX BAB size. | |
crypto | string | plugin name | Encryption plugins | |
compressor | string | plugin name | compression plugin | |
compressor_level | string | 1~9 | compression level |
Example configuration file
{
"id": "r0",
"description": "proxy test",
"nodes": [
{
"name": "node1",
"hostname": "drx1",
"files": [ { "path": "E:/r2" } ],
"buffer": { "size": 100 },
},
{
"name": "node2",
"hostname": "drx2",
"files": [ { "path": "E:/r2" } ],
"buffer": { "size": 100 },
},
{
"name": "node3",
"hostname": "drx3",
"files": [ { "path": "E:/r2" } ],
"buffer": { "size": 100 },
}
],
"connections": [
{
"node1": {
"name": "node1",
"url": "192.168.65.111:9830",
"proxy": {
"inside": "192.168.65.111:9831",
"outside": "192.168.65.111:9832"
}
},
"node2": {
"name": "node2",
"url": "192.168.65.112:9830",
"proxy": {
"inside": "192.168.65.112:9831",
"outside": "192.168.65.112:9832"
}
}
},
{
"node1": {
"name": "node1",
"url": "192.168.65.111:9830",
"proxy": {
"inside": "192.168.65.111:9833",
"outside": "192.168.65.111:9834",
}
},
"node2": {
"name": "node3",
"url": "192.168.65.113:9830"
"proxy": {
"inside": "192.168.65.113:9831",
"outside": "192.168.65.113:9832"
}
}
},
{
"node1": {
"name": "node2",
"url": "192.168.65.112:9830",
"proxy": {
"inside": "192.168.65.112:9833",
"outside": "192.168.65.112:9834"
}
},
"node2": {
"name": "node3",
"url": "192.168.65.113:9830",
"proxy": {
"inside": "192.168.65.113:9833",
"outside": "192.168.65.113:9834"
}
}
}
],
"proxy": {
"memlimit": "100M"
"plugin": {
"compressor": "lz4",
"crypto": "openssl",
"rx-memlimit": "10M",
}
}
}