Settings
MASV Agent supports the following configurable settings:
- Disk configuration — Control concurrent readers, writers, and read/write priority per disk.
- FIFO mode — Limit bandwidth to a fixed number of concurrent uploads and downloads.
- Multiconnect — Transfer data across multiple active network interfaces.
- Network concurrency — Set the number of upload and download chunk workers.
- Rate limits — Restrict transfer bandwidth globally or per network interface, with optional schedules.
Disk configuration
Section titled “Disk configuration”Configure how MASV Agent reads and writes data to each disk during transfers.
Parameters
Section titled “Parameters”| Field | Type | Description |
|---|---|---|
disk_id | String | Unique ID for the disk config. |
priority | String | Disk read/write priority. |
max_concurrent_readers | Integer | Maximum number of concurrent readers. |
max_concurrent_writers | Integer | Maximum number of concurrent writers. |
Priority values
Section titled “Priority values”| Priority | Description |
|---|---|
mixed_read_writes | Allows concurrent read and write operations on the disk. |
prioritize_writes | Delays all read operations while writing to disk. |
prioritize_reads | Delays all write operations while reading from disk. Not recommended for typical use. |
Query disk status
Section titled “Query disk status”masv settings disk statusQuery the default disk configuration:
curl http://localhost:8080/api/v1/settings/disk_config_defaultQuery all disk configurations:
curl http://localhost:8080/api/v1/settings/disk_statusUpdate disk configuration
Section titled “Update disk configuration”Update both default and disk-specific configurations:
masv settings disk update --readers 2 --writers 3 --priority mixed_read_writesUpdate only the default configuration:
masv settings disk update --readers 2 --defaultUpdate specific disks by ID:
masv settings disk update --writers 2 --ids /,/mnt/hdd2Create a new disk configuration by providing an ID that does not yet exist:
masv settings disk update --writers 1 --ids /mnt/hdd3Update the default disk configuration:
curl -H "Content-Type: application/json" -X POST \ http://localhost:8080/api/v1/settings/disk_config_default -d '{ "priority": "mixed_read_writes", "max_concurrent_readers": 8, "max_concurrent_writers": 8 }'Update or create disk configurations:
curl -H "Content-Type: application/json" -X POST \ http://localhost:8080/api/v1/settings/disk_config -d '{ "/": { "priority": "mixed_read_writes", "max_concurrent_readers": 8, "max_concurrent_writers": 8 }, "/mnt/hdd2": { "priority": "mixed_read_writes", "max_concurrent_readers": 8, "max_concurrent_writers": 8 } }'FIFO mode
Section titled “FIFO mode”FIFO mode limits the allocated bandwidth to a fixed number of concurrent uploads and downloads. Transfer priority is granted in the order transfers are created, with the oldest transfers getting priority first.
Query FIFO status
Section titled “Query FIFO status”masv settings fifo statuscurl http://localhost:8080/api/v1/settings/fifo_modeUpdate FIFO mode
Section titled “Update FIFO mode”masv settings fifo update --enable --downloads 1 --uploads 2masv settings fifo update --disablecurl -H "Content-Type: application/json" -X POST \ http://localhost:8080/api/v1/settings/fifo_mode -d '{ "active_download_count": 1, "active_upload_count": 2, "enabled": true }'Modify FIFO ranks
Section titled “Modify FIFO ranks”Alter the rank of existing transfers to change their priority in the FIFO queue:
masv upload update {upload_id} --fifo-rank 1masv download update {download_id} --fifo-rank 1curl -H "Content-Type: application/json" -X POST \ http://localhost:8080/api/v1/uploads/{upload_id}/fifo_rank -d '{"fifo_rank": 1}'
curl -H "Content-Type: application/json" -X POST \ http://localhost:8080/api/v1/downloads/{download_id}/fifo_rank -d '{"fifo_rank": 1}'Multiconnect
Section titled “Multiconnect”Multiconnect allows MASV Agent to transfer data using multiple active internet connections available to the host system.
Query multiconnect status
Section titled “Query multiconnect status”masv settings multiconnect statuscurl http://localhost:8080/api/v1/settings/multiconnect/statusEnable or disable multiconnect
Section titled “Enable or disable multiconnect”masv settings multiconnect update --enablemasv settings multiconnect update --disablecurl -H "Content-Type: application/json" -X POST \ http://localhost:8080/api/v1/settings/multiconnect -d '{"enabled": true}'
curl -H "Content-Type: application/json" -X POST \ http://localhost:8080/api/v1/settings/multiconnect -d '{"enabled": false}'Manage network interfaces
Section titled “Manage network interfaces”Enable or disable a specific multiconnect network interface:
masv settings multiconnect interface {iface_id} --enablemasv settings multiconnect interface {iface_id} --disablecurl -H "Content-Type: application/json" -X POST \ http://localhost:8080/api/v1/settings/multiconnect/ifaces/{iface_id} -d '{"enabled": true}'
curl -H "Content-Type: application/json" -X POST \ http://localhost:8080/api/v1/settings/multiconnect/ifaces/{iface_id} -d '{"enabled": false}'Network concurrency
Section titled “Network concurrency”Control how many upload and download chunk workers are active at a time.
Query concurrency settings
Section titled “Query concurrency settings”masv settings network concurrency statuscurl http://localhost:8080/api/v1/settings/worker_configUpdate concurrency settings
Section titled “Update concurrency settings”masv settings network concurrency update --download 8 --upload 8curl -H "Content-Type: application/json" -X POST \ http://localhost:8080/api/v1/settings/worker_config -d '{"upload": 8, "download": 8}'Rate limits
Section titled “Rate limits”Rate limits restrict transfer bandwidth. A rate limit can apply at all times or on a schedule.
- With multiconnect disabled, the global rate-limit settings apply.
- With multiconnect enabled, the network interface-specific rate-limit settings apply.
Query rate limits
Section titled “Query rate limits”masv settings network rate-limit upload statusmasv settings network rate-limit download statusWith multiconnect disabled, query the global rate limits:
curl http://localhost:8080/api/v1/settings/upload_rate_limitcurl http://localhost:8080/api/v1/settings/download_rate_limitWith multiconnect enabled, query a specific network interface:
curl http://localhost:8080/api/v1/settings/upload_rate_limit/{iface_id}curl http://localhost:8080/api/v1/settings/download_rate_limit/{iface_id}Update rate limits
Section titled “Update rate limits”With multiconnect disabled, update the global rate limit:
masv settings network rate-limit download update --bps 100000000 --enablemasv settings network rate-limit download update --disableWith multiconnect enabled, update the rate limit for a specific network interface:
masv settings network rate-limit download update --iface-id {iface_id} --enablemasv settings network rate-limit download update --iface-id {iface_id} --disableWith multiconnect disabled, update the global rate limit:
curl -H "Content-Type: application/json" -X POST \ http://localhost:8080/api/v1/settings/download_rate_limit -d '{ "rate_limit_bps": 100000000, "enabled": true, "schedule_enabled": false }'With multiconnect enabled, update the rate limit for a specific network interface:
curl -H "Content-Type: application/json" -X POST \ http://localhost:8080/api/v1/settings/download_rate_limit/{iface_id} -d '{ "rate_limit_bps": 100000000, "enabled": true, "schedule_enabled": false }'Rate-limit schedules
Section titled “Rate-limit schedules”Rate limits can be applied on a schedule, restricting bandwidth during specific days and times.
With multiconnect disabled, enable or disable the global rate-limit schedule:
masv settings network rate-limit download schedule update --enablemasv settings network rate-limit download schedule update --disableWith multiconnect enabled, manage the schedule for a specific network interface:
masv settings network rate-limit download schedule update --iface-id {iface_id} --enablemasv settings network rate-limit download schedule update --iface-id {iface_id} --disableUpdate days within the schedule (multiconnect disabled):
masv settings network rate-limit download schedule days \ --start "09:00" --end "17:00" --enable --mon --tue --wed --thu --friUpdate days within the schedule for a specific interface (multiconnect enabled):
masv settings network rate-limit download schedule days \ --iface-id "00:d8:61:be:e1:2c" --start "09:00" --end "17:00" --enable --sat --sunWith multiconnect disabled, update the global rate limit with a schedule:
curl -H "Content-Type: application/json" -X POST \ http://localhost:8080/api/v1/settings/upload_rate_limit -d '{ "rate_limit_bps": 100000000, "enabled": true, "schedule_enabled": true, "schedule": { "mon": { "enabled": true, "start": "09:00", "end": "17:00" }, "tue": { "enabled": true, "start": "09:00", "end": "17:00" }, "wed": { "enabled": true, "start": "09:00", "end": "17:00" }, "thu": { "enabled": true, "start": "09:00", "end": "17:00" }, "fri": { "enabled": true, "start": "09:00", "end": "17:00" }, "sat": { "enabled": false, "start": "09:00", "end": "17:00" }, "sun": { "enabled": false, "start": "09:00", "end": "17:00" } } }'With multiconnect enabled, update the interface-specific rate limit with a schedule:
curl -H "Content-Type: application/json" -X POST \ http://localhost:8080/api/v1/settings/upload_rate_limit/{iface_id} -d '{ "rate_limit_bps": 100000000, "enabled": true, "schedule_enabled": true, "schedule": { "mon": { "enabled": true, "start": "09:00", "end": "17:00" }, "tue": { "enabled": true, "start": "09:00", "end": "17:00" }, "wed": { "enabled": true, "start": "09:00", "end": "17:00" }, "thu": { "enabled": true, "start": "09:00", "end": "17:00" }, "fri": { "enabled": true, "start": "09:00", "end": "17:00" }, "sat": { "enabled": false, "start": "09:00", "end": "17:00" }, "sun": { "enabled": false, "start": "09:00", "end": "17:00" } } }'