[feature request] Cluster

streamservice

Verified User
Joined
Dec 14, 2005
Messages
174
Location
The Netherlands
Hello,

Is it possible to make a total cluster solution with DirectAdmin out off the box in the future? Now you have to change a lot.

A license for every server should be no problem. I know that it is possible with DirectAdmin, but maybe it is possible to make it as a standard option. It is mainly used for creating more capacity and for redundancy. Multiple server requirement would be no problem for the company's that want it.

For example:
- 2 loadbalancers
- 4 webserver
- 1 or 2 fileservers (1 backup)
- 1 MySQL server (because MySQL
- 1 SSH server/DirectAdmin server
doesn't really support it at the moment)

On every server an other setup should be no problem. Optionally it should be a great feature to have automatically client numbers as user names with speciall prefixes for resellers.

Thank you for you time to read this and to react. If there are any questions: just ask.
 
hello

i requested this so many times, in hopes someone can get started.

I too need a option for muiti servers
 
I hope DA wants to change the structure.
One controlpanel server that manage different (seperate) servers, like web mail db is what webhosting company's want if they grow.

At this moment i would be happy if i can split my mail from the other services.

Can DA give a answer what their plans are for the future.
 
DA is designed as a single-server solution for webhosting companies. The only multi-server solution I'm familiar with is H-Sphere. Are there others?

Changing DA to work as a complete multi-server solution is complex, and would require a lot of rewriting of the core code.
(Instead of just writing to files, which is how DA works now, it would have to work by opening connections to IP#s, doing validation, and doing everthing through an IP#-based interface.)

Jeff
 
jlasman said:
DA is designed as a single-server solution for webhosting companies. The only multi-server solution I'm familiar with is H-Sphere. Are there others?

Changing DA to work as a complete multi-server solution is complex, and would require a lot of rewriting of the core code.
(Instead of just writing to files, which is how DA works now, it would have to work by opening connections to IP#s, doing validation, and doing everthing through an IP#-based interface.)

Jeff

For the config files you could use the fileserver. You could use a system so that isn't needed. Only for restarting IP's should be used and DNS and Mail I gues.

If no one else is going to design it I would be happy to do it if some other company's will help with it (hardware and DirectAdmin should offer for testing purposes only a test license).
 
jlasman said:
DA is designed as a single-server solution for webhosting companies. The only multi-server solution I'm familiar with is H-Sphere. Are there others?

Changing DA to work as a complete multi-server solution is complex, and would require a lot of rewriting of the core code.
(Instead of just writing to files, which is how DA works now, it would have to work by opening connections to IP#s, doing validation, and doing everthing through an IP#-based interface.)

Jeff

I see you like posting your input on every topic, but this one i like to hear it from DA them selfs
 
Hello,

As Jeff mentioned, it becomes exponentially more complex.

Right now it's very simple.. read a file, write some text, that's all there is to it. All machine installs are the same, keeping it simple.

With clustering, it gets very complex because all calls to anything in DA have to go out to another box. Massive amounts of code-rewriting is needed... But that's the easier parts of it. When you get into having 4 webservers, you also have to sync the data all the time. The simple "save a file" becomes save a file locally, and trigger a sync up with all other servers, etc..

Now, the "Multi Server Setup" wasn't named just "Dns Clustering" for a reason, I do want to keep the option open for this type of feature. So we do want to have it, no question there. The only issue is the massive amount of work required to do it.

FYI, you can already use an external mysql sever by adding "host=other.host.com" in your conf/mysql.conf file.

In general, clustering (once setup) has it's advantages.. but with regards to scaling your company isn't just adding another standalone box easier? Once your entire cluster fills up, adding another cluster is harder then adding another standalone box. There are likely arguments both ways.

John
 
DirectAdmin Support said:
Hello,

As Jeff mentioned, it becomes exponentially more complex.

Right now it's very simple.. read a file, write some text, that's all there is to it. All machine installs are the same, keeping it simple.

With clustering, it gets very complex because all calls to anything in DA have to go out to another box. Massive amounts of code-rewriting is needed... But that's the easier parts of it. When you get into having 4 webservers, you also have to sync the data all the time. The simple "save a file" becomes save a file locally, and trigger a sync up with all other servers, etc..

Now, the "Multi Server Setup" wasn't named just "Dns Clustering" for a reason, I do want to keep the option open for this type of feature. So we do want to have it, no question there. The only issue is the massive amount of work required to do it.

FYI, you can already use an external mysql sever by adding "host=other.host.com" in your conf/mysql.conf file.

In general, clustering (once setup) has it's advantages.. but with regards to scaling your company isn't just adding another standalone box easier? Once your entire cluster fills up, adding another cluster is harder then adding another standalone box. There are likely arguments both ways.

John

You could use a file server. That would mean that when you upload a file every server can access it.

When i'm right you now change a config file for any change. If you use a central file server (possible 2 in a kind off raid-1 array way) you could save it on this central server and just request it when needed. The logging method should be different for traffic logs (1 file for all users because otherwhise you could get error's when you have many domains).

Once you have a cluster up and running adding an other box should be easy and adding a new cluster is just like starting again. On debian there are multiple options for certain parts off the cluster (only on Debian there are a few options, I don't know it off unix systems, how ever it should be possible).
 
Hello, thank you for your reply ..

to me, maybe a not a total cluster is needed but maybe 100% mysql and/or email just by adding new settings on DA with out modding files.

we can get the most out from our boxes , as we all know mysql can take a lot out on a single box. we can get double if not more clients just by having mysql on another box.

Even if i had to pay for that plugin, i would


i like to at lease see that.

- please advise

FYI
DA Lover!



DirectAdmin Support said:
Hello,

As Jeff mentioned, it becomes exponentially more complex.

Right now it's very simple.. read a file, write some text, that's all there is to it. All machine installs are the same, keeping it simple.

With clustering, it gets very complex because all calls to anything in DA have to go out to another box. Massive amounts of code-rewriting is needed... But that's the easier parts of it. When you get into having 4 webservers, you also have to sync the data all the time. The simple "save a file" becomes save a file locally, and trigger a sync up with all other servers, etc..

Now, the "Multi Server Setup" wasn't named just "Dns Clustering" for a reason, I do want to keep the option open for this type of feature. So we do want to have it, no question there. The only issue is the massive amount of work required to do it.

FYI, you can already use an external mysql sever by adding "host=other.host.com" in your conf/mysql.conf file.

In general, clustering (once setup) has it's advantages.. but with regards to scaling your company isn't just adding another standalone box easier? Once your entire cluster fills up, adding another cluster is harder then adding another standalone box. There are likely arguments both ways.

John
 
Last edited:
Thanks for your reply DA.
I am not looking for a total cluster. I would be happy if i can ad a seperate mailserver wich i can manage from DIrectadmin on the webserver, so my clients just have 1 controlpanel. If i have to install DA on the mailserver thats no problem.
 
I guess streamservice means (please correct me if i'm wrong) an easily expandable cluster by just adding webservers when needed.
 
Alrik said:
I guess streamservice means (please correct me if i'm wrong) an easily expandable cluster by just adding webservers when needed.

That is correct. With a file server for all config files it wouldn't take a lot off rewriting I guess.

An other option you would get is to have really heavy site's (you would normally need 2 to 3 servers for the website, which would mean that DirectAdmin isn't an option, but when you have a cluster option it would be possible).
 
streamservice said:
You could use a file server. That would mean that when you upload a file every server can access it.
Single point of failure again :( .

Lots of problems with NFS and file locking if I recall correctly.

Jeff
 
jlasman said:
Single point of failure again :( .

Lots of problems with NFS and file locking if I recall correctly.

Jeff

You could build 2 fileservers with are in a kind off raid-1 array or something like that (no single point off failure needed).
 
If you know how to create a cluster without a single point of failure, please explain. Write the book. You'll get very rich.

Otherwise, don't just say it can be done, because there's always going to a single point of failure, unless you're using pseudo-clustering of static sites with DNS.

Jeff
 
Well, off course it adds a single point of failure but when youare using only one server you also have one point of failure..


I must say tath I second the file server approach.

We would have :
-separae sql server (aldready available)
-centralized NFS server
-mail servers
-hive of web servers

Another interesting option would be a DirectAdmin Supervisor Server :

-It hosts the SQL server or can dispatch to a separate one
-You create user accounts on it an he dispatches between the other standart DA servers

it might be an easy way to begin with multi server centralisation.
 
jlasman said:
If you know how to create a cluster without a single point of failure, please explain. Write the book. You'll get very rich.

Otherwise, don't just say it can be done, because there's always going to a single point of failure, unless you're using pseudo-clustering of static sites with DNS.

Jeff

There is a really huge amount off information about it (for example see the links below):
http://www.howtoforge.com/high_availability_nfs_drbd_heartbeat
http://www.howtoforge.com/high_availability_loadbalanced_apache_cluster

For MySQL some information from the links below can be used:
http://www.howtoforge.com/mysql_database_replication
http://www.howtoforge.com/loadbalanced_mysql_cluster_debian

Please note that this is basic information. The network still could go down and because off that you should have 2 uplinks to different routers with different connections to the world to minimize this problem.

With this documentation you can see that the things below won't be a single point off failure (please note I do not do the management part, I just do the part that a visitor off a website will see):
- mail (MX20 in an other network that forwards the mail to the MX10 mailserver, this could also be a cluster)
- httpd/webservers (more webservers with it installed with the same config)
- fileserver (2 servers that contain the same data with 1 virtual IP with heartbeat)
- loadbalancers (2 servers that contain the same config and data with 1 virtual IP)
- 2 or 3 DNS servers (in at least 2 networks)
- MySQL (see the MySQL documentation that it is possible to have 2 servers for MySQL with 1 virtual IP)
- SSH (for maintenance off course on every server, if you also want it for clients you could use an extra server for it)
- FTP could be on 2 servers that place the files on both fileservers, but off course with 1 virtual IP like the loadbalancers.

What did I forget?
 
I've promised myself I wouldn't get into this discussion in depth anymore but this post begs a response :) :
streamservice said:
For MySQL some information from the links below can be used:
http://www.howtoforge.com/mysql_database_replication
[/quote] It's a lot more complex th...06/04/20/advanced-mysql-replication.html]here, it's not just a simple fix.
Please note that this is basic information. The network still could go down and because off that you should have 2 uplinks to different routers with different connections to the world to minimize this problem.
Actually our network at the California data center is set up this way, though we've never had a request, therefore we've never implemented it. Our uptime (Level 3) appears to be good enough without it; downtime is generally system related, with less than five minutes per year network downtime.
With this documentation you can see that the things below won't be a single point off failure (please note I do not do the management part, I just do the part that a visitor off a website will see):
- mail (MX20 in an other network that forwards the mail to the MX10 mailserver, this could also be a cluster)
The problem with bu MX (which has been discussed ad-nauseum in many email forums) is that if your bu MX doesn't know which users are and which are not real users, you can easily overload a system with for example, a dictionary attack. And when the primary mx is restored you've got the problem of what to do with the undeliverable emails. You couldn't refuse them while your primary was down because you didn't have a definitive list of real addresses, and now you can't discard the undeliverables because it's against RFCs. Neither can you return them because you may be returning them to forged senders, in which case you're a spammer yourself. In my opinion much better to rely on the built-in redundancy of the email system which (with proper DNS replication) will attempt to make deliveries for up to four days on most systems.
httpd/webservers (more webservers with it installed with the same config)
Works great for static sites (we're implementing it now for emergency support sites for many of our resellers). However for database driven sites, see above discussion on MySQL, and for sites where the user uploads information, even more dependence on the issues in my discussion above.
fileserver (2 servers that contain the same data with 1 virtual IP with heartbeat)
Seems great until you discuss getting that one virtual IP implemented; all the articles assume you've got all the required resources; you need either dependence on one datacenter (which works for some of us but not for others), dependency on (for most of us) at least one point of failure), or, for use on multiple data centers, you have to own your own IP#s and somehow manage to get single IP#s into routing tables.
loadbalancers (2 servers that contain the same config and data with 1 virtual IP)
Same redundancy issues as directly above, but doable if you can resolve those issues and have the resources.
2 or 3 DNS servers (in at least 2 networks)
Absolutely, in the kind of set-and-forget solution that both DA and our Master2Slave DNS replication supply.
MySQL (see the MySQL documentation that it is possible to have 2 servers for MySQL with 1 virtual IP)
Possible. Absolutely, within limitations (above). Easy? Not for most of us.
SSH (for maintenance off course on every server, if you also want it for clients you could use an extra server for it)
- FTP could be on 2 servers that place the files on both fileservers, but off course with 1 virtual IP like the loadbalancers.

What did I forget?
Your opinion may most certainly vary; in my opinion you've forgotten that this isn't the sort of set-and-forget system that most DA users seem to want. I don't think this is DA's market, at least as defined today for most DA users.

Even with H-Sphere, which is set up for multiple servers, this kind of redundancy isn't addressed; it's just too complex for most of us and requires specialty setups in datacenters and with cooperative transit for IP#s for geographical diversity.

Jeff
 
Back
Top