The FileFlex Enterprise system is a complex set of modules, and is therefore deployed as a virtual machine to greatly simplify deployment. Several different virtualization solutions are presently supported, including: Follow one of the provided guides to deploy the FileFlex Enterprise image using the virtualization technology of your choice. Deploying on a NAS When deployed on a NAS, a virtualization technology such as VirtualBox (or otherwise) will automatically be installed as a dependency of the solution. FileFlex Enterprise may be deployed on a variety of hardware configurations, with an underlying requirement of Intel x64 CPU architecture. When discussing deployment hardware, it is specifically with respect to the VM's allocation of hardware resources to the VM, rather than the total capacity of the underlying host machine. This document is focused on single-machine/VM deployments rather than a clustered deployment. The following table describes typical deployment configurations and capacities. Server hardware refers to VM-assigned resources. Intel Core i3 2-Core @ 2ghz Supports VT-x and AES-NI Intel Core i7 4-Core or 6-Core @ 3ghz Supports VT-x and AES-NI Intel Xeon 8-Core or 10-Core @ 3ghz Supports VT-x and AES-NI ARM A8 Single Core @ 1ghz ARM A9 Dual Core @ 1ghz Intel Atom Quad Core @ 2ghz 10000rpm SATA drive(s), <7ms seek and/or SSD caching The advanced panel of the server administration contains a configurable property "Maximum concurrent view-only conversions". This defines the maximum number of view-only conversions that may execute at the same time. When a user chooses to view an office document within the application, a conversion is necessary. The number of conversions that can happen at the same time is directly connected to the amount of CPU and RAM allocated to the server. Each "concurrent view-only conversion" requires 1 dedicated CPU core, and 1gb of RAM. We recommend adding 1 CPU core and 1gb of RAM for each additional 1,000 users added to the system, depending on the frequency with which they are viewing documents within the application, and the size of the documents they are viewing. The most important fundamental resource is RAM because several running processes are launched for data accumulation, proxying, data encryption, etc. A minimum of 4gb is required to run all needed services adequately. The maximum activations introduce a persistent RAM requirement, so a higher RAM total allows for more total activations/users. Simultaneous transfers also require more RAM. A larger cache allows for a larger number of "active users". View-Only conversion is by far the largest consumer of RAM, and allocation must be made as indicated above. The server is not critically bound to drive IO, so most typical well-functioning NAS drive deployments will be adequate. The connector however which is responsible for fetching files from the local device is tied to the IO performance of the device - especially the seek time. SSD caching schemes will greatly improve it's ability to deliver high numbers of files concurrently without overly slowing down the NAS's performance. The exception is view-only conversions. If your use-cases involve a great deal of document viewing, then IO limitations may come into play and the deployment of an SSD-backed high performance data-storage solution is recommended. The CPU is highly utilized for encoding/decoding of requests, so is directly related to the number of active users. It is also directly related to the number of high-speed transfers due to the active encryption. The CPU becomes especially important when dealing with 10GbE connections with clients located on the same high-performance network. View-Only conversion is a large consumer of CPU, and allocation must be made as indicated above. The network is very important when dealing with a large number of concurrent transfers if one wants to maintain consistent local-network level performance. For the reasons described above, it's important to correlate the CPU with the network speed. When capacity becomes saturated, it is possible to deploy FileFlex in a clustered configuration. Supporting a clustered configuration requires dual networks, so it's important that such deployments have at least two network adapters. In a highly de-centralized deployment, the CPU and RAM become less important as the load is spread across several machines.Server Hardware Allocation Requirements
Server Hardware Requirements
Minimum Mid-Range High-End CPU RAM (assigned to VM) 4gb 8gb 16gb Network Single 1GbE LAN Port Dual 1GbE LAN Ports w/Aggregated Links Dual 10GbE LAN Ports OS Linux based, with integrated virtualization support Linux based, with integrated virtualization support Linux based, with integrated virtualization support Maximum Concurrent View-Only Conversions 1 3-4 6-8 Max Suggested Users 1000 2500 5000 Max Users in App (ram and cpu dependency) 150 500 1000 Max Typical Active Browsing Users 20 80 160 Max Typical Concurrent Transfers 10 30 60 Connector Agent Hardware Requirements
Minimum Mid-Range High-End CPU RAM 256mb 512mb 512mb Network Single 1GbE LAN Port Single 1GbE LAN Port Dual 1GbE LAN Ports w/Aggregated Links OS Linux based Linux based Linux based Storage 7200rpm SATA Drives, < 10ms seek 7200rpm SATA drive(s), <10ms seek Max Activations and/or Users 100 250 500 Max Logged in Users (ram and cpu dependency) 30 125 350 Max Typical Active Browsing Users 10 35 100 Max Typical Concurrent Transfers 5 15 30 (may be IO limited) Expected CPU% Use at Max Typical 50% 50% 50% View-Only Conversions
Effect of RAM
Effect of Disk IO
Effect of CPU
Effect of Network
Clustering
Overview
Content Tools
Apps