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