LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: LVSM inital beta release

To: lvs-users@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: LVSM inital beta release
Cc: linux-ha-dev@xxxxxxxxxxxxxxxxxxxxxxxxx, linux-cluster@xxxxxxxxxxxx, lvsm@xxxxxxxxxx
From: Roberto Nibali <ratz@xxxxxx>
Date: Wed, 23 May 2001 09:23:09 +0200
> 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@xxxxxxxxxxx

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@xxxxxxxxx | sed 's/[NOSPAM]//g'`


<Prev in Thread] Current Thread [Next in Thread>