[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: LVSM inital beta release



> What does LVSM offer?
> 
>  - Level 4 switching with LVS
>  - High Availabity with heartbeat
>  - Service Level monitoring with mon
>  - Web based gui
>  - On the fly configuration
>  - Cluster Statistics reporting
> 
> The LVSM homepage is at http://lvsm.theory.org

Cool, yet another cluster manager software :)
 
> Please send any questions / feedback / complaints to the
> lvsm mailing list at lvsm@theory.org.

Ok, I just downloaded the code, extracted it and had a 15 minute look
at it (random stuff I would complain about):

o It's very difficult to understand the code:
	- indentation is only 2 chars
	- c++ , just kidding :) [very advanced c++ for me!]
	- some prototype definitions are missing or should go into *.h files
          e.g, Select.cc is ugly as it gets :))
o Why do you use the ``ipchains -L -vnx --line-numbers'' approach to get the
  statistics? [ipchains_stats.cc]:

  if(use_chains) 
    ipch = popen("/sbin/ipchains -L -vnx --line-numbers", "r");
  else
    ipch = popen("/sbin/iptables -L -vnx --line-numbers", "r");

  fgets(buf, 4096, ipch);
  keep_going = true;
  char * ptr = NULL;
  int c = 0;
  while(keep_going) {
    if(strstr(buf, "Chain ")==buf && strstr(buf, chain) - buf == 6) {
      fgets(buf, 4096, ipch);
      fgets(buf, 4096, ipch);
      while(strstr(buf, "Chain")!=buf) {
	if(num_rules == c) {
	  if(use_chains) {
	    ptr = strchr(buf, '-');
	    if(!ptr) {
	      l->log(LL_WARN, "couldn't find str '-' in buf '%s'\n", buf);
	    }
	  } else {
	    ptr = buf; // aye aye aye..  /\d+[^\d+]\d+[^\d+]\d+\s+/
	    while(isdigit(*ptr)) ptr++;
	    while(!isdigit(*ptr)) ptr++;
	    while(isdigit(*ptr)) ptr++;
	    while(!isdigit(*ptr)) ptr++;
	    while(isdigit(*ptr)) ptr++;
	    while(isspace(*ptr)) ptr++;
	  }
	  break;
	}
	c++;
  
o very interesting code, but very CPU intensive! I have 15000 iptables rules,
  and all together 5000 concurrent connections -> iptables -L -vnx is a pain
  in the ass, that's why we have /proc/net/ip_masq/vs_stats.
o you plvsd daemon is not really portable to other architectures or at least
  it takes quite some time: You seem to use the pthreads in a way Plan9 or
  HP/UX would not support them. You assume, everybody is running Linux as
  real servers.
o not everybody has the pidof(8) installed on the system, but everybody for
  sure has ps. Generally, make sure you use basic Unix tools and not for
  example distro-specific tools.


just my 2 dimes,
Roberto Nibali, ratz

-- 
mailto: `echo NrOatSz@tPacA.cMh | sed 's/[NOSPAM]//g'`

Linux-cluster: generic cluster infrastructure for Linux
Archive:       http://mail.nl.linux.org/linux-cluster/