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