ISPmanager 6 Business at work
ISPmanager 6 Business is a software product for shared hosting automation that can be used as a single solution for managing multiple servers.
Principles of operation:
A single control panel is used for managing multiple servers ("multi-server configuration")
All servers must run the same operating system ("homogeneous environment")
You can define specific rules for each server depending on its role in shared hosting ("specific usage of a server")
Certain software applications are installed on each server depending on its role ("specific use of software programs")
Software applications that specify a particular server role, are installed on all the servers that are managed with ISPmanager 6 ("homogeneous software environment")
Users' name server and their identifiers are identical for all the servers that are managed by ISPmanager 6 ("single namespaces and identifiers")
All user data related to a specific role are located only on one server ("data integrity within a user role")
Administrative settings configured on the server are identical on all the servers (homogeneous configurations)
You do not need to include the server running ISPmanager 6 into the group of shared-servers and it may not perform specific functions (except for hosting automation on CloudLinux)
The following is a detailed description of the above principles.
ISPmanager 6 Business is used for managing multiple servers.
ISPmanager 6 Pro can manage an unlimited number of servers. Before you start using a server, its operating system will be defined, required repositories will be connected, and required software will be installed. The ISPmanager 6 Node control panel is installed on each server for remote management. Most operations on server management are performed through this panel.
Roles and software environment homogeneity
Every server performs specific functions. Therefore, depending on hosting needs appropriate software programs should be configured on that server. A server role is a set of operational characteristics, software programs, and configuration methods.
The following table describes server roles in ISPmanager 6 Business:
Main role (Web-server)
This is the primary role of the server and the primary role for users. It includes Web-server, FTP-server
Nginx, Apache ITK, PHP-FPM, PHP, Quota, Awstats, Webalizer, ProFTPD, phpMyAdmin, archives
ispmanager-pkg-nginx, ispmanager-pkg-httpd-itk, ispmanager-pkg-phpfpm, ispmanager-pkg-php, ispmanager-pkg-quota, ispmanager-pkg-awstats, ispmanager-pkg-webalizer, ispmanager-pkg-proftpd, ispmanager-pkg-myadmin, zip, ispmanager-pkg-logrotate
Primary name server (NS1)
This server is used as the primary name server for all the ISPmanager 6 Business servers. Only a server with a control panel can be used for this role.
DNS server PowerDNS
Secondary name server (NSn)
This server is used as the secondary name server, managing DNS-queries and synchronizing information with the primary name server
DNS server PowerDNS
This server is used as an MTA, and POP3, IMAP-servers managing email domains and user mailboxes, as well as provide web-interface of the mail client.
Exim, Dovecot, Postgrey, OpenDKIM, Spamassassin, Sieve, Roundcube, ClamAV, MySQL, Nginx, Apache ITK, PHP-FPM, PHP, Quota
ispmanager-pkg-exim, ispmanager-pkg-dovecot, ispmanager-pkg-greylisting-exim, ispmanager-pkg-opendkim-exim, ispmanager-pkg-spamassassin-exim, ispmanager-pkg-sieve, ispmanager-pkg-roundcube, ispmanager-pkg-clamav-exim, ispmanager-pkg-mysql, ispmanager-pkg-nginx, ispmanager-pkg-httpd-itk, ispmanager-pkg-phpfpm, ispmanager-pkg-php, ispmanager-pkg-quota, ispmanager-pkg-logrotate
This server is used for managing MySQL databases
This server is used for managing PostgreSQL databases
Any role can be assigned to any server, or to any number of servers (except for the primary name server role).
After assigning a specific role to the server, the appropriate software programs will be installed. Together with an identical operating system, this constitutes homogeneous software environment for each server role within the server space.
Different roles for each server enables the administrator to define the specific usage of a server for each server.
Let's consider basic user management operations in ISPmanager 6 Business. As we wrote above, a single user name space and user identifiers (UID, GID) are determined for all servers.
First, you need to select a user identifier. A user identifier (UID and GID are identical by default) is selected from the base of available identifiers.
A user will be created on the least-loaded server with the main role (Web-server). In the operating system of the selected server, a user account will be created. Then the user is considered created.
Identifier space size and server selection method are specified in the "Policy" module.
User location is a server containing the data of the main role (Web-server). All real files will be located on that server, and the user can access that server through FTP and SSH. That's why the server with the main role is selected upon user creation.
Selecting servers for user roles
Servers for user roles, which differ from the main role, are selected only when needed. Actually, they are selected while trying to create an object associated with that role. According to the rules set in the "Policy" module, the least-loaded server is selected. The corresponding role is assigned to that server, and the object is created.
When selecting the least-loaded server, the following rule must be met: if a server where a user (data of the main role) is located, performs a required role, that server will be always selected to store data of other users.
Example 1. A user is created on the server that has all roles. When trying to create, for example, a MySQL database, databases of this user (MySQL-server role) will be created on this server.
Example 2. A user is created on the server with the main role only. When trying to create the MySQL database, MySQL databases of that user (MySQL-server role) will be created on the least-loaded server, and databases will be created on a different server
The above scheme allows for better load distribution. For example, a user can create a database later, and the server load will be estimated when creating the first database, rather when creating the user).
If you select a server to locate user data, all data corresponding to a specific role will be created and processed on that server. User data associated with the role selected cannot be located on multiple servers.
This allows for a number of variants of server usage for shared-hosting. For example, if each server has all roles, user data will be always stored on that very server. Or email server — there is a separate server (or servers) for managing emails only. Database server — one or several servers has the only role — MySQL-server, or MySQL- and PostgreSQL-server. You can also combine scenarios for server usage.
Users are modified on all the servers containing user data. If any of the servers is not accessible, the administrator will receive a notification enabling to re-send the user edit request to the server.
Users are deleted on all the servers containing user data. If any of the servers is not accessible, the administrator will receive a notification enabling to re-send the user deletion request to the server.
The User identifier will be also released upon deletion. Identifiers that were used by the users can be used once again by other users (the id that was released first will be first used by a new user) allowing to increase the time gap between id release and its usage for by a new user. This can be useful, for example, when deleting a user and recovering from the backup copy (with the same id).
All the servers that are managed by ISPmanager 6, meet the following requirement: homogeneity of server configuration.
Common server settings — Admin scheduler, Firewall, etc. are applied for all the servers
Server settings corresponding to a specific role — Blacklist, Whitelist for the "email server" role. They are applied for all the servers with the specified role.
Mechanisms for automatic data synchronization with ISPmanager 6 can be used for all of the data lists mentioned above. The mechanisms can be used, for example, if the server was inaccessible while applying the settings.
The server with ISPmanager 6 may not be included into the list of servers and may not have a specific role. But if you want to apply settings and collect information (current statuses of services, network services, etc.) and use the File manager, you can add it into the list of servers and do not assign any role.