M-Stream Usage Notes
Last updated on April. 6, 2022
M-Stream is a File Fabric feature that speeds up the uploading, downloading and copying of very big files. Large files are split into pieces, sent in parallel over multiple streams, and reassembled back into a contiguous file or object at the target. In this way M-Stream maximizes throughput over available network bandwidth, minimizes network latency, and increases resiliency, particularly for wide area networks.
M-Stream is required to be activated by license key for the enterprise on-premises File Fabric. It is not available for the Software-as-a-Service hosted solution.
When is M-Stream Used
M-Stream will function when moving data between any of the following storage providers provided they support range reads.
- Swift API (SwiftStack, OpenStack Swift, Swift based clouds)
- S3 API (certified on AWS S3, Cloudian, IBM COS)
- Azure Blob
- Filesystem (FS, Local block storage, StorNext, Ceph FS and many others)
M-Stream will also accelerate moves, copies and renames (because renames require copying the file that is being renamed) between buckets within an S3 or OpenS3 provider.
M-Stream will also accelerate the downloads from one of the above storage providers to a Windows desktop running the SME Cloud Tools version 10.5.10 or later and to a Mac desktop with version 4.8 of the SME Mac Tools. M-Stream also provides accelerated uploads through the Web File Manager when storage for which M-Stream transfers are supported is used.
M-Stream for Upload
M-Stream streams parts in parallel directly to storage providers. M-Stream will not be used when an upload is performed outside the File Fabric, when the file size is not known, or when the file content will be encrypted.
For example when:
- Direct upload is used (when both client and provider have 'direct upload' enabled)
- Chunking is enabled (uncommon)
- File uploaded through FTP (as the file size is not provided)
- Encryption is enabled
- Antivirus scanning is enabled.
Enabling M-Stream on Enterprise File Fabric
To enable M-Stream for SME File Fabric follow the steps below:
From Appladmin Account
Go to Settings » License Key, check that the following are Enabled in your EFF License:
- M-Stream > Upload
- M-Stream > Transfers
Go to Settings » Site Functionality, adjust the M-Stream field settings in light of the following information:
- M-Stream minimum file size
- If set to 0, M-Stream will be disabled)
- If set too small, then too much overhead will be added, adversely affecting the performance.
- If set too large, then full potential of M-Stream will not be utilized
- Default multipart upload size (This only applies to S3 based storage and needs to be between 5MB and 4GB)
- Ranged read block size for FS and HPSS providers: (This is in 1803.03 and above. It only applies to FS or HPSS providers and specifies the block size for reading data. In most testing 4096 (4K) to (4M) should be used. Must be a base 2 integer)
- Write block size for FS and HPSS providers: (Same as point 4, but controls writing to FS or HPSS)
- M-Stream number of threads
- Should be set to 10 or (no. of web node vCPUs - 2), whichever is lower
- Enable Direct Upload: Should be set to Off
From Team Admin Account
Go to Dashboard » Provider Settings:
- Set Chunking “OFF”
- Turn MPU/DLO “ON” (If provider supports MPU/DLO)
Go to Policies » Encryption:
- Disable Encryption. (Accelerated transfer will not be used for files encrypted with SME encryption. SSE encryption or other storage encryption allow accelerated transfer.)
Go to Policies » Security:
- “Enable Antivirus for uploads:” is turned “Off”
Enabling For Windows Tools
From Cloud Tools » Control Panel » Bandwidth:
- Enable Allow multistream downloads
- Pick minimum file size (100 - 4096 MB)
- Pick up to 4 streams of data (Max 1 per CPU)
- Determine if Cloud Drive should also use M-Stream
- Provider must support MPU/DLO and range read.
- File system must support Random I/O. (Controlled by the read / write block size)
- M-Stream requires no user interaction. It works automatically when conditions allow.
- If a file is being uploaded using M-Stream then MD5 of the file will not be calculated, even if the feature “Calculate MD5 for upload” is enabled.