Master Server and Analytic Server

From Array Suite Wiki

Jump to: navigation, search


Master and Analytic Server


The design of Master and Analytic server setup is to help companies manage distributed computing and data storage across multiple sites (such as US and EU sites). The master server served as central server for management and analytic servers are running near local storage to run extensive analysis.


[back to top]

Roles for Master and Analytic Server

The following list shows some basic difference between Master Server and Analytic Server.

Master Server Analytic Server
Management of users, samples, pipelines, shared views/genome browsers and published projects Server Project Management (individual user's projects)
Connects directly to a database Server for server-based analysis
Configured using ArrayServer.cfg file Each server is configured by AnalyticServer.cfg file
[back to top]

Setting up User and ServerProject Folders

Assuming the following setup: one master server called Master and three analytic servers called ServerA, ServerB and ServerC, respectively. Three analytic machines are hosted on three machines and using network storage nearby. A user will login to one of the Analytic servers, but would like to have access to files in other servers. To support this capability, ArrayServer builds a virtual folder structure under each Analytic server's BaseDirectory (in the AnalyticServer.cfg) and defines the physical user and server project folder path in the [AnalyticServer] option in the ArrayServer.cfg. Each BaseDirectory specified in the analytic server contains the shortcuts to each server's "real data" folder.

Once a user logs into the master server, the user will have a choice to go to one analytic server. No matter which analytic server is selected login, the user can still see user folder files in the other two analytic servers.


[back to top]

Syntax for Analytic Server Folder mapping

Folder mapping should be configured in master server's ArrayServer.cfg file. For each analytic server, one line should be added in master server's ArrayServer.cfg file that contains the following seven fields: ServerUrl|ServerName|WindowsUsersDirectory|LinuxUsersDirectory|WindowsServerProjectsDirectory|LinuxServerProjectsDirectory|ServerDescription

The ServerName field cannot have spaces or special characters (i.e. characters not allowed in filenames).

Here are examples for Arrayserver.cfg Analytic server configuration used for three scenarios

[back to top]

Example setup with Windows machines hosting all analytic servers

Use UNC path so that every server machine can access/mount these folders with the same path.

tcp://|ServerA|\\useast\ServerA_Users|NoLinuxUsers|\\useast\ServerA_ServerProjects|NoLinuxServerprojects|Server in US West
tcp://|ServerB|\\uswest\ServerB_Users|NoLinuxUsers|\\useast\ServerB_ServerProjects|NoLinuxServerprojects|Server in US East
tcp://|ServerC|\\euwest\ServerC_Users|NoLinuxUsers|\\eueast\ServerC_ServerProjects|NoLinuxServerprojects|Server in EU

Example setup with Linux machines hosting all analytic servers

Server admin will first mount all three network drives in each machine using the mount path so that every server machine can access files with the same path.

tcp://|ServerA|NoWindowsUsers|//mnt/uswest/ServerA_Users|NoWindowsServerProjects|//mnt/uswest/ServerA_ServerProjects|Server in US West
tcp://|ServerB|NoWindowsUsers|//mnt/useast/ServerB_Users|NoWindowsServerProjects|//mnt/useast/ServerB_ServerProjects|Server in US East
tcp://|ServerC|NoWindowsUsers|//mnt/euwest/ServerC_Users|NoWindowsServerProjects|//mnt/euwest/ServerC_ServerProjects|Server in EU

Example setup with both Linux and Windows machines (mixed)

Note: //mnt/uswest/ServerA_Users (mounted folder in Linux) and \\uswest\ServerA_Users (UNC path) should point to the same folder.

tcp://|ServerA|\\uswest\ServerA_Users|//mnt/uswest/ServerA_Users|\\uswest\ServerA_ServerProjects|//mnt/uswest/ServerA_ServerProjects|Server in US West
tcp://|ServerB|\\useast\ServerB_Users|//mnt/useast/ServerB_Users|\\useast\ServerB_ServerProjects|//mnt/useast/ServerB_ServerProjects|Server in US East
tcp://|ServerC|\\euwest\ServerC_Users|//mnt/euwest/ServerC_Users|\\eueast\ServerC_ServerProjects|//mnt/euwest/ServerC_ServerProjects|Server in EU
[back to top]

User/ServerProjects folders in BaseDirectory

Note, admin has setup BaseDirectory for each Analytic Server. Admin should be able to find ServerA, ServerB, and ServerC folder in BaseDirectory/FtpRoot/Users/xxx/. It should be empty if you check them outside of ArrayStudio. These are folders setup in FTP as virtual folder mapping to the real folder setup in [AnalyticServers]. For example, in ArrayStudio, the folder /Users/gary/ServerA/Test is actually pointing to \\useast\ServerA_Users\gary\Test. Folder mapping is handled by ArrayServer.

[back to top]

Essential options for master and analytic server configure file

For the master server's Arrayserver.cfg, an essential option is:



As the master server can also work as an analytic server, there should be another line:


For A2's AnalyticServer.cfg, the Option section needs to contain at least the following three options:







Once the configure files have been set up, both Maser server machine and Analytic server machine should open the port in firewall, which has been defined in the configure files.

Shared folder specified in master server

Additional mapped folders can be included in the master server's Arrayserver.cfg file, in the [Folder] section.

The basic syntax is

MappedFolderName=\\Windows\Path\To\Folder | /Linux/Path/To/Folder | AnalyticServerName
Tips.pngIf the folder to map is on the master server, AnalyticServerName should be Master

It may look like this:

ShareFolder=\\\Shared_Folder | /SharedFolder | A1

You need to provide directories for both Windows (\\\Shared_Folder) and Linux (/SharedFolder). This ensures that, no matter which system is installed in the analytic server, it will find the path to connect the folder specified in the master server's ArrayServer.cfg file.

Tips.png Also read ArrayServer.cfg.

[back to top]