[DRBD-user] drbdadm does not exist - Installing on x86_64 System

Diego Julian Remolina diego.remolina at ibb.gatech.edu
Fri Sep 16 18:50:40 CEST 2005

Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.


1. How did you install drbd, rpm, configure/make/make-install?
2. Did you install to a non-standard place --prefix=/path/to/something?

If the 2nd question is true then your problem is that drbdadm in not in 
the path.

echo $PATH to see what is on  your path.

Also from the "make install" log see where you installed drbd.

I use drbd installed from rpm and drbdadm is in /sbin

[root at arwen areca]# which drbdadm
/sbin/drbdadm

/sbin is part of my path:

root at arwen areca]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/local/sbin:/opt/local/bin:/usr/X11R6/bin:/root/bin

Diego


LLLActive at GMail.com wrote:
> Hi all,
> 
> I just started the installation of DRBD on a 64Bit system. 
> I'm new to Linux and not a programmer, just a sysadmin learning.
> I need help to get DRBD up and running.
> 
> I followed the "INSTALL" document of Nov 2 2004 to make and install. 
> 
> After configuration I followed the "Quick start guide for DRBD 0.7".
> 
> When I issue the command:
> modprobe drbd; drbdadm up all; dmesg| tail; cat /proc/drbd
> 
> I get the error that 
> -bash: drbdadm: command not found
> 
> from the scripts directory:
>  
> # modprobe drbd; drbdadm up all; dmesg| tail; cat /proc/drbd
> 
> -bash: drbdadm: command not found
> powernow-k8: ph2 null fid transition 0xa
> SFW2-INext-DROP-DEFLT IN=eth0 OUT= MAC= SRC=192.168.0.174 DST=192.168.0.255 LEN=250 TOS=0x00 PREC=0x00 TTL=64 ID=382 DF PROTO=UDP SPT=138 DPT=138 LEN=230
> powernow-k8: vid trans failed, vid 0x3, curr 0x4
> powernow-k8: transition frequency failed
> powernow-k8: ph2 null fid transition 0xa
> powernow-k8: vid trans failed, vid 0x3, curr 0x4
> powernow-k8: transition frequency failed
> powernow-k8: ph2 null fid transition 0xa
> SFW2-INext-DROP-DEFLT IN=eth1 OUT= MAC= SRC=10.11.12.14 DST=10.11.12.255 LEN=250 TOS=0x00 PREC=0x00 TTL=64 ID=366 DF PROTO=UDP SPT=138 DPT=138 LEN=230
> SFW2-INext-DROP-DEFLT IN=eth0 OUT= MAC= SRC=192.168.0.174 DST=192.168.0.255 LEN=250 TOS=0x00 PREC=0x00 TTL=64 ID=383 DF PROTO=UDP SPT=138 DPT=138 LEN=230
> version: 0.7.13 (api:77/proto:74)
> SVN Revision: 1942 build by root at CL4, 2005-09-12 11:56:43
>  0: cs:Unconfigured
>  1: cs:Unconfigured
>  
> It happens on both systems.
> 
> Have I missed something, because I can't find drbdadm anywhere. 
> 
> :-)
> Lando
> 
> 
> ==============================================
> I used following steps and configuration:
> 
> == Preparing kernel source tree ==
> 
> all# cd /usr/src/linux 
> # all OK
> 
> all# make mrproper 
> # ended with no errors - OK
> 
> all# make cloneconfig 
> # ended with no errors - OK
> 
> all# zcat /proc/config.gz 
> # ended with no errors - OK
> 
>    # yes "" | make -s oldconfig ; yes "" | make -s oldconfig 
> # was actually not necessary, using std kernel 
> # ended with no errors - OK
> 
> I checked that /dev/drbd exists in SUSE 9.3 # OK
> 
> I checked the kernel to be SUSE 9.3 2.6.11.4-21.9-default, so 'make dep'
> is not necessary # OK
> 
> all# make include/linux/version.h
> # ended with no errors - OK
> 
> all# make modules_prepare
> # ended with no errors - OK
> 
> == Building a DRBD kernel module ==
> 
> all# cd /usr/src
> # ended with no errors - OK
> 
> all# tar -xvzf /home/user/drbd/drbd-0.7.13.tar.gz
> # ended with no errors - OK
> 
> == Building the module ==
> 
> all# cd drbd-0.7.13/drbd
> # ended with no errors - OK
> 
> all# make clean all
> # ended with no errors - OK
> 
> == Installing it ==
> 
> all# cd /usr/src/drbd-0.7.13/drbd
> # ended with no errors - OK
> 
> all# make install
> # ended with no errors - OK
> 
> # even make rpm worked OK
> 
> == Configuring it ==
> 
> I checked in the /scripts/drbd.conf file, and configured the following:
> 
> resource drbd0
> protocol C
> 
> on CL1 {
>     device     /dev/drbd0;
>     disk       /dev/sdb1;
>     address    10.11.12.14:7789;
>     meta-disk  internal;
> }
> 
>  on CL2 {
>     device    /dev/drbd0;
>     disk      /dev/sdb1;
>     address   10.11.12.13:7789;
>     meta-disk internal;
>   }
> 
> 
> 
> Other devices were commented 'out' by 'skip {}'
> 
> 
> 
> 
> 
> ####### Copy of the drbd.conf file ###########
> 
> 
> 
> #
> # drbd.conf CHANGED :: Lando :: Date - 2K50916.11:46
> #
> # parameters you _need_ to change are the hostname, device, disk,
> # meta-disk, address and port in the "on <hostname> {}" sections.
> #
> # you ought to know about the protocol, and the various timeouts.
> #
> # you probably want to set the rate in the syncer sections
> #
> # increase timeout and maybe ping-int in net{}, if you see
> # problems with "connection lost/connection established"
> # (or change your setup to reduce network latency; make sure full
> #  duplex behaves as such; check average roundtrip times while
> #  network is saturated; and so on ...)
> #
> 
> #
> # Upgrading from DRBD-0.6.x
> #
> # Using the size parameter in the disk section (was disk-size) is
> # no longer valid. The agreed disk size is now stored
> # in DRBD's non volatile meta data files.
> #
> # NOTE that if you do not have some dedicated partition to use for
> # the meta-data, you may use 'internal' meta-data.
> #
> #	THIS HOWEVER WILL DESTROY THE LAST 128M
> #	OF THE LOWER LEVEL DEVICE.
> #
> # So you better make sure you shrink the filesystem by 128M FIRST!
> # or by 132M just to be sure... :)
> #
> 
> skip {
>   As you can see, you can also comment chunks of text
>   with a 'skip[optional nonsense]{ skipped text }' section.
>   This comes in handy, if you just want to comment out
>   some 'resource <some name> {...}' section:
>   just precede it with 'skip'.
> 
>   The basic format of option assignment is
>   <option name><linear whitespace><value>;
>   
>   It should be obvious from the examples below,
>   but if you really care to know the details:
>   
>   <option name> :=
>         valid options in the respective scope
>   <value>  := <num>|<string>|<choice>|...
>               depending on the set of allowed values
>               for the respective option.
>   <num>    := [0-9]+, sometimes with an optional suffix of K,M,G
>   <string> := (<name>|\"([^\"\\\n]*|\\.)*\")+
>   <name>   := [/_.A-Za-z0-9-]+
> }
> 
> #
> # At most ONE global section is allowed.
> # It must precede any resource section.
> #
> # global {
>     # use this if you want to define more resources later
>     # without reloading the module.
>     # by default we load the module with exactly as many devices
>     # as configured mentioned in this file.
>     #
>     # minor-count 5;
> 
>     # The user dialog counts and displays the seconds it waited so
>     # far. You might want to disable this if you have the console 
>     # of your server connected to a serial terminal server with
>     # limited logging capacity.
>     # The Dialog will print the count each 'dialog-refresh' seconds,
>     # set it to 0 to disable redrawing completely. [ default = 1 ]
>     #
>     # dialog-refresh 5; # 5 seconds
> 
>     # You might disable one of drbdadm's sanity check.
>     # disable-ip-verification;
> # }
> 
> #
> # this need not be r#, you may use phony resource names,
> # like "resource web" or "resource mail", too
> #
> 
> resource drbd0 { # this used to be r0
> 
>   # transfer protocol to use.
>   # C: write IO is reported as completed, if we know it has
>   #    reached _both_ local and remote DISK.
>   #    * for critical transactional data.
>   # B: write IO is reported as completed, if it has reached
>   #    local DISK and remote buffer cache.
>   #    * for most cases.
>   # A: write IO is reported as completed, if it has reached
>   #    local DISK and local tcp send buffer. (see also sndbuf-size)
>   #    * for high latency networks
>   #
>   #**********
>   # uhm, benchmarks have shown that C is actually better than B.
>   # this note shall disappear, when we are convinced that B is
>   # the right choice "for most cases".
>   # Until then, always use C unless you have a reason not to.
>   #	--lge
>   #**********
>   #
>   protocol C;
> 
>   # what should be done in case the cluster starts up in
>   # degraded mode, but knows it has inconsistent data.
>   incon-degr-cmd "echo '!DRBD! pri on incon-degr' | wall ; sleep 60 ;
> halt -f";
> 
>   startup {
>     # Wait for connection timeout. 
>     # The init script blocks the boot process until the resources
>     # are connected. This is so when the cluster manager starts later,
>     # it does not see a resource with internal split-brain.
>     # In case you want to limit the wait time, do it here.
>     # Default is 0, which means unlimited. Unit is seconds.
>     #
>     # wfc-timeout  0;
> 
>     # Wait for connection timeout if this node was a degraded cluster.
>     # In case a degraded cluster (= cluster with only one node left)
>     # is rebooted, this timeout value is used. 
>     #
>     degr-wfc-timeout 120;    # 2 minutes.
>   }
> 
>   disk {
>     # if the lower level device reports io-error you have the choice of
>     #  "pass_on"  ->  Report the io-error to the upper layers.
>     #                 Primary   -> report it to the mounted file system.
>     #                 Secondary -> ignore it.
>     #  "panic"    ->  The node leaves the cluster by doing a kernel
> panic.
>     #  "detach"   ->  The node drops its backing storage device, and
>     #                 continues in disk less mode.
>     #
>     on-io-error   detach;
> 
>     # In case you only want to use a fraction of the available space
>     # you might use the "size" option here.
>     #
>     # size 10G;
>   }
> 
>   net {
>     # this is the size of the tcp socket send buffer
>     # increase it _carefully_ if you want to use protocol A over a
>     # high latency network with reasonable write throughput.
>     # defaults to 2*65535; you might try even 1M, but if your kernel or
>     # network driver chokes on that, you have been warned.
>     # sndbuf-size 512k;
> 
>     # timeout       60;    #  6 seconds  (unit = 0.1 seconds)
>     # connect-int   10;    # 10 seconds  (unit = 1 second)
>     # ping-int      10;    # 10 seconds  (unit = 1 second)
> 
>     # Maximal number of requests (4K) to be allocated by DRBD.
>     # The minimum is hardcoded to 32 (=128 kb).
>     # For hight performance installations it might help if you
>     # increase that number. These buffers are used to hold
>     # datablocks while they are written to disk.
>     #
>     # max-buffers     2048;
> 
>     # The highest number of data blocks between two write barriers. 
>     # If you set this < 10 you might decrease your performance.
>     # max-epoch-size  2048;
> 
>     # if some block send times out this many times, the peer is 
>     # considered dead, even if it still answers ping requests.
>     # ko-count 4;
> 
>     # if the connection to the peer is lost you have the choice of
>     #  "reconnect"   -> Try to reconnect (AKA WFConnection state)
>     #  "stand_alone" -> Do not reconnect (AKA StandAlone state)
>     #  "freeze_io"   -> Try to reconnect but freeze all IO until
>     #                   the connection is established again.
>     # on-disconnect reconnect;
> 
>   }
> 
>   syncer {
>     # Limit the bandwith used by the resynchronisation process.
>     # default unit is KB/sec; optional suffixes K,M,G are allowed
>     #
>     rate 10M;
> 
>     # All devices in one group are resynchronized parallel. 
>     # Resychronisation of groups is serialized in ascending order. 
>     # Put DRBD resources which are on different physical disks in one
> group.
>     # Put DRBD resources on one physical disk in different groups.
>     #
>     group 1;
> 
>     # Configures the size of the active set. Each extent is 4M, 
>     # 257 Extents ~> 1GB active set size. In case your syncer
>     # runs @ 10MB/sec, all resync after a primary's crash will last
>     # 1GB / ( 10MB/sec ) ~ 102 seconds ~ One Minute and 42 Seconds.
>     # BTW, the hash algorithm works best if the number of al-extents
>     # is prime. (To test the worst case performace use a power of 2)
>     al-extents 257;
>   }
> 
>   on CL1 {
>     device     /dev/drbd0;
>     disk       /dev/sdb1;
>     address    10.11.12.14:7789;
>     meta-disk  internal;
> 
>     # meta-disk is either 'internal' or '/dev/ice/name [idx]'
>     #
>     # You can use a single block device to store meta-data
>     # of multiple DRBD's.
>     # E.g. use meta-disk /dev/hde6[0]; and meta-disk /dev/hde6[1];
>     # for two different resources. In this case the meta-disk
>     # would need to be at least 256 MB in size.
>     #
>     # 'internal' means, that the last 128 MB of the lower device
>     # are used to store the meta-data.
>     # You must not give an index with 'internal'.
>   }
> 
>   on CL2 {
>     device    /dev/drbd0;
>     disk      /dev/sdb1;
>     address   10.11.12.13:7789;
>     meta-disk internal;
>   }
> }
> 
> # skip start-1
> 
> skip {
> 
> 
> # yes, you may also quote the resource name.
> # but don't include whitespace, unless you mean it :)
> 
>  resource "r1" {
>   protocol C;
>   incon-degr-cmd "echo '!DRBD! pri on incon-degr' | wall ; sleep 60 ;
> halt -f";
>   startup {
>     wfc-timeout         0;  ## Infinite!
>     degr-wfc-timeout  120;  ## 2 minutes.
>   }
>   disk {
>     on-io-error detach;
>   }
>   net {
>     # timeout           60;
>     # connect-int       10;
>     # ping-int          10;
>     # max-buffers     2048;
>     # max-epoch-size  2048;
>   }
>   syncer {
>     rate   4M;
>     group   1; # sync concurrently with r0
>   }
> 
>   on amd {
>     device	/dev/drbd1;
>     disk	/dev/hde6;
>     address	192.168.22.11:7789;
>     meta-disk	/dev/somewhere [7];
>   }
> 
>   on alf {
>     device     /dev/drbd1;
>     disk       /dev/hdc6;
>     address    192.168.22.12:7789;
>     meta-disk  /dev/somewhere [7];
>   }
>  }
> 
>  resource r2 {
>   protocol C;
>   incon-degr-cmd "echo '!DRBD! pri on incon-degr' | wall ; sleep 60 ;
> halt -f";
> 
>   startup { wfc-timeout 0; degr-wfc-timeout 120; }
>   disk    { on-io-error detach; }
>   net     { timeout 60; connect-int 10; ping-int 10;
>             max-buffers 2048; max-epoch-size 2048; }
>   syncer  { rate 4M; group 2; } # sync when r0 and r1 are finished
> syncing.
>   on amd {
>     address 192.168.22.11:7790;
>     disk /dev/hde7; device /dev/drbd2; meta-disk "internal";
>   }
>   on alf {
>     device "/dev/drbd2"; disk "/dev/hdc7"; meta-disk "internal";
>     address 192.168.22.12:7790;
>   }
>  }
> 
>  resource r3 {
>   protocol	C;
>   incon-degr-cmd "echo '!DRBD! pri on incon-degr' | wall ; sleep 60 ;
> halt -f";
>   startup { wfc-timeout	0; degr-wfc-timeout	120; }
>   disk { on-io-error detach; }
>   syncer {
>     rate	4M;
>     group	3;   # sync when r2 is finished syncing.
>   }
>   on amd {
>     device	/dev/drbd3;
>     disk	/dev/hde8;
>     address	192.168.22.11:7791;
>     meta-disk	internal;
>   }
>   on alf {
>     device	/dev/drbd3;
>     disk	/dev/hdc8;
>     address	192.168.22.12:7791;
>     meta-disk	/some/where[8];
>   }
>  }
> 
> # skip end-1
> }
> ###################################################
> 
> 
> _______________________________________________
> drbd-user mailing list
> drbd-user at lists.linbit.com
> http://lists.linbit.com/mailman/listinfo/drbd-user



More information about the drbd-user mailing list